d?(a.sortIndex=c,H(M,a),null===J(L)&&a===J(M)&&(S?h():S=!0,g(U,c-d))):(a.sortIndex=e,H(L,a),R||Q||(R=!0,f(V)));return a};\nexports.unstable_wrapCallback=function(a){var b=P;return function(){var c=P;P=b;try{return a.apply(this,arguments)}finally{P=c}}};\n"]},"metadata":{},"sourceType":"script"}
\ No newline at end of file
diff --git a/node_modules/.cache/babel-loader/325e1860be9cb2be93b08bb74f2afdb4.json b/node_modules/.cache/babel-loader/325e1860be9cb2be93b08bb74f2afdb4.json
new file mode 100644
index 00000000..1993218d
--- /dev/null
+++ b/node_modules/.cache/babel-loader/325e1860be9cb2be93b08bb74f2afdb4.json
@@ -0,0 +1 @@
+{"ast":null,"code":"/** @license React v17.0.2\n * react-jsx-runtime.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';\n\nrequire(\"object-assign\");\n\nvar f = require(\"react\"),\n g = 60103;\n\nexports.Fragment = 60107;\n\nif (\"function\" === typeof Symbol && Symbol.for) {\n var h = Symbol.for;\n g = h(\"react.element\");\n exports.Fragment = h(\"react.fragment\");\n}\n\nvar m = f.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,\n n = Object.prototype.hasOwnProperty,\n p = {\n key: !0,\n ref: !0,\n __self: !0,\n __source: !0\n};\n\nfunction q(c, a, k) {\n var b,\n d = {},\n e = null,\n l = null;\n void 0 !== k && (e = \"\" + k);\n void 0 !== a.key && (e = \"\" + a.key);\n void 0 !== a.ref && (l = a.ref);\n\n for (b in a) {\n n.call(a, b) && !p.hasOwnProperty(b) && (d[b] = a[b]);\n }\n\n if (c && c.defaultProps) for (b in a = c.defaultProps, a) {\n void 0 === d[b] && (d[b] = a[b]);\n }\n return {\n $$typeof: g,\n type: c,\n key: e,\n ref: l,\n props: d,\n _owner: m.current\n };\n}\n\nexports.jsx = q;\nexports.jsxs = q;","map":{"version":3,"sources":["/home/seanedmunds/dev/home-page/node_modules/react/cjs/react-jsx-runtime.production.min.js"],"names":["require","f","g","exports","Fragment","Symbol","for","h","m","__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED","ReactCurrentOwner","n","Object","prototype","hasOwnProperty","p","key","ref","__self","__source","q","c","a","k","b","d","e","l","call","defaultProps","$$typeof","type","props","_owner","current","jsx","jsxs"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAAaA,OAAO,CAAC,eAAD,CAAP;;AAAyB,IAAIC,CAAC,GAACD,OAAO,CAAC,OAAD,CAAb;AAAA,IAAuBE,CAAC,GAAC,KAAzB;;AAA+BC,OAAO,CAACC,QAAR,GAAiB,KAAjB;;AAAuB,IAAG,eAAa,OAAOC,MAApB,IAA4BA,MAAM,CAACC,GAAtC,EAA0C;AAAC,MAAIC,CAAC,GAACF,MAAM,CAACC,GAAb;AAAiBJ,EAAAA,CAAC,GAACK,CAAC,CAAC,eAAD,CAAH;AAAqBJ,EAAAA,OAAO,CAACC,QAAR,GAAiBG,CAAC,CAAC,gBAAD,CAAlB;AAAqC;;AAAA,IAAIC,CAAC,GAACP,CAAC,CAACQ,kDAAF,CAAqDC,iBAA3D;AAAA,IAA6EC,CAAC,GAACC,MAAM,CAACC,SAAP,CAAiBC,cAAhG;AAAA,IAA+GC,CAAC,GAAC;AAACC,EAAAA,GAAG,EAAC,CAAC,CAAN;AAAQC,EAAAA,GAAG,EAAC,CAAC,CAAb;AAAeC,EAAAA,MAAM,EAAC,CAAC,CAAvB;AAAyBC,EAAAA,QAAQ,EAAC,CAAC;AAAnC,CAAjH;;AAClN,SAASC,CAAT,CAAWC,CAAX,EAAaC,CAAb,EAAeC,CAAf,EAAiB;AAAC,MAAIC,CAAJ;AAAA,MAAMC,CAAC,GAAC,EAAR;AAAA,MAAWC,CAAC,GAAC,IAAb;AAAA,MAAkBC,CAAC,GAAC,IAApB;AAAyB,OAAK,CAAL,KAASJ,CAAT,KAAaG,CAAC,GAAC,KAAGH,CAAlB;AAAqB,OAAK,CAAL,KAASD,CAAC,CAACN,GAAX,KAAiBU,CAAC,GAAC,KAAGJ,CAAC,CAACN,GAAxB;AAA6B,OAAK,CAAL,KAASM,CAAC,CAACL,GAAX,KAAiBU,CAAC,GAACL,CAAC,CAACL,GAArB;;AAA0B,OAAIO,CAAJ,IAASF,CAAT;AAAWX,IAAAA,CAAC,CAACiB,IAAF,CAAON,CAAP,EAASE,CAAT,KAAa,CAACT,CAAC,CAACD,cAAF,CAAiBU,CAAjB,CAAd,KAAoCC,CAAC,CAACD,CAAD,CAAD,GAAKF,CAAC,CAACE,CAAD,CAA1C;AAAX;;AAA0D,MAAGH,CAAC,IAAEA,CAAC,CAACQ,YAAR,EAAqB,KAAIL,CAAJ,IAASF,CAAC,GAACD,CAAC,CAACQ,YAAJ,EAAiBP,CAA1B;AAA4B,SAAK,CAAL,KAASG,CAAC,CAACD,CAAD,CAAV,KAAgBC,CAAC,CAACD,CAAD,CAAD,GAAKF,CAAC,CAACE,CAAD,CAAtB;AAA5B;AAAuD,SAAM;AAACM,IAAAA,QAAQ,EAAC5B,CAAV;AAAY6B,IAAAA,IAAI,EAACV,CAAjB;AAAmBL,IAAAA,GAAG,EAACU,CAAvB;AAAyBT,IAAAA,GAAG,EAACU,CAA7B;AAA+BK,IAAAA,KAAK,EAACP,CAArC;AAAuCQ,IAAAA,MAAM,EAACzB,CAAC,CAAC0B;AAAhD,GAAN;AAA+D;;AAAA/B,OAAO,CAACgC,GAAR,GAAYf,CAAZ;AAAcjB,OAAO,CAACiC,IAAR,GAAahB,CAAb","sourcesContent":["/** @license React v17.0.2\n * react-jsx-runtime.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';require(\"object-assign\");var f=require(\"react\"),g=60103;exports.Fragment=60107;if(\"function\"===typeof Symbol&&Symbol.for){var h=Symbol.for;g=h(\"react.element\");exports.Fragment=h(\"react.fragment\")}var m=f.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,n=Object.prototype.hasOwnProperty,p={key:!0,ref:!0,__self:!0,__source:!0};\nfunction q(c,a,k){var b,d={},e=null,l=null;void 0!==k&&(e=\"\"+k);void 0!==a.key&&(e=\"\"+a.key);void 0!==a.ref&&(l=a.ref);for(b in a)n.call(a,b)&&!p.hasOwnProperty(b)&&(d[b]=a[b]);if(c&&c.defaultProps)for(b in a=c.defaultProps,a)void 0===d[b]&&(d[b]=a[b]);return{$$typeof:g,type:c,key:e,ref:l,props:d,_owner:m.current}}exports.jsx=q;exports.jsxs=q;\n"]},"metadata":{},"sourceType":"script"}
\ No newline at end of file
diff --git a/node_modules/.cache/babel-loader/334d04fddc828596d906d2fb2d88af1c.json b/node_modules/.cache/babel-loader/334d04fddc828596d906d2fb2d88af1c.json
new file mode 100644
index 00000000..4c379731
--- /dev/null
+++ b/node_modules/.cache/babel-loader/334d04fddc828596d906d2fb2d88af1c.json
@@ -0,0 +1 @@
+{"ast":null,"code":"var _jsxFileName = \"/home/seanedmunds/dev/home-page/src/index.js\",\n _s = $RefreshSig$();\n\nimport React from 'react';\nimport { useState, useEffect } from 'react';\nimport ReactDOM from 'react-dom';\nimport './index.css';\nimport { jsxDEV as _jsxDEV } from \"react/jsx-dev-runtime\";\n\nconst setValueFromLocalStorage = property => {\n let value = localStorage.getItem(property);\n setValue(property, value);\n};\n\nconst setValue = (property, value) => {\n if (value) {\n document.documentElement.style.setProperty(`--${property}`, value);\n const input = document.querySelector(`#${property}`);\n\n if (input) {\n value = value.replace('px', '');\n input.value = value;\n }\n }\n};\n\nfunction Homepage() {\n setTheme();\n return /*#__PURE__*/_jsxDEV(\"main\", {\n id: \"container\",\n className: \"fade\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Search, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 28,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 27,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Header, {\n date: date(),\n greet: greet()\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 31,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 30,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Applications, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 37,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 36,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Bookmarks, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 40,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 39,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(ModalMenu, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 43,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 42,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(ModalInit, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 46,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 45,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 26,\n columnNumber: 5\n }, this);\n}\n\n_c = Homepage;\n\nfunction Search() {\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"search\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"abackground\",\n children: [/*#__PURE__*/_jsxDEV(\"input\", {\n name: \"keywords\",\n type: \"text\",\n className: \"keyword\",\n id: \"keywords\",\n size: \"50\",\n spellCheck: \"true\",\n placeholder: \"\"\n /*onFocus={this.placeholder = \"\"} onBlur={this.placeholder = ''}*/\n ,\n autoComplete: \"off\",\n autoFocus: true,\n onKeyUp: handleKeyPress\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 56,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n id: \"searchType\",\n className: \"Input-label\",\n children: \"Google search\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 57,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 55,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 54,\n columnNumber: 5\n }, this);\n}\n\n_c2 = Search;\n\nfunction Header(props) {\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"header\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n id: \"greeting_block\",\n children: /*#__PURE__*/_jsxDEV(\"h1\", {\n id: \"header_greet\",\n children: props.greet\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 67,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 66,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"date_block\",\n children: [/*#__PURE__*/_jsxDEV(\"h2\", {\n id: \"header_date\",\n children: props.date\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 70,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(Clock, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 71,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 69,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 65,\n columnNumber: 5\n }, this);\n}\n\n_c3 = Header;\n\nfunction Applications() {\n let appList = getApps();\n var items = [];\n\n for (var i = 0; i < appList.apps.length; i++) {\n var safe = appList.apps[i].NSFW;\n var NSFWEnabled = localStorage.getItem(\"contenttype\");\n\n if (safe === \"SAFE\") {\n items.push( /*#__PURE__*/_jsxDEV(App, {\n name: appList.apps[i].name,\n url: appList.apps[i].url,\n icon: appList.apps[i].icon,\n NSFW: appList.apps[i].NSFW\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 85,\n columnNumber: 9\n }, this));\n } else if (safe === \"NSFW\" && NSFWEnabled) {\n items.push( /*#__PURE__*/_jsxDEV(App, {\n name: appList.apps[i].name,\n url: appList.apps[i].url,\n icon: appList.apps[i].icon,\n NSFW: appList.apps[i].NSFW\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 95,\n columnNumber: 9\n }, this));\n } else {}\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"apps\",\n children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n children: \"Applications\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 110,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"apps_loop\",\n children: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 111,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 109,\n columnNumber: 5\n }, this);\n}\n\n_c4 = Applications;\n\nfunction App(props) {\n let classNameType = props.NSFW + \"-content\";\n let hrefUrl = \"https://\" + props.url;\n let iconName = \"mdi-\" + props.icon;\n return /*#__PURE__*/_jsxDEV(\"div\", {\n className: classNameType,\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: hrefUrl,\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_item\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_icon\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify icon\",\n \"data-icon\": iconName\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 128,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 127,\n columnNumber: 13\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_text\",\n children: [/*#__PURE__*/_jsxDEV(\"span\", {\n id: \"app-name\",\n children: props.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 131,\n columnNumber: 15\n }, this), /*#__PURE__*/_jsxDEV(\"span\", {\n id: \"app-address\",\n children: props.url\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 132,\n columnNumber: 15\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 130,\n columnNumber: 13\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 126,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 125,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 124,\n columnNumber: 7\n }, this);\n}\n\n_c5 = App;\n\nfunction Bookmarks() {\n let bookmarkList = getLinks();\n var items = [];\n\n for (var i = 0; i < bookmarkList.bookmarks.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(LinkGroups, {\n category: bookmarkList.bookmarks[i].category,\n links: bookmarkList.bookmarks[i].links\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 145,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"links\",\n children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n children: \"Bookmarks\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 154,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"links_loop\",\n children: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 155,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 153,\n columnNumber: 5\n }, this);\n}\n\n_c6 = Bookmarks;\n\nfunction LinkGroups(props) {\n var items = [];\n\n for (var i = 0; i < props.links.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(LinkItem, {\n link: props.links[i]\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 166,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"links_item\",\n children: [/*#__PURE__*/_jsxDEV(\"h4\", {\n children: props.category\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 174,\n columnNumber: 7\n }, this), items]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 173,\n columnNumber: 5\n }, this);\n}\n\n_c7 = LinkGroups;\n\nfunction LinkItem(props) {\n return /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: props.link.url,\n className: \"theme_color-border theme_text-select\",\n children: props.link.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 183,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 182,\n columnNumber: 5\n }, this);\n}\n\n_c8 = LinkItem;\n\nfunction ModalMenu() {\n var providers = getProviders();\n var items = [];\n var isChecked = localStorage.getItem(\"contenttype\");\n\n for (var i = 0; i < providers.providers.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(Provider, {\n provider: providers.providers[i]\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 194,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"modal\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n children: [/*#__PURE__*/_jsxDEV(\"header\", {\n id: \"modal-header\",\n children: [/*#__PURE__*/_jsxDEV(\"h1\", {\n children: \"Options\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 204,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n href: \"#\",\n title: \"Close\",\n className: \"modal-close\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-close\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 206,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 205,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 203,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"h2\", {\n children: \"Color themes\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 210,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"modal-theme\",\n children: [/*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"blackboard\",\n className: \"theme-button theme-blackboard\",\n onClick: updateTheme,\n children: \"Blackboard\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 213,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"gazette\",\n className: \"theme-button theme-gazette\",\n onClick: updateTheme,\n children: \"Gazette\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 214,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"espresso\",\n className: \"theme-button theme-espresso\",\n onClick: updateTheme,\n children: \"Espresso\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 215,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cab\",\n className: \"theme-button theme-cab\",\n onClick: updateTheme,\n children: \"Cab\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 216,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cloud\",\n className: \"theme-button theme-cloud\",\n onClick: updateTheme,\n children: \"Cloud\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 217,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"lime\",\n className: \"theme-button theme-lime\",\n onClick: updateTheme,\n children: \"Lime\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 218,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"passion\",\n className: \"theme-button theme-passion\",\n onClick: updateTheme,\n children: \"Passion\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 219,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"blues\",\n className: \"theme-button theme-blues\",\n onClick: updateTheme,\n children: \"Blues\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 220,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"chalk\",\n className: \"theme-button theme-chalk\",\n onClick: updateTheme,\n children: \"Chalk\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 221,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"tron\",\n className: \"theme-button theme-tron\",\n onClick: updateTheme,\n children: \"Tron\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 222,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"paper\",\n className: \"theme-button theme-paper\",\n onClick: updateTheme,\n children: \"Paper\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 223,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cyberpunk\",\n className: \"theme-button theme-cyberpunk\",\n onClick: updateTheme,\n children: \"Cyberpunk\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 224,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"quadra\",\n className: \"theme-button theme-panam\",\n onClick: updateTheme,\n children: \"Quadra\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 225,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"panam\",\n className: \"theme-button theme-panam\",\n onClick: updateTheme,\n children: \"Panam\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 226,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"touch\",\n className: \"theme-button theme-touch\",\n onClick: updateTheme,\n children: \"Touch\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 227,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"peek\",\n className: \"theme-button theme-peek\",\n onClick: updateTheme,\n children: \"Peek\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 228,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 212,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"h2\", {\n children: \"Search options\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 232,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"providers\",\n children: /*#__PURE__*/_jsxDEV(\"table\", {\n children: /*#__PURE__*/_jsxDEV(\"tbody\", {\n children: [/*#__PURE__*/_jsxDEV(\"tr\", {\n children: [/*#__PURE__*/_jsxDEV(\"th\", {\n children: \"Website\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 237,\n columnNumber: 19\n }, this), /*#__PURE__*/_jsxDEV(\"th\", {\n children: \"Prefix\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 238,\n columnNumber: 19\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 236,\n columnNumber: 17\n }, this), items]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 235,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 234,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 233,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"header\", {\n id: \"modal-footer\",\n children: [/*#__PURE__*/_jsxDEV(\"a\", {\n href: \"https://github.com/jeroenpardon/\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-github-box\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 246,\n columnNumber: 54\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 246,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n href: \"https://materialdesignicons.com/\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-material-design\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 247,\n columnNumber: 54\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 247,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(HideButton, {\n checked: isChecked\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 248,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 245,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 202,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 201,\n columnNumber: 5\n }, this);\n}\n\n_c9 = ModalMenu;\n\nfunction HideButton(props) {\n console.log(props.checked);\n return /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"sneaky\",\n children: [/*#__PURE__*/_jsxDEV(\"input\", {\n type: \"checkbox\",\n id: \"contenttype\",\n onChange: udpateDisplayedItems,\n defaultChecked: props.checked\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 260,\n columnNumber: 29\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n for: \"contenttype\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-domino-mask\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 261,\n columnNumber: 30\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 261,\n columnNumber: 5\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 260,\n columnNumber: 5\n }, this);\n}\n\n_c10 = HideButton;\n\nfunction Provider(props) {\n return /*#__PURE__*/_jsxDEV(\"tr\", {\n children: [/*#__PURE__*/_jsxDEV(\"td\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: props.provider.url,\n children: props.provider.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 268,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 268,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"td\", {\n children: props.provider.prefix\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 269,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 267,\n columnNumber: 5\n }, this);\n}\n\n_c11 = Provider;\n\nfunction ModalInit() {\n //setDisplayedItems();\n return /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"modal_init\",\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n className: \"btn\",\n href: \"#modal\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify icon\",\n \"data-icon\": \"mdi-xbox-controller-menu\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 279,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 278,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 277,\n columnNumber: 5\n }, this);\n}\n\n_c12 = ModalInit;\nReactDOM.render( /*#__PURE__*/_jsxDEV(Homepage, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 286,\n columnNumber: 3\n}, this), document.getElementById('root')); //Functions below this line are for calculating data for\n//other functions\n\nfunction date() {\n let currentDate = new Date();\n let dateOptions = {\n weekday: \"long\",\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\"\n };\n let date = currentDate.toLocaleDateString(\"en-GB\", dateOptions);\n return date;\n}\n\nfunction fixDigits(k) {\n if (k < 10) {\n return \"0\" + k;\n } else {\n return k;\n }\n}\n\nfunction greet() {\n let currentTime = new Date();\n let greet = Math.floor(currentTime.getHours() / 6);\n let easterEggChance = Math.floor(Math.random() * 100);\n\n let greetings = require('./messages.json');\n\n let timeBased = [];\n let easterEggs = [];\n\n for (var i = 0; i < greetings.messages.length; i++) {\n if (greetings.messages[i].easteregg === \"FALSE\") {\n timeBased = timeBased.concat(greetings.messages[i]);\n } else {\n easterEggs = easterEggs.concat(greetings.messages[i]);\n }\n }\n\n if (easterEggChance > 10) {\n return timeBased[greet].message;\n } else {\n let easterEggText = Math.floor(Math.random() * easterEggs.length);\n return easterEggs[easterEggText].message;\n }\n}\n\nfunction Clock() {\n _s();\n\n const [date, setDate] = useState(new Date());\n\n function refreshClock() {\n setDate(new Date());\n }\n\n useEffect(() => {\n const timerId = setInterval(refreshClock, 1000);\n return function cleanup() {\n clearInterval(timerId);\n };\n }, []);\n var hour = date.getHours();\n var minutes = date.getMinutes(); //var seconds = date.getSeconds();\n\n var midday = \"AM\";\n midday = hour >= 12 ? \"PM\" : \"AM\";\n hour = hour === 0 ? 12 : hour > 12 ? hour - 12 : hour;\n minutes = fixDigits(minutes); //seconds = fixDigits(seconds);\n\n let time = hour + \":\" + minutes + \" \" + midday;\n return /*#__PURE__*/_jsxDEV(\"h2\", {\n id: \"clock\",\n children: time\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 357,\n columnNumber: 5\n }, this);\n}\n\n_s(Clock, \"Gqi45WOZhU2c0BLYX0HoJeiR0fk=\");\n\n_c13 = Clock;\n\nfunction getApps() {\n let applications = require('./apps.json');\n\n return applications;\n}\n\nfunction getLinks() {\n let links = require('./links.json');\n\n return links;\n}\n\nfunction getProviders() {\n let providers = require('./providers.json');\n\n return providers;\n}\n\nfunction getThemes() {\n let themes = require('./themes.json');\n\n return themes;\n}\n\nfunction updateTheme(e) {\n var themes = getThemes();\n var themeName = e.target.innerHTML.toLowerCase();\n var index = themes.themes.findIndex(function (item, i) {\n return item.name === themeName;\n });\n localStorage.setItem(\"image-background\", themes.themes[index].imagebackground);\n localStorage.setItem(\"color-background\", themes.themes[index].colorbackground);\n localStorage.setItem(\"color-search-background\", themes.themes[index].colorserachbackground);\n localStorage.setItem(\"color-text-pri\", themes.themes[index].colortextpri);\n localStorage.setItem(\"color-text-acc\", themes.themes[index].colortextacc);\n localStorage.setItem(\"color-border\", themes.themes[index].colorborder); //document.documentElement.style.setProperty(prop, `var(--${themeName}${prop.substring(10)})`);\n\n setTheme();\n}\n\nfunction setTheme() {\n setValueFromLocalStorage('image-background');\n setValueFromLocalStorage('color-background');\n setValueFromLocalStorage('color-search-background');\n setValueFromLocalStorage('color-text-pri');\n setValueFromLocalStorage('color-text-acc');\n setValueFromLocalStorage('color-border');\n setValueFromLocalStorage('content-display');\n}\n\nfunction handleKeyPress(e) {\n var sindex = 0;\n var cycle = false;\n var key = e.keyCode || e.which;\n var text = e.target.value.replaceAll(\"+\", \"%2B\");\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n\n if (key == 13) {\n // Search functions\n search(text);\n }\n\n if (key == 9) {\n // Tab Completion Functions\n e.preventDefault();\n e.stopPropagation();\n\n if (text[0] === ';') {\n switch (option) {\n case 't':\n var streamers = ['admiralbahroo', 'moonmoon_ow', 'witwix'];\n\n if (!subtext || cycle) {\n cycle = true;\n if (sindex > streamers.length - 1) sindex = 0;\n document.getElementById(\"keywords\").value = ';t ' + streamers[sindex++];\n return;\n }\n\n for (var streamer of streamers) {\n if (subtext === streamer.substr(0, subtext.length)) {\n document.getElementById(\"keywords\").value = ';t ' + streamer;\n return;\n }\n }\n\n break;\n }\n }\n }\n\n if (key == 32) {\n //Space to go to search\n updateLabel(text);\n }\n\n sindex = 0;\n cycle = false;\n updateLabel(text);\n}\n\nfunction updateLabel(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n\n if (text[0] === '/') {\n // if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n document.getElementById(\"searchType\").innerHTML = \"Allmusic search\";\n break;\n\n case \"d\":\n document.getElementById(\"searchType\").innerHTML = \"Duck Duck Go search\";\n break;\n\n case \"di\":\n document.getElementById(\"searchType\").innerHTML = \"Discogs search\";\n break;\n\n case \"i\":\n document.getElementById(\"searchType\").innerHTML = \"IMDB search\";\n break;\n\n case \"m\":\n document.getElementById(\"searchType\").innerHTML = \"TheMovieDB search\";\n break;\n\n case \"r\":\n document.getElementById(\"searchType\").innerHTML = \"Reddit search\";\n break;\n\n case \"q\":\n document.getElementById(\"searchType\").innerHTML = \"Qwant search\";\n break;\n\n case \"so\":\n document.getElementById(\"searchType\").innerHTML = \"Soundcloud search\";\n break;\n\n case \"s\":\n document.getElementById(\"searchType\").innerHTML = \"Spotify search\";\n break;\n\n case \"tv\":\n document.getElementById(\"searchType\").innerHTML = \"TheTVDB search\";\n break;\n\n case \"t\":\n document.getElementById(\"searchType\").innerHTML = \"Trakt search\";\n break;\n\n case \"y\":\n document.getElementById(\"searchType\").innerHTML = \"YouTube search\";\n break;\n\n case \"w\":\n document.getElementById(\"searchType\").innerHTML = \"Wikipedia search\";\n break;\n\n case \"p\":\n document.getElementById(\"searchType\").innerHTML = \"Plex search\";\n break;\n\n case \"rt\":\n document.getElementById(\"searchType\").innerHTML = \"Rotten Tomatoes search\";\n break;\n\n default:\n document.getElementById(\"searchType\").innerHTML = \"Invalid search\";\n break;\n }\n } else {\n document.getElementById(\"searchType\").innerHTML = \"Google search\";\n }\n}\n\nfunction search(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n\n if (text[0] === '/') {\n if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n window.location = \"https://www.allmusic.com/search/all/\" + subtext;\n break;\n\n case \"d\":\n window.location = \"https://duckduckgo.com/?q=\" + subtext;\n break;\n\n case \"di\":\n window.location = \"https://www.discogs.com/search/?q=\" + subtext;\n break;\n\n case \"i\":\n window.location = \"https://www.imdb.com/find?q=\" + subtext;\n break;\n\n case \"m\":\n window.location = \"https://www.themoviedb.org/search?query=\" + subtext;\n break;\n\n case \"r\":\n window.location = \"https://www.reddit.com/search?q=\" + subtext;\n break;\n\n case \"q\":\n window.location = \"https://www.qwant.com/?q=\" + subtext;\n break;\n\n case \"so\":\n window.location = \"https://soundcloud.com/search?q=\" + subtext;\n break;\n\n case \"s\":\n window.location = \"https://open.spotify.com/search/results/\" + subtext;\n break;\n\n case \"t\":\n window.location = \"https://trakt.tv/search?query=\" + subtext;\n break;\n\n case \"tv\":\n window.location = \"https://www.thetvdb.com/search?query=\" + subtext;\n break;\n\n case \"y\":\n window.location = \"https://www.youtube.com/results?search_query=\" + subtext;\n break;\n\n case \"w\":\n window.location = \"https://en.wikipedia.org/w/index.php?search=\" + subtext;\n break;\n\n case \"p\":\n window.location = \"https://app.plex.tv/desktop/#!/search?query=\" + subtext;\n break;\n\n case \"rt\":\n window.location = \"https://www.rottentomatoes.com/search?search=\" + subtext;\n break;\n }\n } else {\n var option = text.substr(1);\n\n switch (option) {\n case \"d\":\n window.location = \"https://www.duckduckgo.com\";\n break;\n\n case \"y\":\n window.location = \"https://www.youtube.com\";\n break;\n\n case \"r\":\n window.location = \"https://reddit.com\";\n break;\n\n case \"s\":\n window.location = \"https://open.spotify.com\";\n break;\n }\n }\n } else if (validURL(text)) {\n if (containsProtocol(text)) window.location = text;else window.location = \"https://\" + text;\n } else {\n window.location = \"https://www.google.com/search?q=\" + text;\n }\n}\n\nfunction validURL(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/)?' + // protocol\n '((([a-z\\\\d]([a-z\\\\d-]*[a-z\\\\d])*)\\\\.)+[a-z]{2,}|' + // domain name\n '((\\\\d{1,3}\\\\.){3}\\\\d{1,3}))' + // OR ip (v4) address\n '(\\\\:\\\\d+)?(\\\\/[-a-z\\\\d%_.~+]*)*' + // port and path\n '(\\\\?[;&a-z\\\\d%_.~+=-]*)?' + // query string\n '(\\\\#[-a-z\\\\d_]*)?$', 'i'); // fragment locator\n\n return !!pattern.test(str);\n}\n\nfunction containsProtocol(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/){1}.*', 'i');\n return !!pattern.test(str);\n}\n\nString.prototype.replaceAll = function (search, replacement) {\n var target = this;\n return target.split(search).join(replacement);\n};\n\nfunction udpateDisplayedItems(e) {\n localStorage.setItem('contenttype', e.target.checked);\n\n if (e.target.checked) {\n localStorage.setItem('content-display', 'none');\n } else {\n localStorage.setItem('content-display', 'block');\n } //setDisplayedItems();\n\n}\n\nfunction setDisplayedItems() {\n setValueFromLocalStorage('contenttype');\n setValueFromLocalStorage('content-display');\n}\n\nvar _c, _c2, _c3, _c4, _c5, _c6, _c7, _c8, _c9, _c10, _c11, _c12, _c13;\n\n$RefreshReg$(_c, \"Homepage\");\n$RefreshReg$(_c2, \"Search\");\n$RefreshReg$(_c3, \"Header\");\n$RefreshReg$(_c4, \"Applications\");\n$RefreshReg$(_c5, \"App\");\n$RefreshReg$(_c6, \"Bookmarks\");\n$RefreshReg$(_c7, \"LinkGroups\");\n$RefreshReg$(_c8, \"LinkItem\");\n$RefreshReg$(_c9, \"ModalMenu\");\n$RefreshReg$(_c10, \"HideButton\");\n$RefreshReg$(_c11, \"Provider\");\n$RefreshReg$(_c12, \"ModalInit\");\n$RefreshReg$(_c13, \"Clock\");","map":{"version":3,"sources":["/home/seanedmunds/dev/home-page/src/index.js"],"names":["React","useState","useEffect","ReactDOM","setValueFromLocalStorage","property","value","localStorage","getItem","setValue","document","documentElement","style","setProperty","input","querySelector","replace","Homepage","setTheme","date","greet","Search","handleKeyPress","Header","props","Applications","appList","getApps","items","i","apps","length","safe","NSFW","NSFWEnabled","push","name","url","icon","App","classNameType","hrefUrl","iconName","Bookmarks","bookmarkList","getLinks","bookmarks","category","links","LinkGroups","LinkItem","link","ModalMenu","providers","getProviders","isChecked","updateTheme","HideButton","console","log","checked","udpateDisplayedItems","Provider","provider","prefix","ModalInit","render","getElementById","currentDate","Date","dateOptions","weekday","year","month","day","toLocaleDateString","fixDigits","k","currentTime","Math","floor","getHours","easterEggChance","random","greetings","require","timeBased","easterEggs","messages","easteregg","concat","message","easterEggText","Clock","setDate","refreshClock","timerId","setInterval","cleanup","clearInterval","hour","minutes","getMinutes","midday","time","applications","getThemes","themes","e","themeName","target","innerHTML","toLowerCase","index","findIndex","item","setItem","imagebackground","colorbackground","colorserachbackground","colortextpri","colortextacc","colorborder","sindex","cycle","key","keyCode","which","text","replaceAll","option","substr","indexOf","subtext","search","preventDefault","stopPropagation","streamers","streamer","updateLabel","window","location","validURL","containsProtocol","str","pattern","RegExp","test","String","prototype","replacement","split","join","setDisplayedItems"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { useState, useEffect } from 'react';\nimport ReactDOM from 'react-dom';\nimport './index.css';\n\nconst setValueFromLocalStorage = property => {\n let value = localStorage.getItem(property);\n setValue(property, value);\n};\nconst setValue = (property, value) => {\n if (value) {\n document.documentElement.style.setProperty(`--${property}`, value);\n\n const input = document.querySelector(`#${property}`);\n if (input) {\n value = value.replace('px', '');\n input.value = value;\n }\n }\n};\n\nfunction Homepage() {\n setTheme();\n \n return (\n \n \n \n
\n \n \n
\n \n \n \n
\n \n \n
\n \n \n
\n \n );\n}\n\nfunction Search() {\n return (\n \n )\n}\n\nfunction Header(props) {\n return (\n \n );\n}\n\nfunction Applications() {\n let appList = getApps();\n var items = [];\n for (var i = 0; i < appList.apps.length; i++) {\n var safe = appList.apps[i].NSFW;\n var NSFWEnabled = localStorage.getItem(\"contenttype\");\n if (safe === \"SAFE\") {\n items.push(\n \n );\n } else if (safe === \"NSFW\" && NSFWEnabled) {\n items.push(\n \n );\n } else {\n \n }\n \n }\n return (\n \n Applications
\n \n {items}\n
\n \n );\n}\n\nfunction App(props) {\n \n let classNameType = props.NSFW + \"-content\";\n let hrefUrl = \"https://\" + props.url;\n let iconName = \"mdi-\" + props.icon;\n return (\n \n );\n}\n\nfunction Bookmarks() {\n let bookmarkList = getLinks();\n var items = [];\n for (var i = 0; i < bookmarkList.bookmarks.length; i++) {\n items.push(\n \n );\n }\n return (\n \n Bookmarks
\n \n {items}\n
\n \n );\n}\n\nfunction LinkGroups(props) {\n var items = [];\n for (var i = 0; i < props.links.length; i++) {\n items.push(\n \n );\n }\n return (\n \n
{props.category}
\n {items}\n \n );\n}\n\nfunction LinkItem(props) {\n return (\n \n );\n}\n\nfunction ModalMenu() {\n var providers = getProviders();\n var items = [];\n var isChecked = localStorage.getItem(\"contenttype\");\n for (var i = 0; i < providers.providers.length; i++) {\n items.push(\n \n );\n }\n return (\n \n \n \n\n
Color themes
\n\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n\n\n
Search options
\n
\n \n \n \n | Website | \n Prefix | \n
\n {items}\n \n
\n \n\n \n
\n \n );\n}\n\nfunction HideButton(props) {\n console.log(props.checked);\n return (\n \n
\n );\n}\n\nfunction Provider(props) {\n return (\n \n | {props.provider.name} | \n {props.provider.prefix} | \n
\n );\n}\n\nfunction ModalInit() {\n //setDisplayedItems();\n return (\n \n );\n}\n\nReactDOM.render(\n ,\n document.getElementById('root')\n);\n\n//Functions below this line are for calculating data for\n//other functions\n\nfunction date() {\n let currentDate = new Date();\n let dateOptions = {\n weekday: \"long\",\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\"\n };\n let date = currentDate.toLocaleDateString(\"en-GB\", dateOptions);\n return date;\n}\nfunction fixDigits(k) {\n if (k < 10) {\n return \"0\" + k;\n }\n else {\n return k;\n }\n}\nfunction greet() {\n let currentTime = new Date();\n let greet = Math.floor(currentTime.getHours() / 6);\n let easterEggChance = Math.floor(Math.random() * 100);\n let greetings = require('./messages.json');\n let timeBased = [];\n let easterEggs = [];\n for (var i = 0; i < greetings.messages.length; i++) {\n if (greetings.messages[i].easteregg === \"FALSE\") {\n timeBased = timeBased.concat(greetings.messages[i]);\n } else {\n easterEggs = easterEggs.concat(greetings.messages[i]);\n }\n }\n if (easterEggChance > 10) {\n return timeBased[greet].message;\n } else {\n let easterEggText = Math.floor(Math.random() * easterEggs.length);\n return easterEggs[easterEggText].message;\n }\n}\nfunction Clock() {\n const [date, setDate] = useState(new Date());\n\n function refreshClock() {\n setDate(new Date());\n }\n useEffect(() => {\n const timerId = setInterval(refreshClock, 1000);\n return function cleanup() {\n clearInterval(timerId);\n };\n }, []);\n\n var hour = date.getHours();\n var minutes = date.getMinutes();\n //var seconds = date.getSeconds();\n var midday = \"AM\";\n midday = (hour >= 12) ? \"PM\" : \"AM\";\n hour = (hour === 0) ? 12 : ((hour > 12) ? (hour - 12) : hour);\n minutes = fixDigits(minutes);\n //seconds = fixDigits(seconds);\n let time = hour + \":\" + minutes + \" \" + midday;\n\n return (\n {time}
\n\n );\n}\nfunction getApps() {\n let applications = require('./apps.json');\n return applications;\n}\nfunction getLinks() {\n let links = require('./links.json');\n return links;\n}\nfunction getProviders() {\n let providers = require('./providers.json');\n return providers;\n}\nfunction getThemes() {\n let themes = require('./themes.json');\n return themes;\n}\nfunction updateTheme(e) {\n var themes = getThemes();\n var themeName = e.target.innerHTML.toLowerCase();\n var index = themes.themes.findIndex(function(item, i){\n return item.name === themeName;\n });\n localStorage.setItem(\"image-background\", themes.themes[index].imagebackground);\n localStorage.setItem(\"color-background\", themes.themes[index].colorbackground);\n localStorage.setItem(\"color-search-background\", themes.themes[index].colorserachbackground);\n localStorage.setItem(\"color-text-pri\",themes.themes[index].colortextpri);\n localStorage.setItem(\"color-text-acc\", themes.themes[index].colortextacc);\n localStorage.setItem(\"color-border\", themes.themes[index].colorborder);\n \n //document.documentElement.style.setProperty(prop, `var(--${themeName}${prop.substring(10)})`);\n setTheme();\n}\nfunction setTheme() {\n setValueFromLocalStorage('image-background');\n setValueFromLocalStorage('color-background');\n setValueFromLocalStorage('color-search-background');\n setValueFromLocalStorage('color-text-pri');\n setValueFromLocalStorage('color-text-acc');\n setValueFromLocalStorage('color-border');\n setValueFromLocalStorage('content-display');\n}\nfunction handleKeyPress(e) {\n var sindex = 0;\n var cycle = false;\n var key = e.keyCode || e.which;\n var text = e.target.value.replaceAll(\"+\", \"%2B\");\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n if (key == 13) { // Search functions\n search(text);\n }\n if (key == 9) { // Tab Completion Functions\n e.preventDefault();\n e.stopPropagation();\n if (text[0] === ';') {\n switch (option) {\n case 't':\n var streamers = ['admiralbahroo', 'moonmoon_ow', 'witwix'];\n if (!subtext || cycle) {\n cycle = true;\n if (sindex > streamers.length - 1) sindex = 0;\n document.getElementById(\"keywords\").value = ';t ' + streamers[sindex++];\n return;\n }\n for (var streamer of streamers) {\n if (subtext === streamer.substr(0, subtext.length)) {\n document.getElementById(\"keywords\").value = ';t ' + streamer;\n return;\n }\n }\n break;\n }\n }\n }\n if(key == 32){ //Space to go to search\nupdateLabel(text);\n }\n sindex = 0;\n cycle = false;\n updateLabel(text);\n}\nfunction updateLabel(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n if (text[0] === '/') {\n// if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n document.getElementById(\"searchType\").innerHTML = \"Allmusic search\";\n break;\n case \"d\":\n document.getElementById(\"searchType\").innerHTML = \"Duck Duck Go search\";\n break;\n case \"di\":\n document.getElementById(\"searchType\").innerHTML = \"Discogs search\";\n break;\n case \"i\":\n document.getElementById(\"searchType\").innerHTML = \"IMDB search\";\n break;\n case \"m\":\n document.getElementById(\"searchType\").innerHTML = \"TheMovieDB search\";\n break;\n case \"r\":\n document.getElementById(\"searchType\").innerHTML = \"Reddit search\";\n break;\n case \"q\":\n document.getElementById(\"searchType\").innerHTML = \"Qwant search\";\n break;\n case \"so\":\n document.getElementById(\"searchType\").innerHTML = \"Soundcloud search\";\n break;\n case \"s\":\n document.getElementById(\"searchType\").innerHTML = \"Spotify search\";\n break;\n case \"tv\":\n document.getElementById(\"searchType\").innerHTML = \"TheTVDB search\";\n break;\n case \"t\":\n document.getElementById(\"searchType\").innerHTML = \"Trakt search\";\n break;\n case \"y\":\n document.getElementById(\"searchType\").innerHTML = \"YouTube search\";\n break;\n case \"w\":\n document.getElementById(\"searchType\").innerHTML = \"Wikipedia search\";\n break;\n case \"p\":\n document.getElementById(\"searchType\").innerHTML = \"Plex search\";\n break;\n case \"rt\":\n document.getElementById(\"searchType\").innerHTML = \"Rotten Tomatoes search\";\n break;\n default:\n document.getElementById(\"searchType\").innerHTML = \"Invalid search\";\n break;\n }\n}else {\n document.getElementById(\"searchType\").innerHTML = \"Google search\";\n }\n}\nfunction search(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n if (text[0] === '/') {\n if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n window.location = \"https://www.allmusic.com/search/all/\" + subtext;\n break;\n case \"d\":\n window.location = \"https://duckduckgo.com/?q=\" + subtext;\n break;\n case \"di\":\n window.location = \"https://www.discogs.com/search/?q=\" + subtext;\n break;\n case \"i\":\n window.location = \"https://www.imdb.com/find?q=\" + subtext;\n break;\n case \"m\":\n window.location = \"https://www.themoviedb.org/search?query=\" + subtext;\n break;\n case \"r\":\n window.location = \"https://www.reddit.com/search?q=\" + subtext;\n break;\n case \"q\":\n window.location = \"https://www.qwant.com/?q=\" + subtext;\n break;\n case \"so\":\n window.location = \"https://soundcloud.com/search?q=\" + subtext;\n break;\n case \"s\":\n window.location = \"https://open.spotify.com/search/results/\" + subtext;\n break;\n case \"t\":\n window.location = \"https://trakt.tv/search?query=\" + subtext;\n break;\n case \"tv\":\n window.location = \"https://www.thetvdb.com/search?query=\" + subtext;\n break;\n case \"y\":\n window.location = \"https://www.youtube.com/results?search_query=\" + subtext;\n break;\n case \"w\":\n window.location = \"https://en.wikipedia.org/w/index.php?search=\" + subtext;\n break;\n case \"p\":\n window.location = \"https://app.plex.tv/desktop/#!/search?query=\" + subtext;\n break;\n case \"rt\":\n window.location = \"https://www.rottentomatoes.com/search?search=\" + subtext;\n break;\n }\n } else {\n var option = text.substr(1);\n switch (option) {\n case \"d\":\n window.location = \"https://www.duckduckgo.com\";\n break;\n case \"y\":\n window.location = \"https://www.youtube.com\";\n break;\n case \"r\":\n window.location = \"https://reddit.com\";\n break;\n case \"s\":\n window.location = \"https://open.spotify.com\";\n break;\n }\n }\n } else if (validURL(text)) {\n if (containsProtocol(text))\n window.location = text;\n else\n window.location = \"https://\" + text;\n } else {\n window.location = \"https://www.google.com/search?q=\" + text;\n }\n}\nfunction validURL(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/)?' + // protocol\n '((([a-z\\\\d]([a-z\\\\d-]*[a-z\\\\d])*)\\\\.)+[a-z]{2,}|' + // domain name\n '((\\\\d{1,3}\\\\.){3}\\\\d{1,3}))' + // OR ip (v4) address\n '(\\\\:\\\\d+)?(\\\\/[-a-z\\\\d%_.~+]*)*' + // port and path\n '(\\\\?[;&a-z\\\\d%_.~+=-]*)?' + // query string\n '(\\\\#[-a-z\\\\d_]*)?$', 'i'); // fragment locator\n return !!pattern.test(str);\n}\nfunction containsProtocol(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/){1}.*', 'i');\n return !!pattern.test(str);\n}\nString.prototype.replaceAll = function(search, replacement) {\n var target = this;\n return target.split(search).join(replacement);\n};\nfunction udpateDisplayedItems(e) {\n localStorage.setItem('contenttype', e.target.checked);\n if (e.target.checked) {\n localStorage.setItem('content-display', 'none');\n } else {\n localStorage.setItem('content-display', 'block');\n }\n //setDisplayedItems();\n}\nfunction setDisplayedItems() {\n setValueFromLocalStorage('contenttype');\n setValueFromLocalStorage('content-display');\n}"]},"metadata":{},"sourceType":"module"}
\ No newline at end of file
diff --git a/node_modules/.cache/babel-loader/34e7ed58ca1fbf431928c0019124182d.json b/node_modules/.cache/babel-loader/34e7ed58ca1fbf431928c0019124182d.json
new file mode 100644
index 00000000..3cc282ed
--- /dev/null
+++ b/node_modules/.cache/babel-loader/34e7ed58ca1fbf431928c0019124182d.json
@@ -0,0 +1 @@
+{"ast":null,"code":"var _jsxFileName = \"/home/seanedmunds/dev/home-page/src/index.js\",\n _s = $RefreshSig$();\n\nimport React from 'react';\nimport { useState, useEffect } from 'react';\nimport ReactDOM from 'react-dom'; //import { unstable_createPortal } from 'react-dom';\n\nimport './index.css';\nimport { jsxDEV as _jsxDEV } from \"react/jsx-dev-runtime\";\n\nfunction Homepage() {\n return /*#__PURE__*/_jsxDEV(\"main\", {\n id: \"container\",\n className: \"fade\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Search, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 11,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 10,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Header, {\n date: date(),\n greet: greet()\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 14,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 13,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Applications, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 20,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 19,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Bookmarks, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 23,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 22,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(ModalMenu, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 26,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 25,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(ModalInit, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 29,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 28,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 9,\n columnNumber: 5\n }, this);\n}\n\n_c = Homepage;\n\nfunction Search() {\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"search\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"abackground\",\n children: [/*#__PURE__*/_jsxDEV(\"input\", {\n name: \"keywords\",\n type: \"text\",\n className: \"keyword\",\n id: \"keywords\",\n size: \"50\",\n spellCheck: \"true\",\n placeholder: \"\"\n /*onFocus={this.placeholder = \"\"} onBlur={this.placeholder = ''}*/\n ,\n autoComplete: \"off\",\n autoFocus: true,\n onKeyUp: handleKeyPress\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 39,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n id: \"searchType\",\n className: \"Input-label\",\n children: \"Google search\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 40,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 38,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 37,\n columnNumber: 5\n }, this);\n}\n\n_c2 = Search;\n\nfunction Header(props) {\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"header\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n id: \"greeting_block\",\n children: /*#__PURE__*/_jsxDEV(\"h1\", {\n id: \"header_greet\",\n children: props.greet\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 50,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 49,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"date_block\",\n children: [/*#__PURE__*/_jsxDEV(\"h2\", {\n id: \"header_date\",\n children: props.date\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 53,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(Clock, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 54,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 52,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 48,\n columnNumber: 5\n }, this);\n}\n\n_c3 = Header;\n\nfunction Applications() {\n let appList = getApps();\n var items = [];\n\n for (var i = 0; i < appList.apps.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(App, {\n name: appList.apps[i].name,\n url: appList.apps[i].url,\n icon: appList.apps[i].icon,\n NSFW: appList.apps[i].NSFW\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 65,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"apps\",\n children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n children: \"Applications\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 76,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"apps_loop\",\n children: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 77,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 75,\n columnNumber: 5\n }, this);\n}\n\n_c4 = Applications;\n\nfunction App(props) {\n let classNameType = props.NSFW + \"-content\";\n let hrefUrl = \"https://\" + props.url;\n let iconName = \"mdi-\" + props.icon;\n return /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: hrefUrl,\n className: classNameType,\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_item\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_icon\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify icon\",\n \"data-icon\": iconName\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 93,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 92,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_text\",\n children: [/*#__PURE__*/_jsxDEV(\"span\", {\n id: \"app-name\",\n children: props.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 96,\n columnNumber: 13\n }, this), /*#__PURE__*/_jsxDEV(\"span\", {\n id: \"app-address\",\n children: props.url\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 97,\n columnNumber: 13\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 95,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 91,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 90,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 89,\n columnNumber: 5\n }, this);\n}\n\n_c5 = App;\n\nfunction Bookmarks() {\n let bookmarkList = getLinks();\n var items = [];\n\n for (var i = 0; i < bookmarkList.bookmarks.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(LinkGroups, {\n category: bookmarkList.bookmarks[i].category,\n links: bookmarkList.bookmarks[i].links\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 110,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"links\",\n children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n children: \"Bookmarks\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 119,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"links_loop\",\n children: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 120,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 118,\n columnNumber: 5\n }, this);\n}\n\n_c6 = Bookmarks;\n\nfunction LinkGroups(props) {\n var items = [];\n\n for (var i = 0; i < props.links.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(LinkItem, {\n link: props.links[i]\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 131,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"links_item\",\n children: [/*#__PURE__*/_jsxDEV(\"h4\", {\n children: props.category\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 139,\n columnNumber: 7\n }, this), items]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 138,\n columnNumber: 5\n }, this);\n}\n\n_c7 = LinkGroups;\n\nfunction LinkItem(props) {\n return /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: props.link.url,\n className: \"theme_color-border theme_text-select\",\n children: props.link.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 148,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 147,\n columnNumber: 5\n }, this);\n}\n\n_c8 = LinkItem;\n\nfunction ModalMenu() {\n var providers = getProviders();\n var items = [];\n\n for (var i = 0; i < providers.providers.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(Provider, {\n provider: providers.providers[i]\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 158,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"modal\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n children: [/*#__PURE__*/_jsxDEV(\"header\", {\n id: \"modal-header\",\n children: [/*#__PURE__*/_jsxDEV(\"h1\", {\n children: \"Options\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 168,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n href: \"#\",\n title: \"Close\",\n className: \"modal-close\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-close\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 170,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 169,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 167,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"h2\", {\n children: \"Color themes\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 174,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"modal-theme\",\n children: [/*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"blackboard\",\n className: \"theme-button theme-blackboard\",\n onClick: updateTheme,\n children: \"Blackboard\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 177,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"gazette\",\n className: \"theme-button theme-gazette\",\n children: \"Gazette\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 178,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"espresso\",\n className: \"theme-button theme-espresso\",\n children: \"Espresso\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 179,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cab\",\n className: \"theme-button theme-cab\",\n children: \"Cab\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 180,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cloud\",\n className: \"theme-button theme-cloud\",\n children: \"Cloud\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 181,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"lime\",\n className: \"theme-button theme-lime\",\n children: \"Lime\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 182,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"passion\",\n className: \"theme-button theme-passion\",\n children: \"Passion\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 183,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"blues\",\n className: \"theme-button theme-blues\",\n children: \"Blues\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 184,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"chalk\",\n className: \"theme-button theme-chalk\",\n children: \"Chalk\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 185,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"tron\",\n className: \"theme-button theme-tron\",\n children: \"Tron\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 186,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"paper\",\n className: \"theme-button theme-paper\",\n children: \"Paper\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 187,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cyberpunk\",\n className: \"theme-button theme-cyberpunk\",\n children: \"Cyberpunk\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 188,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"quadra\",\n className: \"theme-button theme-panam\",\n children: \"Quadra\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 189,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"panam\",\n className: \"theme-button theme-panam\",\n children: \"Panam\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 190,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"touch\",\n className: \"theme-button theme-touch\",\n children: \"Touch\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 191,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"peek\",\n className: \"theme-button theme-peek\",\n children: \"Peek\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 192,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 176,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"h2\", {\n children: \"Search options\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 196,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"providers\",\n children: /*#__PURE__*/_jsxDEV(\"table\", {\n children: /*#__PURE__*/_jsxDEV(\"tbody\", {\n children: [/*#__PURE__*/_jsxDEV(\"tr\", {\n children: [/*#__PURE__*/_jsxDEV(\"th\", {\n children: \"Website\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 201,\n columnNumber: 19\n }, this), /*#__PURE__*/_jsxDEV(\"th\", {\n children: \"Prefix\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 202,\n columnNumber: 19\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 200,\n columnNumber: 17\n }, this), items]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 199,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 198,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 197,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"header\", {\n id: \"modal-footer\",\n children: [/*#__PURE__*/_jsxDEV(\"a\", {\n href: \"https://github.com/jeroenpardon/\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-github-box\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 210,\n columnNumber: 54\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 210,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n href: \"https://materialdesignicons.com/\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-material-design\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 211,\n columnNumber: 54\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 211,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"sneaky\",\n children: [/*#__PURE__*/_jsxDEV(\"input\", {\n type: \"checkbox\",\n id: \"contenttype\",\n onChange: \"nsfw(this)\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 212,\n columnNumber: 35\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n for: \"contenttype\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-domino-mask\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 213,\n columnNumber: 36\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 213,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 212,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 209,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 166,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 165,\n columnNumber: 5\n }, this);\n}\n\n_c9 = ModalMenu;\n\nfunction Provider(props) {\n return /*#__PURE__*/_jsxDEV(\"tr\", {\n children: [/*#__PURE__*/_jsxDEV(\"td\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: props.provider.url,\n children: props.provider.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 223,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 223,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"td\", {\n children: props.provider.prefix\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 224,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 222,\n columnNumber: 5\n }, this);\n}\n\n_c10 = Provider;\n\nfunction ModalInit() {\n return /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"modal_init\",\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n className: \"btn\",\n href: \"#modal\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify icon\",\n \"data-icon\": \"mdi-xbox-controller-menu\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 233,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 232,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 231,\n columnNumber: 5\n }, this);\n}\n\n_c11 = ModalInit;\nReactDOM.render( /*#__PURE__*/_jsxDEV(Homepage, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 240,\n columnNumber: 3\n}, this), document.getElementById('root')); //Functions below this line are for calculating data for\n//other functions\n\nfunction date() {\n let currentDate = new Date();\n let dateOptions = {\n weekday: \"long\",\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\"\n };\n let date = currentDate.toLocaleDateString(\"en-GB\", dateOptions);\n return date;\n}\n\nfunction fixDigits(k) {\n if (k < 10) {\n return \"0\" + k;\n } else {\n return k;\n }\n}\n\nfunction greet() {\n let currentTime = new Date();\n let greet = Math.floor(currentTime.getHours() / 6);\n let easterEggChance = Math.floor(Math.random() * 100);\n\n let greetings = require('./messages.json');\n\n let timeBased = [];\n let easterEggs = [];\n\n for (var i = 0; i < greetings.messages.length; i++) {\n if (greetings.messages[i].easteregg === \"FALSE\") {\n timeBased = timeBased.concat(greetings.messages[i]);\n } else {\n easterEggs = easterEggs.concat(greetings.messages[i]);\n }\n }\n\n if (easterEggChance > 10) {\n return timeBased[greet].message;\n } else {\n let easterEggText = Math.floor(Math.random() * easterEggs.length);\n return easterEggs[easterEggText].message;\n }\n}\n\nfunction Clock() {\n _s();\n\n const [date, setDate] = useState(new Date());\n\n function refreshClock() {\n setDate(new Date());\n }\n\n useEffect(() => {\n const timerId = setInterval(refreshClock, 1000);\n return function cleanup() {\n clearInterval(timerId);\n };\n }, []);\n var hour = date.getHours();\n var minutes = date.getMinutes(); //var seconds = date.getSeconds();\n\n var midday = \"AM\";\n midday = hour >= 12 ? \"PM\" : \"AM\";\n hour = hour === 0 ? 12 : hour > 12 ? hour - 12 : hour;\n minutes = fixDigits(minutes); //seconds = fixDigits(seconds);\n\n let time = hour + \":\" + minutes + \" \" + midday;\n return /*#__PURE__*/_jsxDEV(\"h2\", {\n id: \"clock\",\n children: time\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 311,\n columnNumber: 5\n }, this);\n}\n\n_s(Clock, \"Gqi45WOZhU2c0BLYX0HoJeiR0fk=\");\n\n_c12 = Clock;\n\nfunction getApps() {\n let applications = require('./apps.json');\n\n return applications;\n}\n\nfunction getLinks() {\n let links = require('./links.json');\n\n return links;\n}\n\nfunction getProviders() {\n let providers = require('./providers.json');\n\n return providers;\n}\n\nfunction getThemes() {\n let themes = require('./themes.json');\n\n return themes;\n}\n\nfunction updateTheme(e) {\n var themes = getThemes();\n var themeName = e.target.innerHTML.toLowerCase();\n var index = themes.themes.findIndex(function (item, i) {\n return item.name === themeName;\n });\n console.log(themes.themes[index]);\n localStorage.setItem(\"image-background\", themes.themes[index].imagebackground);\n localStorage.setItem(\"color-background\", themes.themes[index].colorbackground);\n localStorage.setItem(\"color-search-background\", themes.themes[index].colorserachbackground);\n localStorage.setItem(\"color-text-pri\", themes.themes[index].colortextpri);\n localStorage.setItem(\"color-text-acc\", themes.themes[index].colortextacc);\n localStorage.setItem(\"color-border\", themes.themes[index].colorborder);\n\n const setValueFromLocalStorage = property => {\n let value = localStorage.getItem(property);\n setValue(property, value);\n };\n\n setValueFromLocalStorage('image-background');\n setValueFromLocalStorage('color-background');\n setValueFromLocalStorage('color-search-background');\n setValueFromLocalStorage('color-text-pri');\n setValueFromLocalStorage('color-text-acc');\n setValueFromLocalStorage('color-border');\n setValueFromLocalStorage('content-display');\n}\n\nfunction handleKeyPress(e) {\n var sindex = 0;\n var cycle = false;\n var key = e.keyCode || e.which;\n var text = e.target.value.replaceAll(\"+\", \"%2B\");\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n\n if (key == 13) {\n // Search functions\n search(text);\n }\n\n if (key == 9) {\n // Tab Completion Functions\n e.preventDefault();\n e.stopPropagation();\n\n if (text[0] === ';') {\n switch (option) {\n case 't':\n var streamers = ['admiralbahroo', 'moonmoon_ow', 'witwix'];\n\n if (!subtext || cycle) {\n cycle = true;\n if (sindex > streamers.length - 1) sindex = 0;\n document.getElementById(\"keywords\").value = ';t ' + streamers[sindex++];\n return;\n }\n\n for (var streamer of streamers) {\n if (subtext === streamer.substr(0, subtext.length)) {\n document.getElementById(\"keywords\").value = ';t ' + streamer;\n return;\n }\n }\n\n break;\n }\n }\n }\n\n if (key == 32) {\n //Space to go to search\n updateLabel(text);\n }\n\n sindex = 0;\n cycle = false;\n updateLabel(text);\n}\n\nfunction updateLabel(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n\n if (text[0] === '/') {\n // if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n document.getElementById(\"searchType\").innerHTML = \"Allmusic search\";\n break;\n\n case \"d\":\n document.getElementById(\"searchType\").innerHTML = \"Duck Duck Go search\";\n break;\n\n case \"di\":\n document.getElementById(\"searchType\").innerHTML = \"Discogs search\";\n break;\n\n case \"i\":\n document.getElementById(\"searchType\").innerHTML = \"IMDB search\";\n break;\n\n case \"m\":\n document.getElementById(\"searchType\").innerHTML = \"TheMovieDB search\";\n break;\n\n case \"r\":\n document.getElementById(\"searchType\").innerHTML = \"Reddit search\";\n break;\n\n case \"q\":\n document.getElementById(\"searchType\").innerHTML = \"Qwant search\";\n break;\n\n case \"so\":\n document.getElementById(\"searchType\").innerHTML = \"Soundcloud search\";\n break;\n\n case \"s\":\n document.getElementById(\"searchType\").innerHTML = \"Spotify search\";\n break;\n\n case \"tv\":\n document.getElementById(\"searchType\").innerHTML = \"TheTVDB search\";\n break;\n\n case \"t\":\n document.getElementById(\"searchType\").innerHTML = \"Trakt search\";\n break;\n\n case \"y\":\n document.getElementById(\"searchType\").innerHTML = \"YouTube search\";\n break;\n\n case \"w\":\n document.getElementById(\"searchType\").innerHTML = \"Wikipedia search\";\n break;\n\n case \"p\":\n document.getElementById(\"searchType\").innerHTML = \"Plex search\";\n break;\n\n case \"rt\":\n document.getElementById(\"searchType\").innerHTML = \"Rotten Tomatoes search\";\n break;\n\n default:\n document.getElementById(\"searchType\").innerHTML = \"Invalid search\";\n break;\n }\n } else {\n document.getElementById(\"searchType\").innerHTML = \"Google search\";\n }\n}\n\nfunction search(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n\n if (text[0] === '/') {\n if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n window.location = \"https://www.allmusic.com/search/all/\" + subtext;\n break;\n\n case \"d\":\n window.location = \"https://duckduckgo.com/?q=\" + subtext;\n break;\n\n case \"di\":\n window.location = \"https://www.discogs.com/search/?q=\" + subtext;\n break;\n\n case \"i\":\n window.location = \"https://www.imdb.com/find?q=\" + subtext;\n break;\n\n case \"m\":\n window.location = \"https://www.themoviedb.org/search?query=\" + subtext;\n break;\n\n case \"r\":\n window.location = \"https://www.reddit.com/search?q=\" + subtext;\n break;\n\n case \"q\":\n window.location = \"https://www.qwant.com/?q=\" + subtext;\n break;\n\n case \"so\":\n window.location = \"https://soundcloud.com/search?q=\" + subtext;\n break;\n\n case \"s\":\n window.location = \"https://open.spotify.com/search/results/\" + subtext;\n break;\n\n case \"t\":\n window.location = \"https://trakt.tv/search?query=\" + subtext;\n break;\n\n case \"tv\":\n window.location = \"https://www.thetvdb.com/search?query=\" + subtext;\n break;\n\n case \"y\":\n window.location = \"https://www.youtube.com/results?search_query=\" + subtext;\n break;\n\n case \"w\":\n window.location = \"https://en.wikipedia.org/w/index.php?search=\" + subtext;\n break;\n\n case \"p\":\n window.location = \"https://app.plex.tv/desktop/#!/search?query=\" + subtext;\n break;\n\n case \"rt\":\n window.location = \"https://www.rottentomatoes.com/search?search=\" + subtext;\n break;\n }\n } else {\n var option = text.substr(1);\n\n switch (option) {\n case \"d\":\n window.location = \"https://www.duckduckgo.com\";\n break;\n\n case \"y\":\n window.location = \"https://www.youtube.com\";\n break;\n\n case \"r\":\n window.location = \"https://reddit.com\";\n break;\n\n case \"s\":\n window.location = \"https://open.spotify.com\";\n break;\n }\n }\n } else if (validURL(text)) {\n if (containsProtocol(text)) window.location = text;else window.location = \"https://\" + text;\n } else {\n window.location = \"https://www.google.com/search?q=\" + text;\n }\n} // Source: https://stackoverflow.com/questions/5717093/check-if-a-javascript-string-is-a-url\n\n\nfunction validURL(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/)?' + // protocol\n '((([a-z\\\\d]([a-z\\\\d-]*[a-z\\\\d])*)\\\\.)+[a-z]{2,}|' + // domain name\n '((\\\\d{1,3}\\\\.){3}\\\\d{1,3}))' + // OR ip (v4) address\n '(\\\\:\\\\d+)?(\\\\/[-a-z\\\\d%_.~+]*)*' + // port and path\n '(\\\\?[;&a-z\\\\d%_.~+=-]*)?' + // query string\n '(\\\\#[-a-z\\\\d_]*)?$', 'i'); // fragment locator\n\n return !!pattern.test(str);\n}\n\nfunction containsProtocol(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/){1}.*', 'i');\n return !!pattern.test(str);\n}\n\nString.prototype.replaceAll = function (search, replacement) {\n var target = this;\n return target.split(search).join(replacement);\n};\n\nvar _c, _c2, _c3, _c4, _c5, _c6, _c7, _c8, _c9, _c10, _c11, _c12;\n\n$RefreshReg$(_c, \"Homepage\");\n$RefreshReg$(_c2, \"Search\");\n$RefreshReg$(_c3, \"Header\");\n$RefreshReg$(_c4, \"Applications\");\n$RefreshReg$(_c5, \"App\");\n$RefreshReg$(_c6, \"Bookmarks\");\n$RefreshReg$(_c7, \"LinkGroups\");\n$RefreshReg$(_c8, \"LinkItem\");\n$RefreshReg$(_c9, \"ModalMenu\");\n$RefreshReg$(_c10, \"Provider\");\n$RefreshReg$(_c11, \"ModalInit\");\n$RefreshReg$(_c12, \"Clock\");","map":{"version":3,"sources":["/home/seanedmunds/dev/home-page/src/index.js"],"names":["React","useState","useEffect","ReactDOM","Homepage","date","greet","Search","handleKeyPress","Header","props","Applications","appList","getApps","items","i","apps","length","push","name","url","icon","NSFW","App","classNameType","hrefUrl","iconName","Bookmarks","bookmarkList","getLinks","bookmarks","category","links","LinkGroups","LinkItem","link","ModalMenu","providers","getProviders","updateTheme","Provider","provider","prefix","ModalInit","render","document","getElementById","currentDate","Date","dateOptions","weekday","year","month","day","toLocaleDateString","fixDigits","k","currentTime","Math","floor","getHours","easterEggChance","random","greetings","require","timeBased","easterEggs","messages","easteregg","concat","message","easterEggText","Clock","setDate","refreshClock","timerId","setInterval","cleanup","clearInterval","hour","minutes","getMinutes","midday","time","applications","getThemes","themes","e","themeName","target","innerHTML","toLowerCase","index","findIndex","item","console","log","localStorage","setItem","imagebackground","colorbackground","colorserachbackground","colortextpri","colortextacc","colorborder","setValueFromLocalStorage","property","value","getItem","setValue","sindex","cycle","key","keyCode","which","text","replaceAll","option","substr","indexOf","subtext","search","preventDefault","stopPropagation","streamers","streamer","updateLabel","window","location","validURL","containsProtocol","str","pattern","RegExp","test","String","prototype","replacement","split","join"],"mappings":";;;AAAA,OAAOA,KAAP,MAAkB,OAAlB;AACA,SAASC,QAAT,EAAmBC,SAAnB,QAAoC,OAApC;AACA,OAAOC,QAAP,MAAqB,WAArB,C,CACA;;AACA,OAAO,aAAP;;;AAEA,SAASC,QAAT,GAAoB;AAClB,sBACE;AAAM,IAAA,EAAE,EAAC,WAAT;AAAqB,IAAA,SAAS,EAAC,MAA/B;AAAA,4BACI;AAAA,6BACE,QAAC,MAAD;AAAA;AAAA;AAAA;AAAA;AADF;AAAA;AAAA;AAAA;AAAA,YADJ,eAII;AAAA,6BACE,QAAC,MAAD;AACE,QAAA,IAAI,EAAEC,IAAI,EADZ;AAEE,QAAA,KAAK,EAAEC,KAAK;AAFd;AAAA;AAAA;AAAA;AAAA;AADF;AAAA;AAAA;AAAA;AAAA,YAJJ,eAUI;AAAA,6BACE,QAAC,YAAD;AAAA;AAAA;AAAA;AAAA;AADF;AAAA;AAAA;AAAA;AAAA,YAVJ,eAaI;AAAA,6BACE,QAAC,SAAD;AAAA;AAAA;AAAA;AAAA;AADF;AAAA;AAAA;AAAA;AAAA,YAbJ,eAgBI;AAAA,6BACE,QAAC,SAAD;AAAA;AAAA;AAAA;AAAA;AADF;AAAA;AAAA;AAAA;AAAA,YAhBJ,eAmBI;AAAA,6BACE,QAAC,SAAD;AAAA;AAAA;AAAA;AAAA;AADF;AAAA;AAAA;AAAA;AAAA,YAnBJ;AAAA;AAAA;AAAA;AAAA;AAAA,UADF;AAyBD;;KA1BQF,Q;;AA4BT,SAASG,MAAT,GAAkB;AAChB,sBACE;AAAS,IAAA,EAAE,EAAC,QAAZ;AAAA,2BACE;AAAK,MAAA,SAAS,EAAC,aAAf;AAAA,8BACE;AAAO,QAAA,IAAI,EAAC,UAAZ;AAAuB,QAAA,IAAI,EAAC,MAA5B;AAAmC,QAAA,SAAS,EAAC,SAA7C;AAAuD,QAAA,EAAE,EAAC,UAA1D;AAAqE,QAAA,IAAI,EAAC,IAA1E;AAA+E,QAAA,UAAU,EAAC,MAA1F;AAAiG,QAAA,WAAW,EAAC;AAAG;AAAhH;AAAmL,QAAA,YAAY,EAAC,KAAhM;AAAsM,QAAA,SAAS,EAAE,IAAjN;AAAuN,QAAA,OAAO,EAAEC;AAAhO;AAAA;AAAA;AAAA;AAAA,cADF,eAEE;AAAO,QAAA,EAAE,EAAC,YAAV;AAAuB,QAAA,SAAS,EAAC,aAAjC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,cAFF;AAAA;AAAA;AAAA;AAAA;AAAA;AADF;AAAA;AAAA;AAAA;AAAA,UADF;AAQD;;MATQD,M;;AAWT,SAASE,MAAT,CAAgBC,KAAhB,EAAuB;AACrB,sBACE;AAAS,IAAA,EAAE,EAAC,QAAZ;AAAA,4BACE;AAAK,MAAA,EAAE,EAAC,gBAAR;AAAA,6BACE;AAAI,QAAA,EAAE,EAAC,cAAP;AAAA,kBAAuBA,KAAK,CAACJ;AAA7B;AAAA;AAAA;AAAA;AAAA;AADF;AAAA;AAAA;AAAA;AAAA,YADF,eAIE;AAAK,MAAA,EAAE,EAAC,YAAR;AAAA,8BACE;AAAI,QAAA,EAAE,EAAC,aAAP;AAAA,kBAAsBI,KAAK,CAACL;AAA5B;AAAA;AAAA;AAAA;AAAA,cADF,eAEE,QAAC,KAAD;AAAA;AAAA;AAAA;AAAA,cAFF;AAAA;AAAA;AAAA;AAAA;AAAA,YAJF;AAAA;AAAA;AAAA;AAAA;AAAA,UADF;AAWD;;MAZQI,M;;AAcT,SAASE,YAAT,GAAwB;AACtB,MAAIC,OAAO,GAAGC,OAAO,EAArB;AACA,MAAIC,KAAK,GAAG,EAAZ;;AACA,OAAK,IAAIC,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGH,OAAO,CAACI,IAAR,CAAaC,MAAjC,EAAyCF,CAAC,EAA1C,EAA8C;AAC5CD,IAAAA,KAAK,CAACI,IAAN,eACE,QAAC,GAAD;AAEE,MAAA,IAAI,EAAEN,OAAO,CAACI,IAAR,CAAaD,CAAb,EAAgBI,IAFxB;AAGE,MAAA,GAAG,EAAEP,OAAO,CAACI,IAAR,CAAaD,CAAb,EAAgBK,GAHvB;AAIE,MAAA,IAAI,EAAER,OAAO,CAACI,IAAR,CAAaD,CAAb,EAAgBM,IAJxB;AAKE,MAAA,IAAI,EAAET,OAAO,CAACI,IAAR,CAAaD,CAAb,EAAgBO;AALxB,OACOP,CADP;AAAA;AAAA;AAAA;AAAA,YADF;AASD;;AACD,sBACE;AAAS,IAAA,EAAE,EAAC,MAAZ;AAAA,4BACE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,YADF,eAEE;AAAK,MAAA,EAAE,EAAC,WAAR;AAAA,gBACGD;AADH;AAAA;AAAA;AAAA;AAAA,YAFF;AAAA;AAAA;AAAA;AAAA;AAAA,UADF;AAQD;;MAtBQH,Y;;AAwBT,SAASY,GAAT,CAAab,KAAb,EAAoB;AAClB,MAAIc,aAAa,GAAGd,KAAK,CAACY,IAAN,GAAa,UAAjC;AACA,MAAIG,OAAO,GAAG,aAAaf,KAAK,CAACU,GAAjC;AACA,MAAIM,QAAQ,GAAG,SAAShB,KAAK,CAACW,IAA9B;AACA,sBACE;AAAA,2BACE;AAAG,MAAA,IAAI,EAAEI,OAAT;AAAkB,MAAA,SAAS,EAAED,aAA7B;AAAA,6BACE;AAAK,QAAA,SAAS,EAAC,WAAf;AAAA,gCACE;AAAK,UAAA,SAAS,EAAC,WAAf;AAAA,iCACE;AAAM,YAAA,SAAS,EAAC,cAAhB;AAA+B,yBAAWE;AAA1C;AAAA;AAAA;AAAA;AAAA;AADF;AAAA;AAAA;AAAA;AAAA,gBADF,eAIE;AAAK,UAAA,SAAS,EAAC,WAAf;AAAA,kCACE;AAAM,YAAA,EAAE,EAAC,UAAT;AAAA,sBAAqBhB,KAAK,CAACS;AAA3B;AAAA;AAAA;AAAA;AAAA,kBADF,eAEE;AAAM,YAAA,EAAE,EAAC,aAAT;AAAA,sBAAwBT,KAAK,CAACU;AAA9B;AAAA;AAAA;AAAA;AAAA,kBAFF;AAAA;AAAA;AAAA;AAAA;AAAA,gBAJF;AAAA;AAAA;AAAA;AAAA;AAAA;AADF;AAAA;AAAA;AAAA;AAAA;AADF;AAAA;AAAA;AAAA;AAAA,UADF;AAeD;;MAnBQG,G;;AAqBT,SAASI,SAAT,GAAqB;AACnB,MAAIC,YAAY,GAAGC,QAAQ,EAA3B;AACA,MAAIf,KAAK,GAAG,EAAZ;;AACA,OAAK,IAAIC,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGa,YAAY,CAACE,SAAb,CAAuBb,MAA3C,EAAmDF,CAAC,EAApD,EAAwD;AACtDD,IAAAA,KAAK,CAACI,IAAN,eACE,QAAC,UAAD;AAEE,MAAA,QAAQ,EAAEU,YAAY,CAACE,SAAb,CAAuBf,CAAvB,EAA0BgB,QAFtC;AAGE,MAAA,KAAK,EAAEH,YAAY,CAACE,SAAb,CAAuBf,CAAvB,EAA0BiB;AAHnC,OACOjB,CADP;AAAA;AAAA;AAAA;AAAA,YADF;AAOD;;AACD,sBACE;AAAS,IAAA,EAAE,EAAC,OAAZ;AAAA,4BACE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,YADF,eAEE;AAAK,MAAA,EAAE,EAAC,YAAR;AAAA,gBACKD;AADL;AAAA;AAAA;AAAA;AAAA,YAFF;AAAA;AAAA;AAAA;AAAA;AAAA,UADF;AAQD;;MApBQa,S;;AAsBT,SAASM,UAAT,CAAoBvB,KAApB,EAA2B;AACzB,MAAII,KAAK,GAAG,EAAZ;;AACA,OAAK,IAAIC,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGL,KAAK,CAACsB,KAAN,CAAYf,MAAhC,EAAwCF,CAAC,EAAzC,EAA6C;AAC3CD,IAAAA,KAAK,CAACI,IAAN,eACE,QAAC,QAAD;AAEE,MAAA,IAAI,EAAER,KAAK,CAACsB,KAAN,CAAYjB,CAAZ;AAFR,OACOA,CADP;AAAA;AAAA;AAAA;AAAA,YADF;AAMD;;AACD,sBACE;AAAK,IAAA,EAAE,EAAC,YAAR;AAAA,4BACE;AAAA,gBAAKL,KAAK,CAACqB;AAAX;AAAA;AAAA;AAAA;AAAA,YADF,EAEGjB,KAFH;AAAA;AAAA;AAAA;AAAA;AAAA,UADF;AAMD;;MAhBQmB,U;;AAkBT,SAASC,QAAT,CAAkBxB,KAAlB,EAAyB;AACvB,sBACE;AAAA,2BACE;AAAG,MAAA,IAAI,EAAEA,KAAK,CAACyB,IAAN,CAAWf,GAApB;AAAyB,MAAA,SAAS,EAAC,sCAAnC;AAAA,gBAA2EV,KAAK,CAACyB,IAAN,CAAWhB;AAAtF;AAAA;AAAA;AAAA;AAAA;AADF;AAAA;AAAA;AAAA;AAAA,UADF;AAKD;;MANQe,Q;;AAQT,SAASE,SAAT,GAAqB;AACnB,MAAIC,SAAS,GAAGC,YAAY,EAA5B;AACA,MAAIxB,KAAK,GAAG,EAAZ;;AACA,OAAK,IAAIC,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGsB,SAAS,CAACA,SAAV,CAAoBpB,MAAxC,EAAgDF,CAAC,EAAjD,EAAqD;AACnDD,IAAAA,KAAK,CAACI,IAAN,eACE,QAAC,QAAD;AAEE,MAAA,QAAQ,EAAEmB,SAAS,CAACA,SAAV,CAAoBtB,CAApB;AAFZ,OACOA,CADP;AAAA;AAAA;AAAA;AAAA,YADF;AAMD;;AACD,sBACE;AAAS,IAAA,EAAE,EAAC,OAAZ;AAAA,2BACE;AAAA,8BACE;AAAQ,QAAA,EAAE,EAAC,cAAX;AAAA,gCACE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,gBADF,eAEE;AAAG,UAAA,IAAI,EAAC,GAAR;AAAY,UAAA,KAAK,EAAC,OAAlB;AAA0B,UAAA,SAAS,EAAC,aAApC;AAAA,iCACE;AAAM,YAAA,SAAS,EAAC,SAAhB;AAA0B,yBAAU;AAApC;AAAA;AAAA;AAAA;AAAA;AADF;AAAA;AAAA;AAAA;AAAA,gBAFF;AAAA;AAAA;AAAA;AAAA;AAAA,cADF,eAQE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,cARF,eAUE;AAAK,QAAA,EAAE,EAAC,aAAR;AAAA,gCACE;AAAQ,wBAAW,YAAnB;AAAgC,UAAA,SAAS,EAAC,+BAA1C;AAA0E,UAAA,OAAO,EAAEwB,WAAnF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,gBADF,eAEE;AAAQ,wBAAW,SAAnB;AAA6B,UAAA,SAAS,EAAC,4BAAvC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,gBAFF,eAGE;AAAQ,wBAAW,UAAnB;AAA8B,UAAA,SAAS,EAAC,6BAAxC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,gBAHF,eAIE;AAAQ,wBAAW,KAAnB;AAAyB,UAAA,SAAS,EAAC,wBAAnC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,gBAJF,eAKE;AAAQ,wBAAW,OAAnB;AAA2B,UAAA,SAAS,EAAC,0BAArC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,gBALF,eAME;AAAQ,wBAAW,MAAnB;AAA0B,UAAA,SAAS,EAAC,yBAApC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,gBANF,eAOE;AAAQ,wBAAW,SAAnB;AAA6B,UAAA,SAAS,EAAC,4BAAvC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,gBAPF,eAQE;AAAQ,wBAAW,OAAnB;AAA2B,UAAA,SAAS,EAAC,0BAArC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,gBARF,eASE;AAAQ,wBAAW,OAAnB;AAA2B,UAAA,SAAS,EAAC,0BAArC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,gBATF,eAUE;AAAQ,wBAAW,MAAnB;AAA0B,UAAA,SAAS,EAAC,yBAApC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,gBAVF,eAWE;AAAQ,wBAAW,OAAnB;AAA2B,UAAA,SAAS,EAAC,0BAArC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,gBAXF,eAYE;AAAQ,wBAAW,WAAnB;AAA+B,UAAA,SAAS,EAAC,8BAAzC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,gBAZF,eAaE;AAAQ,wBAAW,QAAnB;AAA4B,UAAA,SAAS,EAAC,0BAAtC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,gBAbF,eAcE;AAAQ,wBAAW,OAAnB;AAA2B,UAAA,SAAS,EAAC,0BAArC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,gBAdF,eAeE;AAAQ,wBAAW,OAAnB;AAA2B,UAAA,SAAS,EAAC,0BAArC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,gBAfF,eAgBE;AAAQ,wBAAW,MAAnB;AAA0B,UAAA,SAAS,EAAC,yBAApC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,gBAhBF;AAAA;AAAA;AAAA;AAAA;AAAA,cAVF,eA8BE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,cA9BF,eA+BI;AAAS,QAAA,EAAE,EAAC,WAAZ;AAAA,+BACE;AAAA,iCACE;AAAA,oCACE;AAAA,sCACE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,sBADF,eAEE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,sBAFF;AAAA;AAAA;AAAA;AAAA;AAAA,oBADF,EAKGzB,KALH;AAAA;AAAA;AAAA;AAAA;AAAA;AADF;AAAA;AAAA;AAAA;AAAA;AADF;AAAA;AAAA;AAAA;AAAA,cA/BJ,eA2CE;AAAQ,QAAA,EAAE,EAAC,cAAX;AAAA,gCACE;AAAG,UAAA,IAAI,EAAC,kCAAR;AAAA,iCAA2C;AAAM,YAAA,SAAS,EAAC,SAAhB;AAA0B,yBAAU;AAApC;AAAA;AAAA;AAAA;AAAA;AAA3C;AAAA;AAAA;AAAA;AAAA,gBADF,eAEE;AAAG,UAAA,IAAI,EAAC,kCAAR;AAAA,iCAA2C;AAAM,YAAA,SAAS,EAAC,SAAhB;AAA0B,yBAAU;AAApC;AAAA;AAAA;AAAA;AAAA;AAA3C;AAAA;AAAA;AAAA;AAAA,gBAFF,eAGE;AAAK,UAAA,SAAS,EAAC,QAAf;AAAA,kCAAwB;AAAO,YAAA,IAAI,EAAC,UAAZ;AAAuB,YAAA,EAAE,EAAC,aAA1B;AAAwC,YAAA,QAAQ,EAAC;AAAjD;AAAA;AAAA;AAAA;AAAA,kBAAxB,eACA;AAAO,YAAA,GAAG,EAAC,aAAX;AAAA,mCAAyB;AAAM,cAAA,SAAS,EAAC,SAAhB;AAA0B,2BAAU;AAApC;AAAA;AAAA;AAAA;AAAA;AAAzB;AAAA;AAAA;AAAA;AAAA,kBADA;AAAA;AAAA;AAAA;AAAA;AAAA,gBAHF;AAAA;AAAA;AAAA;AAAA;AAAA,cA3CF;AAAA;AAAA;AAAA;AAAA;AAAA;AADF;AAAA;AAAA;AAAA;AAAA,UADF;AAsDD;;MAjEQsB,S;;AAmET,SAASI,QAAT,CAAkB9B,KAAlB,EAAyB;AACvB,sBACE;AAAA,4BACE;AAAA,6BAAI;AAAG,QAAA,IAAI,EAAEA,KAAK,CAAC+B,QAAN,CAAerB,GAAxB;AAAA,kBAA8BV,KAAK,CAAC+B,QAAN,CAAetB;AAA7C;AAAA;AAAA;AAAA;AAAA;AAAJ;AAAA;AAAA;AAAA;AAAA,YADF,eAEE;AAAA,gBAAKT,KAAK,CAAC+B,QAAN,CAAeC;AAApB;AAAA;AAAA;AAAA;AAAA,YAFF;AAAA;AAAA;AAAA;AAAA;AAAA,UADF;AAMD;;OAPQF,Q;;AAST,SAASG,SAAT,GAAqB;AACnB,sBACE;AAAK,IAAA,EAAE,EAAC,YAAR;AAAA,2BACE;AAAG,MAAA,SAAS,EAAC,KAAb;AAAmB,MAAA,IAAI,EAAC,QAAxB;AAAA,6BACE;AAAM,QAAA,SAAS,EAAC,cAAhB;AAA+B,qBAAU;AAAzC;AAAA;AAAA;AAAA;AAAA;AADF;AAAA;AAAA;AAAA;AAAA;AADF;AAAA;AAAA;AAAA;AAAA,UADF;AAOD;;OARQA,S;AAUTxC,QAAQ,CAACyC,MAAT,eACE,QAAC,QAAD;AAAA;AAAA;AAAA;AAAA,QADF,EAEEC,QAAQ,CAACC,cAAT,CAAwB,MAAxB,CAFF,E,CAKA;AACA;;AAEA,SAASzC,IAAT,GAAgB;AACd,MAAI0C,WAAW,GAAG,IAAIC,IAAJ,EAAlB;AACA,MAAIC,WAAW,GAAG;AAChBC,IAAAA,OAAO,EAAE,MADO;AAEhBC,IAAAA,IAAI,EAAE,SAFU;AAGhBC,IAAAA,KAAK,EAAE,MAHS;AAIhBC,IAAAA,GAAG,EAAE;AAJW,GAAlB;AAMA,MAAIhD,IAAI,GAAG0C,WAAW,CAACO,kBAAZ,CAA+B,OAA/B,EAAwCL,WAAxC,CAAX;AACA,SAAO5C,IAAP;AACD;;AACD,SAASkD,SAAT,CAAmBC,CAAnB,EAAsB;AACpB,MAAIA,CAAC,GAAG,EAAR,EAAY;AACV,WAAO,MAAMA,CAAb;AACD,GAFD,MAGK;AACH,WAAOA,CAAP;AACD;AACF;;AACD,SAASlD,KAAT,GAAiB;AACf,MAAImD,WAAW,GAAG,IAAIT,IAAJ,EAAlB;AACA,MAAI1C,KAAK,GAAGoD,IAAI,CAACC,KAAL,CAAWF,WAAW,CAACG,QAAZ,KAAyB,CAApC,CAAZ;AACA,MAAIC,eAAe,GAAGH,IAAI,CAACC,KAAL,CAAWD,IAAI,CAACI,MAAL,KAAgB,GAA3B,CAAtB;;AACA,MAAIC,SAAS,GAAGC,OAAO,CAAC,iBAAD,CAAvB;;AACA,MAAIC,SAAS,GAAG,EAAhB;AACA,MAAIC,UAAU,GAAG,EAAjB;;AACA,OAAK,IAAInD,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGgD,SAAS,CAACI,QAAV,CAAmBlD,MAAvC,EAA+CF,CAAC,EAAhD,EAAoD;AAClD,QAAIgD,SAAS,CAACI,QAAV,CAAmBpD,CAAnB,EAAsBqD,SAAtB,KAAoC,OAAxC,EAAiD;AAC/CH,MAAAA,SAAS,GAAGA,SAAS,CAACI,MAAV,CAAiBN,SAAS,CAACI,QAAV,CAAmBpD,CAAnB,CAAjB,CAAZ;AACD,KAFD,MAEO;AACLmD,MAAAA,UAAU,GAAGA,UAAU,CAACG,MAAX,CAAkBN,SAAS,CAACI,QAAV,CAAmBpD,CAAnB,CAAlB,CAAb;AACD;AACF;;AACD,MAAI8C,eAAe,GAAG,EAAtB,EAA0B;AACxB,WAAOI,SAAS,CAAC3D,KAAD,CAAT,CAAiBgE,OAAxB;AACD,GAFD,MAEO;AACL,QAAIC,aAAa,GAAGb,IAAI,CAACC,KAAL,CAAWD,IAAI,CAACI,MAAL,KAAgBI,UAAU,CAACjD,MAAtC,CAApB;AACA,WAAOiD,UAAU,CAACK,aAAD,CAAV,CAA0BD,OAAjC;AACD;AACF;;AACD,SAASE,KAAT,GAAiB;AAAA;;AACf,QAAM,CAACnE,IAAD,EAAOoE,OAAP,IAAkBxE,QAAQ,CAAC,IAAI+C,IAAJ,EAAD,CAAhC;;AAEA,WAAS0B,YAAT,GAAwB;AACtBD,IAAAA,OAAO,CAAC,IAAIzB,IAAJ,EAAD,CAAP;AACD;;AACD9C,EAAAA,SAAS,CAAC,MAAM;AACd,UAAMyE,OAAO,GAAGC,WAAW,CAACF,YAAD,EAAe,IAAf,CAA3B;AACA,WAAO,SAASG,OAAT,GAAmB;AACxBC,MAAAA,aAAa,CAACH,OAAD,CAAb;AACD,KAFD;AAGD,GALQ,EAKN,EALM,CAAT;AAOA,MAAII,IAAI,GAAG1E,IAAI,CAACuD,QAAL,EAAX;AACA,MAAIoB,OAAO,GAAG3E,IAAI,CAAC4E,UAAL,EAAd,CAde,CAef;;AACA,MAAIC,MAAM,GAAG,IAAb;AACAA,EAAAA,MAAM,GAAIH,IAAI,IAAI,EAAT,GAAe,IAAf,GAAsB,IAA/B;AACAA,EAAAA,IAAI,GAAIA,IAAI,KAAK,CAAV,GAAe,EAAf,GAAsBA,IAAI,GAAG,EAAR,GAAeA,IAAI,GAAG,EAAtB,GAA4BA,IAAxD;AACAC,EAAAA,OAAO,GAAGzB,SAAS,CAACyB,OAAD,CAAnB,CAnBe,CAoBf;;AACA,MAAIG,IAAI,GAAGJ,IAAI,GAAG,GAAP,GAAaC,OAAb,GAAuB,GAAvB,GAA6BE,MAAxC;AAEA,sBACE;AAAI,IAAA,EAAE,EAAC,OAAP;AAAA,cAAgBC;AAAhB;AAAA;AAAA;AAAA;AAAA,UADF;AAID;;GA3BQX,K;;OAAAA,K;;AA4BT,SAAS3D,OAAT,GAAmB;AACjB,MAAIuE,YAAY,GAAGpB,OAAO,CAAC,aAAD,CAA1B;;AACA,SAAOoB,YAAP;AACD;;AACD,SAASvD,QAAT,GAAoB;AAClB,MAAIG,KAAK,GAAGgC,OAAO,CAAC,cAAD,CAAnB;;AACA,SAAOhC,KAAP;AACD;;AACD,SAASM,YAAT,GAAwB;AACtB,MAAID,SAAS,GAAG2B,OAAO,CAAC,kBAAD,CAAvB;;AACA,SAAO3B,SAAP;AACD;;AACD,SAASgD,SAAT,GAAqB;AACnB,MAAIC,MAAM,GAAGtB,OAAO,CAAC,eAAD,CAApB;;AACA,SAAOsB,MAAP;AACD;;AAED,SAAS/C,WAAT,CAAqBgD,CAArB,EAAwB;AACtB,MAAID,MAAM,GAAGD,SAAS,EAAtB;AACA,MAAIG,SAAS,GAAGD,CAAC,CAACE,MAAF,CAASC,SAAT,CAAmBC,WAAnB,EAAhB;AACA,MAAIC,KAAK,GAAGN,MAAM,CAACA,MAAP,CAAcO,SAAd,CAAwB,UAASC,IAAT,EAAe/E,CAAf,EAAiB;AACnD,WAAO+E,IAAI,CAAC3E,IAAL,KAAcqE,SAArB;AACD,GAFW,CAAZ;AAGAO,EAAAA,OAAO,CAACC,GAAR,CAAYV,MAAM,CAACA,MAAP,CAAcM,KAAd,CAAZ;AACAK,EAAAA,YAAY,CAACC,OAAb,CAAqB,kBAArB,EAAyCZ,MAAM,CAACA,MAAP,CAAcM,KAAd,EAAqBO,eAA9D;AACAF,EAAAA,YAAY,CAACC,OAAb,CAAqB,kBAArB,EAAyCZ,MAAM,CAACA,MAAP,CAAcM,KAAd,EAAqBQ,eAA9D;AACAH,EAAAA,YAAY,CAACC,OAAb,CAAqB,yBAArB,EAAgDZ,MAAM,CAACA,MAAP,CAAcM,KAAd,EAAqBS,qBAArE;AACAJ,EAAAA,YAAY,CAACC,OAAb,CAAqB,gBAArB,EAAsCZ,MAAM,CAACA,MAAP,CAAcM,KAAd,EAAqBU,YAA3D;AACAL,EAAAA,YAAY,CAACC,OAAb,CAAqB,gBAArB,EAAuCZ,MAAM,CAACA,MAAP,CAAcM,KAAd,EAAqBW,YAA5D;AACAN,EAAAA,YAAY,CAACC,OAAb,CAAqB,cAArB,EAAqCZ,MAAM,CAACA,MAAP,CAAcM,KAAd,EAAqBY,WAA1D;;AAEA,QAAMC,wBAAwB,GAAGC,QAAQ,IAAI;AAC3C,QAAIC,KAAK,GAAGV,YAAY,CAACW,OAAb,CAAqBF,QAArB,CAAZ;AACAG,IAAAA,QAAQ,CAACH,QAAD,EAAWC,KAAX,CAAR;AACD,GAHD;;AAMAF,EAAAA,wBAAwB,CAAC,kBAAD,CAAxB;AACAA,EAAAA,wBAAwB,CAAC,kBAAD,CAAxB;AACAA,EAAAA,wBAAwB,CAAC,yBAAD,CAAxB;AACAA,EAAAA,wBAAwB,CAAC,gBAAD,CAAxB;AACAA,EAAAA,wBAAwB,CAAC,gBAAD,CAAxB;AACAA,EAAAA,wBAAwB,CAAC,cAAD,CAAxB;AACAA,EAAAA,wBAAwB,CAAC,iBAAD,CAAxB;AACD;;AAED,SAASjG,cAAT,CAAwB+E,CAAxB,EAA2B;AACzB,MAAIuB,MAAM,GAAG,CAAb;AACA,MAAIC,KAAK,GAAG,KAAZ;AACA,MAAIC,GAAG,GAAGzB,CAAC,CAAC0B,OAAF,IAAa1B,CAAC,CAAC2B,KAAzB;AACA,MAAIC,IAAI,GAAG5B,CAAC,CAACE,MAAF,CAASkB,KAAT,CAAeS,UAAf,CAA0B,GAA1B,EAA+B,KAA/B,CAAX;AACA,MAAIC,MAAM,GAAGF,IAAI,CAACG,MAAL,CAAY,CAAZ,EAAeH,IAAI,CAACI,OAAL,CAAa,GAAb,IAAoB,CAAnC,KAAyCJ,IAAI,CAACG,MAAL,CAAY,CAAZ,CAAtD;AACA,MAAIE,OAAO,GAAGL,IAAI,CAACG,MAAL,CAAY,IAAID,MAAM,CAACpG,MAAvB,CAAd;;AACA,MAAI+F,GAAG,IAAI,EAAX,EAAe;AAAE;AACbS,IAAAA,MAAM,CAACN,IAAD,CAAN;AACH;;AACD,MAAIH,GAAG,IAAI,CAAX,EAAc;AAAE;AACZzB,IAAAA,CAAC,CAACmC,cAAF;AACAnC,IAAAA,CAAC,CAACoC,eAAF;;AACA,QAAIR,IAAI,CAAC,CAAD,CAAJ,KAAY,GAAhB,EAAqB;AACjB,cAAQE,MAAR;AACI,aAAK,GAAL;AACI,cAAIO,SAAS,GAAG,CAAC,eAAD,EAAkB,aAAlB,EAAiC,QAAjC,CAAhB;;AACA,cAAI,CAACJ,OAAD,IAAYT,KAAhB,EAAuB;AACnBA,YAAAA,KAAK,GAAG,IAAR;AACA,gBAAID,MAAM,GAAGc,SAAS,CAAC3G,MAAV,GAAmB,CAAhC,EAAmC6F,MAAM,GAAG,CAAT;AACnCjE,YAAAA,QAAQ,CAACC,cAAT,CAAwB,UAAxB,EAAoC6D,KAApC,GAA4C,QAAQiB,SAAS,CAACd,MAAM,EAAP,CAA7D;AACA;AACH;;AACD,eAAK,IAAIe,QAAT,IAAqBD,SAArB,EAAgC;AAC5B,gBAAIJ,OAAO,KAAKK,QAAQ,CAACP,MAAT,CAAgB,CAAhB,EAAmBE,OAAO,CAACvG,MAA3B,CAAhB,EAAoD;AAChD4B,cAAAA,QAAQ,CAACC,cAAT,CAAwB,UAAxB,EAAoC6D,KAApC,GAA4C,QAAQkB,QAApD;AACA;AACH;AACJ;;AACD;AAfR;AAiBH;AACJ;;AACD,MAAGb,GAAG,IAAI,EAAV,EAAa;AAAE;AACjBc,IAAAA,WAAW,CAACX,IAAD,CAAX;AACG;;AACDL,EAAAA,MAAM,GAAG,CAAT;AACAC,EAAAA,KAAK,GAAG,KAAR;AACAe,EAAAA,WAAW,CAACX,IAAD,CAAX;AACD;;AAED,SAASW,WAAT,CAAqBX,IAArB,EAA2B;AACzB,MAAIE,MAAM,GAAGF,IAAI,CAACG,MAAL,CAAY,CAAZ,EAAeH,IAAI,CAACI,OAAL,CAAa,GAAb,IAAoB,CAAnC,KAAyCJ,IAAI,CAACG,MAAL,CAAY,CAAZ,CAAtD;;AACA,MAAIH,IAAI,CAAC,CAAD,CAAJ,KAAY,GAAhB,EAAqB;AACvB;AACU,YAAQE,MAAR;AACI,WAAK,IAAL;AACIxE,QAAAA,QAAQ,CAACC,cAAT,CAAwB,YAAxB,EAAsC4C,SAAtC,GAAkD,iBAAlD;AACA;;AAChB,WAAK,GAAL;AACI7C,QAAAA,QAAQ,CAACC,cAAT,CAAwB,YAAxB,EAAsC4C,SAAtC,GAAkD,qBAAlD;AACA;;AACJ,WAAK,IAAL;AACI7C,QAAAA,QAAQ,CAACC,cAAT,CAAwB,YAAxB,EAAsC4C,SAAtC,GAAkD,gBAAlD;AACA;;AACJ,WAAK,GAAL;AACI7C,QAAAA,QAAQ,CAACC,cAAT,CAAwB,YAAxB,EAAsC4C,SAAtC,GAAkD,aAAlD;AACA;;AACJ,WAAK,GAAL;AACI7C,QAAAA,QAAQ,CAACC,cAAT,CAAwB,YAAxB,EAAsC4C,SAAtC,GAAkD,mBAAlD;AACA;;AACJ,WAAK,GAAL;AACI7C,QAAAA,QAAQ,CAACC,cAAT,CAAwB,YAAxB,EAAsC4C,SAAtC,GAAkD,eAAlD;AACA;;AACJ,WAAK,GAAL;AACI7C,QAAAA,QAAQ,CAACC,cAAT,CAAwB,YAAxB,EAAsC4C,SAAtC,GAAkD,cAAlD;AACA;;AACJ,WAAK,IAAL;AACI7C,QAAAA,QAAQ,CAACC,cAAT,CAAwB,YAAxB,EAAsC4C,SAAtC,GAAkD,mBAAlD;AACA;;AACJ,WAAK,GAAL;AACI7C,QAAAA,QAAQ,CAACC,cAAT,CAAwB,YAAxB,EAAsC4C,SAAtC,GAAkD,gBAAlD;AACA;;AACJ,WAAK,IAAL;AACI7C,QAAAA,QAAQ,CAACC,cAAT,CAAwB,YAAxB,EAAsC4C,SAAtC,GAAkD,gBAAlD;AACA;;AACJ,WAAK,GAAL;AACI7C,QAAAA,QAAQ,CAACC,cAAT,CAAwB,YAAxB,EAAsC4C,SAAtC,GAAkD,cAAlD;AACA;;AACJ,WAAK,GAAL;AACI7C,QAAAA,QAAQ,CAACC,cAAT,CAAwB,YAAxB,EAAsC4C,SAAtC,GAAkD,gBAAlD;AACA;;AACJ,WAAK,GAAL;AACI7C,QAAAA,QAAQ,CAACC,cAAT,CAAwB,YAAxB,EAAsC4C,SAAtC,GAAkD,kBAAlD;AACA;;AACJ,WAAK,GAAL;AACI7C,QAAAA,QAAQ,CAACC,cAAT,CAAwB,YAAxB,EAAsC4C,SAAtC,GAAkD,aAAlD;AACA;;AACJ,WAAK,IAAL;AACI7C,QAAAA,QAAQ,CAACC,cAAT,CAAwB,YAAxB,EAAsC4C,SAAtC,GAAkD,wBAAlD;AACA;;AACJ;AACI7C,QAAAA,QAAQ,CAACC,cAAT,CAAwB,YAAxB,EAAsC4C,SAAtC,GAAkD,gBAAlD;AACA;AAhDI;AAkDT,GApDC,MAoDI;AACJ7C,IAAAA,QAAQ,CAACC,cAAT,CAAwB,YAAxB,EAAsC4C,SAAtC,GAAkD,eAAlD;AACC;AACF;;AAED,SAAS+B,MAAT,CAAgBN,IAAhB,EAAsB;AACpB,MAAIE,MAAM,GAAGF,IAAI,CAACG,MAAL,CAAY,CAAZ,EAAeH,IAAI,CAACI,OAAL,CAAa,GAAb,IAAoB,CAAnC,KAAyCJ,IAAI,CAACG,MAAL,CAAY,CAAZ,CAAtD;AACA,MAAIE,OAAO,GAAGL,IAAI,CAACG,MAAL,CAAY,IAAID,MAAM,CAACpG,MAAvB,CAAd;;AACA,MAAIkG,IAAI,CAAC,CAAD,CAAJ,KAAY,GAAhB,EAAqB;AACjB,QAAIA,IAAI,CAACI,OAAL,CAAa,GAAb,IAAoB,CAAC,CAAzB,EAA4B;AACxB,cAAQF,MAAR;AACI,aAAK,IAAL;AACIU,UAAAA,MAAM,CAACC,QAAP,GAAkB,yCAAyCR,OAA3D;AACA;;AACJ,aAAK,GAAL;AACIO,UAAAA,MAAM,CAACC,QAAP,GAAkB,+BAA+BR,OAAjD;AACA;;AACJ,aAAK,IAAL;AACIO,UAAAA,MAAM,CAACC,QAAP,GAAkB,uCAAuCR,OAAzD;AACA;;AACJ,aAAK,GAAL;AACIO,UAAAA,MAAM,CAACC,QAAP,GAAkB,iCAAiCR,OAAnD;AACA;;AACJ,aAAK,GAAL;AACIO,UAAAA,MAAM,CAACC,QAAP,GAAkB,6CAA6CR,OAA/D;AACA;;AACJ,aAAK,GAAL;AACIO,UAAAA,MAAM,CAACC,QAAP,GAAkB,qCAAqCR,OAAvD;AACA;;AACJ,aAAK,GAAL;AACIO,UAAAA,MAAM,CAACC,QAAP,GAAkB,8BAA8BR,OAAhD;AACA;;AACJ,aAAK,IAAL;AACIO,UAAAA,MAAM,CAACC,QAAP,GAAkB,qCAAqCR,OAAvD;AACA;;AACJ,aAAK,GAAL;AACIO,UAAAA,MAAM,CAACC,QAAP,GAAkB,6CAA6CR,OAA/D;AACA;;AACJ,aAAK,GAAL;AACIO,UAAAA,MAAM,CAACC,QAAP,GAAkB,mCAAmCR,OAArD;AACA;;AACJ,aAAK,IAAL;AACIO,UAAAA,MAAM,CAACC,QAAP,GAAkB,0CAA0CR,OAA5D;AACA;;AACJ,aAAK,GAAL;AACIO,UAAAA,MAAM,CAACC,QAAP,GAAkB,kDAAkDR,OAApE;AACA;;AACJ,aAAK,GAAL;AACIO,UAAAA,MAAM,CAACC,QAAP,GAAkB,iDAAiDR,OAAnE;AACA;;AACJ,aAAK,GAAL;AACIO,UAAAA,MAAM,CAACC,QAAP,GAAkB,iDAAiDR,OAAnE;AACA;;AACJ,aAAK,IAAL;AACIO,UAAAA,MAAM,CAACC,QAAP,GAAkB,kDAAkDR,OAApE;AACA;AA7CR;AA+CH,KAhDD,MAgDO;AACH,UAAIH,MAAM,GAAGF,IAAI,CAACG,MAAL,CAAY,CAAZ,CAAb;;AACA,cAAQD,MAAR;AACI,aAAK,GAAL;AACIU,UAAAA,MAAM,CAACC,QAAP,GAAkB,4BAAlB;AACA;;AACJ,aAAK,GAAL;AACID,UAAAA,MAAM,CAACC,QAAP,GAAkB,yBAAlB;AACA;;AACJ,aAAK,GAAL;AACID,UAAAA,MAAM,CAACC,QAAP,GAAkB,oBAAlB;AACA;;AACJ,aAAK,GAAL;AACID,UAAAA,MAAM,CAACC,QAAP,GAAkB,0BAAlB;AACA;AAZR;AAcH;AACJ,GAlED,MAkEO,IAAIC,QAAQ,CAACd,IAAD,CAAZ,EAAoB;AACvB,QAAIe,gBAAgB,CAACf,IAAD,CAApB,EACIY,MAAM,CAACC,QAAP,GAAkBb,IAAlB,CADJ,KAGIY,MAAM,CAACC,QAAP,GAAkB,aAAab,IAA/B;AACP,GALM,MAKA;AACHY,IAAAA,MAAM,CAACC,QAAP,GAAkB,qCAAqCb,IAAvD;AACH;AACF,C,CAED;;;AACA,SAASc,QAAT,CAAkBE,GAAlB,EAAuB;AACrB,MAAIC,OAAO,GAAG,IAAIC,MAAJ,CAAW,sBAAsB;AAC3C,oDADqB,GACgC;AACrD,+BAFqB,GAEW;AAChC,mCAHqB,GAGe;AACpC,4BAJqB,GAIQ;AAC7B,sBALU,EAKY,GALZ,CAAd,CADqB,CAMW;;AAChC,SAAO,CAAC,CAACD,OAAO,CAACE,IAAR,CAAaH,GAAb,CAAT;AACD;;AAED,SAASD,gBAAT,CAA0BC,GAA1B,EAA+B;AAC7B,MAAIC,OAAO,GAAG,IAAIC,MAAJ,CAAW,uBAAX,EAAoC,GAApC,CAAd;AACA,SAAO,CAAC,CAACD,OAAO,CAACE,IAAR,CAAaH,GAAb,CAAT;AACD;;AAEDI,MAAM,CAACC,SAAP,CAAiBpB,UAAjB,GAA8B,UAASK,MAAT,EAAiBgB,WAAjB,EAA8B;AAC1D,MAAIhD,MAAM,GAAG,IAAb;AACA,SAAOA,MAAM,CAACiD,KAAP,CAAajB,MAAb,EAAqBkB,IAArB,CAA0BF,WAA1B,CAAP;AACD,CAHD","sourcesContent":["import React from 'react';\nimport { useState, useEffect } from 'react';\nimport ReactDOM from 'react-dom';\n//import { unstable_createPortal } from 'react-dom';\nimport './index.css';\n\nfunction Homepage() {\n return (\n \n \n \n
\n \n \n
\n \n \n \n
\n \n \n
\n \n \n
\n \n );\n}\n\nfunction Search() {\n return (\n \n )\n}\n\nfunction Header(props) {\n return (\n \n );\n}\n\nfunction Applications() {\n let appList = getApps();\n var items = [];\n for (var i = 0; i < appList.apps.length; i++) {\n items.push(\n \n );\n }\n return (\n \n Applications
\n \n {items}\n
\n \n );\n}\n\nfunction App(props) {\n let classNameType = props.NSFW + \"-content\";\n let hrefUrl = \"https://\" + props.url;\n let iconName = \"mdi-\" + props.icon;\n return (\n \n );\n}\n\nfunction Bookmarks() {\n let bookmarkList = getLinks();\n var items = [];\n for (var i = 0; i < bookmarkList.bookmarks.length; i++) {\n items.push(\n \n );\n }\n return (\n \n Bookmarks
\n \n {items}\n
\n \n );\n}\n\nfunction LinkGroups(props) {\n var items = [];\n for (var i = 0; i < props.links.length; i++) {\n items.push(\n \n );\n }\n return (\n \n
{props.category}
\n {items}\n \n );\n}\n\nfunction LinkItem(props) {\n return (\n \n );\n}\n\nfunction ModalMenu() {\n var providers = getProviders();\n var items = [];\n for (var i = 0; i < providers.providers.length; i++) {\n items.push(\n \n );\n }\n return (\n \n \n \n\n
Color themes
\n\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n\n\n
Search options
\n
\n \n \n \n | Website | \n Prefix | \n
\n {items}\n \n
\n \n\n \n
\n \n );\n}\n\nfunction Provider(props) {\n return (\n \n | {props.provider.name} | \n {props.provider.prefix} | \n
\n );\n}\n\nfunction ModalInit() {\n return (\n \n );\n}\n\nReactDOM.render(\n ,\n document.getElementById('root')\n);\n\n//Functions below this line are for calculating data for\n//other functions\n\nfunction date() {\n let currentDate = new Date();\n let dateOptions = {\n weekday: \"long\",\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\"\n };\n let date = currentDate.toLocaleDateString(\"en-GB\", dateOptions);\n return date;\n}\nfunction fixDigits(k) {\n if (k < 10) {\n return \"0\" + k;\n }\n else {\n return k;\n }\n}\nfunction greet() {\n let currentTime = new Date();\n let greet = Math.floor(currentTime.getHours() / 6);\n let easterEggChance = Math.floor(Math.random() * 100);\n let greetings = require('./messages.json');\n let timeBased = [];\n let easterEggs = [];\n for (var i = 0; i < greetings.messages.length; i++) {\n if (greetings.messages[i].easteregg === \"FALSE\") {\n timeBased = timeBased.concat(greetings.messages[i]);\n } else {\n easterEggs = easterEggs.concat(greetings.messages[i]);\n }\n }\n if (easterEggChance > 10) {\n return timeBased[greet].message;\n } else {\n let easterEggText = Math.floor(Math.random() * easterEggs.length);\n return easterEggs[easterEggText].message;\n }\n}\nfunction Clock() {\n const [date, setDate] = useState(new Date());\n\n function refreshClock() {\n setDate(new Date());\n }\n useEffect(() => {\n const timerId = setInterval(refreshClock, 1000);\n return function cleanup() {\n clearInterval(timerId);\n };\n }, []);\n\n var hour = date.getHours();\n var minutes = date.getMinutes();\n //var seconds = date.getSeconds();\n var midday = \"AM\";\n midday = (hour >= 12) ? \"PM\" : \"AM\";\n hour = (hour === 0) ? 12 : ((hour > 12) ? (hour - 12) : hour);\n minutes = fixDigits(minutes);\n //seconds = fixDigits(seconds);\n let time = hour + \":\" + minutes + \" \" + midday;\n\n return (\n {time}
\n\n );\n}\nfunction getApps() {\n let applications = require('./apps.json');\n return applications;\n}\nfunction getLinks() {\n let links = require('./links.json');\n return links;\n}\nfunction getProviders() {\n let providers = require('./providers.json');\n return providers;\n}\nfunction getThemes() {\n let themes = require('./themes.json');\n return themes;\n}\n\nfunction updateTheme(e) {\n var themes = getThemes();\n var themeName = e.target.innerHTML.toLowerCase();\n var index = themes.themes.findIndex(function(item, i){\n return item.name === themeName\n });\n console.log(themes.themes[index]);\n localStorage.setItem(\"image-background\", themes.themes[index].imagebackground);\n localStorage.setItem(\"color-background\", themes.themes[index].colorbackground);\n localStorage.setItem(\"color-search-background\", themes.themes[index].colorserachbackground);\n localStorage.setItem(\"color-text-pri\",themes.themes[index].colortextpri);\n localStorage.setItem(\"color-text-acc\", themes.themes[index].colortextacc);\n localStorage.setItem(\"color-border\", themes.themes[index].colorborder);\n\n const setValueFromLocalStorage = property => {\n let value = localStorage.getItem(property);\n setValue(property, value);\n };\n\n\n setValueFromLocalStorage('image-background');\n setValueFromLocalStorage('color-background');\n setValueFromLocalStorage('color-search-background');\n setValueFromLocalStorage('color-text-pri');\n setValueFromLocalStorage('color-text-acc');\n setValueFromLocalStorage('color-border');\n setValueFromLocalStorage('content-display');\n}\n\nfunction handleKeyPress(e) {\n var sindex = 0;\n var cycle = false;\n var key = e.keyCode || e.which;\n var text = e.target.value.replaceAll(\"+\", \"%2B\");\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n if (key == 13) { // Search functions\n search(text);\n }\n if (key == 9) { // Tab Completion Functions\n e.preventDefault();\n e.stopPropagation();\n if (text[0] === ';') {\n switch (option) {\n case 't':\n var streamers = ['admiralbahroo', 'moonmoon_ow', 'witwix'];\n if (!subtext || cycle) {\n cycle = true;\n if (sindex > streamers.length - 1) sindex = 0;\n document.getElementById(\"keywords\").value = ';t ' + streamers[sindex++];\n return;\n }\n for (var streamer of streamers) {\n if (subtext === streamer.substr(0, subtext.length)) {\n document.getElementById(\"keywords\").value = ';t ' + streamer;\n return;\n }\n }\n break;\n }\n }\n }\n if(key == 32){ //Space to go to search\nupdateLabel(text);\n }\n sindex = 0;\n cycle = false;\n updateLabel(text);\n}\n\nfunction updateLabel(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n if (text[0] === '/') {\n// if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n document.getElementById(\"searchType\").innerHTML = \"Allmusic search\";\n break;\n case \"d\":\n document.getElementById(\"searchType\").innerHTML = \"Duck Duck Go search\";\n break;\n case \"di\":\n document.getElementById(\"searchType\").innerHTML = \"Discogs search\";\n break;\n case \"i\":\n document.getElementById(\"searchType\").innerHTML = \"IMDB search\";\n break;\n case \"m\":\n document.getElementById(\"searchType\").innerHTML = \"TheMovieDB search\";\n break;\n case \"r\":\n document.getElementById(\"searchType\").innerHTML = \"Reddit search\";\n break;\n case \"q\":\n document.getElementById(\"searchType\").innerHTML = \"Qwant search\";\n break;\n case \"so\":\n document.getElementById(\"searchType\").innerHTML = \"Soundcloud search\";\n break;\n case \"s\":\n document.getElementById(\"searchType\").innerHTML = \"Spotify search\";\n break;\n case \"tv\":\n document.getElementById(\"searchType\").innerHTML = \"TheTVDB search\";\n break;\n case \"t\":\n document.getElementById(\"searchType\").innerHTML = \"Trakt search\";\n break;\n case \"y\":\n document.getElementById(\"searchType\").innerHTML = \"YouTube search\";\n break;\n case \"w\":\n document.getElementById(\"searchType\").innerHTML = \"Wikipedia search\";\n break;\n case \"p\":\n document.getElementById(\"searchType\").innerHTML = \"Plex search\";\n break;\n case \"rt\":\n document.getElementById(\"searchType\").innerHTML = \"Rotten Tomatoes search\";\n break;\n default:\n document.getElementById(\"searchType\").innerHTML = \"Invalid search\";\n break;\n }\n}else {\n document.getElementById(\"searchType\").innerHTML = \"Google search\";\n }\n}\n\nfunction search(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n if (text[0] === '/') {\n if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n window.location = \"https://www.allmusic.com/search/all/\" + subtext;\n break;\n case \"d\":\n window.location = \"https://duckduckgo.com/?q=\" + subtext;\n break;\n case \"di\":\n window.location = \"https://www.discogs.com/search/?q=\" + subtext;\n break;\n case \"i\":\n window.location = \"https://www.imdb.com/find?q=\" + subtext;\n break;\n case \"m\":\n window.location = \"https://www.themoviedb.org/search?query=\" + subtext;\n break;\n case \"r\":\n window.location = \"https://www.reddit.com/search?q=\" + subtext;\n break;\n case \"q\":\n window.location = \"https://www.qwant.com/?q=\" + subtext;\n break;\n case \"so\":\n window.location = \"https://soundcloud.com/search?q=\" + subtext;\n break;\n case \"s\":\n window.location = \"https://open.spotify.com/search/results/\" + subtext;\n break;\n case \"t\":\n window.location = \"https://trakt.tv/search?query=\" + subtext;\n break;\n case \"tv\":\n window.location = \"https://www.thetvdb.com/search?query=\" + subtext;\n break;\n case \"y\":\n window.location = \"https://www.youtube.com/results?search_query=\" + subtext;\n break;\n case \"w\":\n window.location = \"https://en.wikipedia.org/w/index.php?search=\" + subtext;\n break;\n case \"p\":\n window.location = \"https://app.plex.tv/desktop/#!/search?query=\" + subtext;\n break;\n case \"rt\":\n window.location = \"https://www.rottentomatoes.com/search?search=\" + subtext;\n break;\n }\n } else {\n var option = text.substr(1);\n switch (option) {\n case \"d\":\n window.location = \"https://www.duckduckgo.com\";\n break;\n case \"y\":\n window.location = \"https://www.youtube.com\";\n break;\n case \"r\":\n window.location = \"https://reddit.com\";\n break;\n case \"s\":\n window.location = \"https://open.spotify.com\";\n break;\n }\n }\n } else if (validURL(text)) {\n if (containsProtocol(text))\n window.location = text;\n else\n window.location = \"https://\" + text;\n } else {\n window.location = \"https://www.google.com/search?q=\" + text;\n }\n}\n\n// Source: https://stackoverflow.com/questions/5717093/check-if-a-javascript-string-is-a-url\nfunction validURL(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/)?' + // protocol\n '((([a-z\\\\d]([a-z\\\\d-]*[a-z\\\\d])*)\\\\.)+[a-z]{2,}|' + // domain name\n '((\\\\d{1,3}\\\\.){3}\\\\d{1,3}))' + // OR ip (v4) address\n '(\\\\:\\\\d+)?(\\\\/[-a-z\\\\d%_.~+]*)*' + // port and path\n '(\\\\?[;&a-z\\\\d%_.~+=-]*)?' + // query string\n '(\\\\#[-a-z\\\\d_]*)?$', 'i'); // fragment locator\n return !!pattern.test(str);\n}\n\nfunction containsProtocol(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/){1}.*', 'i');\n return !!pattern.test(str);\n}\n\nString.prototype.replaceAll = function(search, replacement) {\n var target = this;\n return target.split(search).join(replacement);\n};"]},"metadata":{},"sourceType":"module"}
\ No newline at end of file
diff --git a/node_modules/.cache/babel-loader/36817ce2d71ed5e39dff1cba7570cb60.json b/node_modules/.cache/babel-loader/36817ce2d71ed5e39dff1cba7570cb60.json
new file mode 100644
index 00000000..373b9146
--- /dev/null
+++ b/node_modules/.cache/babel-loader/36817ce2d71ed5e39dff1cba7570cb60.json
@@ -0,0 +1 @@
+{"ast":null,"code":"var _jsxFileName = \"/home/seanedmunds/dev/home-page/src/index.js\",\n _s = $RefreshSig$();\n\nimport React from 'react';\nimport { useState, useEffect } from 'react';\nimport ReactDOM from 'react-dom';\nimport './index.css';\nimport { jsxDEV as _jsxDEV } from \"react/jsx-dev-runtime\";\n\nconst setValueFromLocalStorage = property => {\n let value = localStorage.getItem(property);\n setValue(property, value);\n};\n\nconst setValue = (property, value) => {\n if (value) {\n document.documentElement.style.setProperty(`--${property}`, value);\n const input = document.querySelector(`#${property}`);\n\n if (input) {\n value = value.replace('px', '');\n input.value = value;\n }\n }\n};\n\nfunction Homepage() {\n setTheme();\n return /*#__PURE__*/_jsxDEV(\"main\", {\n id: \"container\",\n className: \"fade\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Search, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 28,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 27,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Header, {\n date: date(),\n greet: greet()\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 31,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 30,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Applications, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 37,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 36,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Bookmarks, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 40,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 39,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(ModalMenu, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 43,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 42,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(ModalInit, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 46,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 45,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 26,\n columnNumber: 5\n }, this);\n}\n\n_c = Homepage;\n\nfunction Search() {\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"search\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"abackground\",\n children: [/*#__PURE__*/_jsxDEV(\"input\", {\n name: \"keywords\",\n type: \"text\",\n className: \"keyword\",\n id: \"keywords\",\n size: \"50\",\n spellCheck: \"true\",\n placeholder: \"\"\n /*onFocus={this.placeholder = \"\"} onBlur={this.placeholder = ''}*/\n ,\n autoComplete: \"off\",\n autoFocus: true,\n onKeyUp: handleKeyPress\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 56,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n id: \"searchType\",\n className: \"Input-label\",\n children: \"Google search\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 57,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 55,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 54,\n columnNumber: 5\n }, this);\n}\n\n_c2 = Search;\n\nfunction Header(props) {\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"header\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n id: \"greeting_block\",\n children: /*#__PURE__*/_jsxDEV(\"h1\", {\n id: \"header_greet\",\n children: props.greet\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 67,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 66,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"date_block\",\n children: [/*#__PURE__*/_jsxDEV(\"h2\", {\n id: \"header_date\",\n children: props.date\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 70,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(Clock, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 71,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 69,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 65,\n columnNumber: 5\n }, this);\n}\n\n_c3 = Header;\n\nfunction Applications() {\n let appList = getApps();\n var items = [];\n\n for (var i = 0; i < appList.apps.length; i++) {\n var safe = appList.apps[i].NSFW;\n var NSFWEnabled = localStorage.getItem(\"contenttype\");\n\n if (safe === \"SAFE\") {\n items.push( /*#__PURE__*/_jsxDEV(App, {\n name: appList.apps[i].name,\n url: appList.apps[i].url,\n icon: appList.apps[i].icon,\n NSFW: appList.apps[i].NSFW\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 85,\n columnNumber: 9\n }, this));\n } else if (safe === \"NSFW\" && NSFWEnabled) {\n items.push( /*#__PURE__*/_jsxDEV(App, {\n name: appList.apps[i].name,\n url: appList.apps[i].url,\n icon: appList.apps[i].icon,\n NSFW: appList.apps[i].NSFW\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 95,\n columnNumber: 9\n }, this));\n } else {}\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"apps\",\n children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n children: \"Applications\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 110,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"apps_loop\",\n children: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 111,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 109,\n columnNumber: 5\n }, this);\n}\n\n_c4 = Applications;\n\nfunction App(props) {\n let classNameType = props.NSFW + \"-content\";\n let hrefUrl = \"https://\" + props.url;\n let iconName = \"mdi-\" + props.icon;\n return /*#__PURE__*/_jsxDEV(\"div\", {\n className: classNameType,\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: hrefUrl,\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_item\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_icon\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify icon\",\n \"data-icon\": iconName\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 128,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 127,\n columnNumber: 13\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_text\",\n children: [/*#__PURE__*/_jsxDEV(\"span\", {\n id: \"app-name\",\n children: props.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 131,\n columnNumber: 15\n }, this), /*#__PURE__*/_jsxDEV(\"span\", {\n id: \"app-address\",\n children: props.url\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 132,\n columnNumber: 15\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 130,\n columnNumber: 13\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 126,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 125,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 124,\n columnNumber: 7\n }, this);\n}\n\n_c5 = App;\n\nfunction Bookmarks() {\n let bookmarkList = getLinks();\n var items = [];\n\n for (var i = 0; i < bookmarkList.bookmarks.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(LinkGroups, {\n category: bookmarkList.bookmarks[i].category,\n links: bookmarkList.bookmarks[i].links\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 145,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"links\",\n children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n children: \"Bookmarks\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 154,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"links_loop\",\n children: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 155,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 153,\n columnNumber: 5\n }, this);\n}\n\n_c6 = Bookmarks;\n\nfunction LinkGroups(props) {\n var items = [];\n\n for (var i = 0; i < props.links.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(LinkItem, {\n link: props.links[i]\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 166,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"links_item\",\n children: [/*#__PURE__*/_jsxDEV(\"h4\", {\n children: props.category\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 174,\n columnNumber: 7\n }, this), items]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 173,\n columnNumber: 5\n }, this);\n}\n\n_c7 = LinkGroups;\n\nfunction LinkItem(props) {\n return /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: props.link.url,\n className: \"theme_color-border theme_text-select\",\n children: props.link.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 183,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 182,\n columnNumber: 5\n }, this);\n}\n\n_c8 = LinkItem;\n\nfunction ModalMenu() {\n var providers = getProviders();\n var items = [];\n var isChecked = localStorage.getItem(\"contenttype\");\n\n for (var i = 0; i < providers.providers.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(Provider, {\n provider: providers.providers[i]\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 194,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"modal\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n children: [/*#__PURE__*/_jsxDEV(\"header\", {\n id: \"modal-header\",\n children: [/*#__PURE__*/_jsxDEV(\"h1\", {\n children: \"Options\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 204,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n href: \"#\",\n title: \"Close\",\n className: \"modal-close\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-close\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 206,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 205,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 203,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"h2\", {\n children: \"Color themes\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 210,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"modal-theme\",\n children: [/*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"blackboard\",\n className: \"theme-button theme-blackboard\",\n onClick: updateTheme,\n children: \"Blackboard\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 213,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"gazette\",\n className: \"theme-button theme-gazette\",\n onClick: updateTheme,\n children: \"Gazette\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 214,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"espresso\",\n className: \"theme-button theme-espresso\",\n onClick: updateTheme,\n children: \"Espresso\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 215,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cab\",\n className: \"theme-button theme-cab\",\n onClick: updateTheme,\n children: \"Cab\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 216,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cloud\",\n className: \"theme-button theme-cloud\",\n onClick: updateTheme,\n children: \"Cloud\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 217,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"lime\",\n className: \"theme-button theme-lime\",\n onClick: updateTheme,\n children: \"Lime\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 218,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"passion\",\n className: \"theme-button theme-passion\",\n onClick: updateTheme,\n children: \"Passion\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 219,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"blues\",\n className: \"theme-button theme-blues\",\n onClick: updateTheme,\n children: \"Blues\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 220,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"chalk\",\n className: \"theme-button theme-chalk\",\n onClick: updateTheme,\n children: \"Chalk\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 221,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"tron\",\n className: \"theme-button theme-tron\",\n onClick: updateTheme,\n children: \"Tron\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 222,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"paper\",\n className: \"theme-button theme-paper\",\n onClick: updateTheme,\n children: \"Paper\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 223,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cyberpunk\",\n className: \"theme-button theme-cyberpunk\",\n onClick: updateTheme,\n children: \"Cyberpunk\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 224,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"quadra\",\n className: \"theme-button theme-panam\",\n onClick: updateTheme,\n children: \"Quadra\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 225,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"panam\",\n className: \"theme-button theme-panam\",\n onClick: updateTheme,\n children: \"Panam\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 226,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"touch\",\n className: \"theme-button theme-touch\",\n onClick: updateTheme,\n children: \"Touch\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 227,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"peek\",\n className: \"theme-button theme-peek\",\n onClick: updateTheme,\n children: \"Peek\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 228,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 212,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"h2\", {\n children: \"Search options\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 232,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"providers\",\n children: /*#__PURE__*/_jsxDEV(\"table\", {\n children: /*#__PURE__*/_jsxDEV(\"tbody\", {\n children: [/*#__PURE__*/_jsxDEV(\"tr\", {\n children: [/*#__PURE__*/_jsxDEV(\"th\", {\n children: \"Website\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 237,\n columnNumber: 19\n }, this), /*#__PURE__*/_jsxDEV(\"th\", {\n children: \"Prefix\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 238,\n columnNumber: 19\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 236,\n columnNumber: 17\n }, this), items]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 235,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 234,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 233,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"header\", {\n id: \"modal-footer\",\n children: [/*#__PURE__*/_jsxDEV(\"a\", {\n href: \"https://github.com/jeroenpardon/\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-github-box\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 246,\n columnNumber: 54\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 246,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n href: \"https://materialdesignicons.com/\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-material-design\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 247,\n columnNumber: 54\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 247,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(HideButton, {\n checked: isChecked\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 248,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 245,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 202,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 201,\n columnNumber: 5\n }, this);\n}\n\n_c9 = ModalMenu;\n\nfunction HideButton(props) {\n return /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"sneaky\",\n children: [/*#__PURE__*/_jsxDEV(\"input\", {\n type: \"checkbox\",\n id: \"contenttype\",\n onClick: udpateDisplayedItems\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 260,\n columnNumber: 29\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n for: \"contenttype\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-domino-mask\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 261,\n columnNumber: 30\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 261,\n columnNumber: 5\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 260,\n columnNumber: 5\n }, this);\n}\n\n_c10 = HideButton;\n\nfunction Provider(props) {\n return /*#__PURE__*/_jsxDEV(\"tr\", {\n children: [/*#__PURE__*/_jsxDEV(\"td\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: props.provider.url,\n children: props.provider.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 268,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 268,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"td\", {\n children: props.provider.prefix\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 269,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 267,\n columnNumber: 5\n }, this);\n}\n\n_c11 = Provider;\n\nfunction ModalInit() {\n setDisplayedItems();\n return /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"modal_init\",\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n className: \"btn\",\n href: \"#modal\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify icon\",\n \"data-icon\": \"mdi-xbox-controller-menu\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 279,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 278,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 277,\n columnNumber: 5\n }, this);\n}\n\n_c12 = ModalInit;\nReactDOM.render( /*#__PURE__*/_jsxDEV(Homepage, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 286,\n columnNumber: 3\n}, this), document.getElementById('root')); //Functions below this line are for calculating data for\n//other functions\n\nfunction date() {\n let currentDate = new Date();\n let dateOptions = {\n weekday: \"long\",\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\"\n };\n let date = currentDate.toLocaleDateString(\"en-GB\", dateOptions);\n return date;\n}\n\nfunction fixDigits(k) {\n if (k < 10) {\n return \"0\" + k;\n } else {\n return k;\n }\n}\n\nfunction greet() {\n let currentTime = new Date();\n let greet = Math.floor(currentTime.getHours() / 6);\n let easterEggChance = Math.floor(Math.random() * 100);\n\n let greetings = require('./messages.json');\n\n let timeBased = [];\n let easterEggs = [];\n\n for (var i = 0; i < greetings.messages.length; i++) {\n if (greetings.messages[i].easteregg === \"FALSE\") {\n timeBased = timeBased.concat(greetings.messages[i]);\n } else {\n easterEggs = easterEggs.concat(greetings.messages[i]);\n }\n }\n\n if (easterEggChance > 10) {\n return timeBased[greet].message;\n } else {\n let easterEggText = Math.floor(Math.random() * easterEggs.length);\n return easterEggs[easterEggText].message;\n }\n}\n\nfunction Clock() {\n _s();\n\n const [date, setDate] = useState(new Date());\n\n function refreshClock() {\n setDate(new Date());\n }\n\n useEffect(() => {\n const timerId = setInterval(refreshClock, 1000);\n return function cleanup() {\n clearInterval(timerId);\n };\n }, []);\n var hour = date.getHours();\n var minutes = date.getMinutes(); //var seconds = date.getSeconds();\n\n var midday = \"AM\";\n midday = hour >= 12 ? \"PM\" : \"AM\";\n hour = hour === 0 ? 12 : hour > 12 ? hour - 12 : hour;\n minutes = fixDigits(minutes); //seconds = fixDigits(seconds);\n\n let time = hour + \":\" + minutes + \" \" + midday;\n return /*#__PURE__*/_jsxDEV(\"h2\", {\n id: \"clock\",\n children: time\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 357,\n columnNumber: 5\n }, this);\n}\n\n_s(Clock, \"Gqi45WOZhU2c0BLYX0HoJeiR0fk=\");\n\n_c13 = Clock;\n\nfunction getApps() {\n let applications = require('./apps.json');\n\n return applications;\n}\n\nfunction getLinks() {\n let links = require('./links.json');\n\n return links;\n}\n\nfunction getProviders() {\n let providers = require('./providers.json');\n\n return providers;\n}\n\nfunction getThemes() {\n let themes = require('./themes.json');\n\n return themes;\n}\n\nfunction updateTheme(e) {\n var themes = getThemes();\n var themeName = e.target.innerHTML.toLowerCase();\n var index = themes.themes.findIndex(function (item, i) {\n return item.name === themeName;\n });\n localStorage.setItem(\"image-background\", themes.themes[index].imagebackground);\n localStorage.setItem(\"color-background\", themes.themes[index].colorbackground);\n localStorage.setItem(\"color-search-background\", themes.themes[index].colorserachbackground);\n localStorage.setItem(\"color-text-pri\", themes.themes[index].colortextpri);\n localStorage.setItem(\"color-text-acc\", themes.themes[index].colortextacc);\n localStorage.setItem(\"color-border\", themes.themes[index].colorborder); //document.documentElement.style.setProperty(prop, `var(--${themeName}${prop.substring(10)})`);\n\n setTheme();\n}\n\nfunction setTheme() {\n setValueFromLocalStorage('image-background');\n setValueFromLocalStorage('color-background');\n setValueFromLocalStorage('color-search-background');\n setValueFromLocalStorage('color-text-pri');\n setValueFromLocalStorage('color-text-acc');\n setValueFromLocalStorage('color-border');\n setValueFromLocalStorage('content-display');\n}\n\nfunction handleKeyPress(e) {\n var sindex = 0;\n var cycle = false;\n var key = e.keyCode || e.which;\n var text = e.target.value.replaceAll(\"+\", \"%2B\");\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n\n if (key == 13) {\n // Search functions\n search(text);\n }\n\n if (key == 9) {\n // Tab Completion Functions\n e.preventDefault();\n e.stopPropagation();\n\n if (text[0] === ';') {\n switch (option) {\n case 't':\n var streamers = ['admiralbahroo', 'moonmoon_ow', 'witwix'];\n\n if (!subtext || cycle) {\n cycle = true;\n if (sindex > streamers.length - 1) sindex = 0;\n document.getElementById(\"keywords\").value = ';t ' + streamers[sindex++];\n return;\n }\n\n for (var streamer of streamers) {\n if (subtext === streamer.substr(0, subtext.length)) {\n document.getElementById(\"keywords\").value = ';t ' + streamer;\n return;\n }\n }\n\n break;\n }\n }\n }\n\n if (key == 32) {\n //Space to go to search\n updateLabel(text);\n }\n\n sindex = 0;\n cycle = false;\n updateLabel(text);\n}\n\nfunction updateLabel(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n\n if (text[0] === '/') {\n // if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n document.getElementById(\"searchType\").innerHTML = \"Allmusic search\";\n break;\n\n case \"d\":\n document.getElementById(\"searchType\").innerHTML = \"Duck Duck Go search\";\n break;\n\n case \"di\":\n document.getElementById(\"searchType\").innerHTML = \"Discogs search\";\n break;\n\n case \"i\":\n document.getElementById(\"searchType\").innerHTML = \"IMDB search\";\n break;\n\n case \"m\":\n document.getElementById(\"searchType\").innerHTML = \"TheMovieDB search\";\n break;\n\n case \"r\":\n document.getElementById(\"searchType\").innerHTML = \"Reddit search\";\n break;\n\n case \"q\":\n document.getElementById(\"searchType\").innerHTML = \"Qwant search\";\n break;\n\n case \"so\":\n document.getElementById(\"searchType\").innerHTML = \"Soundcloud search\";\n break;\n\n case \"s\":\n document.getElementById(\"searchType\").innerHTML = \"Spotify search\";\n break;\n\n case \"tv\":\n document.getElementById(\"searchType\").innerHTML = \"TheTVDB search\";\n break;\n\n case \"t\":\n document.getElementById(\"searchType\").innerHTML = \"Trakt search\";\n break;\n\n case \"y\":\n document.getElementById(\"searchType\").innerHTML = \"YouTube search\";\n break;\n\n case \"w\":\n document.getElementById(\"searchType\").innerHTML = \"Wikipedia search\";\n break;\n\n case \"p\":\n document.getElementById(\"searchType\").innerHTML = \"Plex search\";\n break;\n\n case \"rt\":\n document.getElementById(\"searchType\").innerHTML = \"Rotten Tomatoes search\";\n break;\n\n default:\n document.getElementById(\"searchType\").innerHTML = \"Invalid search\";\n break;\n }\n } else {\n document.getElementById(\"searchType\").innerHTML = \"Google search\";\n }\n}\n\nfunction search(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n\n if (text[0] === '/') {\n if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n window.location = \"https://www.allmusic.com/search/all/\" + subtext;\n break;\n\n case \"d\":\n window.location = \"https://duckduckgo.com/?q=\" + subtext;\n break;\n\n case \"di\":\n window.location = \"https://www.discogs.com/search/?q=\" + subtext;\n break;\n\n case \"i\":\n window.location = \"https://www.imdb.com/find?q=\" + subtext;\n break;\n\n case \"m\":\n window.location = \"https://www.themoviedb.org/search?query=\" + subtext;\n break;\n\n case \"r\":\n window.location = \"https://www.reddit.com/search?q=\" + subtext;\n break;\n\n case \"q\":\n window.location = \"https://www.qwant.com/?q=\" + subtext;\n break;\n\n case \"so\":\n window.location = \"https://soundcloud.com/search?q=\" + subtext;\n break;\n\n case \"s\":\n window.location = \"https://open.spotify.com/search/results/\" + subtext;\n break;\n\n case \"t\":\n window.location = \"https://trakt.tv/search?query=\" + subtext;\n break;\n\n case \"tv\":\n window.location = \"https://www.thetvdb.com/search?query=\" + subtext;\n break;\n\n case \"y\":\n window.location = \"https://www.youtube.com/results?search_query=\" + subtext;\n break;\n\n case \"w\":\n window.location = \"https://en.wikipedia.org/w/index.php?search=\" + subtext;\n break;\n\n case \"p\":\n window.location = \"https://app.plex.tv/desktop/#!/search?query=\" + subtext;\n break;\n\n case \"rt\":\n window.location = \"https://www.rottentomatoes.com/search?search=\" + subtext;\n break;\n }\n } else {\n var option = text.substr(1);\n\n switch (option) {\n case \"d\":\n window.location = \"https://www.duckduckgo.com\";\n break;\n\n case \"y\":\n window.location = \"https://www.youtube.com\";\n break;\n\n case \"r\":\n window.location = \"https://reddit.com\";\n break;\n\n case \"s\":\n window.location = \"https://open.spotify.com\";\n break;\n }\n }\n } else if (validURL(text)) {\n if (containsProtocol(text)) window.location = text;else window.location = \"https://\" + text;\n } else {\n window.location = \"https://www.google.com/search?q=\" + text;\n }\n}\n\nfunction validURL(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/)?' + // protocol\n '((([a-z\\\\d]([a-z\\\\d-]*[a-z\\\\d])*)\\\\.)+[a-z]{2,}|' + // domain name\n '((\\\\d{1,3}\\\\.){3}\\\\d{1,3}))' + // OR ip (v4) address\n '(\\\\:\\\\d+)?(\\\\/[-a-z\\\\d%_.~+]*)*' + // port and path\n '(\\\\?[;&a-z\\\\d%_.~+=-]*)?' + // query string\n '(\\\\#[-a-z\\\\d_]*)?$', 'i'); // fragment locator\n\n return !!pattern.test(str);\n}\n\nfunction containsProtocol(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/){1}.*', 'i');\n return !!pattern.test(str);\n}\n\nString.prototype.replaceAll = function (search, replacement) {\n var target = this;\n return target.split(search).join(replacement);\n};\n\nfunction udpateDisplayedItems(e) {\n localStorage.setItem('contenttype', e.target.checked);\n\n if (e.target.checked) {\n localStorage.setItem('content-display', 'none');\n } else {\n localStorage.setItem('content-display', 'block');\n }\n\n setDisplayedItems();\n}\n\nfunction setDisplayedItems() {\n setValueFromLocalStorage('contenttype');\n setValueFromLocalStorage('content-display');\n}\n\nvar _c, _c2, _c3, _c4, _c5, _c6, _c7, _c8, _c9, _c10, _c11, _c12, _c13;\n\n$RefreshReg$(_c, \"Homepage\");\n$RefreshReg$(_c2, \"Search\");\n$RefreshReg$(_c3, \"Header\");\n$RefreshReg$(_c4, \"Applications\");\n$RefreshReg$(_c5, \"App\");\n$RefreshReg$(_c6, \"Bookmarks\");\n$RefreshReg$(_c7, \"LinkGroups\");\n$RefreshReg$(_c8, \"LinkItem\");\n$RefreshReg$(_c9, \"ModalMenu\");\n$RefreshReg$(_c10, \"HideButton\");\n$RefreshReg$(_c11, \"Provider\");\n$RefreshReg$(_c12, \"ModalInit\");\n$RefreshReg$(_c13, \"Clock\");","map":{"version":3,"sources":["/home/seanedmunds/dev/home-page/src/index.js"],"names":["React","useState","useEffect","ReactDOM","setValueFromLocalStorage","property","value","localStorage","getItem","setValue","document","documentElement","style","setProperty","input","querySelector","replace","Homepage","setTheme","date","greet","Search","handleKeyPress","Header","props","Applications","appList","getApps","items","i","apps","length","safe","NSFW","NSFWEnabled","push","name","url","icon","App","classNameType","hrefUrl","iconName","Bookmarks","bookmarkList","getLinks","bookmarks","category","links","LinkGroups","LinkItem","link","ModalMenu","providers","getProviders","isChecked","updateTheme","HideButton","udpateDisplayedItems","Provider","provider","prefix","ModalInit","setDisplayedItems","render","getElementById","currentDate","Date","dateOptions","weekday","year","month","day","toLocaleDateString","fixDigits","k","currentTime","Math","floor","getHours","easterEggChance","random","greetings","require","timeBased","easterEggs","messages","easteregg","concat","message","easterEggText","Clock","setDate","refreshClock","timerId","setInterval","cleanup","clearInterval","hour","minutes","getMinutes","midday","time","applications","getThemes","themes","e","themeName","target","innerHTML","toLowerCase","index","findIndex","item","setItem","imagebackground","colorbackground","colorserachbackground","colortextpri","colortextacc","colorborder","sindex","cycle","key","keyCode","which","text","replaceAll","option","substr","indexOf","subtext","search","preventDefault","stopPropagation","streamers","streamer","updateLabel","window","location","validURL","containsProtocol","str","pattern","RegExp","test","String","prototype","replacement","split","join","checked"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { useState, useEffect } from 'react';\nimport ReactDOM from 'react-dom';\nimport './index.css';\n\nconst setValueFromLocalStorage = property => {\n let value = localStorage.getItem(property);\n setValue(property, value);\n};\nconst setValue = (property, value) => {\n if (value) {\n document.documentElement.style.setProperty(`--${property}`, value);\n\n const input = document.querySelector(`#${property}`);\n if (input) {\n value = value.replace('px', '');\n input.value = value;\n }\n }\n};\n\nfunction Homepage() {\n setTheme();\n \n return (\n \n \n \n
\n \n \n
\n \n \n \n
\n \n \n
\n \n \n
\n \n );\n}\n\nfunction Search() {\n return (\n \n )\n}\n\nfunction Header(props) {\n return (\n \n );\n}\n\nfunction Applications() {\n let appList = getApps();\n var items = [];\n for (var i = 0; i < appList.apps.length; i++) {\n var safe = appList.apps[i].NSFW;\n var NSFWEnabled = localStorage.getItem(\"contenttype\");\n if (safe === \"SAFE\") {\n items.push(\n \n );\n } else if (safe === \"NSFW\" && NSFWEnabled) {\n items.push(\n \n );\n } else {\n \n }\n \n }\n return (\n \n Applications
\n \n {items}\n
\n \n );\n}\n\nfunction App(props) {\n \n let classNameType = props.NSFW + \"-content\";\n let hrefUrl = \"https://\" + props.url;\n let iconName = \"mdi-\" + props.icon;\n return (\n \n );\n}\n\nfunction Bookmarks() {\n let bookmarkList = getLinks();\n var items = [];\n for (var i = 0; i < bookmarkList.bookmarks.length; i++) {\n items.push(\n \n );\n }\n return (\n \n Bookmarks
\n \n {items}\n
\n \n );\n}\n\nfunction LinkGroups(props) {\n var items = [];\n for (var i = 0; i < props.links.length; i++) {\n items.push(\n \n );\n }\n return (\n \n
{props.category}
\n {items}\n \n );\n}\n\nfunction LinkItem(props) {\n return (\n \n );\n}\n\nfunction ModalMenu() {\n var providers = getProviders();\n var items = [];\n var isChecked = localStorage.getItem(\"contenttype\");\n for (var i = 0; i < providers.providers.length; i++) {\n items.push(\n \n );\n }\n return (\n \n \n \n\n
Color themes
\n\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n\n\n
Search options
\n
\n \n \n \n | Website | \n Prefix | \n
\n {items}\n \n
\n \n\n \n
\n \n );\n}\n\nfunction HideButton(props) {\n \n return (\n \n
\n );\n}\n\nfunction Provider(props) {\n return (\n \n | {props.provider.name} | \n {props.provider.prefix} | \n
\n );\n}\n\nfunction ModalInit() {\n setDisplayedItems();\n return (\n \n );\n}\n\nReactDOM.render(\n ,\n document.getElementById('root')\n);\n\n//Functions below this line are for calculating data for\n//other functions\n\nfunction date() {\n let currentDate = new Date();\n let dateOptions = {\n weekday: \"long\",\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\"\n };\n let date = currentDate.toLocaleDateString(\"en-GB\", dateOptions);\n return date;\n}\nfunction fixDigits(k) {\n if (k < 10) {\n return \"0\" + k;\n }\n else {\n return k;\n }\n}\nfunction greet() {\n let currentTime = new Date();\n let greet = Math.floor(currentTime.getHours() / 6);\n let easterEggChance = Math.floor(Math.random() * 100);\n let greetings = require('./messages.json');\n let timeBased = [];\n let easterEggs = [];\n for (var i = 0; i < greetings.messages.length; i++) {\n if (greetings.messages[i].easteregg === \"FALSE\") {\n timeBased = timeBased.concat(greetings.messages[i]);\n } else {\n easterEggs = easterEggs.concat(greetings.messages[i]);\n }\n }\n if (easterEggChance > 10) {\n return timeBased[greet].message;\n } else {\n let easterEggText = Math.floor(Math.random() * easterEggs.length);\n return easterEggs[easterEggText].message;\n }\n}\nfunction Clock() {\n const [date, setDate] = useState(new Date());\n\n function refreshClock() {\n setDate(new Date());\n }\n useEffect(() => {\n const timerId = setInterval(refreshClock, 1000);\n return function cleanup() {\n clearInterval(timerId);\n };\n }, []);\n\n var hour = date.getHours();\n var minutes = date.getMinutes();\n //var seconds = date.getSeconds();\n var midday = \"AM\";\n midday = (hour >= 12) ? \"PM\" : \"AM\";\n hour = (hour === 0) ? 12 : ((hour > 12) ? (hour - 12) : hour);\n minutes = fixDigits(minutes);\n //seconds = fixDigits(seconds);\n let time = hour + \":\" + minutes + \" \" + midday;\n\n return (\n {time}
\n\n );\n}\nfunction getApps() {\n let applications = require('./apps.json');\n return applications;\n}\nfunction getLinks() {\n let links = require('./links.json');\n return links;\n}\nfunction getProviders() {\n let providers = require('./providers.json');\n return providers;\n}\nfunction getThemes() {\n let themes = require('./themes.json');\n return themes;\n}\nfunction updateTheme(e) {\n var themes = getThemes();\n var themeName = e.target.innerHTML.toLowerCase();\n var index = themes.themes.findIndex(function(item, i){\n return item.name === themeName\n });\n localStorage.setItem(\"image-background\", themes.themes[index].imagebackground);\n localStorage.setItem(\"color-background\", themes.themes[index].colorbackground);\n localStorage.setItem(\"color-search-background\", themes.themes[index].colorserachbackground);\n localStorage.setItem(\"color-text-pri\",themes.themes[index].colortextpri);\n localStorage.setItem(\"color-text-acc\", themes.themes[index].colortextacc);\n localStorage.setItem(\"color-border\", themes.themes[index].colorborder);\n \n //document.documentElement.style.setProperty(prop, `var(--${themeName}${prop.substring(10)})`);\n setTheme();\n}\nfunction setTheme() {\n setValueFromLocalStorage('image-background');\n setValueFromLocalStorage('color-background');\n setValueFromLocalStorage('color-search-background');\n setValueFromLocalStorage('color-text-pri');\n setValueFromLocalStorage('color-text-acc');\n setValueFromLocalStorage('color-border');\n setValueFromLocalStorage('content-display');\n}\nfunction handleKeyPress(e) {\n var sindex = 0;\n var cycle = false;\n var key = e.keyCode || e.which;\n var text = e.target.value.replaceAll(\"+\", \"%2B\");\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n if (key == 13) { // Search functions\n search(text);\n }\n if (key == 9) { // Tab Completion Functions\n e.preventDefault();\n e.stopPropagation();\n if (text[0] === ';') {\n switch (option) {\n case 't':\n var streamers = ['admiralbahroo', 'moonmoon_ow', 'witwix'];\n if (!subtext || cycle) {\n cycle = true;\n if (sindex > streamers.length - 1) sindex = 0;\n document.getElementById(\"keywords\").value = ';t ' + streamers[sindex++];\n return;\n }\n for (var streamer of streamers) {\n if (subtext === streamer.substr(0, subtext.length)) {\n document.getElementById(\"keywords\").value = ';t ' + streamer;\n return;\n }\n }\n break;\n }\n }\n }\n if(key == 32){ //Space to go to search\nupdateLabel(text);\n }\n sindex = 0;\n cycle = false;\n updateLabel(text);\n}\nfunction updateLabel(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n if (text[0] === '/') {\n// if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n document.getElementById(\"searchType\").innerHTML = \"Allmusic search\";\n break;\n case \"d\":\n document.getElementById(\"searchType\").innerHTML = \"Duck Duck Go search\";\n break;\n case \"di\":\n document.getElementById(\"searchType\").innerHTML = \"Discogs search\";\n break;\n case \"i\":\n document.getElementById(\"searchType\").innerHTML = \"IMDB search\";\n break;\n case \"m\":\n document.getElementById(\"searchType\").innerHTML = \"TheMovieDB search\";\n break;\n case \"r\":\n document.getElementById(\"searchType\").innerHTML = \"Reddit search\";\n break;\n case \"q\":\n document.getElementById(\"searchType\").innerHTML = \"Qwant search\";\n break;\n case \"so\":\n document.getElementById(\"searchType\").innerHTML = \"Soundcloud search\";\n break;\n case \"s\":\n document.getElementById(\"searchType\").innerHTML = \"Spotify search\";\n break;\n case \"tv\":\n document.getElementById(\"searchType\").innerHTML = \"TheTVDB search\";\n break;\n case \"t\":\n document.getElementById(\"searchType\").innerHTML = \"Trakt search\";\n break;\n case \"y\":\n document.getElementById(\"searchType\").innerHTML = \"YouTube search\";\n break;\n case \"w\":\n document.getElementById(\"searchType\").innerHTML = \"Wikipedia search\";\n break;\n case \"p\":\n document.getElementById(\"searchType\").innerHTML = \"Plex search\";\n break;\n case \"rt\":\n document.getElementById(\"searchType\").innerHTML = \"Rotten Tomatoes search\";\n break;\n default:\n document.getElementById(\"searchType\").innerHTML = \"Invalid search\";\n break;\n }\n}else {\n document.getElementById(\"searchType\").innerHTML = \"Google search\";\n }\n}\nfunction search(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n if (text[0] === '/') {\n if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n window.location = \"https://www.allmusic.com/search/all/\" + subtext;\n break;\n case \"d\":\n window.location = \"https://duckduckgo.com/?q=\" + subtext;\n break;\n case \"di\":\n window.location = \"https://www.discogs.com/search/?q=\" + subtext;\n break;\n case \"i\":\n window.location = \"https://www.imdb.com/find?q=\" + subtext;\n break;\n case \"m\":\n window.location = \"https://www.themoviedb.org/search?query=\" + subtext;\n break;\n case \"r\":\n window.location = \"https://www.reddit.com/search?q=\" + subtext;\n break;\n case \"q\":\n window.location = \"https://www.qwant.com/?q=\" + subtext;\n break;\n case \"so\":\n window.location = \"https://soundcloud.com/search?q=\" + subtext;\n break;\n case \"s\":\n window.location = \"https://open.spotify.com/search/results/\" + subtext;\n break;\n case \"t\":\n window.location = \"https://trakt.tv/search?query=\" + subtext;\n break;\n case \"tv\":\n window.location = \"https://www.thetvdb.com/search?query=\" + subtext;\n break;\n case \"y\":\n window.location = \"https://www.youtube.com/results?search_query=\" + subtext;\n break;\n case \"w\":\n window.location = \"https://en.wikipedia.org/w/index.php?search=\" + subtext;\n break;\n case \"p\":\n window.location = \"https://app.plex.tv/desktop/#!/search?query=\" + subtext;\n break;\n case \"rt\":\n window.location = \"https://www.rottentomatoes.com/search?search=\" + subtext;\n break;\n }\n } else {\n var option = text.substr(1);\n switch (option) {\n case \"d\":\n window.location = \"https://www.duckduckgo.com\";\n break;\n case \"y\":\n window.location = \"https://www.youtube.com\";\n break;\n case \"r\":\n window.location = \"https://reddit.com\";\n break;\n case \"s\":\n window.location = \"https://open.spotify.com\";\n break;\n }\n }\n } else if (validURL(text)) {\n if (containsProtocol(text))\n window.location = text;\n else\n window.location = \"https://\" + text;\n } else {\n window.location = \"https://www.google.com/search?q=\" + text;\n }\n}\nfunction validURL(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/)?' + // protocol\n '((([a-z\\\\d]([a-z\\\\d-]*[a-z\\\\d])*)\\\\.)+[a-z]{2,}|' + // domain name\n '((\\\\d{1,3}\\\\.){3}\\\\d{1,3}))' + // OR ip (v4) address\n '(\\\\:\\\\d+)?(\\\\/[-a-z\\\\d%_.~+]*)*' + // port and path\n '(\\\\?[;&a-z\\\\d%_.~+=-]*)?' + // query string\n '(\\\\#[-a-z\\\\d_]*)?$', 'i'); // fragment locator\n return !!pattern.test(str);\n}\nfunction containsProtocol(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/){1}.*', 'i');\n return !!pattern.test(str);\n}\nString.prototype.replaceAll = function(search, replacement) {\n var target = this;\n return target.split(search).join(replacement);\n};\nfunction udpateDisplayedItems(e) {\n localStorage.setItem('contenttype', e.target.checked);\n if (e.target.checked) {\n localStorage.setItem('content-display', 'none');\n } else {\n localStorage.setItem('content-display', 'block');\n }\n setDisplayedItems();\n}\nfunction setDisplayedItems() {\n setValueFromLocalStorage('contenttype');\n setValueFromLocalStorage('content-display');\n}"]},"metadata":{},"sourceType":"module"}
\ No newline at end of file
diff --git a/node_modules/.cache/babel-loader/3861248fa6a5a559138f189f53521d7a.json b/node_modules/.cache/babel-loader/3861248fa6a5a559138f189f53521d7a.json
new file mode 100644
index 00000000..b4ea3ee0
--- /dev/null
+++ b/node_modules/.cache/babel-loader/3861248fa6a5a559138f189f53521d7a.json
@@ -0,0 +1 @@
+{"ast":null,"code":"var _jsxFileName = \"/home/seanedmunds/dev/home-page/src/index.js\",\n _s = $RefreshSig$();\n\nimport React from 'react';\nimport { useState, useEffect } from 'react';\nimport ReactDOM from 'react-dom'; //import { unstable_createPortal } from 'react-dom';\n\nimport './index.css';\nimport { jsxDEV as _jsxDEV } from \"react/jsx-dev-runtime\";\n\nfunction Homepage() {\n return /*#__PURE__*/_jsxDEV(\"main\", {\n id: \"container\",\n className: \"fade\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Search, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 11,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 10,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Header, {\n date: date(),\n greet: greet()\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 14,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 13,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Applications, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 20,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 19,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Bookmarks, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 23,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 22,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(ModalMenu, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 26,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 25,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(ModalInit, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 29,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 28,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 9,\n columnNumber: 5\n }, this);\n}\n\n_c = Homepage;\n\nfunction Search() {\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"search\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"abackground\",\n children: [/*#__PURE__*/_jsxDEV(\"input\", {\n name: \"keywords\",\n type: \"text\",\n className: \"keyword\",\n id: \"keywords\",\n size: \"50\",\n spellCheck: \"true\",\n placeholder: \"\"\n /*onFocus={this.placeholder = \"\"} onBlur={this.placeholder = ''}*/\n ,\n autoComplete: \"off\",\n autoFocus: true,\n onKeyUp: handleKeyPress\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 39,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n id: \"searchType\",\n className: \"Input-label\",\n children: \"Google search\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 40,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 38,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 37,\n columnNumber: 5\n }, this);\n}\n\n_c2 = Search;\n\nfunction Header(props) {\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"header\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n id: \"greeting_block\",\n children: /*#__PURE__*/_jsxDEV(\"h1\", {\n id: \"header_greet\",\n children: props.greet\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 50,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 49,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"date_block\",\n children: [/*#__PURE__*/_jsxDEV(\"h2\", {\n id: \"header_date\",\n children: props.date\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 53,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(Clock, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 54,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 52,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 48,\n columnNumber: 5\n }, this);\n}\n\n_c3 = Header;\n\nfunction Applications() {\n let appList = getApps();\n var items = [];\n\n for (var i = 0; i < appList.apps.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(App, {\n name: appList.apps[i].name,\n url: appList.apps[i].url,\n icon: appList.apps[i].icon,\n NSFW: appList.apps[i].NSFW\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 65,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"apps\",\n children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n children: \"Applications\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 76,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"apps_loop\",\n children: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 77,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 75,\n columnNumber: 5\n }, this);\n}\n\n_c4 = Applications;\n\nfunction App(props) {\n let classNameType = props.NSFW + \"-content\";\n let hrefUrl = \"https://\" + props.url;\n let iconName = \"mdi-\" + props.icon;\n return /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: hrefUrl,\n className: classNameType,\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_item\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_icon\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify icon\",\n \"data-icon\": iconName\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 93,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 92,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_text\",\n children: [/*#__PURE__*/_jsxDEV(\"span\", {\n id: \"app-name\",\n children: props.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 96,\n columnNumber: 13\n }, this), /*#__PURE__*/_jsxDEV(\"span\", {\n id: \"app-address\",\n children: props.url\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 97,\n columnNumber: 13\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 95,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 91,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 90,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 89,\n columnNumber: 5\n }, this);\n}\n\n_c5 = App;\n\nfunction Bookmarks() {\n let bookmarkList = getLinks();\n var items = [];\n\n for (var i = 0; i < bookmarkList.bookmarks.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(LinkGroups, {\n category: bookmarkList.bookmarks[i].category,\n links: bookmarkList.bookmarks[i].links\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 110,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"links\",\n children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n children: \"Bookmarks\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 119,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"links_loop\",\n children: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 120,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 118,\n columnNumber: 5\n }, this);\n}\n\n_c6 = Bookmarks;\n\nfunction LinkGroups(props) {\n var items = [];\n\n for (var i = 0; i < props.links.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(LinkItem, {\n link: props.links[i]\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 131,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"links_item\",\n children: [/*#__PURE__*/_jsxDEV(\"h4\", {\n children: props.category\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 139,\n columnNumber: 7\n }, this), items]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 138,\n columnNumber: 5\n }, this);\n}\n\n_c7 = LinkGroups;\n\nfunction LinkItem(props) {\n return /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: props.link.url,\n className: \"theme_color-border theme_text-select\",\n children: props.link.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 148,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 147,\n columnNumber: 5\n }, this);\n}\n\n_c8 = LinkItem;\n\nfunction ModalMenu() {\n var providers = getProviders();\n var items = [];\n\n for (var i = 0; i < providers.providers.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(Provider, {\n provider: providers.providers[i]\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 158,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"modal\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n children: [/*#__PURE__*/_jsxDEV(\"header\", {\n id: \"modal-header\",\n children: [/*#__PURE__*/_jsxDEV(\"h1\", {\n children: \"Options\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 168,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n href: \"#\",\n title: \"Close\",\n className: \"modal-close\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-close\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 170,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 169,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 167,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"h2\", {\n children: \"Color themes\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 174,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"modal-theme\",\n children: [/*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"blackboard\",\n className: \"theme-button theme-blackboard\",\n onClick: updateTheme,\n children: \"Blackboard\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 177,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"gazette\",\n className: \"theme-button theme-gazette\",\n onClick: updateTheme,\n children: \"Gazette\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 178,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"espresso\",\n className: \"theme-button theme-espresso\",\n onClick: updateTheme,\n children: \"Espresso\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 179,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cab\",\n className: \"theme-button theme-cab\",\n onClick: updateTheme,\n children: \"Cab\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 180,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cloud\",\n className: \"theme-button theme-cloud\",\n onClick: updateTheme,\n children: \"Cloud\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 181,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"lime\",\n className: \"theme-button theme-lime\",\n onClick: updateTheme,\n children: \"Lime\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 182,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"passion\",\n className: \"theme-button theme-passion\",\n onClick: updateTheme,\n children: \"Passion\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 183,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"blues\",\n className: \"theme-button theme-blues\",\n onClick: updateTheme,\n children: \"Blues\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 184,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"chalk\",\n className: \"theme-button theme-chalk\",\n onClick: updateTheme,\n children: \"Chalk\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 185,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"tron\",\n className: \"theme-button theme-tron\",\n onClick: updateTheme,\n children: \"Tron\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 186,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"paper\",\n className: \"theme-button theme-paper\",\n onClick: updateTheme,\n children: \"Paper\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 187,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cyberpunk\",\n className: \"theme-button theme-cyberpunk\",\n onClick: updateTheme,\n children: \"Cyberpunk\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 188,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"quadra\",\n className: \"theme-button theme-panam\",\n onClick: updateTheme,\n children: \"Quadra\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 189,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"panam\",\n className: \"theme-button theme-panam\",\n onClick: updateTheme,\n children: \"Panam\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 190,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"touch\",\n className: \"theme-button theme-touch\",\n onClick: updateTheme,\n children: \"Touch\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 191,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"peek\",\n className: \"theme-button theme-peek\",\n onClick: updateTheme,\n children: \"Peek\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 192,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 176,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"h2\", {\n children: \"Search options\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 196,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"providers\",\n children: /*#__PURE__*/_jsxDEV(\"table\", {\n children: /*#__PURE__*/_jsxDEV(\"tbody\", {\n children: [/*#__PURE__*/_jsxDEV(\"tr\", {\n children: [/*#__PURE__*/_jsxDEV(\"th\", {\n children: \"Website\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 201,\n columnNumber: 19\n }, this), /*#__PURE__*/_jsxDEV(\"th\", {\n children: \"Prefix\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 202,\n columnNumber: 19\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 200,\n columnNumber: 17\n }, this), items]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 199,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 198,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 197,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"header\", {\n id: \"modal-footer\",\n children: [/*#__PURE__*/_jsxDEV(\"a\", {\n href: \"https://github.com/jeroenpardon/\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-github-box\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 210,\n columnNumber: 54\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 210,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n href: \"https://materialdesignicons.com/\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-material-design\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 211,\n columnNumber: 54\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 211,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"sneaky\",\n children: [/*#__PURE__*/_jsxDEV(\"input\", {\n type: \"checkbox\",\n id: \"contenttype\",\n onChange: \"nsfw(this)\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 212,\n columnNumber: 35\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n for: \"contenttype\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-domino-mask\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 213,\n columnNumber: 36\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 213,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 212,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 209,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 166,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 165,\n columnNumber: 5\n }, this);\n}\n\n_c9 = ModalMenu;\n\nfunction Provider(props) {\n return /*#__PURE__*/_jsxDEV(\"tr\", {\n children: [/*#__PURE__*/_jsxDEV(\"td\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: props.provider.url,\n children: props.provider.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 223,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 223,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"td\", {\n children: props.provider.prefix\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 224,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 222,\n columnNumber: 5\n }, this);\n}\n\n_c10 = Provider;\n\nfunction ModalInit() {\n return /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"modal_init\",\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n className: \"btn\",\n href: \"#modal\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify icon\",\n \"data-icon\": \"mdi-xbox-controller-menu\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 233,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 232,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 231,\n columnNumber: 5\n }, this);\n}\n\n_c11 = ModalInit;\nReactDOM.render( /*#__PURE__*/_jsxDEV(Homepage, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 240,\n columnNumber: 3\n}, this), document.getElementById('root')); //Functions below this line are for calculating data for\n//other functions\n\nfunction date() {\n let currentDate = new Date();\n let dateOptions = {\n weekday: \"long\",\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\"\n };\n let date = currentDate.toLocaleDateString(\"en-GB\", dateOptions);\n return date;\n}\n\nfunction fixDigits(k) {\n if (k < 10) {\n return \"0\" + k;\n } else {\n return k;\n }\n}\n\nfunction greet() {\n let currentTime = new Date();\n let greet = Math.floor(currentTime.getHours() / 6);\n let easterEggChance = Math.floor(Math.random() * 100);\n\n let greetings = require('./messages.json');\n\n let timeBased = [];\n let easterEggs = [];\n\n for (var i = 0; i < greetings.messages.length; i++) {\n if (greetings.messages[i].easteregg === \"FALSE\") {\n timeBased = timeBased.concat(greetings.messages[i]);\n } else {\n easterEggs = easterEggs.concat(greetings.messages[i]);\n }\n }\n\n if (easterEggChance > 10) {\n return timeBased[greet].message;\n } else {\n let easterEggText = Math.floor(Math.random() * easterEggs.length);\n return easterEggs[easterEggText].message;\n }\n}\n\nfunction Clock() {\n _s();\n\n const [date, setDate] = useState(new Date());\n\n function refreshClock() {\n setDate(new Date());\n }\n\n useEffect(() => {\n const timerId = setInterval(refreshClock, 1000);\n return function cleanup() {\n clearInterval(timerId);\n };\n }, []);\n var hour = date.getHours();\n var minutes = date.getMinutes(); //var seconds = date.getSeconds();\n\n var midday = \"AM\";\n midday = hour >= 12 ? \"PM\" : \"AM\";\n hour = hour === 0 ? 12 : hour > 12 ? hour - 12 : hour;\n minutes = fixDigits(minutes); //seconds = fixDigits(seconds);\n\n let time = hour + \":\" + minutes + \" \" + midday;\n return /*#__PURE__*/_jsxDEV(\"h2\", {\n id: \"clock\",\n children: time\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 311,\n columnNumber: 5\n }, this);\n}\n\n_s(Clock, \"Gqi45WOZhU2c0BLYX0HoJeiR0fk=\");\n\n_c12 = Clock;\n\nfunction getApps() {\n let applications = require('./apps.json');\n\n return applications;\n}\n\nfunction getLinks() {\n let links = require('./links.json');\n\n return links;\n}\n\nfunction getProviders() {\n let providers = require('./providers.json');\n\n return providers;\n}\n\nfunction getThemes() {\n let themes = require('./themes.json');\n\n return themes;\n}\n\nfunction updateTheme(e) {\n var themes = getThemes();\n var themeName = e.target.innerHTML.toLowerCase();\n var index = themes.themes.findIndex(function (item, i) {\n return item.name === themeName;\n });\n console.log(themes.themes[index]);\n localStorage.setItem(\"image-background\", themes.themes[index].imagebackground);\n localStorage.setItem(\"color-background\", themes.themes[index].colorbackground);\n localStorage.setItem(\"color-search-background\", themes.themes[index].colorserachbackground);\n localStorage.setItem(\"color-text-pri\", themes.themes[index].colortextpri);\n localStorage.setItem(\"color-text-acc\", themes.themes[index].colortextacc);\n localStorage.setItem(\"color-border\", themes.themes[index].colorborder); //document.documentElement.style.setProperty(prop, `var(--${themeName}${prop.substring(10)})`);\n\n setTheme();\n}\n\nfunction setTheme() {\n setValueFromLocalStorage('image-background');\n setValueFromLocalStorage('color-background');\n setValueFromLocalStorage('color-search-background');\n setValueFromLocalStorage('color-text-pri');\n setValueFromLocalStorage('color-text-acc');\n setValueFromLocalStorage('color-border');\n setValueFromLocalStorage('content-display');\n\n const setValueFromLocalStorage = property => {\n let value = localStorage.getItem(property);\n setValue(property, value);\n };\n\n const setValue = (property, value) => {\n if (value) {\n document.documentElement.style.setProperty(`--${property}`, value);\n const input = document.querySelector(`#${property}`);\n\n if (input) {\n value = value.replace('px', '');\n input.value = value;\n }\n }\n };\n}\n\nfunction handleKeyPress(e) {\n var sindex = 0;\n var cycle = false;\n var key = e.keyCode || e.which;\n var text = e.target.value.replaceAll(\"+\", \"%2B\");\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n\n if (key == 13) {\n // Search functions\n search(text);\n }\n\n if (key == 9) {\n // Tab Completion Functions\n e.preventDefault();\n e.stopPropagation();\n\n if (text[0] === ';') {\n switch (option) {\n case 't':\n var streamers = ['admiralbahroo', 'moonmoon_ow', 'witwix'];\n\n if (!subtext || cycle) {\n cycle = true;\n if (sindex > streamers.length - 1) sindex = 0;\n document.getElementById(\"keywords\").value = ';t ' + streamers[sindex++];\n return;\n }\n\n for (var streamer of streamers) {\n if (subtext === streamer.substr(0, subtext.length)) {\n document.getElementById(\"keywords\").value = ';t ' + streamer;\n return;\n }\n }\n\n break;\n }\n }\n }\n\n if (key == 32) {\n //Space to go to search\n updateLabel(text);\n }\n\n sindex = 0;\n cycle = false;\n updateLabel(text);\n}\n\nfunction updateLabel(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n\n if (text[0] === '/') {\n // if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n document.getElementById(\"searchType\").innerHTML = \"Allmusic search\";\n break;\n\n case \"d\":\n document.getElementById(\"searchType\").innerHTML = \"Duck Duck Go search\";\n break;\n\n case \"di\":\n document.getElementById(\"searchType\").innerHTML = \"Discogs search\";\n break;\n\n case \"i\":\n document.getElementById(\"searchType\").innerHTML = \"IMDB search\";\n break;\n\n case \"m\":\n document.getElementById(\"searchType\").innerHTML = \"TheMovieDB search\";\n break;\n\n case \"r\":\n document.getElementById(\"searchType\").innerHTML = \"Reddit search\";\n break;\n\n case \"q\":\n document.getElementById(\"searchType\").innerHTML = \"Qwant search\";\n break;\n\n case \"so\":\n document.getElementById(\"searchType\").innerHTML = \"Soundcloud search\";\n break;\n\n case \"s\":\n document.getElementById(\"searchType\").innerHTML = \"Spotify search\";\n break;\n\n case \"tv\":\n document.getElementById(\"searchType\").innerHTML = \"TheTVDB search\";\n break;\n\n case \"t\":\n document.getElementById(\"searchType\").innerHTML = \"Trakt search\";\n break;\n\n case \"y\":\n document.getElementById(\"searchType\").innerHTML = \"YouTube search\";\n break;\n\n case \"w\":\n document.getElementById(\"searchType\").innerHTML = \"Wikipedia search\";\n break;\n\n case \"p\":\n document.getElementById(\"searchType\").innerHTML = \"Plex search\";\n break;\n\n case \"rt\":\n document.getElementById(\"searchType\").innerHTML = \"Rotten Tomatoes search\";\n break;\n\n default:\n document.getElementById(\"searchType\").innerHTML = \"Invalid search\";\n break;\n }\n } else {\n document.getElementById(\"searchType\").innerHTML = \"Google search\";\n }\n}\n\nfunction search(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n\n if (text[0] === '/') {\n if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n window.location = \"https://www.allmusic.com/search/all/\" + subtext;\n break;\n\n case \"d\":\n window.location = \"https://duckduckgo.com/?q=\" + subtext;\n break;\n\n case \"di\":\n window.location = \"https://www.discogs.com/search/?q=\" + subtext;\n break;\n\n case \"i\":\n window.location = \"https://www.imdb.com/find?q=\" + subtext;\n break;\n\n case \"m\":\n window.location = \"https://www.themoviedb.org/search?query=\" + subtext;\n break;\n\n case \"r\":\n window.location = \"https://www.reddit.com/search?q=\" + subtext;\n break;\n\n case \"q\":\n window.location = \"https://www.qwant.com/?q=\" + subtext;\n break;\n\n case \"so\":\n window.location = \"https://soundcloud.com/search?q=\" + subtext;\n break;\n\n case \"s\":\n window.location = \"https://open.spotify.com/search/results/\" + subtext;\n break;\n\n case \"t\":\n window.location = \"https://trakt.tv/search?query=\" + subtext;\n break;\n\n case \"tv\":\n window.location = \"https://www.thetvdb.com/search?query=\" + subtext;\n break;\n\n case \"y\":\n window.location = \"https://www.youtube.com/results?search_query=\" + subtext;\n break;\n\n case \"w\":\n window.location = \"https://en.wikipedia.org/w/index.php?search=\" + subtext;\n break;\n\n case \"p\":\n window.location = \"https://app.plex.tv/desktop/#!/search?query=\" + subtext;\n break;\n\n case \"rt\":\n window.location = \"https://www.rottentomatoes.com/search?search=\" + subtext;\n break;\n }\n } else {\n var option = text.substr(1);\n\n switch (option) {\n case \"d\":\n window.location = \"https://www.duckduckgo.com\";\n break;\n\n case \"y\":\n window.location = \"https://www.youtube.com\";\n break;\n\n case \"r\":\n window.location = \"https://reddit.com\";\n break;\n\n case \"s\":\n window.location = \"https://open.spotify.com\";\n break;\n }\n }\n } else if (validURL(text)) {\n if (containsProtocol(text)) window.location = text;else window.location = \"https://\" + text;\n } else {\n window.location = \"https://www.google.com/search?q=\" + text;\n }\n} // Source: https://stackoverflow.com/questions/5717093/check-if-a-javascript-string-is-a-url\n\n\nfunction validURL(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/)?' + // protocol\n '((([a-z\\\\d]([a-z\\\\d-]*[a-z\\\\d])*)\\\\.)+[a-z]{2,}|' + // domain name\n '((\\\\d{1,3}\\\\.){3}\\\\d{1,3}))' + // OR ip (v4) address\n '(\\\\:\\\\d+)?(\\\\/[-a-z\\\\d%_.~+]*)*' + // port and path\n '(\\\\?[;&a-z\\\\d%_.~+=-]*)?' + // query string\n '(\\\\#[-a-z\\\\d_]*)?$', 'i'); // fragment locator\n\n return !!pattern.test(str);\n}\n\nfunction containsProtocol(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/){1}.*', 'i');\n return !!pattern.test(str);\n}\n\nString.prototype.replaceAll = function (search, replacement) {\n var target = this;\n return target.split(search).join(replacement);\n};\n\nvar _c, _c2, _c3, _c4, _c5, _c6, _c7, _c8, _c9, _c10, _c11, _c12;\n\n$RefreshReg$(_c, \"Homepage\");\n$RefreshReg$(_c2, \"Search\");\n$RefreshReg$(_c3, \"Header\");\n$RefreshReg$(_c4, \"Applications\");\n$RefreshReg$(_c5, \"App\");\n$RefreshReg$(_c6, \"Bookmarks\");\n$RefreshReg$(_c7, \"LinkGroups\");\n$RefreshReg$(_c8, \"LinkItem\");\n$RefreshReg$(_c9, \"ModalMenu\");\n$RefreshReg$(_c10, \"Provider\");\n$RefreshReg$(_c11, \"ModalInit\");\n$RefreshReg$(_c12, \"Clock\");","map":{"version":3,"sources":["/home/seanedmunds/dev/home-page/src/index.js"],"names":["React","useState","useEffect","ReactDOM","Homepage","date","greet","Search","handleKeyPress","Header","props","Applications","appList","getApps","items","i","apps","length","push","name","url","icon","NSFW","App","classNameType","hrefUrl","iconName","Bookmarks","bookmarkList","getLinks","bookmarks","category","links","LinkGroups","LinkItem","link","ModalMenu","providers","getProviders","updateTheme","Provider","provider","prefix","ModalInit","render","document","getElementById","currentDate","Date","dateOptions","weekday","year","month","day","toLocaleDateString","fixDigits","k","currentTime","Math","floor","getHours","easterEggChance","random","greetings","require","timeBased","easterEggs","messages","easteregg","concat","message","easterEggText","Clock","setDate","refreshClock","timerId","setInterval","cleanup","clearInterval","hour","minutes","getMinutes","midday","time","applications","getThemes","themes","e","themeName","target","innerHTML","toLowerCase","index","findIndex","item","console","log","localStorage","setItem","imagebackground","colorbackground","colorserachbackground","colortextpri","colortextacc","colorborder","setTheme","setValueFromLocalStorage","property","value","getItem","setValue","documentElement","style","setProperty","input","querySelector","replace","sindex","cycle","key","keyCode","which","text","replaceAll","option","substr","indexOf","subtext","search","preventDefault","stopPropagation","streamers","streamer","updateLabel","window","location","validURL","containsProtocol","str","pattern","RegExp","test","String","prototype","replacement","split","join"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { useState, useEffect } from 'react';\nimport ReactDOM from 'react-dom';\n//import { unstable_createPortal } from 'react-dom';\nimport './index.css';\n\nfunction Homepage() {\n return (\n \n \n \n
\n \n \n
\n \n \n \n
\n \n \n
\n \n \n
\n \n );\n}\n\nfunction Search() {\n return (\n \n )\n}\n\nfunction Header(props) {\n return (\n \n );\n}\n\nfunction Applications() {\n let appList = getApps();\n var items = [];\n for (var i = 0; i < appList.apps.length; i++) {\n items.push(\n \n );\n }\n return (\n \n Applications
\n \n {items}\n
\n \n );\n}\n\nfunction App(props) {\n let classNameType = props.NSFW + \"-content\";\n let hrefUrl = \"https://\" + props.url;\n let iconName = \"mdi-\" + props.icon;\n return (\n \n );\n}\n\nfunction Bookmarks() {\n let bookmarkList = getLinks();\n var items = [];\n for (var i = 0; i < bookmarkList.bookmarks.length; i++) {\n items.push(\n \n );\n }\n return (\n \n Bookmarks
\n \n {items}\n
\n \n );\n}\n\nfunction LinkGroups(props) {\n var items = [];\n for (var i = 0; i < props.links.length; i++) {\n items.push(\n \n );\n }\n return (\n \n
{props.category}
\n {items}\n \n );\n}\n\nfunction LinkItem(props) {\n return (\n \n );\n}\n\nfunction ModalMenu() {\n var providers = getProviders();\n var items = [];\n for (var i = 0; i < providers.providers.length; i++) {\n items.push(\n \n );\n }\n return (\n \n \n \n\n
Color themes
\n\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n\n\n
Search options
\n
\n \n \n \n | Website | \n Prefix | \n
\n {items}\n \n
\n \n\n \n
\n \n );\n}\n\nfunction Provider(props) {\n return (\n \n | {props.provider.name} | \n {props.provider.prefix} | \n
\n );\n}\n\nfunction ModalInit() {\n return (\n \n );\n}\n\nReactDOM.render(\n ,\n document.getElementById('root')\n);\n\n//Functions below this line are for calculating data for\n//other functions\n\nfunction date() {\n let currentDate = new Date();\n let dateOptions = {\n weekday: \"long\",\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\"\n };\n let date = currentDate.toLocaleDateString(\"en-GB\", dateOptions);\n return date;\n}\nfunction fixDigits(k) {\n if (k < 10) {\n return \"0\" + k;\n }\n else {\n return k;\n }\n}\nfunction greet() {\n let currentTime = new Date();\n let greet = Math.floor(currentTime.getHours() / 6);\n let easterEggChance = Math.floor(Math.random() * 100);\n let greetings = require('./messages.json');\n let timeBased = [];\n let easterEggs = [];\n for (var i = 0; i < greetings.messages.length; i++) {\n if (greetings.messages[i].easteregg === \"FALSE\") {\n timeBased = timeBased.concat(greetings.messages[i]);\n } else {\n easterEggs = easterEggs.concat(greetings.messages[i]);\n }\n }\n if (easterEggChance > 10) {\n return timeBased[greet].message;\n } else {\n let easterEggText = Math.floor(Math.random() * easterEggs.length);\n return easterEggs[easterEggText].message;\n }\n}\nfunction Clock() {\n const [date, setDate] = useState(new Date());\n\n function refreshClock() {\n setDate(new Date());\n }\n useEffect(() => {\n const timerId = setInterval(refreshClock, 1000);\n return function cleanup() {\n clearInterval(timerId);\n };\n }, []);\n\n var hour = date.getHours();\n var minutes = date.getMinutes();\n //var seconds = date.getSeconds();\n var midday = \"AM\";\n midday = (hour >= 12) ? \"PM\" : \"AM\";\n hour = (hour === 0) ? 12 : ((hour > 12) ? (hour - 12) : hour);\n minutes = fixDigits(minutes);\n //seconds = fixDigits(seconds);\n let time = hour + \":\" + minutes + \" \" + midday;\n\n return (\n {time}
\n\n );\n}\nfunction getApps() {\n let applications = require('./apps.json');\n return applications;\n}\nfunction getLinks() {\n let links = require('./links.json');\n return links;\n}\nfunction getProviders() {\n let providers = require('./providers.json');\n return providers;\n}\nfunction getThemes() {\n let themes = require('./themes.json');\n return themes;\n}\n\nfunction updateTheme(e) {\n var themes = getThemes();\n var themeName = e.target.innerHTML.toLowerCase();\n var index = themes.themes.findIndex(function(item, i){\n return item.name === themeName\n });\n console.log(themes.themes[index]);\n localStorage.setItem(\"image-background\", themes.themes[index].imagebackground);\n localStorage.setItem(\"color-background\", themes.themes[index].colorbackground);\n localStorage.setItem(\"color-search-background\", themes.themes[index].colorserachbackground);\n localStorage.setItem(\"color-text-pri\",themes.themes[index].colortextpri);\n localStorage.setItem(\"color-text-acc\", themes.themes[index].colortextacc);\n localStorage.setItem(\"color-border\", themes.themes[index].colorborder);\n \n //document.documentElement.style.setProperty(prop, `var(--${themeName}${prop.substring(10)})`);\n setTheme();\n}\n\nfunction setTheme() {\n setValueFromLocalStorage('image-background');\n setValueFromLocalStorage('color-background');\n setValueFromLocalStorage('color-search-background');\n setValueFromLocalStorage('color-text-pri');\n setValueFromLocalStorage('color-text-acc');\n setValueFromLocalStorage('color-border');\n setValueFromLocalStorage('content-display');\n const setValueFromLocalStorage = property => {\n let value = localStorage.getItem(property);\n setValue(property, value);\n };\n const setValue = (property, value) => {\n if (value) {\n document.documentElement.style.setProperty(`--${property}`, value);\n\n const input = document.querySelector(`#${property}`);\n if (input) {\n value = value.replace('px', '');\n input.value = value;\n }\n }\n };\n}\n\nfunction handleKeyPress(e) {\n var sindex = 0;\n var cycle = false;\n var key = e.keyCode || e.which;\n var text = e.target.value.replaceAll(\"+\", \"%2B\");\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n if (key == 13) { // Search functions\n search(text);\n }\n if (key == 9) { // Tab Completion Functions\n e.preventDefault();\n e.stopPropagation();\n if (text[0] === ';') {\n switch (option) {\n case 't':\n var streamers = ['admiralbahroo', 'moonmoon_ow', 'witwix'];\n if (!subtext || cycle) {\n cycle = true;\n if (sindex > streamers.length - 1) sindex = 0;\n document.getElementById(\"keywords\").value = ';t ' + streamers[sindex++];\n return;\n }\n for (var streamer of streamers) {\n if (subtext === streamer.substr(0, subtext.length)) {\n document.getElementById(\"keywords\").value = ';t ' + streamer;\n return;\n }\n }\n break;\n }\n }\n }\n if(key == 32){ //Space to go to search\nupdateLabel(text);\n }\n sindex = 0;\n cycle = false;\n updateLabel(text);\n}\n\nfunction updateLabel(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n if (text[0] === '/') {\n// if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n document.getElementById(\"searchType\").innerHTML = \"Allmusic search\";\n break;\n case \"d\":\n document.getElementById(\"searchType\").innerHTML = \"Duck Duck Go search\";\n break;\n case \"di\":\n document.getElementById(\"searchType\").innerHTML = \"Discogs search\";\n break;\n case \"i\":\n document.getElementById(\"searchType\").innerHTML = \"IMDB search\";\n break;\n case \"m\":\n document.getElementById(\"searchType\").innerHTML = \"TheMovieDB search\";\n break;\n case \"r\":\n document.getElementById(\"searchType\").innerHTML = \"Reddit search\";\n break;\n case \"q\":\n document.getElementById(\"searchType\").innerHTML = \"Qwant search\";\n break;\n case \"so\":\n document.getElementById(\"searchType\").innerHTML = \"Soundcloud search\";\n break;\n case \"s\":\n document.getElementById(\"searchType\").innerHTML = \"Spotify search\";\n break;\n case \"tv\":\n document.getElementById(\"searchType\").innerHTML = \"TheTVDB search\";\n break;\n case \"t\":\n document.getElementById(\"searchType\").innerHTML = \"Trakt search\";\n break;\n case \"y\":\n document.getElementById(\"searchType\").innerHTML = \"YouTube search\";\n break;\n case \"w\":\n document.getElementById(\"searchType\").innerHTML = \"Wikipedia search\";\n break;\n case \"p\":\n document.getElementById(\"searchType\").innerHTML = \"Plex search\";\n break;\n case \"rt\":\n document.getElementById(\"searchType\").innerHTML = \"Rotten Tomatoes search\";\n break;\n default:\n document.getElementById(\"searchType\").innerHTML = \"Invalid search\";\n break;\n }\n}else {\n document.getElementById(\"searchType\").innerHTML = \"Google search\";\n }\n}\n\nfunction search(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n if (text[0] === '/') {\n if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n window.location = \"https://www.allmusic.com/search/all/\" + subtext;\n break;\n case \"d\":\n window.location = \"https://duckduckgo.com/?q=\" + subtext;\n break;\n case \"di\":\n window.location = \"https://www.discogs.com/search/?q=\" + subtext;\n break;\n case \"i\":\n window.location = \"https://www.imdb.com/find?q=\" + subtext;\n break;\n case \"m\":\n window.location = \"https://www.themoviedb.org/search?query=\" + subtext;\n break;\n case \"r\":\n window.location = \"https://www.reddit.com/search?q=\" + subtext;\n break;\n case \"q\":\n window.location = \"https://www.qwant.com/?q=\" + subtext;\n break;\n case \"so\":\n window.location = \"https://soundcloud.com/search?q=\" + subtext;\n break;\n case \"s\":\n window.location = \"https://open.spotify.com/search/results/\" + subtext;\n break;\n case \"t\":\n window.location = \"https://trakt.tv/search?query=\" + subtext;\n break;\n case \"tv\":\n window.location = \"https://www.thetvdb.com/search?query=\" + subtext;\n break;\n case \"y\":\n window.location = \"https://www.youtube.com/results?search_query=\" + subtext;\n break;\n case \"w\":\n window.location = \"https://en.wikipedia.org/w/index.php?search=\" + subtext;\n break;\n case \"p\":\n window.location = \"https://app.plex.tv/desktop/#!/search?query=\" + subtext;\n break;\n case \"rt\":\n window.location = \"https://www.rottentomatoes.com/search?search=\" + subtext;\n break;\n }\n } else {\n var option = text.substr(1);\n switch (option) {\n case \"d\":\n window.location = \"https://www.duckduckgo.com\";\n break;\n case \"y\":\n window.location = \"https://www.youtube.com\";\n break;\n case \"r\":\n window.location = \"https://reddit.com\";\n break;\n case \"s\":\n window.location = \"https://open.spotify.com\";\n break;\n }\n }\n } else if (validURL(text)) {\n if (containsProtocol(text))\n window.location = text;\n else\n window.location = \"https://\" + text;\n } else {\n window.location = \"https://www.google.com/search?q=\" + text;\n }\n}\n\n// Source: https://stackoverflow.com/questions/5717093/check-if-a-javascript-string-is-a-url\nfunction validURL(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/)?' + // protocol\n '((([a-z\\\\d]([a-z\\\\d-]*[a-z\\\\d])*)\\\\.)+[a-z]{2,}|' + // domain name\n '((\\\\d{1,3}\\\\.){3}\\\\d{1,3}))' + // OR ip (v4) address\n '(\\\\:\\\\d+)?(\\\\/[-a-z\\\\d%_.~+]*)*' + // port and path\n '(\\\\?[;&a-z\\\\d%_.~+=-]*)?' + // query string\n '(\\\\#[-a-z\\\\d_]*)?$', 'i'); // fragment locator\n return !!pattern.test(str);\n}\n\nfunction containsProtocol(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/){1}.*', 'i');\n return !!pattern.test(str);\n}\n\nString.prototype.replaceAll = function(search, replacement) {\n var target = this;\n return target.split(search).join(replacement);\n};"]},"metadata":{},"sourceType":"module"}
\ No newline at end of file
diff --git a/node_modules/.cache/babel-loader/395161a14176804b55ee1ff9b7ad3409.json b/node_modules/.cache/babel-loader/395161a14176804b55ee1ff9b7ad3409.json
new file mode 100644
index 00000000..58c43ec9
--- /dev/null
+++ b/node_modules/.cache/babel-loader/395161a14176804b55ee1ff9b7ad3409.json
@@ -0,0 +1 @@
+{"ast":null,"code":"var _jsxFileName = \"/home/seanedmunds/dev/home-page/src/index.js\",\n _s = $RefreshSig$();\n\nimport React from 'react';\nimport { useState, useEffect } from 'react';\nimport ReactDOM from 'react-dom'; //import { unstable_createPortal } from 'react-dom';\n\nimport './index.css';\nimport './search.js';\nimport { jsxDEV as _jsxDEV } from \"react/jsx-dev-runtime\";\n\nfunction Homepage() {\n return /*#__PURE__*/_jsxDEV(\"main\", {\n id: \"container\",\n className: \"fade\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Search, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 12,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 11,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Header, {\n date: date(),\n greet: greet()\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 15,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 14,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Applications, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 21,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 20,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Bookmarks, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 24,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 23,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(ModalMenu, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 27,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 26,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(ModalInit, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 30,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 29,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 10,\n columnNumber: 5\n }, this);\n}\n\n_c = Homepage;\n\nfunction Search() {\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"search\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"abackground\",\n children: [/*#__PURE__*/_jsxDEV(\"input\", {\n name: \"keywords\",\n type: \"text\",\n className: \"keyword\",\n id: \"keywords\",\n size: \"50\",\n spellCheck: \"true\",\n placeholder: \"\",\n onFocus: \"this.placeholder = ''\",\n onBlur: \"this.placeholder = ''\",\n autoComplete: \"off\",\n autoFocus: \"true\",\n onKeyUp: \"handleKeyPress(event)\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 40,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n id: \"searchType\",\n className: \"Input-label\",\n children: \"Google search\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 41,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 39,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 38,\n columnNumber: 5\n }, this);\n}\n\n_c2 = Search;\n\nfunction Header(props) {\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"header\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n id: \"greeting_block\",\n children: /*#__PURE__*/_jsxDEV(\"h1\", {\n id: \"header_greet\",\n children: props.greet\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 51,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 50,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"date_block\",\n children: [/*#__PURE__*/_jsxDEV(\"h2\", {\n id: \"header_date\",\n children: props.date\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 54,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(Clock, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 55,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 53,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 49,\n columnNumber: 5\n }, this);\n}\n\n_c3 = Header;\n\nfunction Applications() {\n let appList = getApps();\n var items = [];\n\n for (var i = 0; i < appList.apps.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(App, {\n name: appList.apps[i].name,\n url: appList.apps[i].url,\n icon: appList.apps[i].icon,\n NSFW: appList.apps[i].NSFW\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 66,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"apps\",\n children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n children: \"Applications\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 77,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"apps_loop\",\n children: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 78,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 76,\n columnNumber: 5\n }, this);\n}\n\n_c4 = Applications;\n\nfunction App(props) {\n let classNameType = props.NSFW + \"-content\";\n let hrefUrl = \"https://\" + props.url;\n let iconName = \"mdi-\" + props.icon;\n return /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: hrefUrl,\n className: classNameType,\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_item\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_icon\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify icon\",\n \"data-icon\": iconName\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 94,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 93,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_text\",\n children: [/*#__PURE__*/_jsxDEV(\"span\", {\n id: \"app-name\",\n children: props.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 97,\n columnNumber: 13\n }, this), /*#__PURE__*/_jsxDEV(\"span\", {\n id: \"app-address\",\n children: props.url\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 98,\n columnNumber: 13\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 96,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 92,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 91,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 90,\n columnNumber: 5\n }, this);\n}\n\n_c5 = App;\n\nfunction Bookmarks() {\n let bookmarkList = getLinks();\n var items = [];\n\n for (var i = 0; i < bookmarkList.bookmarks.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(LinkGroups, {\n category: bookmarkList.bookmarks[i].category,\n links: bookmarkList.bookmarks[i].links\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 111,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"links\",\n children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n children: \"Bookmarks\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 120,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"links_loop\",\n children: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 121,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 119,\n columnNumber: 5\n }, this);\n}\n\n_c6 = Bookmarks;\n\nfunction LinkGroups(props) {\n var items = [];\n\n for (var i = 0; i < props.links.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(LinkItem, {\n link: props.links[i]\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 132,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"links_item\",\n children: [/*#__PURE__*/_jsxDEV(\"h4\", {\n children: props.category\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 140,\n columnNumber: 7\n }, this), items]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 139,\n columnNumber: 5\n }, this);\n}\n\n_c7 = LinkGroups;\n\nfunction LinkItem(props) {\n return /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: props.link.url,\n className: \"theme_color-border theme_text-select\",\n children: props.link.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 149,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 148,\n columnNumber: 5\n }, this);\n}\n\n_c8 = LinkItem;\n\nfunction ModalMenu() {\n var providers = getProviders();\n var items = [];\n\n for (var i = 0; i < providers.providers.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(Provider, {\n provider: providers.providers[i]\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 159,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"modal\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n children: [/*#__PURE__*/_jsxDEV(\"header\", {\n id: \"modal-header\",\n children: [/*#__PURE__*/_jsxDEV(\"h1\", {\n children: \"Options\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 169,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n href: \"#\",\n title: \"Close\",\n className: \"modal-close\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-close\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 171,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 170,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 168,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"h2\", {\n children: \"Color themes\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 175,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"modal-theme\",\n children: [/*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"blackboard\",\n className: \"theme-button theme-blackboard\",\n children: \"Blackboard\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 178,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"gazette\",\n className: \"theme-button theme-gazette\",\n children: \"Gazette\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 179,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"espresso\",\n className: \"theme-button theme-espresso\",\n children: \"Espresso\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 180,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cab\",\n className: \"theme-button theme-cab\",\n children: \"Cab\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 181,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cloud\",\n className: \"theme-button theme-cloud\",\n children: \"Cloud\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 182,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"lime\",\n className: \"theme-button theme-lime\",\n children: \"Lime\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 183,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"passion\",\n className: \"theme-button theme-passion\",\n children: \"Passion\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 184,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"blues\",\n className: \"theme-button theme-blues\",\n children: \"Blues\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 185,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"chalk\",\n className: \"theme-button theme-chalk\",\n children: \"Chalk\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 186,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"tron\",\n className: \"theme-button theme-tron\",\n children: \"Tron\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 187,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"paper\",\n className: \"theme-button theme-paper\",\n children: \"Paper\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 188,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cyberpunk\",\n className: \"theme-button theme-cyberpunk\",\n children: \"Cyberpunk\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 189,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"quadra\",\n className: \"theme-button theme-panam\",\n children: \"Quadra\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 190,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"panam\",\n className: \"theme-button theme-panam\",\n children: \"Panam\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 191,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"touch\",\n className: \"theme-button theme-touch\",\n children: \"Touch\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 192,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"peek\",\n className: \"theme-button theme-peek\",\n children: \"Peek\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 193,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 177,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"h2\", {\n children: \"Search options\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 197,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"providers\",\n children: /*#__PURE__*/_jsxDEV(\"table\", {\n children: /*#__PURE__*/_jsxDEV(\"tbody\", {\n children: [/*#__PURE__*/_jsxDEV(\"tr\", {\n children: [/*#__PURE__*/_jsxDEV(\"th\", {\n children: \"Website\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 202,\n columnNumber: 19\n }, this), /*#__PURE__*/_jsxDEV(\"th\", {\n children: \"Prefix\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 203,\n columnNumber: 19\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 201,\n columnNumber: 17\n }, this), items]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 200,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 199,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 198,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"header\", {\n id: \"modal-footer\",\n children: [/*#__PURE__*/_jsxDEV(\"a\", {\n href: \"https://github.com/jeroenpardon/\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-github-box\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 211,\n columnNumber: 54\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 211,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n href: \"https://materialdesignicons.com/\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-material-design\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 212,\n columnNumber: 54\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 212,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"sneaky\",\n children: [/*#__PURE__*/_jsxDEV(\"input\", {\n type: \"checkbox\",\n id: \"contenttype\",\n onChange: \"nsfw(this)\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 213,\n columnNumber: 35\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n for: \"contenttype\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-domino-mask\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 214,\n columnNumber: 36\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 214,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 213,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 210,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 167,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 166,\n columnNumber: 5\n }, this);\n}\n\n_c9 = ModalMenu;\n\nfunction Provider(props) {\n return /*#__PURE__*/_jsxDEV(\"tr\", {\n children: [/*#__PURE__*/_jsxDEV(\"td\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: props.provider.url,\n children: props.provider.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 224,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 224,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"td\", {\n children: props.provider.prefix\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 225,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 223,\n columnNumber: 5\n }, this);\n}\n\n_c10 = Provider;\n\nfunction ModalInit() {\n return /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"modal_init\",\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n className: \"btn\",\n href: \"#modal\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify icon\",\n \"data-icon\": \"mdi-xbox-controller-menu\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 234,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 233,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 232,\n columnNumber: 5\n }, this);\n}\n\n_c11 = ModalInit;\nReactDOM.render( /*#__PURE__*/_jsxDEV(Homepage, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 241,\n columnNumber: 3\n}, this), document.getElementById('root')); //Functions below this line are for calculating data for\n//other functions\n\nfunction date() {\n let currentDate = new Date();\n let dateOptions = {\n weekday: \"long\",\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\"\n };\n let date = currentDate.toLocaleDateString(\"en-GB\", dateOptions);\n return date;\n}\n\nfunction fixDigits(k) {\n if (k < 10) {\n return \"0\" + k;\n } else {\n return k;\n }\n}\n\nfunction greet() {\n let currentTime = new Date();\n let greet = Math.floor(currentTime.getHours() / 6);\n let easterEggChance = Math.floor(Math.random() * 100);\n\n let greetings = require('./messages.json');\n\n let timeBased = [];\n let easterEggs = [];\n\n for (var i = 0; i < greetings.messages.length; i++) {\n if (greetings.messages[i].easteregg === \"FALSE\") {\n timeBased = timeBased.concat(greetings.messages[i]);\n } else {\n easterEggs = easterEggs.concat(greetings.messages[i]);\n }\n }\n\n if (easterEggChance > 10) {\n return timeBased[greet].message;\n } else {\n let easterEggText = Math.floor(Math.random() * easterEggs.length);\n return easterEggs[easterEggText].message;\n }\n}\n\nfunction Clock() {\n _s();\n\n const [date, setDate] = useState(new Date());\n\n function refreshClock() {\n setDate(new Date());\n }\n\n useEffect(() => {\n const timerId = setInterval(refreshClock, 1000);\n return function cleanup() {\n clearInterval(timerId);\n };\n }, []);\n var hour = date.getHours();\n var minutes = date.getMinutes(); //var seconds = date.getSeconds();\n\n var midday = \"AM\";\n midday = hour >= 12 ? \"PM\" : \"AM\";\n hour = hour === 0 ? 12 : hour > 12 ? hour - 12 : hour;\n minutes = fixDigits(minutes); //seconds = fixDigits(seconds);\n\n let time = hour + \":\" + minutes + \" \" + midday;\n return /*#__PURE__*/_jsxDEV(\"h2\", {\n id: \"clock\",\n children: time\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 312,\n columnNumber: 5\n }, this);\n}\n\n_s(Clock, \"Gqi45WOZhU2c0BLYX0HoJeiR0fk=\");\n\n_c12 = Clock;\n\nfunction getApps() {\n let applications = require('./apps.json');\n\n return applications;\n}\n\nfunction getLinks() {\n let links = require('./links.json');\n\n return links;\n}\n\nfunction getProviders() {\n let providers = require('./providers.json');\n\n return providers;\n}\n\nvar _c, _c2, _c3, _c4, _c5, _c6, _c7, _c8, _c9, _c10, _c11, _c12;\n\n$RefreshReg$(_c, \"Homepage\");\n$RefreshReg$(_c2, \"Search\");\n$RefreshReg$(_c3, \"Header\");\n$RefreshReg$(_c4, \"Applications\");\n$RefreshReg$(_c5, \"App\");\n$RefreshReg$(_c6, \"Bookmarks\");\n$RefreshReg$(_c7, \"LinkGroups\");\n$RefreshReg$(_c8, \"LinkItem\");\n$RefreshReg$(_c9, \"ModalMenu\");\n$RefreshReg$(_c10, \"Provider\");\n$RefreshReg$(_c11, \"ModalInit\");\n$RefreshReg$(_c12, \"Clock\");","map":{"version":3,"sources":["/home/seanedmunds/dev/home-page/src/index.js"],"names":["React","useState","useEffect","ReactDOM","Homepage","date","greet","Search","Header","props","Applications","appList","getApps","items","i","apps","length","push","name","url","icon","NSFW","App","classNameType","hrefUrl","iconName","Bookmarks","bookmarkList","getLinks","bookmarks","category","links","LinkGroups","LinkItem","link","ModalMenu","providers","getProviders","Provider","provider","prefix","ModalInit","render","document","getElementById","currentDate","Date","dateOptions","weekday","year","month","day","toLocaleDateString","fixDigits","k","currentTime","Math","floor","getHours","easterEggChance","random","greetings","require","timeBased","easterEggs","messages","easteregg","concat","message","easterEggText","Clock","setDate","refreshClock","timerId","setInterval","cleanup","clearInterval","hour","minutes","getMinutes","midday","time","applications"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { useState, useEffect } from 'react';\nimport ReactDOM from 'react-dom';\n//import { unstable_createPortal } from 'react-dom';\nimport './index.css';\nimport './search.js'\n\nfunction Homepage() {\n return (\n \n \n \n
\n \n \n
\n \n \n \n
\n \n \n
\n \n \n
\n \n );\n}\n\nfunction Search() {\n return (\n \n )\n}\n\nfunction Header(props) {\n return (\n \n );\n}\n\nfunction Applications() {\n let appList = getApps();\n var items = [];\n for (var i = 0; i < appList.apps.length; i++) {\n items.push(\n \n );\n }\n return (\n \n Applications
\n \n {items}\n
\n \n );\n}\n\nfunction App(props) {\n let classNameType = props.NSFW + \"-content\";\n let hrefUrl = \"https://\" + props.url;\n let iconName = \"mdi-\" + props.icon;\n return (\n \n );\n}\n\nfunction Bookmarks() {\n let bookmarkList = getLinks();\n var items = [];\n for (var i = 0; i < bookmarkList.bookmarks.length; i++) {\n items.push(\n \n );\n }\n return (\n \n Bookmarks
\n \n {items}\n
\n \n );\n}\n\nfunction LinkGroups(props) {\n var items = [];\n for (var i = 0; i < props.links.length; i++) {\n items.push(\n \n );\n }\n return (\n \n
{props.category}
\n {items}\n \n );\n}\n\nfunction LinkItem(props) {\n return (\n \n );\n}\n\nfunction ModalMenu() {\n var providers = getProviders();\n var items = [];\n for (var i = 0; i < providers.providers.length; i++) {\n items.push(\n \n );\n }\n return (\n \n \n \n\n
Color themes
\n\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n\n\n
Search options
\n
\n \n \n \n | Website | \n Prefix | \n
\n {items}\n \n
\n \n\n \n
\n \n );\n}\n\nfunction Provider(props) {\n return (\n \n | {props.provider.name} | \n {props.provider.prefix} | \n
\n );\n}\n\nfunction ModalInit() {\n return (\n \n );\n}\n\nReactDOM.render(\n ,\n document.getElementById('root')\n);\n\n//Functions below this line are for calculating data for\n//other functions\n\nfunction date() {\n let currentDate = new Date();\n let dateOptions = {\n weekday: \"long\",\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\"\n };\n let date = currentDate.toLocaleDateString(\"en-GB\", dateOptions);\n return date;\n}\nfunction fixDigits(k) {\n if (k < 10) {\n return \"0\" + k;\n }\n else {\n return k;\n }\n}\nfunction greet() {\n let currentTime = new Date();\n let greet = Math.floor(currentTime.getHours() / 6);\n let easterEggChance = Math.floor(Math.random() * 100);\n let greetings = require('./messages.json');\n let timeBased = [];\n let easterEggs = [];\n for (var i = 0; i < greetings.messages.length; i++) {\n if (greetings.messages[i].easteregg === \"FALSE\") {\n timeBased = timeBased.concat(greetings.messages[i]);\n } else {\n easterEggs = easterEggs.concat(greetings.messages[i]);\n }\n }\n if (easterEggChance > 10) {\n return timeBased[greet].message;\n } else {\n let easterEggText = Math.floor(Math.random() * easterEggs.length);\n return easterEggs[easterEggText].message;\n }\n}\nfunction Clock() {\n const [date, setDate] = useState(new Date());\n\n function refreshClock() {\n setDate(new Date());\n }\n useEffect(() => {\n const timerId = setInterval(refreshClock, 1000);\n return function cleanup() {\n clearInterval(timerId);\n };\n }, []);\n\n var hour = date.getHours();\n var minutes = date.getMinutes();\n //var seconds = date.getSeconds();\n var midday = \"AM\";\n midday = (hour >= 12) ? \"PM\" : \"AM\";\n hour = (hour === 0) ? 12 : ((hour > 12) ? (hour - 12) : hour);\n minutes = fixDigits(minutes);\n //seconds = fixDigits(seconds);\n let time = hour + \":\" + minutes + \" \" + midday;\n\n return (\n {time}
\n\n );\n}\nfunction getApps() {\n let applications = require('./apps.json');\n return applications;\n}\nfunction getLinks() {\n let links = require('./links.json');\n return links;\n}\nfunction getProviders() {\n let providers = require('./providers.json');\n return providers;\n}"]},"metadata":{},"sourceType":"module"}
\ No newline at end of file
diff --git a/node_modules/.cache/babel-loader/39df2582efc22b8780f7ecbec1d41f37.json b/node_modules/.cache/babel-loader/39df2582efc22b8780f7ecbec1d41f37.json
new file mode 100644
index 00000000..c83971fb
--- /dev/null
+++ b/node_modules/.cache/babel-loader/39df2582efc22b8780f7ecbec1d41f37.json
@@ -0,0 +1 @@
+{"ast":null,"code":"var _jsxFileName = \"/home/seanedmunds/dev/home-page/src/index.js\",\n _s = $RefreshSig$();\n\nimport React from 'react';\nimport { useState, useEffect } from 'react';\nimport ReactDOM from 'react-dom'; //import { unstable_createPortal } from 'react-dom';\n\nimport './index.css';\nimport { jsxDEV as _jsxDEV } from \"react/jsx-dev-runtime\";\n\nconst setValueFromLocalStorage = property => {\n let value = localStorage.getItem(property);\n setValue(property, value);\n};\n\nconst setValue = (property, value) => {\n if (value) {\n document.documentElement.style.setProperty(`--${property}`, value);\n const input = document.querySelector(`#${property}`);\n\n if (input) {\n value = value.replace('px', '');\n input.value = value;\n }\n }\n};\n\nfunction Homepage() {\n setTheme();\n return /*#__PURE__*/_jsxDEV(\"main\", {\n id: \"container\",\n className: \"fade\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Search, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 28,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 27,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Header, {\n date: date(),\n greet: greet()\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 31,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 30,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Applications, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 37,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 36,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Bookmarks, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 40,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 39,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(ModalMenu, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 43,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 42,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(ModalInit, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 46,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 45,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 26,\n columnNumber: 5\n }, this);\n}\n\n_c = Homepage;\n\nfunction Search() {\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"search\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"abackground\",\n children: [/*#__PURE__*/_jsxDEV(\"input\", {\n name: \"keywords\",\n type: \"text\",\n className: \"keyword\",\n id: \"keywords\",\n size: \"50\",\n spellCheck: \"true\",\n placeholder: \"\"\n /*onFocus={this.placeholder = \"\"} onBlur={this.placeholder = ''}*/\n ,\n autoComplete: \"off\",\n autoFocus: true,\n onKeyUp: handleKeyPress\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 56,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n id: \"searchType\",\n className: \"Input-label\",\n children: \"Google search\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 57,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 55,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 54,\n columnNumber: 5\n }, this);\n}\n\n_c2 = Search;\n\nfunction Header(props) {\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"header\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n id: \"greeting_block\",\n children: /*#__PURE__*/_jsxDEV(\"h1\", {\n id: \"header_greet\",\n children: props.greet\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 67,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 66,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"date_block\",\n children: [/*#__PURE__*/_jsxDEV(\"h2\", {\n id: \"header_date\",\n children: props.date\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 70,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(Clock, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 71,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 69,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 65,\n columnNumber: 5\n }, this);\n}\n\n_c3 = Header;\n\nfunction Applications() {\n let appList = getApps();\n var items = [];\n\n for (var i = 0; i < appList.apps.length; i++) {\n var safe = appList.apps[i].NSFW;\n var NSFWEnabled = localStorage.getItem(\"contenttype\");\n console.log(safe);\n\n if (safe === \"SAFE\") {\n items.push( /*#__PURE__*/_jsxDEV(App, {\n name: appList.apps[i].name,\n url: appList.apps[i].url,\n icon: appList.apps[i].icon,\n NSFW: appList.apps[i].NSFW\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 86,\n columnNumber: 9\n }, this));\n } else if (safe === \"NSFW\" && NSFWEnabled) {\n items.push( /*#__PURE__*/_jsxDEV(App, {\n name: appList.apps[i].name,\n url: appList.apps[i].url,\n icon: appList.apps[i].icon,\n NSFW: appList.apps[i].NSFW\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 96,\n columnNumber: 9\n }, this));\n } else {\n console.log(NSFWEnabled);\n }\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"apps\",\n children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n children: \"Applications\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 111,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"apps_loop\",\n children: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 112,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 110,\n columnNumber: 5\n }, this);\n}\n\n_c4 = Applications;\n\nfunction App(props) {\n let classNameType = props.NSFW + \"-content\";\n let hrefUrl = \"https://\" + props.url;\n let iconName = \"mdi-\" + props.icon;\n return /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: hrefUrl,\n className: classNameType,\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_item\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_icon\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify icon\",\n \"data-icon\": iconName\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 129,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 128,\n columnNumber: 13\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_text\",\n children: [/*#__PURE__*/_jsxDEV(\"span\", {\n id: \"app-name\",\n children: props.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 132,\n columnNumber: 15\n }, this), /*#__PURE__*/_jsxDEV(\"span\", {\n id: \"app-address\",\n children: props.url\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 133,\n columnNumber: 15\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 131,\n columnNumber: 13\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 127,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 126,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 125,\n columnNumber: 7\n }, this);\n}\n\n_c5 = App;\n\nfunction Bookmarks() {\n let bookmarkList = getLinks();\n var items = [];\n\n for (var i = 0; i < bookmarkList.bookmarks.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(LinkGroups, {\n category: bookmarkList.bookmarks[i].category,\n links: bookmarkList.bookmarks[i].links\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 146,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"links\",\n children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n children: \"Bookmarks\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 155,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"links_loop\",\n children: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 156,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 154,\n columnNumber: 5\n }, this);\n}\n\n_c6 = Bookmarks;\n\nfunction LinkGroups(props) {\n var items = [];\n\n for (var i = 0; i < props.links.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(LinkItem, {\n link: props.links[i]\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 167,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"links_item\",\n children: [/*#__PURE__*/_jsxDEV(\"h4\", {\n children: props.category\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 175,\n columnNumber: 7\n }, this), items]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 174,\n columnNumber: 5\n }, this);\n}\n\n_c7 = LinkGroups;\n\nfunction LinkItem(props) {\n return /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: props.link.url,\n className: \"theme_color-border theme_text-select\",\n children: props.link.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 184,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 183,\n columnNumber: 5\n }, this);\n}\n\n_c8 = LinkItem;\n\nfunction ModalMenu() {\n var providers = getProviders();\n var items = [];\n\n for (var i = 0; i < providers.providers.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(Provider, {\n provider: providers.providers[i]\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 194,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"modal\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n children: [/*#__PURE__*/_jsxDEV(\"header\", {\n id: \"modal-header\",\n children: [/*#__PURE__*/_jsxDEV(\"h1\", {\n children: \"Options\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 204,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n href: \"#\",\n title: \"Close\",\n className: \"modal-close\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-close\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 206,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 205,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 203,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"h2\", {\n children: \"Color themes\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 210,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"modal-theme\",\n children: [/*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"blackboard\",\n className: \"theme-button theme-blackboard\",\n onClick: updateTheme,\n children: \"Blackboard\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 213,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"gazette\",\n className: \"theme-button theme-gazette\",\n onClick: updateTheme,\n children: \"Gazette\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 214,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"espresso\",\n className: \"theme-button theme-espresso\",\n onClick: updateTheme,\n children: \"Espresso\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 215,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cab\",\n className: \"theme-button theme-cab\",\n onClick: updateTheme,\n children: \"Cab\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 216,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cloud\",\n className: \"theme-button theme-cloud\",\n onClick: updateTheme,\n children: \"Cloud\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 217,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"lime\",\n className: \"theme-button theme-lime\",\n onClick: updateTheme,\n children: \"Lime\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 218,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"passion\",\n className: \"theme-button theme-passion\",\n onClick: updateTheme,\n children: \"Passion\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 219,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"blues\",\n className: \"theme-button theme-blues\",\n onClick: updateTheme,\n children: \"Blues\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 220,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"chalk\",\n className: \"theme-button theme-chalk\",\n onClick: updateTheme,\n children: \"Chalk\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 221,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"tron\",\n className: \"theme-button theme-tron\",\n onClick: updateTheme,\n children: \"Tron\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 222,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"paper\",\n className: \"theme-button theme-paper\",\n onClick: updateTheme,\n children: \"Paper\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 223,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cyberpunk\",\n className: \"theme-button theme-cyberpunk\",\n onClick: updateTheme,\n children: \"Cyberpunk\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 224,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"quadra\",\n className: \"theme-button theme-panam\",\n onClick: updateTheme,\n children: \"Quadra\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 225,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"panam\",\n className: \"theme-button theme-panam\",\n onClick: updateTheme,\n children: \"Panam\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 226,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"touch\",\n className: \"theme-button theme-touch\",\n onClick: updateTheme,\n children: \"Touch\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 227,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"peek\",\n className: \"theme-button theme-peek\",\n onClick: updateTheme,\n children: \"Peek\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 228,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 212,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"h2\", {\n children: \"Search options\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 232,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"providers\",\n children: /*#__PURE__*/_jsxDEV(\"table\", {\n children: /*#__PURE__*/_jsxDEV(\"tbody\", {\n children: [/*#__PURE__*/_jsxDEV(\"tr\", {\n children: [/*#__PURE__*/_jsxDEV(\"th\", {\n children: \"Website\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 237,\n columnNumber: 19\n }, this), /*#__PURE__*/_jsxDEV(\"th\", {\n children: \"Prefix\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 238,\n columnNumber: 19\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 236,\n columnNumber: 17\n }, this), items]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 235,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 234,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 233,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"header\", {\n id: \"modal-footer\",\n children: [/*#__PURE__*/_jsxDEV(\"a\", {\n href: \"https://github.com/jeroenpardon/\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-github-box\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 246,\n columnNumber: 54\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 246,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n href: \"https://materialdesignicons.com/\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-material-design\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 247,\n columnNumber: 54\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 247,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"sneaky\",\n children: [/*#__PURE__*/_jsxDEV(\"input\", {\n type: \"checkbox\",\n id: \"contenttype\",\n onChange: udpateDisplayedItems\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 248,\n columnNumber: 35\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n for: \"contenttype\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-domino-mask\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 249,\n columnNumber: 36\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 249,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 248,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 245,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 202,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 201,\n columnNumber: 5\n }, this);\n}\n\n_c9 = ModalMenu;\n\nfunction Provider(props) {\n return /*#__PURE__*/_jsxDEV(\"tr\", {\n children: [/*#__PURE__*/_jsxDEV(\"td\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: props.provider.url,\n children: props.provider.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 259,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 259,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"td\", {\n children: props.provider.prefix\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 260,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 258,\n columnNumber: 5\n }, this);\n}\n\n_c10 = Provider;\n\nfunction ModalInit() {\n return /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"modal_init\",\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n className: \"btn\",\n href: \"#modal\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify icon\",\n \"data-icon\": \"mdi-xbox-controller-menu\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 269,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 268,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 267,\n columnNumber: 5\n }, this);\n}\n\n_c11 = ModalInit;\nReactDOM.render( /*#__PURE__*/_jsxDEV(Homepage, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 276,\n columnNumber: 3\n}, this), document.getElementById('root')); //Functions below this line are for calculating data for\n//other functions\n\nfunction date() {\n let currentDate = new Date();\n let dateOptions = {\n weekday: \"long\",\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\"\n };\n let date = currentDate.toLocaleDateString(\"en-GB\", dateOptions);\n return date;\n}\n\nfunction fixDigits(k) {\n if (k < 10) {\n return \"0\" + k;\n } else {\n return k;\n }\n}\n\nfunction greet() {\n let currentTime = new Date();\n let greet = Math.floor(currentTime.getHours() / 6);\n let easterEggChance = Math.floor(Math.random() * 100);\n\n let greetings = require('./messages.json');\n\n let timeBased = [];\n let easterEggs = [];\n\n for (var i = 0; i < greetings.messages.length; i++) {\n if (greetings.messages[i].easteregg === \"FALSE\") {\n timeBased = timeBased.concat(greetings.messages[i]);\n } else {\n easterEggs = easterEggs.concat(greetings.messages[i]);\n }\n }\n\n if (easterEggChance > 10) {\n return timeBased[greet].message;\n } else {\n let easterEggText = Math.floor(Math.random() * easterEggs.length);\n return easterEggs[easterEggText].message;\n }\n}\n\nfunction Clock() {\n _s();\n\n const [date, setDate] = useState(new Date());\n\n function refreshClock() {\n setDate(new Date());\n }\n\n useEffect(() => {\n const timerId = setInterval(refreshClock, 1000);\n return function cleanup() {\n clearInterval(timerId);\n };\n }, []);\n var hour = date.getHours();\n var minutes = date.getMinutes(); //var seconds = date.getSeconds();\n\n var midday = \"AM\";\n midday = hour >= 12 ? \"PM\" : \"AM\";\n hour = hour === 0 ? 12 : hour > 12 ? hour - 12 : hour;\n minutes = fixDigits(minutes); //seconds = fixDigits(seconds);\n\n let time = hour + \":\" + minutes + \" \" + midday;\n return /*#__PURE__*/_jsxDEV(\"h2\", {\n id: \"clock\",\n children: time\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 347,\n columnNumber: 5\n }, this);\n}\n\n_s(Clock, \"Gqi45WOZhU2c0BLYX0HoJeiR0fk=\");\n\n_c12 = Clock;\n\nfunction getApps() {\n let applications = require('./apps.json');\n\n return applications;\n}\n\nfunction getLinks() {\n let links = require('./links.json');\n\n return links;\n}\n\nfunction getProviders() {\n let providers = require('./providers.json');\n\n return providers;\n}\n\nfunction getThemes() {\n let themes = require('./themes.json');\n\n return themes;\n}\n\nfunction updateTheme(e) {\n var themes = getThemes();\n var themeName = e.target.innerHTML.toLowerCase();\n var index = themes.themes.findIndex(function (item, i) {\n return item.name === themeName;\n });\n console.log(themes.themes[index]);\n localStorage.setItem(\"image-background\", themes.themes[index].imagebackground);\n localStorage.setItem(\"color-background\", themes.themes[index].colorbackground);\n localStorage.setItem(\"color-search-background\", themes.themes[index].colorserachbackground);\n localStorage.setItem(\"color-text-pri\", themes.themes[index].colortextpri);\n localStorage.setItem(\"color-text-acc\", themes.themes[index].colortextacc);\n localStorage.setItem(\"color-border\", themes.themes[index].colorborder); //document.documentElement.style.setProperty(prop, `var(--${themeName}${prop.substring(10)})`);\n\n setTheme();\n}\n\nfunction setTheme() {\n setValueFromLocalStorage('image-background');\n setValueFromLocalStorage('color-background');\n setValueFromLocalStorage('color-search-background');\n setValueFromLocalStorage('color-text-pri');\n setValueFromLocalStorage('color-text-acc');\n setValueFromLocalStorage('color-border');\n setValueFromLocalStorage('content-display');\n}\n\nfunction handleKeyPress(e) {\n var sindex = 0;\n var cycle = false;\n var key = e.keyCode || e.which;\n var text = e.target.value.replaceAll(\"+\", \"%2B\");\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n\n if (key == 13) {\n // Search functions\n search(text);\n }\n\n if (key == 9) {\n // Tab Completion Functions\n e.preventDefault();\n e.stopPropagation();\n\n if (text[0] === ';') {\n switch (option) {\n case 't':\n var streamers = ['admiralbahroo', 'moonmoon_ow', 'witwix'];\n\n if (!subtext || cycle) {\n cycle = true;\n if (sindex > streamers.length - 1) sindex = 0;\n document.getElementById(\"keywords\").value = ';t ' + streamers[sindex++];\n return;\n }\n\n for (var streamer of streamers) {\n if (subtext === streamer.substr(0, subtext.length)) {\n document.getElementById(\"keywords\").value = ';t ' + streamer;\n return;\n }\n }\n\n break;\n }\n }\n }\n\n if (key == 32) {\n //Space to go to search\n updateLabel(text);\n }\n\n sindex = 0;\n cycle = false;\n updateLabel(text);\n}\n\nfunction updateLabel(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n\n if (text[0] === '/') {\n // if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n document.getElementById(\"searchType\").innerHTML = \"Allmusic search\";\n break;\n\n case \"d\":\n document.getElementById(\"searchType\").innerHTML = \"Duck Duck Go search\";\n break;\n\n case \"di\":\n document.getElementById(\"searchType\").innerHTML = \"Discogs search\";\n break;\n\n case \"i\":\n document.getElementById(\"searchType\").innerHTML = \"IMDB search\";\n break;\n\n case \"m\":\n document.getElementById(\"searchType\").innerHTML = \"TheMovieDB search\";\n break;\n\n case \"r\":\n document.getElementById(\"searchType\").innerHTML = \"Reddit search\";\n break;\n\n case \"q\":\n document.getElementById(\"searchType\").innerHTML = \"Qwant search\";\n break;\n\n case \"so\":\n document.getElementById(\"searchType\").innerHTML = \"Soundcloud search\";\n break;\n\n case \"s\":\n document.getElementById(\"searchType\").innerHTML = \"Spotify search\";\n break;\n\n case \"tv\":\n document.getElementById(\"searchType\").innerHTML = \"TheTVDB search\";\n break;\n\n case \"t\":\n document.getElementById(\"searchType\").innerHTML = \"Trakt search\";\n break;\n\n case \"y\":\n document.getElementById(\"searchType\").innerHTML = \"YouTube search\";\n break;\n\n case \"w\":\n document.getElementById(\"searchType\").innerHTML = \"Wikipedia search\";\n break;\n\n case \"p\":\n document.getElementById(\"searchType\").innerHTML = \"Plex search\";\n break;\n\n case \"rt\":\n document.getElementById(\"searchType\").innerHTML = \"Rotten Tomatoes search\";\n break;\n\n default:\n document.getElementById(\"searchType\").innerHTML = \"Invalid search\";\n break;\n }\n } else {\n document.getElementById(\"searchType\").innerHTML = \"Google search\";\n }\n}\n\nfunction search(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n\n if (text[0] === '/') {\n if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n window.location = \"https://www.allmusic.com/search/all/\" + subtext;\n break;\n\n case \"d\":\n window.location = \"https://duckduckgo.com/?q=\" + subtext;\n break;\n\n case \"di\":\n window.location = \"https://www.discogs.com/search/?q=\" + subtext;\n break;\n\n case \"i\":\n window.location = \"https://www.imdb.com/find?q=\" + subtext;\n break;\n\n case \"m\":\n window.location = \"https://www.themoviedb.org/search?query=\" + subtext;\n break;\n\n case \"r\":\n window.location = \"https://www.reddit.com/search?q=\" + subtext;\n break;\n\n case \"q\":\n window.location = \"https://www.qwant.com/?q=\" + subtext;\n break;\n\n case \"so\":\n window.location = \"https://soundcloud.com/search?q=\" + subtext;\n break;\n\n case \"s\":\n window.location = \"https://open.spotify.com/search/results/\" + subtext;\n break;\n\n case \"t\":\n window.location = \"https://trakt.tv/search?query=\" + subtext;\n break;\n\n case \"tv\":\n window.location = \"https://www.thetvdb.com/search?query=\" + subtext;\n break;\n\n case \"y\":\n window.location = \"https://www.youtube.com/results?search_query=\" + subtext;\n break;\n\n case \"w\":\n window.location = \"https://en.wikipedia.org/w/index.php?search=\" + subtext;\n break;\n\n case \"p\":\n window.location = \"https://app.plex.tv/desktop/#!/search?query=\" + subtext;\n break;\n\n case \"rt\":\n window.location = \"https://www.rottentomatoes.com/search?search=\" + subtext;\n break;\n }\n } else {\n var option = text.substr(1);\n\n switch (option) {\n case \"d\":\n window.location = \"https://www.duckduckgo.com\";\n break;\n\n case \"y\":\n window.location = \"https://www.youtube.com\";\n break;\n\n case \"r\":\n window.location = \"https://reddit.com\";\n break;\n\n case \"s\":\n window.location = \"https://open.spotify.com\";\n break;\n }\n }\n } else if (validURL(text)) {\n if (containsProtocol(text)) window.location = text;else window.location = \"https://\" + text;\n } else {\n window.location = \"https://www.google.com/search?q=\" + text;\n }\n} // Source: https://stackoverflow.com/questions/5717093/check-if-a-javascript-string-is-a-url\n\n\nfunction validURL(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/)?' + // protocol\n '((([a-z\\\\d]([a-z\\\\d-]*[a-z\\\\d])*)\\\\.)+[a-z]{2,}|' + // domain name\n '((\\\\d{1,3}\\\\.){3}\\\\d{1,3}))' + // OR ip (v4) address\n '(\\\\:\\\\d+)?(\\\\/[-a-z\\\\d%_.~+]*)*' + // port and path\n '(\\\\?[;&a-z\\\\d%_.~+=-]*)?' + // query string\n '(\\\\#[-a-z\\\\d_]*)?$', 'i'); // fragment locator\n\n return !!pattern.test(str);\n}\n\nfunction containsProtocol(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/){1}.*', 'i');\n return !!pattern.test(str);\n}\n\nString.prototype.replaceAll = function (search, replacement) {\n var target = this;\n return target.split(search).join(replacement);\n};\n\nfunction udpateDisplayedItems(e) {\n localStorage.setItem('contenttype', e.target.checked);\n\n if (e.target.checked) {\n localStorage.setItem('content-display', 'none');\n } else {\n localStorage.setItem('content-display', 'block');\n }\n\n setDisplayedItems();\n}\n\nfunction setDisplayedItems() {\n setValueFromLocalStorage('contenttype');\n setValueFromLocalStorage('content-display');\n\n /*#__PURE__*/\n _jsxDEV(Applications, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 608,\n columnNumber: 3\n }, this);\n}\n\nvar _c, _c2, _c3, _c4, _c5, _c6, _c7, _c8, _c9, _c10, _c11, _c12;\n\n$RefreshReg$(_c, \"Homepage\");\n$RefreshReg$(_c2, \"Search\");\n$RefreshReg$(_c3, \"Header\");\n$RefreshReg$(_c4, \"Applications\");\n$RefreshReg$(_c5, \"App\");\n$RefreshReg$(_c6, \"Bookmarks\");\n$RefreshReg$(_c7, \"LinkGroups\");\n$RefreshReg$(_c8, \"LinkItem\");\n$RefreshReg$(_c9, \"ModalMenu\");\n$RefreshReg$(_c10, \"Provider\");\n$RefreshReg$(_c11, \"ModalInit\");\n$RefreshReg$(_c12, \"Clock\");","map":{"version":3,"sources":["/home/seanedmunds/dev/home-page/src/index.js"],"names":["React","useState","useEffect","ReactDOM","setValueFromLocalStorage","property","value","localStorage","getItem","setValue","document","documentElement","style","setProperty","input","querySelector","replace","Homepage","setTheme","date","greet","Search","handleKeyPress","Header","props","Applications","appList","getApps","items","i","apps","length","safe","NSFW","NSFWEnabled","console","log","push","name","url","icon","App","classNameType","hrefUrl","iconName","Bookmarks","bookmarkList","getLinks","bookmarks","category","links","LinkGroups","LinkItem","link","ModalMenu","providers","getProviders","updateTheme","udpateDisplayedItems","Provider","provider","prefix","ModalInit","render","getElementById","currentDate","Date","dateOptions","weekday","year","month","day","toLocaleDateString","fixDigits","k","currentTime","Math","floor","getHours","easterEggChance","random","greetings","require","timeBased","easterEggs","messages","easteregg","concat","message","easterEggText","Clock","setDate","refreshClock","timerId","setInterval","cleanup","clearInterval","hour","minutes","getMinutes","midday","time","applications","getThemes","themes","e","themeName","target","innerHTML","toLowerCase","index","findIndex","item","setItem","imagebackground","colorbackground","colorserachbackground","colortextpri","colortextacc","colorborder","sindex","cycle","key","keyCode","which","text","replaceAll","option","substr","indexOf","subtext","search","preventDefault","stopPropagation","streamers","streamer","updateLabel","window","location","validURL","containsProtocol","str","pattern","RegExp","test","String","prototype","replacement","split","join","checked","setDisplayedItems"],"mappings":";;;AAAA,OAAOA,KAAP,MAAkB,OAAlB;AACA,SAASC,QAAT,EAAmBC,SAAnB,QAAoC,OAApC;AACA,OAAOC,QAAP,MAAqB,WAArB,C,CACA;;AACA,OAAO,aAAP;;;AAEA,MAAMC,wBAAwB,GAAGC,QAAQ,IAAI;AAC3C,MAAIC,KAAK,GAAGC,YAAY,CAACC,OAAb,CAAqBH,QAArB,CAAZ;AACAI,EAAAA,QAAQ,CAACJ,QAAD,EAAWC,KAAX,CAAR;AACD,CAHD;;AAIA,MAAMG,QAAQ,GAAG,CAACJ,QAAD,EAAWC,KAAX,KAAqB;AACpC,MAAIA,KAAJ,EAAW;AACPI,IAAAA,QAAQ,CAACC,eAAT,CAAyBC,KAAzB,CAA+BC,WAA/B,CAA4C,KAAIR,QAAS,EAAzD,EAA4DC,KAA5D;AAEA,UAAMQ,KAAK,GAAGJ,QAAQ,CAACK,aAAT,CAAwB,IAAGV,QAAS,EAApC,CAAd;;AACA,QAAIS,KAAJ,EAAW;AACPR,MAAAA,KAAK,GAAGA,KAAK,CAACU,OAAN,CAAc,IAAd,EAAoB,EAApB,CAAR;AACAF,MAAAA,KAAK,CAACR,KAAN,GAAcA,KAAd;AACH;AACJ;AACF,CAVD;;AAYA,SAASW,QAAT,GAAoB;AAClBC,EAAAA,QAAQ;AACR,sBACE;AAAM,IAAA,EAAE,EAAC,WAAT;AAAqB,IAAA,SAAS,EAAC,MAA/B;AAAA,4BACI;AAAA,6BACE,QAAC,MAAD;AAAA;AAAA;AAAA;AAAA;AADF;AAAA;AAAA;AAAA;AAAA,YADJ,eAII;AAAA,6BACE,QAAC,MAAD;AACE,QAAA,IAAI,EAAEC,IAAI,EADZ;AAEE,QAAA,KAAK,EAAEC,KAAK;AAFd;AAAA;AAAA;AAAA;AAAA;AADF;AAAA;AAAA;AAAA;AAAA,YAJJ,eAUI;AAAA,6BACE,QAAC,YAAD;AAAA;AAAA;AAAA;AAAA;AADF;AAAA;AAAA;AAAA;AAAA,YAVJ,eAaI;AAAA,6BACE,QAAC,SAAD;AAAA;AAAA;AAAA;AAAA;AADF;AAAA;AAAA;AAAA;AAAA,YAbJ,eAgBI;AAAA,6BACE,QAAC,SAAD;AAAA;AAAA;AAAA;AAAA;AADF;AAAA;AAAA;AAAA;AAAA,YAhBJ,eAmBI;AAAA,6BACE,QAAC,SAAD;AAAA;AAAA;AAAA;AAAA;AADF;AAAA;AAAA;AAAA;AAAA,YAnBJ;AAAA;AAAA;AAAA;AAAA;AAAA,UADF;AAyBD;;KA3BQH,Q;;AA6BT,SAASI,MAAT,GAAkB;AAChB,sBACE;AAAS,IAAA,EAAE,EAAC,QAAZ;AAAA,2BACE;AAAK,MAAA,SAAS,EAAC,aAAf;AAAA,8BACE;AAAO,QAAA,IAAI,EAAC,UAAZ;AAAuB,QAAA,IAAI,EAAC,MAA5B;AAAmC,QAAA,SAAS,EAAC,SAA7C;AAAuD,QAAA,EAAE,EAAC,UAA1D;AAAqE,QAAA,IAAI,EAAC,IAA1E;AAA+E,QAAA,UAAU,EAAC,MAA1F;AAAiG,QAAA,WAAW,EAAC;AAAG;AAAhH;AAAmL,QAAA,YAAY,EAAC,KAAhM;AAAsM,QAAA,SAAS,EAAE,IAAjN;AAAuN,QAAA,OAAO,EAAEC;AAAhO;AAAA;AAAA;AAAA;AAAA,cADF,eAEE;AAAO,QAAA,EAAE,EAAC,YAAV;AAAuB,QAAA,SAAS,EAAC,aAAjC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,cAFF;AAAA;AAAA;AAAA;AAAA;AAAA;AADF;AAAA;AAAA;AAAA;AAAA,UADF;AAQD;;MATQD,M;;AAWT,SAASE,MAAT,CAAgBC,KAAhB,EAAuB;AACrB,sBACE;AAAS,IAAA,EAAE,EAAC,QAAZ;AAAA,4BACE;AAAK,MAAA,EAAE,EAAC,gBAAR;AAAA,6BACE;AAAI,QAAA,EAAE,EAAC,cAAP;AAAA,kBAAuBA,KAAK,CAACJ;AAA7B;AAAA;AAAA;AAAA;AAAA;AADF;AAAA;AAAA;AAAA;AAAA,YADF,eAIE;AAAK,MAAA,EAAE,EAAC,YAAR;AAAA,8BACE;AAAI,QAAA,EAAE,EAAC,aAAP;AAAA,kBAAsBI,KAAK,CAACL;AAA5B;AAAA;AAAA;AAAA;AAAA,cADF,eAEE,QAAC,KAAD;AAAA;AAAA;AAAA;AAAA,cAFF;AAAA;AAAA;AAAA;AAAA;AAAA,YAJF;AAAA;AAAA;AAAA;AAAA;AAAA,UADF;AAWD;;MAZQI,M;;AAcT,SAASE,YAAT,GAAwB;AACtB,MAAIC,OAAO,GAAGC,OAAO,EAArB;AACA,MAAIC,KAAK,GAAG,EAAZ;;AACA,OAAK,IAAIC,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGH,OAAO,CAACI,IAAR,CAAaC,MAAjC,EAAyCF,CAAC,EAA1C,EAA8C;AAC5C,QAAIG,IAAI,GAAGN,OAAO,CAACI,IAAR,CAAaD,CAAb,EAAgBI,IAA3B;AACA,QAAIC,WAAW,GAAG3B,YAAY,CAACC,OAAb,CAAqB,aAArB,CAAlB;AACA2B,IAAAA,OAAO,CAACC,GAAR,CAAYJ,IAAZ;;AACA,QAAIA,IAAI,KAAK,MAAb,EAAqB;AACnBJ,MAAAA,KAAK,CAACS,IAAN,eACE,QAAC,GAAD;AAEE,QAAA,IAAI,EAAEX,OAAO,CAACI,IAAR,CAAaD,CAAb,EAAgBS,IAFxB;AAGE,QAAA,GAAG,EAAEZ,OAAO,CAACI,IAAR,CAAaD,CAAb,EAAgBU,GAHvB;AAIE,QAAA,IAAI,EAAEb,OAAO,CAACI,IAAR,CAAaD,CAAb,EAAgBW,IAJxB;AAKE,QAAA,IAAI,EAAEd,OAAO,CAACI,IAAR,CAAaD,CAAb,EAAgBI;AALxB,SACOJ,CADP;AAAA;AAAA;AAAA;AAAA,cADF;AASD,KAVD,MAUO,IAAIG,IAAI,KAAK,MAAT,IAAmBE,WAAvB,EAAoC;AACzCN,MAAAA,KAAK,CAACS,IAAN,eACE,QAAC,GAAD;AAEE,QAAA,IAAI,EAAEX,OAAO,CAACI,IAAR,CAAaD,CAAb,EAAgBS,IAFxB;AAGE,QAAA,GAAG,EAAEZ,OAAO,CAACI,IAAR,CAAaD,CAAb,EAAgBU,GAHvB;AAIE,QAAA,IAAI,EAAEb,OAAO,CAACI,IAAR,CAAaD,CAAb,EAAgBW,IAJxB;AAKE,QAAA,IAAI,EAAEd,OAAO,CAACI,IAAR,CAAaD,CAAb,EAAgBI;AALxB,SACOJ,CADP;AAAA;AAAA;AAAA;AAAA,cADF;AASD,KAVM,MAUA;AACLM,MAAAA,OAAO,CAACC,GAAR,CAAYF,WAAZ;AACD;AAEF;;AACD,sBACE;AAAS,IAAA,EAAE,EAAC,MAAZ;AAAA,4BACE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,YADF,eAEE;AAAK,MAAA,EAAE,EAAC,WAAR;AAAA,gBACGN;AADH;AAAA;AAAA;AAAA;AAAA,YAFF;AAAA;AAAA;AAAA;AAAA;AAAA,UADF;AAQD;;MAxCQH,Y;;AA0CT,SAASgB,GAAT,CAAajB,KAAb,EAAoB;AAEhB,MAAIkB,aAAa,GAAGlB,KAAK,CAACS,IAAN,GAAa,UAAjC;AACA,MAAIU,OAAO,GAAG,aAAanB,KAAK,CAACe,GAAjC;AACA,MAAIK,QAAQ,GAAG,SAASpB,KAAK,CAACgB,IAA9B;AACA,sBACE;AAAA,2BACE;AAAG,MAAA,IAAI,EAAEG,OAAT;AAAkB,MAAA,SAAS,EAAED,aAA7B;AAAA,6BACE;AAAK,QAAA,SAAS,EAAC,WAAf;AAAA,gCACE;AAAK,UAAA,SAAS,EAAC,WAAf;AAAA,iCACE;AAAM,YAAA,SAAS,EAAC,cAAhB;AAA+B,yBAAWE;AAA1C;AAAA;AAAA;AAAA;AAAA;AADF;AAAA;AAAA;AAAA;AAAA,gBADF,eAIE;AAAK,UAAA,SAAS,EAAC,WAAf;AAAA,kCACE;AAAM,YAAA,EAAE,EAAC,UAAT;AAAA,sBAAqBpB,KAAK,CAACc;AAA3B;AAAA;AAAA;AAAA;AAAA,kBADF,eAEE;AAAM,YAAA,EAAE,EAAC,aAAT;AAAA,sBAAwBd,KAAK,CAACe;AAA9B;AAAA;AAAA;AAAA;AAAA,kBAFF;AAAA;AAAA;AAAA;AAAA;AAAA,gBAJF;AAAA;AAAA;AAAA;AAAA;AAAA;AADF;AAAA;AAAA;AAAA;AAAA;AADF;AAAA;AAAA;AAAA;AAAA,UADF;AAeH;;MApBQE,G;;AAsBT,SAASI,SAAT,GAAqB;AACnB,MAAIC,YAAY,GAAGC,QAAQ,EAA3B;AACA,MAAInB,KAAK,GAAG,EAAZ;;AACA,OAAK,IAAIC,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGiB,YAAY,CAACE,SAAb,CAAuBjB,MAA3C,EAAmDF,CAAC,EAApD,EAAwD;AACtDD,IAAAA,KAAK,CAACS,IAAN,eACE,QAAC,UAAD;AAEE,MAAA,QAAQ,EAAES,YAAY,CAACE,SAAb,CAAuBnB,CAAvB,EAA0BoB,QAFtC;AAGE,MAAA,KAAK,EAAEH,YAAY,CAACE,SAAb,CAAuBnB,CAAvB,EAA0BqB;AAHnC,OACOrB,CADP;AAAA;AAAA;AAAA;AAAA,YADF;AAOD;;AACD,sBACE;AAAS,IAAA,EAAE,EAAC,OAAZ;AAAA,4BACE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,YADF,eAEE;AAAK,MAAA,EAAE,EAAC,YAAR;AAAA,gBACKD;AADL;AAAA;AAAA;AAAA;AAAA,YAFF;AAAA;AAAA;AAAA;AAAA;AAAA,UADF;AAQD;;MApBQiB,S;;AAsBT,SAASM,UAAT,CAAoB3B,KAApB,EAA2B;AACzB,MAAII,KAAK,GAAG,EAAZ;;AACA,OAAK,IAAIC,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGL,KAAK,CAAC0B,KAAN,CAAYnB,MAAhC,EAAwCF,CAAC,EAAzC,EAA6C;AAC3CD,IAAAA,KAAK,CAACS,IAAN,eACE,QAAC,QAAD;AAEE,MAAA,IAAI,EAAEb,KAAK,CAAC0B,KAAN,CAAYrB,CAAZ;AAFR,OACOA,CADP;AAAA;AAAA;AAAA;AAAA,YADF;AAMD;;AACD,sBACE;AAAK,IAAA,EAAE,EAAC,YAAR;AAAA,4BACE;AAAA,gBAAKL,KAAK,CAACyB;AAAX;AAAA;AAAA;AAAA;AAAA,YADF,EAEGrB,KAFH;AAAA;AAAA;AAAA;AAAA;AAAA,UADF;AAMD;;MAhBQuB,U;;AAkBT,SAASC,QAAT,CAAkB5B,KAAlB,EAAyB;AACvB,sBACE;AAAA,2BACE;AAAG,MAAA,IAAI,EAAEA,KAAK,CAAC6B,IAAN,CAAWd,GAApB;AAAyB,MAAA,SAAS,EAAC,sCAAnC;AAAA,gBAA2Ef,KAAK,CAAC6B,IAAN,CAAWf;AAAtF;AAAA;AAAA;AAAA;AAAA;AADF;AAAA;AAAA;AAAA;AAAA,UADF;AAKD;;MANQc,Q;;AAQT,SAASE,SAAT,GAAqB;AACnB,MAAIC,SAAS,GAAGC,YAAY,EAA5B;AACA,MAAI5B,KAAK,GAAG,EAAZ;;AACA,OAAK,IAAIC,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG0B,SAAS,CAACA,SAAV,CAAoBxB,MAAxC,EAAgDF,CAAC,EAAjD,EAAqD;AACnDD,IAAAA,KAAK,CAACS,IAAN,eACE,QAAC,QAAD;AAEE,MAAA,QAAQ,EAAEkB,SAAS,CAACA,SAAV,CAAoB1B,CAApB;AAFZ,OACOA,CADP;AAAA;AAAA;AAAA;AAAA,YADF;AAMD;;AACD,sBACE;AAAS,IAAA,EAAE,EAAC,OAAZ;AAAA,2BACE;AAAA,8BACE;AAAQ,QAAA,EAAE,EAAC,cAAX;AAAA,gCACE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,gBADF,eAEE;AAAG,UAAA,IAAI,EAAC,GAAR;AAAY,UAAA,KAAK,EAAC,OAAlB;AAA0B,UAAA,SAAS,EAAC,aAApC;AAAA,iCACE;AAAM,YAAA,SAAS,EAAC,SAAhB;AAA0B,yBAAU;AAApC;AAAA;AAAA;AAAA;AAAA;AADF;AAAA;AAAA;AAAA;AAAA,gBAFF;AAAA;AAAA;AAAA;AAAA;AAAA,cADF,eAQE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,cARF,eAUE;AAAK,QAAA,EAAE,EAAC,aAAR;AAAA,gCACE;AAAQ,wBAAW,YAAnB;AAAgC,UAAA,SAAS,EAAC,+BAA1C;AAA0E,UAAA,OAAO,EAAE4B,WAAnF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,gBADF,eAEE;AAAQ,wBAAW,SAAnB;AAA6B,UAAA,SAAS,EAAC,4BAAvC;AAAoE,UAAA,OAAO,EAAEA,WAA7E;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,gBAFF,eAGE;AAAQ,wBAAW,UAAnB;AAA8B,UAAA,SAAS,EAAC,6BAAxC;AAAsE,UAAA,OAAO,EAAEA,WAA/E;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,gBAHF,eAIE;AAAQ,wBAAW,KAAnB;AAAyB,UAAA,SAAS,EAAC,wBAAnC;AAA4D,UAAA,OAAO,EAAEA,WAArE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,gBAJF,eAKE;AAAQ,wBAAW,OAAnB;AAA2B,UAAA,SAAS,EAAC,0BAArC;AAAgE,UAAA,OAAO,EAAEA,WAAzE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,gBALF,eAME;AAAQ,wBAAW,MAAnB;AAA0B,UAAA,SAAS,EAAC,yBAApC;AAA8D,UAAA,OAAO,EAAEA,WAAvE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,gBANF,eAOE;AAAQ,wBAAW,SAAnB;AAA6B,UAAA,SAAS,EAAC,4BAAvC;AAAoE,UAAA,OAAO,EAAEA,WAA7E;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,gBAPF,eAQE;AAAQ,wBAAW,OAAnB;AAA2B,UAAA,SAAS,EAAC,0BAArC;AAAgE,UAAA,OAAO,EAAEA,WAAzE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,gBARF,eASE;AAAQ,wBAAW,OAAnB;AAA2B,UAAA,SAAS,EAAC,0BAArC;AAAgE,UAAA,OAAO,EAAEA,WAAzE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,gBATF,eAUE;AAAQ,wBAAW,MAAnB;AAA0B,UAAA,SAAS,EAAC,yBAApC;AAA8D,UAAA,OAAO,EAAEA,WAAvE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,gBAVF,eAWE;AAAQ,wBAAW,OAAnB;AAA2B,UAAA,SAAS,EAAC,0BAArC;AAAgE,UAAA,OAAO,EAAEA,WAAzE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,gBAXF,eAYE;AAAQ,wBAAW,WAAnB;AAA+B,UAAA,SAAS,EAAC,8BAAzC;AAAwE,UAAA,OAAO,EAAEA,WAAjF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,gBAZF,eAaE;AAAQ,wBAAW,QAAnB;AAA4B,UAAA,SAAS,EAAC,0BAAtC;AAAiE,UAAA,OAAO,EAAEA,WAA1E;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,gBAbF,eAcE;AAAQ,wBAAW,OAAnB;AAA2B,UAAA,SAAS,EAAC,0BAArC;AAAgE,UAAA,OAAO,EAAEA,WAAzE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,gBAdF,eAeE;AAAQ,wBAAW,OAAnB;AAA2B,UAAA,SAAS,EAAC,0BAArC;AAAgE,UAAA,OAAO,EAAEA,WAAzE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,gBAfF,eAgBE;AAAQ,wBAAW,MAAnB;AAA0B,UAAA,SAAS,EAAC,yBAApC;AAA8D,UAAA,OAAO,EAAEA,WAAvE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,gBAhBF;AAAA;AAAA;AAAA;AAAA;AAAA,cAVF,eA8BE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,cA9BF,eA+BI;AAAS,QAAA,EAAE,EAAC,WAAZ;AAAA,+BACE;AAAA,iCACE;AAAA,oCACE;AAAA,sCACE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,sBADF,eAEE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,sBAFF;AAAA;AAAA;AAAA;AAAA;AAAA,oBADF,EAKG7B,KALH;AAAA;AAAA;AAAA;AAAA;AAAA;AADF;AAAA;AAAA;AAAA;AAAA;AADF;AAAA;AAAA;AAAA;AAAA,cA/BJ,eA2CE;AAAQ,QAAA,EAAE,EAAC,cAAX;AAAA,gCACE;AAAG,UAAA,IAAI,EAAC,kCAAR;AAAA,iCAA2C;AAAM,YAAA,SAAS,EAAC,SAAhB;AAA0B,yBAAU;AAApC;AAAA;AAAA;AAAA;AAAA;AAA3C;AAAA;AAAA;AAAA;AAAA,gBADF,eAEE;AAAG,UAAA,IAAI,EAAC,kCAAR;AAAA,iCAA2C;AAAM,YAAA,SAAS,EAAC,SAAhB;AAA0B,yBAAU;AAApC;AAAA;AAAA;AAAA;AAAA;AAA3C;AAAA;AAAA;AAAA;AAAA,gBAFF,eAGE;AAAK,UAAA,SAAS,EAAC,QAAf;AAAA,kCAAwB;AAAO,YAAA,IAAI,EAAC,UAAZ;AAAuB,YAAA,EAAE,EAAC,aAA1B;AAAwC,YAAA,QAAQ,EAAE8B;AAAlD;AAAA;AAAA;AAAA;AAAA,kBAAxB,eACA;AAAO,YAAA,GAAG,EAAC,aAAX;AAAA,mCAAyB;AAAM,cAAA,SAAS,EAAC,SAAhB;AAA0B,2BAAU;AAApC;AAAA;AAAA;AAAA;AAAA;AAAzB;AAAA;AAAA;AAAA;AAAA,kBADA;AAAA;AAAA;AAAA;AAAA;AAAA,gBAHF;AAAA;AAAA;AAAA;AAAA;AAAA,cA3CF;AAAA;AAAA;AAAA;AAAA;AAAA;AADF;AAAA;AAAA;AAAA;AAAA,UADF;AAsDD;;MAjEQJ,S;;AAmET,SAASK,QAAT,CAAkBnC,KAAlB,EAAyB;AACvB,sBACE;AAAA,4BACE;AAAA,6BAAI;AAAG,QAAA,IAAI,EAAEA,KAAK,CAACoC,QAAN,CAAerB,GAAxB;AAAA,kBAA8Bf,KAAK,CAACoC,QAAN,CAAetB;AAA7C;AAAA;AAAA;AAAA;AAAA;AAAJ;AAAA;AAAA;AAAA;AAAA,YADF,eAEE;AAAA,gBAAKd,KAAK,CAACoC,QAAN,CAAeC;AAApB;AAAA;AAAA;AAAA;AAAA,YAFF;AAAA;AAAA;AAAA;AAAA;AAAA,UADF;AAMD;;OAPQF,Q;;AAST,SAASG,SAAT,GAAqB;AACnB,sBACE;AAAK,IAAA,EAAE,EAAC,YAAR;AAAA,2BACE;AAAG,MAAA,SAAS,EAAC,KAAb;AAAmB,MAAA,IAAI,EAAC,QAAxB;AAAA,6BACE;AAAM,QAAA,SAAS,EAAC,cAAhB;AAA+B,qBAAU;AAAzC;AAAA;AAAA;AAAA;AAAA;AADF;AAAA;AAAA;AAAA;AAAA;AADF;AAAA;AAAA;AAAA;AAAA,UADF;AAOD;;OARQA,S;AAUT3D,QAAQ,CAAC4D,MAAT,eACE,QAAC,QAAD;AAAA;AAAA;AAAA;AAAA,QADF,EAEErD,QAAQ,CAACsD,cAAT,CAAwB,MAAxB,CAFF,E,CAKA;AACA;;AAEA,SAAS7C,IAAT,GAAgB;AACd,MAAI8C,WAAW,GAAG,IAAIC,IAAJ,EAAlB;AACA,MAAIC,WAAW,GAAG;AAChBC,IAAAA,OAAO,EAAE,MADO;AAEhBC,IAAAA,IAAI,EAAE,SAFU;AAGhBC,IAAAA,KAAK,EAAE,MAHS;AAIhBC,IAAAA,GAAG,EAAE;AAJW,GAAlB;AAMA,MAAIpD,IAAI,GAAG8C,WAAW,CAACO,kBAAZ,CAA+B,OAA/B,EAAwCL,WAAxC,CAAX;AACA,SAAOhD,IAAP;AACD;;AACD,SAASsD,SAAT,CAAmBC,CAAnB,EAAsB;AACpB,MAAIA,CAAC,GAAG,EAAR,EAAY;AACV,WAAO,MAAMA,CAAb;AACD,GAFD,MAGK;AACH,WAAOA,CAAP;AACD;AACF;;AACD,SAAStD,KAAT,GAAiB;AACf,MAAIuD,WAAW,GAAG,IAAIT,IAAJ,EAAlB;AACA,MAAI9C,KAAK,GAAGwD,IAAI,CAACC,KAAL,CAAWF,WAAW,CAACG,QAAZ,KAAyB,CAApC,CAAZ;AACA,MAAIC,eAAe,GAAGH,IAAI,CAACC,KAAL,CAAWD,IAAI,CAACI,MAAL,KAAgB,GAA3B,CAAtB;;AACA,MAAIC,SAAS,GAAGC,OAAO,CAAC,iBAAD,CAAvB;;AACA,MAAIC,SAAS,GAAG,EAAhB;AACA,MAAIC,UAAU,GAAG,EAAjB;;AACA,OAAK,IAAIvD,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGoD,SAAS,CAACI,QAAV,CAAmBtD,MAAvC,EAA+CF,CAAC,EAAhD,EAAoD;AAClD,QAAIoD,SAAS,CAACI,QAAV,CAAmBxD,CAAnB,EAAsByD,SAAtB,KAAoC,OAAxC,EAAiD;AAC/CH,MAAAA,SAAS,GAAGA,SAAS,CAACI,MAAV,CAAiBN,SAAS,CAACI,QAAV,CAAmBxD,CAAnB,CAAjB,CAAZ;AACD,KAFD,MAEO;AACLuD,MAAAA,UAAU,GAAGA,UAAU,CAACG,MAAX,CAAkBN,SAAS,CAACI,QAAV,CAAmBxD,CAAnB,CAAlB,CAAb;AACD;AACF;;AACD,MAAIkD,eAAe,GAAG,EAAtB,EAA0B;AACxB,WAAOI,SAAS,CAAC/D,KAAD,CAAT,CAAiBoE,OAAxB;AACD,GAFD,MAEO;AACL,QAAIC,aAAa,GAAGb,IAAI,CAACC,KAAL,CAAWD,IAAI,CAACI,MAAL,KAAgBI,UAAU,CAACrD,MAAtC,CAApB;AACA,WAAOqD,UAAU,CAACK,aAAD,CAAV,CAA0BD,OAAjC;AACD;AACF;;AACD,SAASE,KAAT,GAAiB;AAAA;;AACf,QAAM,CAACvE,IAAD,EAAOwE,OAAP,IAAkB1F,QAAQ,CAAC,IAAIiE,IAAJ,EAAD,CAAhC;;AAEA,WAAS0B,YAAT,GAAwB;AACtBD,IAAAA,OAAO,CAAC,IAAIzB,IAAJ,EAAD,CAAP;AACD;;AACDhE,EAAAA,SAAS,CAAC,MAAM;AACd,UAAM2F,OAAO,GAAGC,WAAW,CAACF,YAAD,EAAe,IAAf,CAA3B;AACA,WAAO,SAASG,OAAT,GAAmB;AACxBC,MAAAA,aAAa,CAACH,OAAD,CAAb;AACD,KAFD;AAGD,GALQ,EAKN,EALM,CAAT;AAOA,MAAII,IAAI,GAAG9E,IAAI,CAAC2D,QAAL,EAAX;AACA,MAAIoB,OAAO,GAAG/E,IAAI,CAACgF,UAAL,EAAd,CAde,CAef;;AACA,MAAIC,MAAM,GAAG,IAAb;AACAA,EAAAA,MAAM,GAAIH,IAAI,IAAI,EAAT,GAAe,IAAf,GAAsB,IAA/B;AACAA,EAAAA,IAAI,GAAIA,IAAI,KAAK,CAAV,GAAe,EAAf,GAAsBA,IAAI,GAAG,EAAR,GAAeA,IAAI,GAAG,EAAtB,GAA4BA,IAAxD;AACAC,EAAAA,OAAO,GAAGzB,SAAS,CAACyB,OAAD,CAAnB,CAnBe,CAoBf;;AACA,MAAIG,IAAI,GAAGJ,IAAI,GAAG,GAAP,GAAaC,OAAb,GAAuB,GAAvB,GAA6BE,MAAxC;AAEA,sBACE;AAAI,IAAA,EAAE,EAAC,OAAP;AAAA,cAAgBC;AAAhB;AAAA;AAAA;AAAA;AAAA,UADF;AAID;;GA3BQX,K;;OAAAA,K;;AA4BT,SAAS/D,OAAT,GAAmB;AACjB,MAAI2E,YAAY,GAAGpB,OAAO,CAAC,aAAD,CAA1B;;AACA,SAAOoB,YAAP;AACD;;AACD,SAASvD,QAAT,GAAoB;AAClB,MAAIG,KAAK,GAAGgC,OAAO,CAAC,cAAD,CAAnB;;AACA,SAAOhC,KAAP;AACD;;AACD,SAASM,YAAT,GAAwB;AACtB,MAAID,SAAS,GAAG2B,OAAO,CAAC,kBAAD,CAAvB;;AACA,SAAO3B,SAAP;AACD;;AACD,SAASgD,SAAT,GAAqB;AACnB,MAAIC,MAAM,GAAGtB,OAAO,CAAC,eAAD,CAApB;;AACA,SAAOsB,MAAP;AACD;;AAED,SAAS/C,WAAT,CAAqBgD,CAArB,EAAwB;AACtB,MAAID,MAAM,GAAGD,SAAS,EAAtB;AACA,MAAIG,SAAS,GAAGD,CAAC,CAACE,MAAF,CAASC,SAAT,CAAmBC,WAAnB,EAAhB;AACA,MAAIC,KAAK,GAAGN,MAAM,CAACA,MAAP,CAAcO,SAAd,CAAwB,UAASC,IAAT,EAAenF,CAAf,EAAiB;AACnD,WAAOmF,IAAI,CAAC1E,IAAL,KAAcoE,SAArB;AACD,GAFW,CAAZ;AAGAvE,EAAAA,OAAO,CAACC,GAAR,CAAYoE,MAAM,CAACA,MAAP,CAAcM,KAAd,CAAZ;AACAvG,EAAAA,YAAY,CAAC0G,OAAb,CAAqB,kBAArB,EAAyCT,MAAM,CAACA,MAAP,CAAcM,KAAd,EAAqBI,eAA9D;AACA3G,EAAAA,YAAY,CAAC0G,OAAb,CAAqB,kBAArB,EAAyCT,MAAM,CAACA,MAAP,CAAcM,KAAd,EAAqBK,eAA9D;AACA5G,EAAAA,YAAY,CAAC0G,OAAb,CAAqB,yBAArB,EAAgDT,MAAM,CAACA,MAAP,CAAcM,KAAd,EAAqBM,qBAArE;AACA7G,EAAAA,YAAY,CAAC0G,OAAb,CAAqB,gBAArB,EAAsCT,MAAM,CAACA,MAAP,CAAcM,KAAd,EAAqBO,YAA3D;AACA9G,EAAAA,YAAY,CAAC0G,OAAb,CAAqB,gBAArB,EAAuCT,MAAM,CAACA,MAAP,CAAcM,KAAd,EAAqBQ,YAA5D;AACA/G,EAAAA,YAAY,CAAC0G,OAAb,CAAqB,cAArB,EAAqCT,MAAM,CAACA,MAAP,CAAcM,KAAd,EAAqBS,WAA1D,EAZsB,CActB;;AACArG,EAAAA,QAAQ;AACT;;AAED,SAASA,QAAT,GAAoB;AAClBd,EAAAA,wBAAwB,CAAC,kBAAD,CAAxB;AACAA,EAAAA,wBAAwB,CAAC,kBAAD,CAAxB;AACAA,EAAAA,wBAAwB,CAAC,yBAAD,CAAxB;AACAA,EAAAA,wBAAwB,CAAC,gBAAD,CAAxB;AACAA,EAAAA,wBAAwB,CAAC,gBAAD,CAAxB;AACAA,EAAAA,wBAAwB,CAAC,cAAD,CAAxB;AACAA,EAAAA,wBAAwB,CAAC,iBAAD,CAAxB;AACD;;AAED,SAASkB,cAAT,CAAwBmF,CAAxB,EAA2B;AACzB,MAAIe,MAAM,GAAG,CAAb;AACA,MAAIC,KAAK,GAAG,KAAZ;AACA,MAAIC,GAAG,GAAGjB,CAAC,CAACkB,OAAF,IAAalB,CAAC,CAACmB,KAAzB;AACA,MAAIC,IAAI,GAAGpB,CAAC,CAACE,MAAF,CAASrG,KAAT,CAAewH,UAAf,CAA0B,GAA1B,EAA+B,KAA/B,CAAX;AACA,MAAIC,MAAM,GAAGF,IAAI,CAACG,MAAL,CAAY,CAAZ,EAAeH,IAAI,CAACI,OAAL,CAAa,GAAb,IAAoB,CAAnC,KAAyCJ,IAAI,CAACG,MAAL,CAAY,CAAZ,CAAtD;AACA,MAAIE,OAAO,GAAGL,IAAI,CAACG,MAAL,CAAY,IAAID,MAAM,CAAChG,MAAvB,CAAd;;AACA,MAAI2F,GAAG,IAAI,EAAX,EAAe;AAAE;AACbS,IAAAA,MAAM,CAACN,IAAD,CAAN;AACH;;AACD,MAAIH,GAAG,IAAI,CAAX,EAAc;AAAE;AACZjB,IAAAA,CAAC,CAAC2B,cAAF;AACA3B,IAAAA,CAAC,CAAC4B,eAAF;;AACA,QAAIR,IAAI,CAAC,CAAD,CAAJ,KAAY,GAAhB,EAAqB;AACjB,cAAQE,MAAR;AACI,aAAK,GAAL;AACI,cAAIO,SAAS,GAAG,CAAC,eAAD,EAAkB,aAAlB,EAAiC,QAAjC,CAAhB;;AACA,cAAI,CAACJ,OAAD,IAAYT,KAAhB,EAAuB;AACnBA,YAAAA,KAAK,GAAG,IAAR;AACA,gBAAID,MAAM,GAAGc,SAAS,CAACvG,MAAV,GAAmB,CAAhC,EAAmCyF,MAAM,GAAG,CAAT;AACnC9G,YAAAA,QAAQ,CAACsD,cAAT,CAAwB,UAAxB,EAAoC1D,KAApC,GAA4C,QAAQgI,SAAS,CAACd,MAAM,EAAP,CAA7D;AACA;AACH;;AACD,eAAK,IAAIe,QAAT,IAAqBD,SAArB,EAAgC;AAC5B,gBAAIJ,OAAO,KAAKK,QAAQ,CAACP,MAAT,CAAgB,CAAhB,EAAmBE,OAAO,CAACnG,MAA3B,CAAhB,EAAoD;AAChDrB,cAAAA,QAAQ,CAACsD,cAAT,CAAwB,UAAxB,EAAoC1D,KAApC,GAA4C,QAAQiI,QAApD;AACA;AACH;AACJ;;AACD;AAfR;AAiBH;AACJ;;AACD,MAAGb,GAAG,IAAI,EAAV,EAAa;AAAE;AACjBc,IAAAA,WAAW,CAACX,IAAD,CAAX;AACG;;AACDL,EAAAA,MAAM,GAAG,CAAT;AACAC,EAAAA,KAAK,GAAG,KAAR;AACAe,EAAAA,WAAW,CAACX,IAAD,CAAX;AACD;;AAED,SAASW,WAAT,CAAqBX,IAArB,EAA2B;AACzB,MAAIE,MAAM,GAAGF,IAAI,CAACG,MAAL,CAAY,CAAZ,EAAeH,IAAI,CAACI,OAAL,CAAa,GAAb,IAAoB,CAAnC,KAAyCJ,IAAI,CAACG,MAAL,CAAY,CAAZ,CAAtD;;AACA,MAAIH,IAAI,CAAC,CAAD,CAAJ,KAAY,GAAhB,EAAqB;AACvB;AACU,YAAQE,MAAR;AACI,WAAK,IAAL;AACIrH,QAAAA,QAAQ,CAACsD,cAAT,CAAwB,YAAxB,EAAsC4C,SAAtC,GAAkD,iBAAlD;AACA;;AAChB,WAAK,GAAL;AACIlG,QAAAA,QAAQ,CAACsD,cAAT,CAAwB,YAAxB,EAAsC4C,SAAtC,GAAkD,qBAAlD;AACA;;AACJ,WAAK,IAAL;AACIlG,QAAAA,QAAQ,CAACsD,cAAT,CAAwB,YAAxB,EAAsC4C,SAAtC,GAAkD,gBAAlD;AACA;;AACJ,WAAK,GAAL;AACIlG,QAAAA,QAAQ,CAACsD,cAAT,CAAwB,YAAxB,EAAsC4C,SAAtC,GAAkD,aAAlD;AACA;;AACJ,WAAK,GAAL;AACIlG,QAAAA,QAAQ,CAACsD,cAAT,CAAwB,YAAxB,EAAsC4C,SAAtC,GAAkD,mBAAlD;AACA;;AACJ,WAAK,GAAL;AACIlG,QAAAA,QAAQ,CAACsD,cAAT,CAAwB,YAAxB,EAAsC4C,SAAtC,GAAkD,eAAlD;AACA;;AACJ,WAAK,GAAL;AACIlG,QAAAA,QAAQ,CAACsD,cAAT,CAAwB,YAAxB,EAAsC4C,SAAtC,GAAkD,cAAlD;AACA;;AACJ,WAAK,IAAL;AACIlG,QAAAA,QAAQ,CAACsD,cAAT,CAAwB,YAAxB,EAAsC4C,SAAtC,GAAkD,mBAAlD;AACA;;AACJ,WAAK,GAAL;AACIlG,QAAAA,QAAQ,CAACsD,cAAT,CAAwB,YAAxB,EAAsC4C,SAAtC,GAAkD,gBAAlD;AACA;;AACJ,WAAK,IAAL;AACIlG,QAAAA,QAAQ,CAACsD,cAAT,CAAwB,YAAxB,EAAsC4C,SAAtC,GAAkD,gBAAlD;AACA;;AACJ,WAAK,GAAL;AACIlG,QAAAA,QAAQ,CAACsD,cAAT,CAAwB,YAAxB,EAAsC4C,SAAtC,GAAkD,cAAlD;AACA;;AACJ,WAAK,GAAL;AACIlG,QAAAA,QAAQ,CAACsD,cAAT,CAAwB,YAAxB,EAAsC4C,SAAtC,GAAkD,gBAAlD;AACA;;AACJ,WAAK,GAAL;AACIlG,QAAAA,QAAQ,CAACsD,cAAT,CAAwB,YAAxB,EAAsC4C,SAAtC,GAAkD,kBAAlD;AACA;;AACJ,WAAK,GAAL;AACIlG,QAAAA,QAAQ,CAACsD,cAAT,CAAwB,YAAxB,EAAsC4C,SAAtC,GAAkD,aAAlD;AACA;;AACJ,WAAK,IAAL;AACIlG,QAAAA,QAAQ,CAACsD,cAAT,CAAwB,YAAxB,EAAsC4C,SAAtC,GAAkD,wBAAlD;AACA;;AACJ;AACIlG,QAAAA,QAAQ,CAACsD,cAAT,CAAwB,YAAxB,EAAsC4C,SAAtC,GAAkD,gBAAlD;AACA;AAhDI;AAkDT,GApDC,MAoDI;AACJlG,IAAAA,QAAQ,CAACsD,cAAT,CAAwB,YAAxB,EAAsC4C,SAAtC,GAAkD,eAAlD;AACC;AACF;;AAED,SAASuB,MAAT,CAAgBN,IAAhB,EAAsB;AACpB,MAAIE,MAAM,GAAGF,IAAI,CAACG,MAAL,CAAY,CAAZ,EAAeH,IAAI,CAACI,OAAL,CAAa,GAAb,IAAoB,CAAnC,KAAyCJ,IAAI,CAACG,MAAL,CAAY,CAAZ,CAAtD;AACA,MAAIE,OAAO,GAAGL,IAAI,CAACG,MAAL,CAAY,IAAID,MAAM,CAAChG,MAAvB,CAAd;;AACA,MAAI8F,IAAI,CAAC,CAAD,CAAJ,KAAY,GAAhB,EAAqB;AACjB,QAAIA,IAAI,CAACI,OAAL,CAAa,GAAb,IAAoB,CAAC,CAAzB,EAA4B;AACxB,cAAQF,MAAR;AACI,aAAK,IAAL;AACIU,UAAAA,MAAM,CAACC,QAAP,GAAkB,yCAAyCR,OAA3D;AACA;;AACJ,aAAK,GAAL;AACIO,UAAAA,MAAM,CAACC,QAAP,GAAkB,+BAA+BR,OAAjD;AACA;;AACJ,aAAK,IAAL;AACIO,UAAAA,MAAM,CAACC,QAAP,GAAkB,uCAAuCR,OAAzD;AACA;;AACJ,aAAK,GAAL;AACIO,UAAAA,MAAM,CAACC,QAAP,GAAkB,iCAAiCR,OAAnD;AACA;;AACJ,aAAK,GAAL;AACIO,UAAAA,MAAM,CAACC,QAAP,GAAkB,6CAA6CR,OAA/D;AACA;;AACJ,aAAK,GAAL;AACIO,UAAAA,MAAM,CAACC,QAAP,GAAkB,qCAAqCR,OAAvD;AACA;;AACJ,aAAK,GAAL;AACIO,UAAAA,MAAM,CAACC,QAAP,GAAkB,8BAA8BR,OAAhD;AACA;;AACJ,aAAK,IAAL;AACIO,UAAAA,MAAM,CAACC,QAAP,GAAkB,qCAAqCR,OAAvD;AACA;;AACJ,aAAK,GAAL;AACIO,UAAAA,MAAM,CAACC,QAAP,GAAkB,6CAA6CR,OAA/D;AACA;;AACJ,aAAK,GAAL;AACIO,UAAAA,MAAM,CAACC,QAAP,GAAkB,mCAAmCR,OAArD;AACA;;AACJ,aAAK,IAAL;AACIO,UAAAA,MAAM,CAACC,QAAP,GAAkB,0CAA0CR,OAA5D;AACA;;AACJ,aAAK,GAAL;AACIO,UAAAA,MAAM,CAACC,QAAP,GAAkB,kDAAkDR,OAApE;AACA;;AACJ,aAAK,GAAL;AACIO,UAAAA,MAAM,CAACC,QAAP,GAAkB,iDAAiDR,OAAnE;AACA;;AACJ,aAAK,GAAL;AACIO,UAAAA,MAAM,CAACC,QAAP,GAAkB,iDAAiDR,OAAnE;AACA;;AACJ,aAAK,IAAL;AACIO,UAAAA,MAAM,CAACC,QAAP,GAAkB,kDAAkDR,OAApE;AACA;AA7CR;AA+CH,KAhDD,MAgDO;AACH,UAAIH,MAAM,GAAGF,IAAI,CAACG,MAAL,CAAY,CAAZ,CAAb;;AACA,cAAQD,MAAR;AACI,aAAK,GAAL;AACIU,UAAAA,MAAM,CAACC,QAAP,GAAkB,4BAAlB;AACA;;AACJ,aAAK,GAAL;AACID,UAAAA,MAAM,CAACC,QAAP,GAAkB,yBAAlB;AACA;;AACJ,aAAK,GAAL;AACID,UAAAA,MAAM,CAACC,QAAP,GAAkB,oBAAlB;AACA;;AACJ,aAAK,GAAL;AACID,UAAAA,MAAM,CAACC,QAAP,GAAkB,0BAAlB;AACA;AAZR;AAcH;AACJ,GAlED,MAkEO,IAAIC,QAAQ,CAACd,IAAD,CAAZ,EAAoB;AACvB,QAAIe,gBAAgB,CAACf,IAAD,CAApB,EACIY,MAAM,CAACC,QAAP,GAAkBb,IAAlB,CADJ,KAGIY,MAAM,CAACC,QAAP,GAAkB,aAAab,IAA/B;AACP,GALM,MAKA;AACHY,IAAAA,MAAM,CAACC,QAAP,GAAkB,qCAAqCb,IAAvD;AACH;AACF,C,CAED;;;AACA,SAASc,QAAT,CAAkBE,GAAlB,EAAuB;AACrB,MAAIC,OAAO,GAAG,IAAIC,MAAJ,CAAW,sBAAsB;AAC3C,oDADqB,GACgC;AACrD,+BAFqB,GAEW;AAChC,mCAHqB,GAGe;AACpC,4BAJqB,GAIQ;AAC7B,sBALU,EAKY,GALZ,CAAd,CADqB,CAMW;;AAChC,SAAO,CAAC,CAACD,OAAO,CAACE,IAAR,CAAaH,GAAb,CAAT;AACD;;AAED,SAASD,gBAAT,CAA0BC,GAA1B,EAA+B;AAC7B,MAAIC,OAAO,GAAG,IAAIC,MAAJ,CAAW,uBAAX,EAAoC,GAApC,CAAd;AACA,SAAO,CAAC,CAACD,OAAO,CAACE,IAAR,CAAaH,GAAb,CAAT;AACD;;AAEDI,MAAM,CAACC,SAAP,CAAiBpB,UAAjB,GAA8B,UAASK,MAAT,EAAiBgB,WAAjB,EAA8B;AAC1D,MAAIxC,MAAM,GAAG,IAAb;AACA,SAAOA,MAAM,CAACyC,KAAP,CAAajB,MAAb,EAAqBkB,IAArB,CAA0BF,WAA1B,CAAP;AACD,CAHD;;AAKA,SAASzF,oBAAT,CAA8B+C,CAA9B,EAAiC;AAC/BlG,EAAAA,YAAY,CAAC0G,OAAb,CAAqB,aAArB,EAAoCR,CAAC,CAACE,MAAF,CAAS2C,OAA7C;;AACA,MAAI7C,CAAC,CAACE,MAAF,CAAS2C,OAAb,EAAsB;AACpB/I,IAAAA,YAAY,CAAC0G,OAAb,CAAqB,iBAArB,EAAwC,MAAxC;AACD,GAFD,MAEO;AACL1G,IAAAA,YAAY,CAAC0G,OAAb,CAAqB,iBAArB,EAAwC,OAAxC;AACD;;AACDsC,EAAAA,iBAAiB;AAClB;;AACD,SAASA,iBAAT,GAA6B;AAC3BnJ,EAAAA,wBAAwB,CAAC,aAAD,CAAxB;AACAA,EAAAA,wBAAwB,CAAC,iBAAD,CAAxB;;AACA;AAAA,UAAC,YAAD;AAAA;AAAA;AAAA;AAAA;AACD","sourcesContent":["import React from 'react';\nimport { useState, useEffect } from 'react';\nimport ReactDOM from 'react-dom';\n//import { unstable_createPortal } from 'react-dom';\nimport './index.css';\n\nconst setValueFromLocalStorage = property => {\n let value = localStorage.getItem(property);\n setValue(property, value);\n};\nconst setValue = (property, value) => {\n if (value) {\n document.documentElement.style.setProperty(`--${property}`, value);\n\n const input = document.querySelector(`#${property}`);\n if (input) {\n value = value.replace('px', '');\n input.value = value;\n }\n }\n};\n\nfunction Homepage() {\n setTheme();\n return (\n \n \n \n
\n \n \n
\n \n \n \n
\n \n \n
\n \n \n
\n \n );\n}\n\nfunction Search() {\n return (\n \n )\n}\n\nfunction Header(props) {\n return (\n \n );\n}\n\nfunction Applications() {\n let appList = getApps();\n var items = [];\n for (var i = 0; i < appList.apps.length; i++) {\n var safe = appList.apps[i].NSFW;\n var NSFWEnabled = localStorage.getItem(\"contenttype\");\n console.log(safe);\n if (safe === \"SAFE\") {\n items.push(\n \n );\n } else if (safe === \"NSFW\" && NSFWEnabled) {\n items.push(\n \n );\n } else {\n console.log(NSFWEnabled);\n }\n \n }\n return (\n \n Applications
\n \n {items}\n
\n \n );\n}\n\nfunction App(props) {\n \n let classNameType = props.NSFW + \"-content\";\n let hrefUrl = \"https://\" + props.url;\n let iconName = \"mdi-\" + props.icon;\n return (\n \n );\n}\n\nfunction Bookmarks() {\n let bookmarkList = getLinks();\n var items = [];\n for (var i = 0; i < bookmarkList.bookmarks.length; i++) {\n items.push(\n \n );\n }\n return (\n \n Bookmarks
\n \n {items}\n
\n \n );\n}\n\nfunction LinkGroups(props) {\n var items = [];\n for (var i = 0; i < props.links.length; i++) {\n items.push(\n \n );\n }\n return (\n \n
{props.category}
\n {items}\n \n );\n}\n\nfunction LinkItem(props) {\n return (\n \n );\n}\n\nfunction ModalMenu() {\n var providers = getProviders();\n var items = [];\n for (var i = 0; i < providers.providers.length; i++) {\n items.push(\n \n );\n }\n return (\n \n \n \n\n
Color themes
\n\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n\n\n
Search options
\n
\n \n \n \n | Website | \n Prefix | \n
\n {items}\n \n
\n \n\n \n
\n \n );\n}\n\nfunction Provider(props) {\n return (\n \n | {props.provider.name} | \n {props.provider.prefix} | \n
\n );\n}\n\nfunction ModalInit() {\n return (\n \n );\n}\n\nReactDOM.render(\n ,\n document.getElementById('root')\n);\n\n//Functions below this line are for calculating data for\n//other functions\n\nfunction date() {\n let currentDate = new Date();\n let dateOptions = {\n weekday: \"long\",\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\"\n };\n let date = currentDate.toLocaleDateString(\"en-GB\", dateOptions);\n return date;\n}\nfunction fixDigits(k) {\n if (k < 10) {\n return \"0\" + k;\n }\n else {\n return k;\n }\n}\nfunction greet() {\n let currentTime = new Date();\n let greet = Math.floor(currentTime.getHours() / 6);\n let easterEggChance = Math.floor(Math.random() * 100);\n let greetings = require('./messages.json');\n let timeBased = [];\n let easterEggs = [];\n for (var i = 0; i < greetings.messages.length; i++) {\n if (greetings.messages[i].easteregg === \"FALSE\") {\n timeBased = timeBased.concat(greetings.messages[i]);\n } else {\n easterEggs = easterEggs.concat(greetings.messages[i]);\n }\n }\n if (easterEggChance > 10) {\n return timeBased[greet].message;\n } else {\n let easterEggText = Math.floor(Math.random() * easterEggs.length);\n return easterEggs[easterEggText].message;\n }\n}\nfunction Clock() {\n const [date, setDate] = useState(new Date());\n\n function refreshClock() {\n setDate(new Date());\n }\n useEffect(() => {\n const timerId = setInterval(refreshClock, 1000);\n return function cleanup() {\n clearInterval(timerId);\n };\n }, []);\n\n var hour = date.getHours();\n var minutes = date.getMinutes();\n //var seconds = date.getSeconds();\n var midday = \"AM\";\n midday = (hour >= 12) ? \"PM\" : \"AM\";\n hour = (hour === 0) ? 12 : ((hour > 12) ? (hour - 12) : hour);\n minutes = fixDigits(minutes);\n //seconds = fixDigits(seconds);\n let time = hour + \":\" + minutes + \" \" + midday;\n\n return (\n {time}
\n\n );\n}\nfunction getApps() {\n let applications = require('./apps.json');\n return applications;\n}\nfunction getLinks() {\n let links = require('./links.json');\n return links;\n}\nfunction getProviders() {\n let providers = require('./providers.json');\n return providers;\n}\nfunction getThemes() {\n let themes = require('./themes.json');\n return themes;\n}\n\nfunction updateTheme(e) {\n var themes = getThemes();\n var themeName = e.target.innerHTML.toLowerCase();\n var index = themes.themes.findIndex(function(item, i){\n return item.name === themeName\n });\n console.log(themes.themes[index]);\n localStorage.setItem(\"image-background\", themes.themes[index].imagebackground);\n localStorage.setItem(\"color-background\", themes.themes[index].colorbackground);\n localStorage.setItem(\"color-search-background\", themes.themes[index].colorserachbackground);\n localStorage.setItem(\"color-text-pri\",themes.themes[index].colortextpri);\n localStorage.setItem(\"color-text-acc\", themes.themes[index].colortextacc);\n localStorage.setItem(\"color-border\", themes.themes[index].colorborder);\n \n //document.documentElement.style.setProperty(prop, `var(--${themeName}${prop.substring(10)})`);\n setTheme();\n}\n\nfunction setTheme() {\n setValueFromLocalStorage('image-background');\n setValueFromLocalStorage('color-background');\n setValueFromLocalStorage('color-search-background');\n setValueFromLocalStorage('color-text-pri');\n setValueFromLocalStorage('color-text-acc');\n setValueFromLocalStorage('color-border');\n setValueFromLocalStorage('content-display');\n}\n\nfunction handleKeyPress(e) {\n var sindex = 0;\n var cycle = false;\n var key = e.keyCode || e.which;\n var text = e.target.value.replaceAll(\"+\", \"%2B\");\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n if (key == 13) { // Search functions\n search(text);\n }\n if (key == 9) { // Tab Completion Functions\n e.preventDefault();\n e.stopPropagation();\n if (text[0] === ';') {\n switch (option) {\n case 't':\n var streamers = ['admiralbahroo', 'moonmoon_ow', 'witwix'];\n if (!subtext || cycle) {\n cycle = true;\n if (sindex > streamers.length - 1) sindex = 0;\n document.getElementById(\"keywords\").value = ';t ' + streamers[sindex++];\n return;\n }\n for (var streamer of streamers) {\n if (subtext === streamer.substr(0, subtext.length)) {\n document.getElementById(\"keywords\").value = ';t ' + streamer;\n return;\n }\n }\n break;\n }\n }\n }\n if(key == 32){ //Space to go to search\nupdateLabel(text);\n }\n sindex = 0;\n cycle = false;\n updateLabel(text);\n}\n\nfunction updateLabel(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n if (text[0] === '/') {\n// if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n document.getElementById(\"searchType\").innerHTML = \"Allmusic search\";\n break;\n case \"d\":\n document.getElementById(\"searchType\").innerHTML = \"Duck Duck Go search\";\n break;\n case \"di\":\n document.getElementById(\"searchType\").innerHTML = \"Discogs search\";\n break;\n case \"i\":\n document.getElementById(\"searchType\").innerHTML = \"IMDB search\";\n break;\n case \"m\":\n document.getElementById(\"searchType\").innerHTML = \"TheMovieDB search\";\n break;\n case \"r\":\n document.getElementById(\"searchType\").innerHTML = \"Reddit search\";\n break;\n case \"q\":\n document.getElementById(\"searchType\").innerHTML = \"Qwant search\";\n break;\n case \"so\":\n document.getElementById(\"searchType\").innerHTML = \"Soundcloud search\";\n break;\n case \"s\":\n document.getElementById(\"searchType\").innerHTML = \"Spotify search\";\n break;\n case \"tv\":\n document.getElementById(\"searchType\").innerHTML = \"TheTVDB search\";\n break;\n case \"t\":\n document.getElementById(\"searchType\").innerHTML = \"Trakt search\";\n break;\n case \"y\":\n document.getElementById(\"searchType\").innerHTML = \"YouTube search\";\n break;\n case \"w\":\n document.getElementById(\"searchType\").innerHTML = \"Wikipedia search\";\n break;\n case \"p\":\n document.getElementById(\"searchType\").innerHTML = \"Plex search\";\n break;\n case \"rt\":\n document.getElementById(\"searchType\").innerHTML = \"Rotten Tomatoes search\";\n break;\n default:\n document.getElementById(\"searchType\").innerHTML = \"Invalid search\";\n break;\n }\n}else {\n document.getElementById(\"searchType\").innerHTML = \"Google search\";\n }\n}\n\nfunction search(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n if (text[0] === '/') {\n if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n window.location = \"https://www.allmusic.com/search/all/\" + subtext;\n break;\n case \"d\":\n window.location = \"https://duckduckgo.com/?q=\" + subtext;\n break;\n case \"di\":\n window.location = \"https://www.discogs.com/search/?q=\" + subtext;\n break;\n case \"i\":\n window.location = \"https://www.imdb.com/find?q=\" + subtext;\n break;\n case \"m\":\n window.location = \"https://www.themoviedb.org/search?query=\" + subtext;\n break;\n case \"r\":\n window.location = \"https://www.reddit.com/search?q=\" + subtext;\n break;\n case \"q\":\n window.location = \"https://www.qwant.com/?q=\" + subtext;\n break;\n case \"so\":\n window.location = \"https://soundcloud.com/search?q=\" + subtext;\n break;\n case \"s\":\n window.location = \"https://open.spotify.com/search/results/\" + subtext;\n break;\n case \"t\":\n window.location = \"https://trakt.tv/search?query=\" + subtext;\n break;\n case \"tv\":\n window.location = \"https://www.thetvdb.com/search?query=\" + subtext;\n break;\n case \"y\":\n window.location = \"https://www.youtube.com/results?search_query=\" + subtext;\n break;\n case \"w\":\n window.location = \"https://en.wikipedia.org/w/index.php?search=\" + subtext;\n break;\n case \"p\":\n window.location = \"https://app.plex.tv/desktop/#!/search?query=\" + subtext;\n break;\n case \"rt\":\n window.location = \"https://www.rottentomatoes.com/search?search=\" + subtext;\n break;\n }\n } else {\n var option = text.substr(1);\n switch (option) {\n case \"d\":\n window.location = \"https://www.duckduckgo.com\";\n break;\n case \"y\":\n window.location = \"https://www.youtube.com\";\n break;\n case \"r\":\n window.location = \"https://reddit.com\";\n break;\n case \"s\":\n window.location = \"https://open.spotify.com\";\n break;\n }\n }\n } else if (validURL(text)) {\n if (containsProtocol(text))\n window.location = text;\n else\n window.location = \"https://\" + text;\n } else {\n window.location = \"https://www.google.com/search?q=\" + text;\n }\n}\n\n// Source: https://stackoverflow.com/questions/5717093/check-if-a-javascript-string-is-a-url\nfunction validURL(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/)?' + // protocol\n '((([a-z\\\\d]([a-z\\\\d-]*[a-z\\\\d])*)\\\\.)+[a-z]{2,}|' + // domain name\n '((\\\\d{1,3}\\\\.){3}\\\\d{1,3}))' + // OR ip (v4) address\n '(\\\\:\\\\d+)?(\\\\/[-a-z\\\\d%_.~+]*)*' + // port and path\n '(\\\\?[;&a-z\\\\d%_.~+=-]*)?' + // query string\n '(\\\\#[-a-z\\\\d_]*)?$', 'i'); // fragment locator\n return !!pattern.test(str);\n}\n\nfunction containsProtocol(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/){1}.*', 'i');\n return !!pattern.test(str);\n}\n\nString.prototype.replaceAll = function(search, replacement) {\n var target = this;\n return target.split(search).join(replacement);\n};\n\nfunction udpateDisplayedItems(e) {\n localStorage.setItem('contenttype', e.target.checked);\n if (e.target.checked) {\n localStorage.setItem('content-display', 'none');\n } else {\n localStorage.setItem('content-display', 'block');\n }\n setDisplayedItems();\n}\nfunction setDisplayedItems() {\n setValueFromLocalStorage('contenttype');\n setValueFromLocalStorage('content-display');\n \n}"]},"metadata":{},"sourceType":"module"}
\ No newline at end of file
diff --git a/node_modules/.cache/babel-loader/3a719a6a41773568a6635bb704dea852.json b/node_modules/.cache/babel-loader/3a719a6a41773568a6635bb704dea852.json
new file mode 100644
index 00000000..d18e6a07
--- /dev/null
+++ b/node_modules/.cache/babel-loader/3a719a6a41773568a6635bb704dea852.json
@@ -0,0 +1 @@
+{"ast":null,"code":"var _jsxFileName = \"/home/seanedmunds/dev/home-page/src/index.js\",\n _s = $RefreshSig$();\n\nimport React from 'react';\nimport { useState, useEffect } from 'react';\nimport ReactDOM from 'react-dom'; //import { unstable_createPortal } from 'react-dom';\n\nimport './index.css';\nimport { jsxDEV as _jsxDEV } from \"react/jsx-dev-runtime\";\n\nfunction Homepage() {\n return /*#__PURE__*/_jsxDEV(\"main\", {\n id: \"container\",\n className: \"fade\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Search, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 11,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 10,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Header, {\n date: date(),\n greet: greet()\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 14,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 13,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Applications, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 20,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 19,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Bookmarks, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 23,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 22,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(ModalMenu, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 26,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 25,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(ModalInit, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 29,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 28,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 9,\n columnNumber: 5\n }, this);\n}\n\n_c = Homepage;\n\nfunction Search() {\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"search\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"abackground\",\n children: [/*#__PURE__*/_jsxDEV(\"input\", {\n name: \"keywords\",\n value: \"test\",\n type: \"text\",\n className: \"keyword\",\n id: \"keywords\",\n size: \"50\",\n spellCheck: \"true\",\n placeholder: \"\"\n /*onFocus={this.placeholder = \"\"} onBlur={this.placeholder = ''}*/\n ,\n autoComplete: \"off\",\n autoFocus: \"true\",\n onKeyUp: handleKeyPress\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 39,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n id: \"searchType\",\n className: \"Input-label\",\n children: \"Google search\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 40,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 38,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 37,\n columnNumber: 5\n }, this);\n}\n\n_c2 = Search;\n\nfunction Header(props) {\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"header\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n id: \"greeting_block\",\n children: /*#__PURE__*/_jsxDEV(\"h1\", {\n id: \"header_greet\",\n children: props.greet\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 50,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 49,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"date_block\",\n children: [/*#__PURE__*/_jsxDEV(\"h2\", {\n id: \"header_date\",\n children: props.date\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 53,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(Clock, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 54,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 52,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 48,\n columnNumber: 5\n }, this);\n}\n\n_c3 = Header;\n\nfunction Applications() {\n let appList = getApps();\n var items = [];\n\n for (var i = 0; i < appList.apps.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(App, {\n name: appList.apps[i].name,\n url: appList.apps[i].url,\n icon: appList.apps[i].icon,\n NSFW: appList.apps[i].NSFW\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 65,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"apps\",\n children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n children: \"Applications\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 76,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"apps_loop\",\n children: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 77,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 75,\n columnNumber: 5\n }, this);\n}\n\n_c4 = Applications;\n\nfunction App(props) {\n let classNameType = props.NSFW + \"-content\";\n let hrefUrl = \"https://\" + props.url;\n let iconName = \"mdi-\" + props.icon;\n return /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: hrefUrl,\n className: classNameType,\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_item\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_icon\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify icon\",\n \"data-icon\": iconName\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 93,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 92,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_text\",\n children: [/*#__PURE__*/_jsxDEV(\"span\", {\n id: \"app-name\",\n children: props.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 96,\n columnNumber: 13\n }, this), /*#__PURE__*/_jsxDEV(\"span\", {\n id: \"app-address\",\n children: props.url\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 97,\n columnNumber: 13\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 95,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 91,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 90,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 89,\n columnNumber: 5\n }, this);\n}\n\n_c5 = App;\n\nfunction Bookmarks() {\n let bookmarkList = getLinks();\n var items = [];\n\n for (var i = 0; i < bookmarkList.bookmarks.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(LinkGroups, {\n category: bookmarkList.bookmarks[i].category,\n links: bookmarkList.bookmarks[i].links\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 110,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"links\",\n children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n children: \"Bookmarks\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 119,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"links_loop\",\n children: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 120,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 118,\n columnNumber: 5\n }, this);\n}\n\n_c6 = Bookmarks;\n\nfunction LinkGroups(props) {\n var items = [];\n\n for (var i = 0; i < props.links.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(LinkItem, {\n link: props.links[i]\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 131,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"links_item\",\n children: [/*#__PURE__*/_jsxDEV(\"h4\", {\n children: props.category\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 139,\n columnNumber: 7\n }, this), items]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 138,\n columnNumber: 5\n }, this);\n}\n\n_c7 = LinkGroups;\n\nfunction LinkItem(props) {\n return /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: props.link.url,\n className: \"theme_color-border theme_text-select\",\n children: props.link.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 148,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 147,\n columnNumber: 5\n }, this);\n}\n\n_c8 = LinkItem;\n\nfunction ModalMenu() {\n var providers = getProviders();\n var items = [];\n\n for (var i = 0; i < providers.providers.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(Provider, {\n provider: providers.providers[i]\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 158,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"modal\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n children: [/*#__PURE__*/_jsxDEV(\"header\", {\n id: \"modal-header\",\n children: [/*#__PURE__*/_jsxDEV(\"h1\", {\n children: \"Options\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 168,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n href: \"#\",\n title: \"Close\",\n className: \"modal-close\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-close\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 170,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 169,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 167,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"h2\", {\n children: \"Color themes\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 174,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"modal-theme\",\n children: [/*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"blackboard\",\n className: \"theme-button theme-blackboard\",\n children: \"Blackboard\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 177,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"gazette\",\n className: \"theme-button theme-gazette\",\n children: \"Gazette\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 178,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"espresso\",\n className: \"theme-button theme-espresso\",\n children: \"Espresso\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 179,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cab\",\n className: \"theme-button theme-cab\",\n children: \"Cab\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 180,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cloud\",\n className: \"theme-button theme-cloud\",\n children: \"Cloud\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 181,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"lime\",\n className: \"theme-button theme-lime\",\n children: \"Lime\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 182,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"passion\",\n className: \"theme-button theme-passion\",\n children: \"Passion\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 183,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"blues\",\n className: \"theme-button theme-blues\",\n children: \"Blues\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 184,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"chalk\",\n className: \"theme-button theme-chalk\",\n children: \"Chalk\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 185,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"tron\",\n className: \"theme-button theme-tron\",\n children: \"Tron\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 186,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"paper\",\n className: \"theme-button theme-paper\",\n children: \"Paper\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 187,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cyberpunk\",\n className: \"theme-button theme-cyberpunk\",\n children: \"Cyberpunk\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 188,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"quadra\",\n className: \"theme-button theme-panam\",\n children: \"Quadra\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 189,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"panam\",\n className: \"theme-button theme-panam\",\n children: \"Panam\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 190,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"touch\",\n className: \"theme-button theme-touch\",\n children: \"Touch\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 191,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"peek\",\n className: \"theme-button theme-peek\",\n children: \"Peek\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 192,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 176,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"h2\", {\n children: \"Search options\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 196,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"providers\",\n children: /*#__PURE__*/_jsxDEV(\"table\", {\n children: /*#__PURE__*/_jsxDEV(\"tbody\", {\n children: [/*#__PURE__*/_jsxDEV(\"tr\", {\n children: [/*#__PURE__*/_jsxDEV(\"th\", {\n children: \"Website\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 201,\n columnNumber: 19\n }, this), /*#__PURE__*/_jsxDEV(\"th\", {\n children: \"Prefix\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 202,\n columnNumber: 19\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 200,\n columnNumber: 17\n }, this), items]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 199,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 198,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 197,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"header\", {\n id: \"modal-footer\",\n children: [/*#__PURE__*/_jsxDEV(\"a\", {\n href: \"https://github.com/jeroenpardon/\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-github-box\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 210,\n columnNumber: 54\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 210,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n href: \"https://materialdesignicons.com/\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-material-design\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 211,\n columnNumber: 54\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 211,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"sneaky\",\n children: [/*#__PURE__*/_jsxDEV(\"input\", {\n type: \"checkbox\",\n id: \"contenttype\",\n onChange: \"nsfw(this)\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 212,\n columnNumber: 35\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n for: \"contenttype\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-domino-mask\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 213,\n columnNumber: 36\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 213,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 212,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 209,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 166,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 165,\n columnNumber: 5\n }, this);\n}\n\n_c9 = ModalMenu;\n\nfunction Provider(props) {\n return /*#__PURE__*/_jsxDEV(\"tr\", {\n children: [/*#__PURE__*/_jsxDEV(\"td\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: props.provider.url,\n children: props.provider.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 223,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 223,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"td\", {\n children: props.provider.prefix\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 224,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 222,\n columnNumber: 5\n }, this);\n}\n\n_c10 = Provider;\n\nfunction ModalInit() {\n return /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"modal_init\",\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n className: \"btn\",\n href: \"#modal\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify icon\",\n \"data-icon\": \"mdi-xbox-controller-menu\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 233,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 232,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 231,\n columnNumber: 5\n }, this);\n}\n\n_c11 = ModalInit;\nReactDOM.render( /*#__PURE__*/_jsxDEV(Homepage, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 240,\n columnNumber: 3\n}, this), document.getElementById('root')); //Functions below this line are for calculating data for\n//other functions\n\nfunction date() {\n let currentDate = new Date();\n let dateOptions = {\n weekday: \"long\",\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\"\n };\n let date = currentDate.toLocaleDateString(\"en-GB\", dateOptions);\n return date;\n}\n\nfunction fixDigits(k) {\n if (k < 10) {\n return \"0\" + k;\n } else {\n return k;\n }\n}\n\nfunction greet() {\n let currentTime = new Date();\n let greet = Math.floor(currentTime.getHours() / 6);\n let easterEggChance = Math.floor(Math.random() * 100);\n\n let greetings = require('./messages.json');\n\n let timeBased = [];\n let easterEggs = [];\n\n for (var i = 0; i < greetings.messages.length; i++) {\n if (greetings.messages[i].easteregg === \"FALSE\") {\n timeBased = timeBased.concat(greetings.messages[i]);\n } else {\n easterEggs = easterEggs.concat(greetings.messages[i]);\n }\n }\n\n if (easterEggChance > 10) {\n return timeBased[greet].message;\n } else {\n let easterEggText = Math.floor(Math.random() * easterEggs.length);\n return easterEggs[easterEggText].message;\n }\n}\n\nfunction Clock() {\n _s();\n\n const [date, setDate] = useState(new Date());\n\n function refreshClock() {\n setDate(new Date());\n }\n\n useEffect(() => {\n const timerId = setInterval(refreshClock, 1000);\n return function cleanup() {\n clearInterval(timerId);\n };\n }, []);\n var hour = date.getHours();\n var minutes = date.getMinutes(); //var seconds = date.getSeconds();\n\n var midday = \"AM\";\n midday = hour >= 12 ? \"PM\" : \"AM\";\n hour = hour === 0 ? 12 : hour > 12 ? hour - 12 : hour;\n minutes = fixDigits(minutes); //seconds = fixDigits(seconds);\n\n let time = hour + \":\" + minutes + \" \" + midday;\n return /*#__PURE__*/_jsxDEV(\"h2\", {\n id: \"clock\",\n children: time\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 311,\n columnNumber: 5\n }, this);\n}\n\n_s(Clock, \"Gqi45WOZhU2c0BLYX0HoJeiR0fk=\");\n\n_c12 = Clock;\n\nfunction getApps() {\n let applications = require('./apps.json');\n\n return applications;\n}\n\nfunction getLinks() {\n let links = require('./links.json');\n\n return links;\n}\n\nfunction getProviders() {\n let providers = require('./providers.json');\n\n return providers;\n}\n\nfunction handleKeyPress(e, value) {\n var sindex = 0;\n var cycle = false;\n var key = e.keyCode || e.which;\n var text = value.replaceAll(\"+\", \"%2B\");\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n\n if (key == 13) {\n // Search functions\n search(text);\n }\n\n if (key == 9) {\n // Tab Completion Functions\n e.preventDefault();\n e.stopPropagation();\n\n if (text[0] === ';') {\n switch (option) {\n case 't':\n var streamers = ['admiralbahroo', 'moonmoon_ow', 'witwix'];\n\n if (!subtext || cycle) {\n cycle = true;\n if (sindex > streamers.length - 1) sindex = 0;\n document.getElementById(\"keywords\").value = ';t ' + streamers[sindex++];\n return;\n }\n\n for (var streamer of streamers) {\n if (subtext === streamer.substr(0, subtext.length)) {\n document.getElementById(\"keywords\").value = ';t ' + streamer;\n return;\n }\n }\n\n break;\n }\n }\n }\n\n if (key == 32) {\n //Space to go to search\n updateLabel(text);\n }\n\n sindex = 0;\n cycle = false;\n updateLabel(text);\n}\n\nfunction updateLabel(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n\n if (text[0] === '/') {\n // if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n document.getElementById(\"searchType\").innerHTML = \"Allmusic search\";\n break;\n\n case \"d\":\n document.getElementById(\"searchType\").innerHTML = \"Duck Duck Go search\";\n break;\n\n case \"di\":\n document.getElementById(\"searchType\").innerHTML = \"Discogs search\";\n break;\n\n case \"i\":\n document.getElementById(\"searchType\").innerHTML = \"IMDB search\";\n break;\n\n case \"m\":\n document.getElementById(\"searchType\").innerHTML = \"TheMovieDB search\";\n break;\n\n case \"r\":\n document.getElementById(\"searchType\").innerHTML = \"Reddit search\";\n break;\n\n case \"q\":\n document.getElementById(\"searchType\").innerHTML = \"Qwant search\";\n break;\n\n case \"so\":\n document.getElementById(\"searchType\").innerHTML = \"Soundcloud search\";\n break;\n\n case \"s\":\n document.getElementById(\"searchType\").innerHTML = \"Spotify search\";\n break;\n\n case \"tv\":\n document.getElementById(\"searchType\").innerHTML = \"TheTVDB search\";\n break;\n\n case \"t\":\n document.getElementById(\"searchType\").innerHTML = \"Trakt search\";\n break;\n\n case \"y\":\n document.getElementById(\"searchType\").innerHTML = \"YouTube search\";\n break;\n\n case \"w\":\n document.getElementById(\"searchType\").innerHTML = \"Wikipedia search\";\n break;\n\n case \"p\":\n document.getElementById(\"searchType\").innerHTML = \"Plex search\";\n break;\n\n case \"rt\":\n document.getElementById(\"searchType\").innerHTML = \"Rotten Tomatoes search\";\n break;\n\n default:\n document.getElementById(\"searchType\").innerHTML = \"Invalid search\";\n break;\n }\n } else {\n document.getElementById(\"searchType\").innerHTML = \"Google search\";\n }\n}\n\nfunction search(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n\n if (text[0] === '/') {\n if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n window.location = \"https://www.allmusic.com/search/all/\" + subtext;\n break;\n\n case \"d\":\n window.location = \"https://duckduckgo.com/?q=\" + subtext;\n break;\n\n case \"di\":\n window.location = \"https://www.discogs.com/search/?q=\" + subtext;\n break;\n\n case \"i\":\n window.location = \"https://www.imdb.com/find?q=\" + subtext;\n break;\n\n case \"m\":\n window.location = \"https://www.themoviedb.org/search?query=\" + subtext;\n break;\n\n case \"r\":\n window.location = \"https://www.reddit.com/search?q=\" + subtext;\n break;\n\n case \"q\":\n window.location = \"https://www.qwant.com/?q=\" + subtext;\n break;\n\n case \"so\":\n window.location = \"https://soundcloud.com/search?q=\" + subtext;\n break;\n\n case \"s\":\n window.location = \"https://open.spotify.com/search/results/\" + subtext;\n break;\n\n case \"t\":\n window.location = \"https://trakt.tv/search?query=\" + subtext;\n break;\n\n case \"tv\":\n window.location = \"https://www.thetvdb.com/search?query=\" + subtext;\n break;\n\n case \"y\":\n window.location = \"https://www.youtube.com/results?search_query=\" + subtext;\n break;\n\n case \"w\":\n window.location = \"https://en.wikipedia.org/w/index.php?search=\" + subtext;\n break;\n\n case \"p\":\n window.location = \"https://app.plex.tv/desktop/#!/search?query=\" + subtext;\n break;\n\n case \"rt\":\n window.location = \"https://www.rottentomatoes.com/search?search=\" + subtext;\n break;\n }\n } else {\n var option = text.substr(1);\n\n switch (option) {\n case \"d\":\n window.location = \"https://www.duckduckgo.com\";\n break;\n\n case \"y\":\n window.location = \"https://www.youtube.com\";\n break;\n\n case \"r\":\n window.location = \"https://reddit.com\";\n break;\n\n case \"s\":\n window.location = \"https://open.spotify.com\";\n break;\n }\n }\n } else if (validURL(text)) {\n if (containsProtocol(text)) window.location = text;else window.location = \"https://\" + text;\n } else {\n window.location = \"https://www.google.com/search?q=\" + text;\n }\n} // Source: https://stackoverflow.com/questions/5717093/check-if-a-javascript-string-is-a-url\n\n\nfunction validURL(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/)?' + // protocol\n '((([a-z\\\\d]([a-z\\\\d-]*[a-z\\\\d])*)\\\\.)+[a-z]{2,}|' + // domain name\n '((\\\\d{1,3}\\\\.){3}\\\\d{1,3}))' + // OR ip (v4) address\n '(\\\\:\\\\d+)?(\\\\/[-a-z\\\\d%_.~+]*)*' + // port and path\n '(\\\\?[;&a-z\\\\d%_.~+=-]*)?' + // query string\n '(\\\\#[-a-z\\\\d_]*)?$', 'i'); // fragment locator\n\n return !!pattern.test(str);\n}\n\nfunction containsProtocol(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/){1}.*', 'i');\n return !!pattern.test(str);\n}\n\nString.prototype.replaceAll = function (search, replacement) {\n var target = this;\n return target.split(search).join(replacement);\n};\n\nvar _c, _c2, _c3, _c4, _c5, _c6, _c7, _c8, _c9, _c10, _c11, _c12;\n\n$RefreshReg$(_c, \"Homepage\");\n$RefreshReg$(_c2, \"Search\");\n$RefreshReg$(_c3, \"Header\");\n$RefreshReg$(_c4, \"Applications\");\n$RefreshReg$(_c5, \"App\");\n$RefreshReg$(_c6, \"Bookmarks\");\n$RefreshReg$(_c7, \"LinkGroups\");\n$RefreshReg$(_c8, \"LinkItem\");\n$RefreshReg$(_c9, \"ModalMenu\");\n$RefreshReg$(_c10, \"Provider\");\n$RefreshReg$(_c11, \"ModalInit\");\n$RefreshReg$(_c12, \"Clock\");","map":{"version":3,"sources":["/home/seanedmunds/dev/home-page/src/index.js"],"names":["React","useState","useEffect","ReactDOM","Homepage","date","greet","Search","handleKeyPress","Header","props","Applications","appList","getApps","items","i","apps","length","push","name","url","icon","NSFW","App","classNameType","hrefUrl","iconName","Bookmarks","bookmarkList","getLinks","bookmarks","category","links","LinkGroups","LinkItem","link","ModalMenu","providers","getProviders","Provider","provider","prefix","ModalInit","render","document","getElementById","currentDate","Date","dateOptions","weekday","year","month","day","toLocaleDateString","fixDigits","k","currentTime","Math","floor","getHours","easterEggChance","random","greetings","require","timeBased","easterEggs","messages","easteregg","concat","message","easterEggText","Clock","setDate","refreshClock","timerId","setInterval","cleanup","clearInterval","hour","minutes","getMinutes","midday","time","applications","e","value","sindex","cycle","key","keyCode","which","text","replaceAll","option","substr","indexOf","subtext","search","preventDefault","stopPropagation","streamers","streamer","updateLabel","innerHTML","window","location","validURL","containsProtocol","str","pattern","RegExp","test","String","prototype","replacement","target","split","join"],"mappings":";;;AAAA,OAAOA,KAAP,MAAkB,OAAlB;AACA,SAASC,QAAT,EAAmBC,SAAnB,QAAoC,OAApC;AACA,OAAOC,QAAP,MAAqB,WAArB,C,CACA;;AACA,OAAO,aAAP;;;AAEA,SAASC,QAAT,GAAoB;AAClB,sBACE;AAAM,IAAA,EAAE,EAAC,WAAT;AAAqB,IAAA,SAAS,EAAC,MAA/B;AAAA,4BACI;AAAA,6BACE,QAAC,MAAD;AAAA;AAAA;AAAA;AAAA;AADF;AAAA;AAAA;AAAA;AAAA,YADJ,eAII;AAAA,6BACE,QAAC,MAAD;AACE,QAAA,IAAI,EAAEC,IAAI,EADZ;AAEE,QAAA,KAAK,EAAEC,KAAK;AAFd;AAAA;AAAA;AAAA;AAAA;AADF;AAAA;AAAA;AAAA;AAAA,YAJJ,eAUI;AAAA,6BACE,QAAC,YAAD;AAAA;AAAA;AAAA;AAAA;AADF;AAAA;AAAA;AAAA;AAAA,YAVJ,eAaI;AAAA,6BACE,QAAC,SAAD;AAAA;AAAA;AAAA;AAAA;AADF;AAAA;AAAA;AAAA;AAAA,YAbJ,eAgBI;AAAA,6BACE,QAAC,SAAD;AAAA;AAAA;AAAA;AAAA;AADF;AAAA;AAAA;AAAA;AAAA,YAhBJ,eAmBI;AAAA,6BACE,QAAC,SAAD;AAAA;AAAA;AAAA;AAAA;AADF;AAAA;AAAA;AAAA;AAAA,YAnBJ;AAAA;AAAA;AAAA;AAAA;AAAA,UADF;AAyBD;;KA1BQF,Q;;AA4BT,SAASG,MAAT,GAAkB;AAChB,sBACE;AAAS,IAAA,EAAE,EAAC,QAAZ;AAAA,2BACE;AAAK,MAAA,SAAS,EAAC,aAAf;AAAA,8BACE;AAAO,QAAA,IAAI,EAAC,UAAZ;AAAuB,QAAA,KAAK,EAAC,MAA7B;AAAoC,QAAA,IAAI,EAAC,MAAzC;AAAgD,QAAA,SAAS,EAAC,SAA1D;AAAoE,QAAA,EAAE,EAAC,UAAvE;AAAkF,QAAA,IAAI,EAAC,IAAvF;AAA4F,QAAA,UAAU,EAAC,MAAvG;AAA8G,QAAA,WAAW,EAAC;AAAG;AAA7H;AAAgM,QAAA,YAAY,EAAC,KAA7M;AAAmN,QAAA,SAAS,EAAC,MAA7N;AAAoO,QAAA,OAAO,EAAEC;AAA7O;AAAA;AAAA;AAAA;AAAA,cADF,eAEE;AAAO,QAAA,EAAE,EAAC,YAAV;AAAuB,QAAA,SAAS,EAAC,aAAjC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,cAFF;AAAA;AAAA;AAAA;AAAA;AAAA;AADF;AAAA;AAAA;AAAA;AAAA,UADF;AAQD;;MATQD,M;;AAWT,SAASE,MAAT,CAAgBC,KAAhB,EAAuB;AACrB,sBACE;AAAS,IAAA,EAAE,EAAC,QAAZ;AAAA,4BACE;AAAK,MAAA,EAAE,EAAC,gBAAR;AAAA,6BACE;AAAI,QAAA,EAAE,EAAC,cAAP;AAAA,kBAAuBA,KAAK,CAACJ;AAA7B;AAAA;AAAA;AAAA;AAAA;AADF;AAAA;AAAA;AAAA;AAAA,YADF,eAIE;AAAK,MAAA,EAAE,EAAC,YAAR;AAAA,8BACE;AAAI,QAAA,EAAE,EAAC,aAAP;AAAA,kBAAsBI,KAAK,CAACL;AAA5B;AAAA;AAAA;AAAA;AAAA,cADF,eAEE,QAAC,KAAD;AAAA;AAAA;AAAA;AAAA,cAFF;AAAA;AAAA;AAAA;AAAA;AAAA,YAJF;AAAA;AAAA;AAAA;AAAA;AAAA,UADF;AAWD;;MAZQI,M;;AAcT,SAASE,YAAT,GAAwB;AACtB,MAAIC,OAAO,GAAGC,OAAO,EAArB;AACA,MAAIC,KAAK,GAAG,EAAZ;;AACA,OAAK,IAAIC,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGH,OAAO,CAACI,IAAR,CAAaC,MAAjC,EAAyCF,CAAC,EAA1C,EAA8C;AAC5CD,IAAAA,KAAK,CAACI,IAAN,eACE,QAAC,GAAD;AAEE,MAAA,IAAI,EAAEN,OAAO,CAACI,IAAR,CAAaD,CAAb,EAAgBI,IAFxB;AAGE,MAAA,GAAG,EAAEP,OAAO,CAACI,IAAR,CAAaD,CAAb,EAAgBK,GAHvB;AAIE,MAAA,IAAI,EAAER,OAAO,CAACI,IAAR,CAAaD,CAAb,EAAgBM,IAJxB;AAKE,MAAA,IAAI,EAAET,OAAO,CAACI,IAAR,CAAaD,CAAb,EAAgBO;AALxB,OACOP,CADP;AAAA;AAAA;AAAA;AAAA,YADF;AASD;;AACD,sBACE;AAAS,IAAA,EAAE,EAAC,MAAZ;AAAA,4BACE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,YADF,eAEE;AAAK,MAAA,EAAE,EAAC,WAAR;AAAA,gBACGD;AADH;AAAA;AAAA;AAAA;AAAA,YAFF;AAAA;AAAA;AAAA;AAAA;AAAA,UADF;AAQD;;MAtBQH,Y;;AAwBT,SAASY,GAAT,CAAab,KAAb,EAAoB;AAClB,MAAIc,aAAa,GAAGd,KAAK,CAACY,IAAN,GAAa,UAAjC;AACA,MAAIG,OAAO,GAAG,aAAaf,KAAK,CAACU,GAAjC;AACA,MAAIM,QAAQ,GAAG,SAAShB,KAAK,CAACW,IAA9B;AACA,sBACE;AAAA,2BACE;AAAG,MAAA,IAAI,EAAEI,OAAT;AAAkB,MAAA,SAAS,EAAED,aAA7B;AAAA,6BACE;AAAK,QAAA,SAAS,EAAC,WAAf;AAAA,gCACE;AAAK,UAAA,SAAS,EAAC,WAAf;AAAA,iCACE;AAAM,YAAA,SAAS,EAAC,cAAhB;AAA+B,yBAAWE;AAA1C;AAAA;AAAA;AAAA;AAAA;AADF;AAAA;AAAA;AAAA;AAAA,gBADF,eAIE;AAAK,UAAA,SAAS,EAAC,WAAf;AAAA,kCACE;AAAM,YAAA,EAAE,EAAC,UAAT;AAAA,sBAAqBhB,KAAK,CAACS;AAA3B;AAAA;AAAA;AAAA;AAAA,kBADF,eAEE;AAAM,YAAA,EAAE,EAAC,aAAT;AAAA,sBAAwBT,KAAK,CAACU;AAA9B;AAAA;AAAA;AAAA;AAAA,kBAFF;AAAA;AAAA;AAAA;AAAA;AAAA,gBAJF;AAAA;AAAA;AAAA;AAAA;AAAA;AADF;AAAA;AAAA;AAAA;AAAA;AADF;AAAA;AAAA;AAAA;AAAA,UADF;AAeD;;MAnBQG,G;;AAqBT,SAASI,SAAT,GAAqB;AACnB,MAAIC,YAAY,GAAGC,QAAQ,EAA3B;AACA,MAAIf,KAAK,GAAG,EAAZ;;AACA,OAAK,IAAIC,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGa,YAAY,CAACE,SAAb,CAAuBb,MAA3C,EAAmDF,CAAC,EAApD,EAAwD;AACtDD,IAAAA,KAAK,CAACI,IAAN,eACE,QAAC,UAAD;AAEE,MAAA,QAAQ,EAAEU,YAAY,CAACE,SAAb,CAAuBf,CAAvB,EAA0BgB,QAFtC;AAGE,MAAA,KAAK,EAAEH,YAAY,CAACE,SAAb,CAAuBf,CAAvB,EAA0BiB;AAHnC,OACOjB,CADP;AAAA;AAAA;AAAA;AAAA,YADF;AAOD;;AACD,sBACE;AAAS,IAAA,EAAE,EAAC,OAAZ;AAAA,4BACE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,YADF,eAEE;AAAK,MAAA,EAAE,EAAC,YAAR;AAAA,gBACKD;AADL;AAAA;AAAA;AAAA;AAAA,YAFF;AAAA;AAAA;AAAA;AAAA;AAAA,UADF;AAQD;;MApBQa,S;;AAsBT,SAASM,UAAT,CAAoBvB,KAApB,EAA2B;AACzB,MAAII,KAAK,GAAG,EAAZ;;AACA,OAAK,IAAIC,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGL,KAAK,CAACsB,KAAN,CAAYf,MAAhC,EAAwCF,CAAC,EAAzC,EAA6C;AAC3CD,IAAAA,KAAK,CAACI,IAAN,eACE,QAAC,QAAD;AAEE,MAAA,IAAI,EAAER,KAAK,CAACsB,KAAN,CAAYjB,CAAZ;AAFR,OACOA,CADP;AAAA;AAAA;AAAA;AAAA,YADF;AAMD;;AACD,sBACE;AAAK,IAAA,EAAE,EAAC,YAAR;AAAA,4BACE;AAAA,gBAAKL,KAAK,CAACqB;AAAX;AAAA;AAAA;AAAA;AAAA,YADF,EAEGjB,KAFH;AAAA;AAAA;AAAA;AAAA;AAAA,UADF;AAMD;;MAhBQmB,U;;AAkBT,SAASC,QAAT,CAAkBxB,KAAlB,EAAyB;AACvB,sBACE;AAAA,2BACE;AAAG,MAAA,IAAI,EAAEA,KAAK,CAACyB,IAAN,CAAWf,GAApB;AAAyB,MAAA,SAAS,EAAC,sCAAnC;AAAA,gBAA2EV,KAAK,CAACyB,IAAN,CAAWhB;AAAtF;AAAA;AAAA;AAAA;AAAA;AADF;AAAA;AAAA;AAAA;AAAA,UADF;AAKD;;MANQe,Q;;AAQT,SAASE,SAAT,GAAqB;AACnB,MAAIC,SAAS,GAAGC,YAAY,EAA5B;AACA,MAAIxB,KAAK,GAAG,EAAZ;;AACA,OAAK,IAAIC,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGsB,SAAS,CAACA,SAAV,CAAoBpB,MAAxC,EAAgDF,CAAC,EAAjD,EAAqD;AACnDD,IAAAA,KAAK,CAACI,IAAN,eACE,QAAC,QAAD;AAEE,MAAA,QAAQ,EAAEmB,SAAS,CAACA,SAAV,CAAoBtB,CAApB;AAFZ,OACOA,CADP;AAAA;AAAA;AAAA;AAAA,YADF;AAMD;;AACD,sBACE;AAAS,IAAA,EAAE,EAAC,OAAZ;AAAA,2BACE;AAAA,8BACE;AAAQ,QAAA,EAAE,EAAC,cAAX;AAAA,gCACE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,gBADF,eAEE;AAAG,UAAA,IAAI,EAAC,GAAR;AAAY,UAAA,KAAK,EAAC,OAAlB;AAA0B,UAAA,SAAS,EAAC,aAApC;AAAA,iCACE;AAAM,YAAA,SAAS,EAAC,SAAhB;AAA0B,yBAAU;AAApC;AAAA;AAAA;AAAA;AAAA;AADF;AAAA;AAAA;AAAA;AAAA,gBAFF;AAAA;AAAA;AAAA;AAAA;AAAA,cADF,eAQE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,cARF,eAUE;AAAK,QAAA,EAAE,EAAC,aAAR;AAAA,gCACE;AAAQ,wBAAW,YAAnB;AAAgC,UAAA,SAAS,EAAC,+BAA1C;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,gBADF,eAEE;AAAQ,wBAAW,SAAnB;AAA6B,UAAA,SAAS,EAAC,4BAAvC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,gBAFF,eAGE;AAAQ,wBAAW,UAAnB;AAA8B,UAAA,SAAS,EAAC,6BAAxC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,gBAHF,eAIE;AAAQ,wBAAW,KAAnB;AAAyB,UAAA,SAAS,EAAC,wBAAnC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,gBAJF,eAKE;AAAQ,wBAAW,OAAnB;AAA2B,UAAA,SAAS,EAAC,0BAArC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,gBALF,eAME;AAAQ,wBAAW,MAAnB;AAA0B,UAAA,SAAS,EAAC,yBAApC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,gBANF,eAOE;AAAQ,wBAAW,SAAnB;AAA6B,UAAA,SAAS,EAAC,4BAAvC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,gBAPF,eAQE;AAAQ,wBAAW,OAAnB;AAA2B,UAAA,SAAS,EAAC,0BAArC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,gBARF,eASE;AAAQ,wBAAW,OAAnB;AAA2B,UAAA,SAAS,EAAC,0BAArC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,gBATF,eAUE;AAAQ,wBAAW,MAAnB;AAA0B,UAAA,SAAS,EAAC,yBAApC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,gBAVF,eAWE;AAAQ,wBAAW,OAAnB;AAA2B,UAAA,SAAS,EAAC,0BAArC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,gBAXF,eAYE;AAAQ,wBAAW,WAAnB;AAA+B,UAAA,SAAS,EAAC,8BAAzC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,gBAZF,eAaE;AAAQ,wBAAW,QAAnB;AAA4B,UAAA,SAAS,EAAC,0BAAtC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,gBAbF,eAcE;AAAQ,wBAAW,OAAnB;AAA2B,UAAA,SAAS,EAAC,0BAArC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,gBAdF,eAeE;AAAQ,wBAAW,OAAnB;AAA2B,UAAA,SAAS,EAAC,0BAArC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,gBAfF,eAgBE;AAAQ,wBAAW,MAAnB;AAA0B,UAAA,SAAS,EAAC,yBAApC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,gBAhBF;AAAA;AAAA;AAAA;AAAA;AAAA,cAVF,eA8BE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,cA9BF,eA+BI;AAAS,QAAA,EAAE,EAAC,WAAZ;AAAA,+BACE;AAAA,iCACE;AAAA,oCACE;AAAA,sCACE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,sBADF,eAEE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,sBAFF;AAAA;AAAA;AAAA;AAAA;AAAA,oBADF,EAKGD,KALH;AAAA;AAAA;AAAA;AAAA;AAAA;AADF;AAAA;AAAA;AAAA;AAAA;AADF;AAAA;AAAA;AAAA;AAAA,cA/BJ,eA2CE;AAAQ,QAAA,EAAE,EAAC,cAAX;AAAA,gCACE;AAAG,UAAA,IAAI,EAAC,kCAAR;AAAA,iCAA2C;AAAM,YAAA,SAAS,EAAC,SAAhB;AAA0B,yBAAU;AAApC;AAAA;AAAA;AAAA;AAAA;AAA3C;AAAA;AAAA;AAAA;AAAA,gBADF,eAEE;AAAG,UAAA,IAAI,EAAC,kCAAR;AAAA,iCAA2C;AAAM,YAAA,SAAS,EAAC,SAAhB;AAA0B,yBAAU;AAApC;AAAA;AAAA;AAAA;AAAA;AAA3C;AAAA;AAAA;AAAA;AAAA,gBAFF,eAGE;AAAK,UAAA,SAAS,EAAC,QAAf;AAAA,kCAAwB;AAAO,YAAA,IAAI,EAAC,UAAZ;AAAuB,YAAA,EAAE,EAAC,aAA1B;AAAwC,YAAA,QAAQ,EAAC;AAAjD;AAAA;AAAA;AAAA;AAAA,kBAAxB,eACA;AAAO,YAAA,GAAG,EAAC,aAAX;AAAA,mCAAyB;AAAM,cAAA,SAAS,EAAC,SAAhB;AAA0B,2BAAU;AAApC;AAAA;AAAA;AAAA;AAAA;AAAzB;AAAA;AAAA;AAAA;AAAA,kBADA;AAAA;AAAA;AAAA;AAAA;AAAA,gBAHF;AAAA;AAAA;AAAA;AAAA;AAAA,cA3CF;AAAA;AAAA;AAAA;AAAA;AAAA;AADF;AAAA;AAAA;AAAA;AAAA,UADF;AAsDD;;MAjEQsB,S;;AAmET,SAASG,QAAT,CAAkB7B,KAAlB,EAAyB;AACvB,sBACE;AAAA,4BACE;AAAA,6BAAI;AAAG,QAAA,IAAI,EAAEA,KAAK,CAAC8B,QAAN,CAAepB,GAAxB;AAAA,kBAA8BV,KAAK,CAAC8B,QAAN,CAAerB;AAA7C;AAAA;AAAA;AAAA;AAAA;AAAJ;AAAA;AAAA;AAAA;AAAA,YADF,eAEE;AAAA,gBAAKT,KAAK,CAAC8B,QAAN,CAAeC;AAApB;AAAA;AAAA;AAAA;AAAA,YAFF;AAAA;AAAA;AAAA;AAAA;AAAA,UADF;AAMD;;OAPQF,Q;;AAST,SAASG,SAAT,GAAqB;AACnB,sBACE;AAAK,IAAA,EAAE,EAAC,YAAR;AAAA,2BACE;AAAG,MAAA,SAAS,EAAC,KAAb;AAAmB,MAAA,IAAI,EAAC,QAAxB;AAAA,6BACE;AAAM,QAAA,SAAS,EAAC,cAAhB;AAA+B,qBAAU;AAAzC;AAAA;AAAA;AAAA;AAAA;AADF;AAAA;AAAA;AAAA;AAAA;AADF;AAAA;AAAA;AAAA;AAAA,UADF;AAOD;;OARQA,S;AAUTvC,QAAQ,CAACwC,MAAT,eACE,QAAC,QAAD;AAAA;AAAA;AAAA;AAAA,QADF,EAEEC,QAAQ,CAACC,cAAT,CAAwB,MAAxB,CAFF,E,CAKA;AACA;;AAEA,SAASxC,IAAT,GAAgB;AACd,MAAIyC,WAAW,GAAG,IAAIC,IAAJ,EAAlB;AACA,MAAIC,WAAW,GAAG;AAChBC,IAAAA,OAAO,EAAE,MADO;AAEhBC,IAAAA,IAAI,EAAE,SAFU;AAGhBC,IAAAA,KAAK,EAAE,MAHS;AAIhBC,IAAAA,GAAG,EAAE;AAJW,GAAlB;AAMA,MAAI/C,IAAI,GAAGyC,WAAW,CAACO,kBAAZ,CAA+B,OAA/B,EAAwCL,WAAxC,CAAX;AACA,SAAO3C,IAAP;AACD;;AACD,SAASiD,SAAT,CAAmBC,CAAnB,EAAsB;AACpB,MAAIA,CAAC,GAAG,EAAR,EAAY;AACV,WAAO,MAAMA,CAAb;AACD,GAFD,MAGK;AACH,WAAOA,CAAP;AACD;AACF;;AACD,SAASjD,KAAT,GAAiB;AACf,MAAIkD,WAAW,GAAG,IAAIT,IAAJ,EAAlB;AACA,MAAIzC,KAAK,GAAGmD,IAAI,CAACC,KAAL,CAAWF,WAAW,CAACG,QAAZ,KAAyB,CAApC,CAAZ;AACA,MAAIC,eAAe,GAAGH,IAAI,CAACC,KAAL,CAAWD,IAAI,CAACI,MAAL,KAAgB,GAA3B,CAAtB;;AACA,MAAIC,SAAS,GAAGC,OAAO,CAAC,iBAAD,CAAvB;;AACA,MAAIC,SAAS,GAAG,EAAhB;AACA,MAAIC,UAAU,GAAG,EAAjB;;AACA,OAAK,IAAIlD,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG+C,SAAS,CAACI,QAAV,CAAmBjD,MAAvC,EAA+CF,CAAC,EAAhD,EAAoD;AAClD,QAAI+C,SAAS,CAACI,QAAV,CAAmBnD,CAAnB,EAAsBoD,SAAtB,KAAoC,OAAxC,EAAiD;AAC/CH,MAAAA,SAAS,GAAGA,SAAS,CAACI,MAAV,CAAiBN,SAAS,CAACI,QAAV,CAAmBnD,CAAnB,CAAjB,CAAZ;AACD,KAFD,MAEO;AACLkD,MAAAA,UAAU,GAAGA,UAAU,CAACG,MAAX,CAAkBN,SAAS,CAACI,QAAV,CAAmBnD,CAAnB,CAAlB,CAAb;AACD;AACF;;AACD,MAAI6C,eAAe,GAAG,EAAtB,EAA0B;AACxB,WAAOI,SAAS,CAAC1D,KAAD,CAAT,CAAiB+D,OAAxB;AACD,GAFD,MAEO;AACL,QAAIC,aAAa,GAAGb,IAAI,CAACC,KAAL,CAAWD,IAAI,CAACI,MAAL,KAAgBI,UAAU,CAAChD,MAAtC,CAApB;AACA,WAAOgD,UAAU,CAACK,aAAD,CAAV,CAA0BD,OAAjC;AACD;AACF;;AACD,SAASE,KAAT,GAAiB;AAAA;;AACf,QAAM,CAAClE,IAAD,EAAOmE,OAAP,IAAkBvE,QAAQ,CAAC,IAAI8C,IAAJ,EAAD,CAAhC;;AAEA,WAAS0B,YAAT,GAAwB;AACtBD,IAAAA,OAAO,CAAC,IAAIzB,IAAJ,EAAD,CAAP;AACD;;AACD7C,EAAAA,SAAS,CAAC,MAAM;AACd,UAAMwE,OAAO,GAAGC,WAAW,CAACF,YAAD,EAAe,IAAf,CAA3B;AACA,WAAO,SAASG,OAAT,GAAmB;AACxBC,MAAAA,aAAa,CAACH,OAAD,CAAb;AACD,KAFD;AAGD,GALQ,EAKN,EALM,CAAT;AAOA,MAAII,IAAI,GAAGzE,IAAI,CAACsD,QAAL,EAAX;AACA,MAAIoB,OAAO,GAAG1E,IAAI,CAAC2E,UAAL,EAAd,CAde,CAef;;AACA,MAAIC,MAAM,GAAG,IAAb;AACAA,EAAAA,MAAM,GAAIH,IAAI,IAAI,EAAT,GAAe,IAAf,GAAsB,IAA/B;AACAA,EAAAA,IAAI,GAAIA,IAAI,KAAK,CAAV,GAAe,EAAf,GAAsBA,IAAI,GAAG,EAAR,GAAeA,IAAI,GAAG,EAAtB,GAA4BA,IAAxD;AACAC,EAAAA,OAAO,GAAGzB,SAAS,CAACyB,OAAD,CAAnB,CAnBe,CAoBf;;AACA,MAAIG,IAAI,GAAGJ,IAAI,GAAG,GAAP,GAAaC,OAAb,GAAuB,GAAvB,GAA6BE,MAAxC;AAEA,sBACE;AAAI,IAAA,EAAE,EAAC,OAAP;AAAA,cAAgBC;AAAhB;AAAA;AAAA;AAAA;AAAA,UADF;AAID;;GA3BQX,K;;OAAAA,K;;AA4BT,SAAS1D,OAAT,GAAmB;AACjB,MAAIsE,YAAY,GAAGpB,OAAO,CAAC,aAAD,CAA1B;;AACA,SAAOoB,YAAP;AACD;;AACD,SAAStD,QAAT,GAAoB;AAClB,MAAIG,KAAK,GAAG+B,OAAO,CAAC,cAAD,CAAnB;;AACA,SAAO/B,KAAP;AACD;;AACD,SAASM,YAAT,GAAwB;AACtB,MAAID,SAAS,GAAG0B,OAAO,CAAC,kBAAD,CAAvB;;AACA,SAAO1B,SAAP;AACD;;AAED,SAAS7B,cAAT,CAAwB4E,CAAxB,EAA0BC,KAA1B,EAAiC;AAC/B,MAAIC,MAAM,GAAG,CAAb;AACA,MAAIC,KAAK,GAAG,KAAZ;AACA,MAAIC,GAAG,GAAGJ,CAAC,CAACK,OAAF,IAAaL,CAAC,CAACM,KAAzB;AACA,MAAIC,IAAI,GAAGN,KAAK,CAACO,UAAN,CAAiB,GAAjB,EAAsB,KAAtB,CAAX;AACA,MAAIC,MAAM,GAAGF,IAAI,CAACG,MAAL,CAAY,CAAZ,EAAeH,IAAI,CAACI,OAAL,CAAa,GAAb,IAAoB,CAAnC,KAAyCJ,IAAI,CAACG,MAAL,CAAY,CAAZ,CAAtD;AACA,MAAIE,OAAO,GAAGL,IAAI,CAACG,MAAL,CAAY,IAAID,MAAM,CAAC5E,MAAvB,CAAd;;AACA,MAAIuE,GAAG,IAAI,EAAX,EAAe;AAAE;AACbS,IAAAA,MAAM,CAACN,IAAD,CAAN;AACH;;AACD,MAAIH,GAAG,IAAI,CAAX,EAAc;AAAE;AACZJ,IAAAA,CAAC,CAACc,cAAF;AACAd,IAAAA,CAAC,CAACe,eAAF;;AACA,QAAIR,IAAI,CAAC,CAAD,CAAJ,KAAY,GAAhB,EAAqB;AACjB,cAAQE,MAAR;AACI,aAAK,GAAL;AACI,cAAIO,SAAS,GAAG,CAAC,eAAD,EAAkB,aAAlB,EAAiC,QAAjC,CAAhB;;AACA,cAAI,CAACJ,OAAD,IAAYT,KAAhB,EAAuB;AACnBA,YAAAA,KAAK,GAAG,IAAR;AACA,gBAAID,MAAM,GAAGc,SAAS,CAACnF,MAAV,GAAmB,CAAhC,EAAmCqE,MAAM,GAAG,CAAT;AACnC1C,YAAAA,QAAQ,CAACC,cAAT,CAAwB,UAAxB,EAAoCwC,KAApC,GAA4C,QAAQe,SAAS,CAACd,MAAM,EAAP,CAA7D;AACA;AACH;;AACD,eAAK,IAAIe,QAAT,IAAqBD,SAArB,EAAgC;AAC5B,gBAAIJ,OAAO,KAAKK,QAAQ,CAACP,MAAT,CAAgB,CAAhB,EAAmBE,OAAO,CAAC/E,MAA3B,CAAhB,EAAoD;AAChD2B,cAAAA,QAAQ,CAACC,cAAT,CAAwB,UAAxB,EAAoCwC,KAApC,GAA4C,QAAQgB,QAApD;AACA;AACH;AACJ;;AACD;AAfR;AAiBH;AACJ;;AACD,MAAGb,GAAG,IAAI,EAAV,EAAa;AAAE;AACjBc,IAAAA,WAAW,CAACX,IAAD,CAAX;AACG;;AACDL,EAAAA,MAAM,GAAG,CAAT;AACAC,EAAAA,KAAK,GAAG,KAAR;AACAe,EAAAA,WAAW,CAACX,IAAD,CAAX;AACD;;AAED,SAASW,WAAT,CAAqBX,IAArB,EAA2B;AACzB,MAAIE,MAAM,GAAGF,IAAI,CAACG,MAAL,CAAY,CAAZ,EAAeH,IAAI,CAACI,OAAL,CAAa,GAAb,IAAoB,CAAnC,KAAyCJ,IAAI,CAACG,MAAL,CAAY,CAAZ,CAAtD;;AACA,MAAIH,IAAI,CAAC,CAAD,CAAJ,KAAY,GAAhB,EAAqB;AACvB;AACU,YAAQE,MAAR;AACI,WAAK,IAAL;AACIjD,QAAAA,QAAQ,CAACC,cAAT,CAAwB,YAAxB,EAAsC0D,SAAtC,GAAkD,iBAAlD;AACA;;AAChB,WAAK,GAAL;AACI3D,QAAAA,QAAQ,CAACC,cAAT,CAAwB,YAAxB,EAAsC0D,SAAtC,GAAkD,qBAAlD;AACA;;AACJ,WAAK,IAAL;AACI3D,QAAAA,QAAQ,CAACC,cAAT,CAAwB,YAAxB,EAAsC0D,SAAtC,GAAkD,gBAAlD;AACA;;AACJ,WAAK,GAAL;AACI3D,QAAAA,QAAQ,CAACC,cAAT,CAAwB,YAAxB,EAAsC0D,SAAtC,GAAkD,aAAlD;AACA;;AACJ,WAAK,GAAL;AACI3D,QAAAA,QAAQ,CAACC,cAAT,CAAwB,YAAxB,EAAsC0D,SAAtC,GAAkD,mBAAlD;AACA;;AACJ,WAAK,GAAL;AACI3D,QAAAA,QAAQ,CAACC,cAAT,CAAwB,YAAxB,EAAsC0D,SAAtC,GAAkD,eAAlD;AACA;;AACJ,WAAK,GAAL;AACI3D,QAAAA,QAAQ,CAACC,cAAT,CAAwB,YAAxB,EAAsC0D,SAAtC,GAAkD,cAAlD;AACA;;AACJ,WAAK,IAAL;AACI3D,QAAAA,QAAQ,CAACC,cAAT,CAAwB,YAAxB,EAAsC0D,SAAtC,GAAkD,mBAAlD;AACA;;AACJ,WAAK,GAAL;AACI3D,QAAAA,QAAQ,CAACC,cAAT,CAAwB,YAAxB,EAAsC0D,SAAtC,GAAkD,gBAAlD;AACA;;AACJ,WAAK,IAAL;AACI3D,QAAAA,QAAQ,CAACC,cAAT,CAAwB,YAAxB,EAAsC0D,SAAtC,GAAkD,gBAAlD;AACA;;AACJ,WAAK,GAAL;AACI3D,QAAAA,QAAQ,CAACC,cAAT,CAAwB,YAAxB,EAAsC0D,SAAtC,GAAkD,cAAlD;AACA;;AACJ,WAAK,GAAL;AACI3D,QAAAA,QAAQ,CAACC,cAAT,CAAwB,YAAxB,EAAsC0D,SAAtC,GAAkD,gBAAlD;AACA;;AACJ,WAAK,GAAL;AACI3D,QAAAA,QAAQ,CAACC,cAAT,CAAwB,YAAxB,EAAsC0D,SAAtC,GAAkD,kBAAlD;AACA;;AACJ,WAAK,GAAL;AACI3D,QAAAA,QAAQ,CAACC,cAAT,CAAwB,YAAxB,EAAsC0D,SAAtC,GAAkD,aAAlD;AACA;;AACJ,WAAK,IAAL;AACI3D,QAAAA,QAAQ,CAACC,cAAT,CAAwB,YAAxB,EAAsC0D,SAAtC,GAAkD,wBAAlD;AACA;;AACJ;AACI3D,QAAAA,QAAQ,CAACC,cAAT,CAAwB,YAAxB,EAAsC0D,SAAtC,GAAkD,gBAAlD;AACA;AAhDI;AAkDT,GApDC,MAoDI;AACJ3D,IAAAA,QAAQ,CAACC,cAAT,CAAwB,YAAxB,EAAsC0D,SAAtC,GAAkD,eAAlD;AACC;AACF;;AAED,SAASN,MAAT,CAAgBN,IAAhB,EAAsB;AACpB,MAAIE,MAAM,GAAGF,IAAI,CAACG,MAAL,CAAY,CAAZ,EAAeH,IAAI,CAACI,OAAL,CAAa,GAAb,IAAoB,CAAnC,KAAyCJ,IAAI,CAACG,MAAL,CAAY,CAAZ,CAAtD;AACA,MAAIE,OAAO,GAAGL,IAAI,CAACG,MAAL,CAAY,IAAID,MAAM,CAAC5E,MAAvB,CAAd;;AACA,MAAI0E,IAAI,CAAC,CAAD,CAAJ,KAAY,GAAhB,EAAqB;AACjB,QAAIA,IAAI,CAACI,OAAL,CAAa,GAAb,IAAoB,CAAC,CAAzB,EAA4B;AACxB,cAAQF,MAAR;AACI,aAAK,IAAL;AACIW,UAAAA,MAAM,CAACC,QAAP,GAAkB,yCAAyCT,OAA3D;AACA;;AACJ,aAAK,GAAL;AACIQ,UAAAA,MAAM,CAACC,QAAP,GAAkB,+BAA+BT,OAAjD;AACA;;AACJ,aAAK,IAAL;AACIQ,UAAAA,MAAM,CAACC,QAAP,GAAkB,uCAAuCT,OAAzD;AACA;;AACJ,aAAK,GAAL;AACIQ,UAAAA,MAAM,CAACC,QAAP,GAAkB,iCAAiCT,OAAnD;AACA;;AACJ,aAAK,GAAL;AACIQ,UAAAA,MAAM,CAACC,QAAP,GAAkB,6CAA6CT,OAA/D;AACA;;AACJ,aAAK,GAAL;AACIQ,UAAAA,MAAM,CAACC,QAAP,GAAkB,qCAAqCT,OAAvD;AACA;;AACJ,aAAK,GAAL;AACIQ,UAAAA,MAAM,CAACC,QAAP,GAAkB,8BAA8BT,OAAhD;AACA;;AACJ,aAAK,IAAL;AACIQ,UAAAA,MAAM,CAACC,QAAP,GAAkB,qCAAqCT,OAAvD;AACA;;AACJ,aAAK,GAAL;AACIQ,UAAAA,MAAM,CAACC,QAAP,GAAkB,6CAA6CT,OAA/D;AACA;;AACJ,aAAK,GAAL;AACIQ,UAAAA,MAAM,CAACC,QAAP,GAAkB,mCAAmCT,OAArD;AACA;;AACJ,aAAK,IAAL;AACIQ,UAAAA,MAAM,CAACC,QAAP,GAAkB,0CAA0CT,OAA5D;AACA;;AACJ,aAAK,GAAL;AACIQ,UAAAA,MAAM,CAACC,QAAP,GAAkB,kDAAkDT,OAApE;AACA;;AACJ,aAAK,GAAL;AACIQ,UAAAA,MAAM,CAACC,QAAP,GAAkB,iDAAiDT,OAAnE;AACA;;AACJ,aAAK,GAAL;AACIQ,UAAAA,MAAM,CAACC,QAAP,GAAkB,iDAAiDT,OAAnE;AACA;;AACJ,aAAK,IAAL;AACIQ,UAAAA,MAAM,CAACC,QAAP,GAAkB,kDAAkDT,OAApE;AACA;AA7CR;AA+CH,KAhDD,MAgDO;AACH,UAAIH,MAAM,GAAGF,IAAI,CAACG,MAAL,CAAY,CAAZ,CAAb;;AACA,cAAQD,MAAR;AACI,aAAK,GAAL;AACIW,UAAAA,MAAM,CAACC,QAAP,GAAkB,4BAAlB;AACA;;AACJ,aAAK,GAAL;AACID,UAAAA,MAAM,CAACC,QAAP,GAAkB,yBAAlB;AACA;;AACJ,aAAK,GAAL;AACID,UAAAA,MAAM,CAACC,QAAP,GAAkB,oBAAlB;AACA;;AACJ,aAAK,GAAL;AACID,UAAAA,MAAM,CAACC,QAAP,GAAkB,0BAAlB;AACA;AAZR;AAcH;AACJ,GAlED,MAkEO,IAAIC,QAAQ,CAACf,IAAD,CAAZ,EAAoB;AACvB,QAAIgB,gBAAgB,CAAChB,IAAD,CAApB,EACIa,MAAM,CAACC,QAAP,GAAkBd,IAAlB,CADJ,KAGIa,MAAM,CAACC,QAAP,GAAkB,aAAad,IAA/B;AACP,GALM,MAKA;AACHa,IAAAA,MAAM,CAACC,QAAP,GAAkB,qCAAqCd,IAAvD;AACH;AACF,C,CAED;;;AACA,SAASe,QAAT,CAAkBE,GAAlB,EAAuB;AACrB,MAAIC,OAAO,GAAG,IAAIC,MAAJ,CAAW,sBAAsB;AAC3C,oDADqB,GACgC;AACrD,+BAFqB,GAEW;AAChC,mCAHqB,GAGe;AACpC,4BAJqB,GAIQ;AAC7B,sBALU,EAKY,GALZ,CAAd,CADqB,CAMW;;AAChC,SAAO,CAAC,CAACD,OAAO,CAACE,IAAR,CAAaH,GAAb,CAAT;AACD;;AAED,SAASD,gBAAT,CAA0BC,GAA1B,EAA+B;AAC7B,MAAIC,OAAO,GAAG,IAAIC,MAAJ,CAAW,uBAAX,EAAoC,GAApC,CAAd;AACA,SAAO,CAAC,CAACD,OAAO,CAACE,IAAR,CAAaH,GAAb,CAAT;AACD;;AAEDI,MAAM,CAACC,SAAP,CAAiBrB,UAAjB,GAA8B,UAASK,MAAT,EAAiBiB,WAAjB,EAA8B;AAC1D,MAAIC,MAAM,GAAG,IAAb;AACA,SAAOA,MAAM,CAACC,KAAP,CAAanB,MAAb,EAAqBoB,IAArB,CAA0BH,WAA1B,CAAP;AACD,CAHD","sourcesContent":["import React from 'react';\nimport { useState, useEffect } from 'react';\nimport ReactDOM from 'react-dom';\n//import { unstable_createPortal } from 'react-dom';\nimport './index.css';\n\nfunction Homepage() {\n return (\n \n \n \n
\n \n \n
\n \n \n \n
\n \n \n
\n \n \n
\n \n );\n}\n\nfunction Search() {\n return (\n \n )\n}\n\nfunction Header(props) {\n return (\n \n );\n}\n\nfunction Applications() {\n let appList = getApps();\n var items = [];\n for (var i = 0; i < appList.apps.length; i++) {\n items.push(\n \n );\n }\n return (\n \n Applications
\n \n {items}\n
\n \n );\n}\n\nfunction App(props) {\n let classNameType = props.NSFW + \"-content\";\n let hrefUrl = \"https://\" + props.url;\n let iconName = \"mdi-\" + props.icon;\n return (\n \n );\n}\n\nfunction Bookmarks() {\n let bookmarkList = getLinks();\n var items = [];\n for (var i = 0; i < bookmarkList.bookmarks.length; i++) {\n items.push(\n \n );\n }\n return (\n \n Bookmarks
\n \n {items}\n
\n \n );\n}\n\nfunction LinkGroups(props) {\n var items = [];\n for (var i = 0; i < props.links.length; i++) {\n items.push(\n \n );\n }\n return (\n \n
{props.category}
\n {items}\n \n );\n}\n\nfunction LinkItem(props) {\n return (\n \n );\n}\n\nfunction ModalMenu() {\n var providers = getProviders();\n var items = [];\n for (var i = 0; i < providers.providers.length; i++) {\n items.push(\n \n );\n }\n return (\n \n \n \n\n
Color themes
\n\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n\n\n
Search options
\n
\n \n \n \n | Website | \n Prefix | \n
\n {items}\n \n
\n \n\n \n
\n \n );\n}\n\nfunction Provider(props) {\n return (\n \n | {props.provider.name} | \n {props.provider.prefix} | \n
\n );\n}\n\nfunction ModalInit() {\n return (\n \n );\n}\n\nReactDOM.render(\n ,\n document.getElementById('root')\n);\n\n//Functions below this line are for calculating data for\n//other functions\n\nfunction date() {\n let currentDate = new Date();\n let dateOptions = {\n weekday: \"long\",\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\"\n };\n let date = currentDate.toLocaleDateString(\"en-GB\", dateOptions);\n return date;\n}\nfunction fixDigits(k) {\n if (k < 10) {\n return \"0\" + k;\n }\n else {\n return k;\n }\n}\nfunction greet() {\n let currentTime = new Date();\n let greet = Math.floor(currentTime.getHours() / 6);\n let easterEggChance = Math.floor(Math.random() * 100);\n let greetings = require('./messages.json');\n let timeBased = [];\n let easterEggs = [];\n for (var i = 0; i < greetings.messages.length; i++) {\n if (greetings.messages[i].easteregg === \"FALSE\") {\n timeBased = timeBased.concat(greetings.messages[i]);\n } else {\n easterEggs = easterEggs.concat(greetings.messages[i]);\n }\n }\n if (easterEggChance > 10) {\n return timeBased[greet].message;\n } else {\n let easterEggText = Math.floor(Math.random() * easterEggs.length);\n return easterEggs[easterEggText].message;\n }\n}\nfunction Clock() {\n const [date, setDate] = useState(new Date());\n\n function refreshClock() {\n setDate(new Date());\n }\n useEffect(() => {\n const timerId = setInterval(refreshClock, 1000);\n return function cleanup() {\n clearInterval(timerId);\n };\n }, []);\n\n var hour = date.getHours();\n var minutes = date.getMinutes();\n //var seconds = date.getSeconds();\n var midday = \"AM\";\n midday = (hour >= 12) ? \"PM\" : \"AM\";\n hour = (hour === 0) ? 12 : ((hour > 12) ? (hour - 12) : hour);\n minutes = fixDigits(minutes);\n //seconds = fixDigits(seconds);\n let time = hour + \":\" + minutes + \" \" + midday;\n\n return (\n {time}
\n\n );\n}\nfunction getApps() {\n let applications = require('./apps.json');\n return applications;\n}\nfunction getLinks() {\n let links = require('./links.json');\n return links;\n}\nfunction getProviders() {\n let providers = require('./providers.json');\n return providers;\n}\n\nfunction handleKeyPress(e,value) {\n var sindex = 0;\n var cycle = false;\n var key = e.keyCode || e.which;\n var text = value.replaceAll(\"+\", \"%2B\");\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n if (key == 13) { // Search functions\n search(text);\n }\n if (key == 9) { // Tab Completion Functions\n e.preventDefault();\n e.stopPropagation();\n if (text[0] === ';') {\n switch (option) {\n case 't':\n var streamers = ['admiralbahroo', 'moonmoon_ow', 'witwix'];\n if (!subtext || cycle) {\n cycle = true;\n if (sindex > streamers.length - 1) sindex = 0;\n document.getElementById(\"keywords\").value = ';t ' + streamers[sindex++];\n return;\n }\n for (var streamer of streamers) {\n if (subtext === streamer.substr(0, subtext.length)) {\n document.getElementById(\"keywords\").value = ';t ' + streamer;\n return;\n }\n }\n break;\n }\n }\n }\n if(key == 32){ //Space to go to search\nupdateLabel(text);\n }\n sindex = 0;\n cycle = false;\n updateLabel(text);\n}\n\nfunction updateLabel(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n if (text[0] === '/') {\n// if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n document.getElementById(\"searchType\").innerHTML = \"Allmusic search\";\n break;\n case \"d\":\n document.getElementById(\"searchType\").innerHTML = \"Duck Duck Go search\";\n break;\n case \"di\":\n document.getElementById(\"searchType\").innerHTML = \"Discogs search\";\n break;\n case \"i\":\n document.getElementById(\"searchType\").innerHTML = \"IMDB search\";\n break;\n case \"m\":\n document.getElementById(\"searchType\").innerHTML = \"TheMovieDB search\";\n break;\n case \"r\":\n document.getElementById(\"searchType\").innerHTML = \"Reddit search\";\n break;\n case \"q\":\n document.getElementById(\"searchType\").innerHTML = \"Qwant search\";\n break;\n case \"so\":\n document.getElementById(\"searchType\").innerHTML = \"Soundcloud search\";\n break;\n case \"s\":\n document.getElementById(\"searchType\").innerHTML = \"Spotify search\";\n break;\n case \"tv\":\n document.getElementById(\"searchType\").innerHTML = \"TheTVDB search\";\n break;\n case \"t\":\n document.getElementById(\"searchType\").innerHTML = \"Trakt search\";\n break;\n case \"y\":\n document.getElementById(\"searchType\").innerHTML = \"YouTube search\";\n break;\n case \"w\":\n document.getElementById(\"searchType\").innerHTML = \"Wikipedia search\";\n break;\n case \"p\":\n document.getElementById(\"searchType\").innerHTML = \"Plex search\";\n break;\n case \"rt\":\n document.getElementById(\"searchType\").innerHTML = \"Rotten Tomatoes search\";\n break;\n default:\n document.getElementById(\"searchType\").innerHTML = \"Invalid search\";\n break;\n }\n}else {\n document.getElementById(\"searchType\").innerHTML = \"Google search\";\n }\n}\n\nfunction search(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n if (text[0] === '/') {\n if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n window.location = \"https://www.allmusic.com/search/all/\" + subtext;\n break;\n case \"d\":\n window.location = \"https://duckduckgo.com/?q=\" + subtext;\n break;\n case \"di\":\n window.location = \"https://www.discogs.com/search/?q=\" + subtext;\n break;\n case \"i\":\n window.location = \"https://www.imdb.com/find?q=\" + subtext;\n break;\n case \"m\":\n window.location = \"https://www.themoviedb.org/search?query=\" + subtext;\n break;\n case \"r\":\n window.location = \"https://www.reddit.com/search?q=\" + subtext;\n break;\n case \"q\":\n window.location = \"https://www.qwant.com/?q=\" + subtext;\n break;\n case \"so\":\n window.location = \"https://soundcloud.com/search?q=\" + subtext;\n break;\n case \"s\":\n window.location = \"https://open.spotify.com/search/results/\" + subtext;\n break;\n case \"t\":\n window.location = \"https://trakt.tv/search?query=\" + subtext;\n break;\n case \"tv\":\n window.location = \"https://www.thetvdb.com/search?query=\" + subtext;\n break;\n case \"y\":\n window.location = \"https://www.youtube.com/results?search_query=\" + subtext;\n break;\n case \"w\":\n window.location = \"https://en.wikipedia.org/w/index.php?search=\" + subtext;\n break;\n case \"p\":\n window.location = \"https://app.plex.tv/desktop/#!/search?query=\" + subtext;\n break;\n case \"rt\":\n window.location = \"https://www.rottentomatoes.com/search?search=\" + subtext;\n break;\n }\n } else {\n var option = text.substr(1);\n switch (option) {\n case \"d\":\n window.location = \"https://www.duckduckgo.com\";\n break;\n case \"y\":\n window.location = \"https://www.youtube.com\";\n break;\n case \"r\":\n window.location = \"https://reddit.com\";\n break;\n case \"s\":\n window.location = \"https://open.spotify.com\";\n break;\n }\n }\n } else if (validURL(text)) {\n if (containsProtocol(text))\n window.location = text;\n else\n window.location = \"https://\" + text;\n } else {\n window.location = \"https://www.google.com/search?q=\" + text;\n }\n}\n\n// Source: https://stackoverflow.com/questions/5717093/check-if-a-javascript-string-is-a-url\nfunction validURL(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/)?' + // protocol\n '((([a-z\\\\d]([a-z\\\\d-]*[a-z\\\\d])*)\\\\.)+[a-z]{2,}|' + // domain name\n '((\\\\d{1,3}\\\\.){3}\\\\d{1,3}))' + // OR ip (v4) address\n '(\\\\:\\\\d+)?(\\\\/[-a-z\\\\d%_.~+]*)*' + // port and path\n '(\\\\?[;&a-z\\\\d%_.~+=-]*)?' + // query string\n '(\\\\#[-a-z\\\\d_]*)?$', 'i'); // fragment locator\n return !!pattern.test(str);\n}\n\nfunction containsProtocol(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/){1}.*', 'i');\n return !!pattern.test(str);\n}\n\nString.prototype.replaceAll = function(search, replacement) {\n var target = this;\n return target.split(search).join(replacement);\n};"]},"metadata":{},"sourceType":"module"}
\ No newline at end of file
diff --git a/node_modules/.cache/babel-loader/3bcacfcd30280260b0b20c80b361466c.json b/node_modules/.cache/babel-loader/3bcacfcd30280260b0b20c80b361466c.json
new file mode 100644
index 00000000..bc0d632d
--- /dev/null
+++ b/node_modules/.cache/babel-loader/3bcacfcd30280260b0b20c80b361466c.json
@@ -0,0 +1 @@
+{"ast":null,"code":"var _jsxFileName = \"/home/seanedmunds/dev/home-page/src/index.js\",\n _s = $RefreshSig$();\n\nimport React from 'react';\nimport { useState, useEffect } from 'react';\nimport ReactDOM from 'react-dom'; //import { unstable_createPortal } from 'react-dom';\n\nimport './index.css';\nimport { jsxDEV as _jsxDEV } from \"react/jsx-dev-runtime\";\n\nfunction Homepage() {\n return /*#__PURE__*/_jsxDEV(\"main\", {\n id: \"container\",\n className: \"fade\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Search, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 11,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 10,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Header, {\n date: date(),\n greet: greet()\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 14,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 13,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Applications, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 20,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 19,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Bookmarks, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 23,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 22,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(ModalMenu, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 26,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 25,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(ModalInit, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 29,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 28,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 9,\n columnNumber: 5\n }, this);\n}\n\n_c = Homepage;\n\nfunction Search() {\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"search\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"abackground\",\n children: [/*#__PURE__*/_jsxDEV(\"input\", {\n name: \"keywords\",\n type: \"text\",\n className: \"keyword\",\n id: \"keywords\",\n size: \"50\",\n spellCheck: \"true\",\n placeholder: \"\"\n /*onFocus={this.placeholder = \"\"} onBlur={this.placeholder = ''}*/\n ,\n autoComplete: \"off\",\n autoFocus: \"true\",\n onKeyUp: handleKeyPress\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 39,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n id: \"searchType\",\n className: \"Input-label\",\n children: \"Google search\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 40,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 38,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 37,\n columnNumber: 5\n }, this);\n}\n\n_c2 = Search;\n\nfunction Header(props) {\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"header\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n id: \"greeting_block\",\n children: /*#__PURE__*/_jsxDEV(\"h1\", {\n id: \"header_greet\",\n children: props.greet\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 50,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 49,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"date_block\",\n children: [/*#__PURE__*/_jsxDEV(\"h2\", {\n id: \"header_date\",\n children: props.date\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 53,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(Clock, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 54,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 52,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 48,\n columnNumber: 5\n }, this);\n}\n\n_c3 = Header;\n\nfunction Applications() {\n let appList = getApps();\n var items = [];\n\n for (var i = 0; i < appList.apps.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(App, {\n name: appList.apps[i].name,\n url: appList.apps[i].url,\n icon: appList.apps[i].icon,\n NSFW: appList.apps[i].NSFW\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 65,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"apps\",\n children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n children: \"Applications\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 76,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"apps_loop\",\n children: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 77,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 75,\n columnNumber: 5\n }, this);\n}\n\n_c4 = Applications;\n\nfunction App(props) {\n let classNameType = props.NSFW + \"-content\";\n let hrefUrl = \"https://\" + props.url;\n let iconName = \"mdi-\" + props.icon;\n return /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: hrefUrl,\n className: classNameType,\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_item\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_icon\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify icon\",\n \"data-icon\": iconName\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 93,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 92,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_text\",\n children: [/*#__PURE__*/_jsxDEV(\"span\", {\n id: \"app-name\",\n children: props.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 96,\n columnNumber: 13\n }, this), /*#__PURE__*/_jsxDEV(\"span\", {\n id: \"app-address\",\n children: props.url\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 97,\n columnNumber: 13\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 95,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 91,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 90,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 89,\n columnNumber: 5\n }, this);\n}\n\n_c5 = App;\n\nfunction Bookmarks() {\n let bookmarkList = getLinks();\n var items = [];\n\n for (var i = 0; i < bookmarkList.bookmarks.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(LinkGroups, {\n category: bookmarkList.bookmarks[i].category,\n links: bookmarkList.bookmarks[i].links\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 110,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"links\",\n children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n children: \"Bookmarks\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 119,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"links_loop\",\n children: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 120,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 118,\n columnNumber: 5\n }, this);\n}\n\n_c6 = Bookmarks;\n\nfunction LinkGroups(props) {\n var items = [];\n\n for (var i = 0; i < props.links.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(LinkItem, {\n link: props.links[i]\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 131,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"links_item\",\n children: [/*#__PURE__*/_jsxDEV(\"h4\", {\n children: props.category\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 139,\n columnNumber: 7\n }, this), items]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 138,\n columnNumber: 5\n }, this);\n}\n\n_c7 = LinkGroups;\n\nfunction LinkItem(props) {\n return /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: props.link.url,\n className: \"theme_color-border theme_text-select\",\n children: props.link.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 148,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 147,\n columnNumber: 5\n }, this);\n}\n\n_c8 = LinkItem;\n\nfunction ModalMenu() {\n var providers = getProviders();\n var items = [];\n\n for (var i = 0; i < providers.providers.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(Provider, {\n provider: providers.providers[i]\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 158,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"modal\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n children: [/*#__PURE__*/_jsxDEV(\"header\", {\n id: \"modal-header\",\n children: [/*#__PURE__*/_jsxDEV(\"h1\", {\n children: \"Options\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 168,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n href: \"#\",\n title: \"Close\",\n className: \"modal-close\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-close\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 170,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 169,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 167,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"h2\", {\n children: \"Color themes\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 174,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"modal-theme\",\n children: [/*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"blackboard\",\n className: \"theme-button theme-blackboard\",\n children: \"Blackboard\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 177,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"gazette\",\n className: \"theme-button theme-gazette\",\n children: \"Gazette\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 178,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"espresso\",\n className: \"theme-button theme-espresso\",\n children: \"Espresso\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 179,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cab\",\n className: \"theme-button theme-cab\",\n children: \"Cab\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 180,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cloud\",\n className: \"theme-button theme-cloud\",\n children: \"Cloud\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 181,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"lime\",\n className: \"theme-button theme-lime\",\n children: \"Lime\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 182,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"passion\",\n className: \"theme-button theme-passion\",\n children: \"Passion\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 183,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"blues\",\n className: \"theme-button theme-blues\",\n children: \"Blues\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 184,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"chalk\",\n className: \"theme-button theme-chalk\",\n children: \"Chalk\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 185,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"tron\",\n className: \"theme-button theme-tron\",\n children: \"Tron\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 186,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"paper\",\n className: \"theme-button theme-paper\",\n children: \"Paper\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 187,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cyberpunk\",\n className: \"theme-button theme-cyberpunk\",\n children: \"Cyberpunk\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 188,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"quadra\",\n className: \"theme-button theme-panam\",\n children: \"Quadra\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 189,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"panam\",\n className: \"theme-button theme-panam\",\n children: \"Panam\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 190,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"touch\",\n className: \"theme-button theme-touch\",\n children: \"Touch\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 191,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"peek\",\n className: \"theme-button theme-peek\",\n children: \"Peek\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 192,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 176,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"h2\", {\n children: \"Search options\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 196,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"providers\",\n children: /*#__PURE__*/_jsxDEV(\"table\", {\n children: /*#__PURE__*/_jsxDEV(\"tbody\", {\n children: [/*#__PURE__*/_jsxDEV(\"tr\", {\n children: [/*#__PURE__*/_jsxDEV(\"th\", {\n children: \"Website\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 201,\n columnNumber: 19\n }, this), /*#__PURE__*/_jsxDEV(\"th\", {\n children: \"Prefix\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 202,\n columnNumber: 19\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 200,\n columnNumber: 17\n }, this), items]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 199,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 198,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 197,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"header\", {\n id: \"modal-footer\",\n children: [/*#__PURE__*/_jsxDEV(\"a\", {\n href: \"https://github.com/jeroenpardon/\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-github-box\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 210,\n columnNumber: 54\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 210,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n href: \"https://materialdesignicons.com/\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-material-design\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 211,\n columnNumber: 54\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 211,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"sneaky\",\n children: [/*#__PURE__*/_jsxDEV(\"input\", {\n type: \"checkbox\",\n id: \"contenttype\",\n onChange: \"nsfw(this)\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 212,\n columnNumber: 35\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n for: \"contenttype\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-domino-mask\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 213,\n columnNumber: 36\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 213,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 212,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 209,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 166,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 165,\n columnNumber: 5\n }, this);\n}\n\n_c9 = ModalMenu;\n\nfunction Provider(props) {\n return /*#__PURE__*/_jsxDEV(\"tr\", {\n children: [/*#__PURE__*/_jsxDEV(\"td\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: props.provider.url,\n children: props.provider.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 223,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 223,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"td\", {\n children: props.provider.prefix\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 224,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 222,\n columnNumber: 5\n }, this);\n}\n\n_c10 = Provider;\n\nfunction ModalInit() {\n return /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"modal_init\",\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n className: \"btn\",\n href: \"#modal\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify icon\",\n \"data-icon\": \"mdi-xbox-controller-menu\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 233,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 232,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 231,\n columnNumber: 5\n }, this);\n}\n\n_c11 = ModalInit;\nReactDOM.render( /*#__PURE__*/_jsxDEV(Homepage, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 240,\n columnNumber: 3\n}, this), document.getElementById('root')); //Functions below this line are for calculating data for\n//other functions\n\nfunction date() {\n let currentDate = new Date();\n let dateOptions = {\n weekday: \"long\",\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\"\n };\n let date = currentDate.toLocaleDateString(\"en-GB\", dateOptions);\n return date;\n}\n\nfunction fixDigits(k) {\n if (k < 10) {\n return \"0\" + k;\n } else {\n return k;\n }\n}\n\nfunction greet() {\n let currentTime = new Date();\n let greet = Math.floor(currentTime.getHours() / 6);\n let easterEggChance = Math.floor(Math.random() * 100);\n\n let greetings = require('./messages.json');\n\n let timeBased = [];\n let easterEggs = [];\n\n for (var i = 0; i < greetings.messages.length; i++) {\n if (greetings.messages[i].easteregg === \"FALSE\") {\n timeBased = timeBased.concat(greetings.messages[i]);\n } else {\n easterEggs = easterEggs.concat(greetings.messages[i]);\n }\n }\n\n if (easterEggChance > 10) {\n return timeBased[greet].message;\n } else {\n let easterEggText = Math.floor(Math.random() * easterEggs.length);\n return easterEggs[easterEggText].message;\n }\n}\n\nfunction Clock() {\n _s();\n\n const [date, setDate] = useState(new Date());\n\n function refreshClock() {\n setDate(new Date());\n }\n\n useEffect(() => {\n const timerId = setInterval(refreshClock, 1000);\n return function cleanup() {\n clearInterval(timerId);\n };\n }, []);\n var hour = date.getHours();\n var minutes = date.getMinutes(); //var seconds = date.getSeconds();\n\n var midday = \"AM\";\n midday = hour >= 12 ? \"PM\" : \"AM\";\n hour = hour === 0 ? 12 : hour > 12 ? hour - 12 : hour;\n minutes = fixDigits(minutes); //seconds = fixDigits(seconds);\n\n let time = hour + \":\" + minutes + \" \" + midday;\n return /*#__PURE__*/_jsxDEV(\"h2\", {\n id: \"clock\",\n children: time\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 311,\n columnNumber: 5\n }, this);\n}\n\n_s(Clock, \"Gqi45WOZhU2c0BLYX0HoJeiR0fk=\");\n\n_c12 = Clock;\n\nfunction getApps() {\n let applications = require('./apps.json');\n\n return applications;\n}\n\nfunction getLinks() {\n let links = require('./links.json');\n\n return links;\n}\n\nfunction getProviders() {\n let providers = require('./providers.json');\n\n return providers;\n}\n\nfunction handleKeyPress(e, value) {\n var sindex = 0;\n var cycle = false;\n var key = e.keyCode || e.which;\n var text = value.replaceAll(\"+\", \"%2B\");\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n\n if (key == 13) {\n // Search functions\n search(text);\n }\n\n if (key == 9) {\n // Tab Completion Functions\n e.preventDefault();\n e.stopPropagation();\n\n if (text[0] === ';') {\n switch (option) {\n case 't':\n var streamers = ['admiralbahroo', 'moonmoon_ow', 'witwix'];\n\n if (!subtext || cycle) {\n cycle = true;\n if (sindex > streamers.length - 1) sindex = 0;\n document.getElementById(\"keywords\").value = ';t ' + streamers[sindex++];\n return;\n }\n\n for (var streamer of streamers) {\n if (subtext === streamer.substr(0, subtext.length)) {\n document.getElementById(\"keywords\").value = ';t ' + streamer;\n return;\n }\n }\n\n break;\n }\n }\n }\n\n if (key == 32) {\n //Space to go to search\n updateLabel(text);\n }\n\n sindex = 0;\n cycle = false;\n updateLabel(text);\n}\n\nfunction updateLabel(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n\n if (text[0] === '/') {\n // if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n document.getElementById(\"searchType\").innerHTML = \"Allmusic search\";\n break;\n\n case \"d\":\n document.getElementById(\"searchType\").innerHTML = \"Duck Duck Go search\";\n break;\n\n case \"di\":\n document.getElementById(\"searchType\").innerHTML = \"Discogs search\";\n break;\n\n case \"i\":\n document.getElementById(\"searchType\").innerHTML = \"IMDB search\";\n break;\n\n case \"m\":\n document.getElementById(\"searchType\").innerHTML = \"TheMovieDB search\";\n break;\n\n case \"r\":\n document.getElementById(\"searchType\").innerHTML = \"Reddit search\";\n break;\n\n case \"q\":\n document.getElementById(\"searchType\").innerHTML = \"Qwant search\";\n break;\n\n case \"so\":\n document.getElementById(\"searchType\").innerHTML = \"Soundcloud search\";\n break;\n\n case \"s\":\n document.getElementById(\"searchType\").innerHTML = \"Spotify search\";\n break;\n\n case \"tv\":\n document.getElementById(\"searchType\").innerHTML = \"TheTVDB search\";\n break;\n\n case \"t\":\n document.getElementById(\"searchType\").innerHTML = \"Trakt search\";\n break;\n\n case \"y\":\n document.getElementById(\"searchType\").innerHTML = \"YouTube search\";\n break;\n\n case \"w\":\n document.getElementById(\"searchType\").innerHTML = \"Wikipedia search\";\n break;\n\n case \"p\":\n document.getElementById(\"searchType\").innerHTML = \"Plex search\";\n break;\n\n case \"rt\":\n document.getElementById(\"searchType\").innerHTML = \"Rotten Tomatoes search\";\n break;\n\n default:\n document.getElementById(\"searchType\").innerHTML = \"Invalid search\";\n break;\n }\n } else {\n document.getElementById(\"searchType\").innerHTML = \"Google search\";\n }\n}\n\nfunction search(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n\n if (text[0] === '/') {\n if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n window.location = \"https://www.allmusic.com/search/all/\" + subtext;\n break;\n\n case \"d\":\n window.location = \"https://duckduckgo.com/?q=\" + subtext;\n break;\n\n case \"di\":\n window.location = \"https://www.discogs.com/search/?q=\" + subtext;\n break;\n\n case \"i\":\n window.location = \"https://www.imdb.com/find?q=\" + subtext;\n break;\n\n case \"m\":\n window.location = \"https://www.themoviedb.org/search?query=\" + subtext;\n break;\n\n case \"r\":\n window.location = \"https://www.reddit.com/search?q=\" + subtext;\n break;\n\n case \"q\":\n window.location = \"https://www.qwant.com/?q=\" + subtext;\n break;\n\n case \"so\":\n window.location = \"https://soundcloud.com/search?q=\" + subtext;\n break;\n\n case \"s\":\n window.location = \"https://open.spotify.com/search/results/\" + subtext;\n break;\n\n case \"t\":\n window.location = \"https://trakt.tv/search?query=\" + subtext;\n break;\n\n case \"tv\":\n window.location = \"https://www.thetvdb.com/search?query=\" + subtext;\n break;\n\n case \"y\":\n window.location = \"https://www.youtube.com/results?search_query=\" + subtext;\n break;\n\n case \"w\":\n window.location = \"https://en.wikipedia.org/w/index.php?search=\" + subtext;\n break;\n\n case \"p\":\n window.location = \"https://app.plex.tv/desktop/#!/search?query=\" + subtext;\n break;\n\n case \"rt\":\n window.location = \"https://www.rottentomatoes.com/search?search=\" + subtext;\n break;\n }\n } else {\n var option = text.substr(1);\n\n switch (option) {\n case \"d\":\n window.location = \"https://www.duckduckgo.com\";\n break;\n\n case \"y\":\n window.location = \"https://www.youtube.com\";\n break;\n\n case \"r\":\n window.location = \"https://reddit.com\";\n break;\n\n case \"s\":\n window.location = \"https://open.spotify.com\";\n break;\n }\n }\n } else if (validURL(text)) {\n if (containsProtocol(text)) window.location = text;else window.location = \"https://\" + text;\n } else {\n window.location = \"https://www.google.com/search?q=\" + text;\n }\n} // Source: https://stackoverflow.com/questions/5717093/check-if-a-javascript-string-is-a-url\n\n\nfunction validURL(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/)?' + // protocol\n '((([a-z\\\\d]([a-z\\\\d-]*[a-z\\\\d])*)\\\\.)+[a-z]{2,}|' + // domain name\n '((\\\\d{1,3}\\\\.){3}\\\\d{1,3}))' + // OR ip (v4) address\n '(\\\\:\\\\d+)?(\\\\/[-a-z\\\\d%_.~+]*)*' + // port and path\n '(\\\\?[;&a-z\\\\d%_.~+=-]*)?' + // query string\n '(\\\\#[-a-z\\\\d_]*)?$', 'i'); // fragment locator\n\n return !!pattern.test(str);\n}\n\nfunction containsProtocol(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/){1}.*', 'i');\n return !!pattern.test(str);\n}\n\nString.prototype.replaceAll = function (search, replacement) {\n var target = this;\n return target.split(search).join(replacement);\n};\n\nvar _c, _c2, _c3, _c4, _c5, _c6, _c7, _c8, _c9, _c10, _c11, _c12;\n\n$RefreshReg$(_c, \"Homepage\");\n$RefreshReg$(_c2, \"Search\");\n$RefreshReg$(_c3, \"Header\");\n$RefreshReg$(_c4, \"Applications\");\n$RefreshReg$(_c5, \"App\");\n$RefreshReg$(_c6, \"Bookmarks\");\n$RefreshReg$(_c7, \"LinkGroups\");\n$RefreshReg$(_c8, \"LinkItem\");\n$RefreshReg$(_c9, \"ModalMenu\");\n$RefreshReg$(_c10, \"Provider\");\n$RefreshReg$(_c11, \"ModalInit\");\n$RefreshReg$(_c12, \"Clock\");","map":{"version":3,"sources":["/home/seanedmunds/dev/home-page/src/index.js"],"names":["React","useState","useEffect","ReactDOM","Homepage","date","greet","Search","handleKeyPress","Header","props","Applications","appList","getApps","items","i","apps","length","push","name","url","icon","NSFW","App","classNameType","hrefUrl","iconName","Bookmarks","bookmarkList","getLinks","bookmarks","category","links","LinkGroups","LinkItem","link","ModalMenu","providers","getProviders","Provider","provider","prefix","ModalInit","render","document","getElementById","currentDate","Date","dateOptions","weekday","year","month","day","toLocaleDateString","fixDigits","k","currentTime","Math","floor","getHours","easterEggChance","random","greetings","require","timeBased","easterEggs","messages","easteregg","concat","message","easterEggText","Clock","setDate","refreshClock","timerId","setInterval","cleanup","clearInterval","hour","minutes","getMinutes","midday","time","applications","e","value","sindex","cycle","key","keyCode","which","text","replaceAll","option","substr","indexOf","subtext","search","preventDefault","stopPropagation","streamers","streamer","updateLabel","innerHTML","window","location","validURL","containsProtocol","str","pattern","RegExp","test","String","prototype","replacement","target","split","join"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { useState, useEffect } from 'react';\nimport ReactDOM from 'react-dom';\n//import { unstable_createPortal } from 'react-dom';\nimport './index.css';\n\nfunction Homepage() {\n return (\n \n \n \n
\n \n \n
\n \n \n \n
\n \n \n
\n \n \n
\n \n );\n}\n\nfunction Search() {\n return (\n \n )\n}\n\nfunction Header(props) {\n return (\n \n );\n}\n\nfunction Applications() {\n let appList = getApps();\n var items = [];\n for (var i = 0; i < appList.apps.length; i++) {\n items.push(\n \n );\n }\n return (\n \n Applications
\n \n {items}\n
\n \n );\n}\n\nfunction App(props) {\n let classNameType = props.NSFW + \"-content\";\n let hrefUrl = \"https://\" + props.url;\n let iconName = \"mdi-\" + props.icon;\n return (\n \n );\n}\n\nfunction Bookmarks() {\n let bookmarkList = getLinks();\n var items = [];\n for (var i = 0; i < bookmarkList.bookmarks.length; i++) {\n items.push(\n \n );\n }\n return (\n \n Bookmarks
\n \n {items}\n
\n \n );\n}\n\nfunction LinkGroups(props) {\n var items = [];\n for (var i = 0; i < props.links.length; i++) {\n items.push(\n \n );\n }\n return (\n \n
{props.category}
\n {items}\n \n );\n}\n\nfunction LinkItem(props) {\n return (\n \n );\n}\n\nfunction ModalMenu() {\n var providers = getProviders();\n var items = [];\n for (var i = 0; i < providers.providers.length; i++) {\n items.push(\n \n );\n }\n return (\n \n \n \n\n
Color themes
\n\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n\n\n
Search options
\n
\n \n \n \n | Website | \n Prefix | \n
\n {items}\n \n
\n \n\n \n
\n \n );\n}\n\nfunction Provider(props) {\n return (\n \n | {props.provider.name} | \n {props.provider.prefix} | \n
\n );\n}\n\nfunction ModalInit() {\n return (\n \n );\n}\n\nReactDOM.render(\n ,\n document.getElementById('root')\n);\n\n//Functions below this line are for calculating data for\n//other functions\n\nfunction date() {\n let currentDate = new Date();\n let dateOptions = {\n weekday: \"long\",\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\"\n };\n let date = currentDate.toLocaleDateString(\"en-GB\", dateOptions);\n return date;\n}\nfunction fixDigits(k) {\n if (k < 10) {\n return \"0\" + k;\n }\n else {\n return k;\n }\n}\nfunction greet() {\n let currentTime = new Date();\n let greet = Math.floor(currentTime.getHours() / 6);\n let easterEggChance = Math.floor(Math.random() * 100);\n let greetings = require('./messages.json');\n let timeBased = [];\n let easterEggs = [];\n for (var i = 0; i < greetings.messages.length; i++) {\n if (greetings.messages[i].easteregg === \"FALSE\") {\n timeBased = timeBased.concat(greetings.messages[i]);\n } else {\n easterEggs = easterEggs.concat(greetings.messages[i]);\n }\n }\n if (easterEggChance > 10) {\n return timeBased[greet].message;\n } else {\n let easterEggText = Math.floor(Math.random() * easterEggs.length);\n return easterEggs[easterEggText].message;\n }\n}\nfunction Clock() {\n const [date, setDate] = useState(new Date());\n\n function refreshClock() {\n setDate(new Date());\n }\n useEffect(() => {\n const timerId = setInterval(refreshClock, 1000);\n return function cleanup() {\n clearInterval(timerId);\n };\n }, []);\n\n var hour = date.getHours();\n var minutes = date.getMinutes();\n //var seconds = date.getSeconds();\n var midday = \"AM\";\n midday = (hour >= 12) ? \"PM\" : \"AM\";\n hour = (hour === 0) ? 12 : ((hour > 12) ? (hour - 12) : hour);\n minutes = fixDigits(minutes);\n //seconds = fixDigits(seconds);\n let time = hour + \":\" + minutes + \" \" + midday;\n\n return (\n {time}
\n\n );\n}\nfunction getApps() {\n let applications = require('./apps.json');\n return applications;\n}\nfunction getLinks() {\n let links = require('./links.json');\n return links;\n}\nfunction getProviders() {\n let providers = require('./providers.json');\n return providers;\n}\n\nfunction handleKeyPress(e,value) {\n var sindex = 0;\n var cycle = false;\n var key = e.keyCode || e.which;\n var text = value.replaceAll(\"+\", \"%2B\");\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n if (key == 13) { // Search functions\n search(text);\n }\n if (key == 9) { // Tab Completion Functions\n e.preventDefault();\n e.stopPropagation();\n if (text[0] === ';') {\n switch (option) {\n case 't':\n var streamers = ['admiralbahroo', 'moonmoon_ow', 'witwix'];\n if (!subtext || cycle) {\n cycle = true;\n if (sindex > streamers.length - 1) sindex = 0;\n document.getElementById(\"keywords\").value = ';t ' + streamers[sindex++];\n return;\n }\n for (var streamer of streamers) {\n if (subtext === streamer.substr(0, subtext.length)) {\n document.getElementById(\"keywords\").value = ';t ' + streamer;\n return;\n }\n }\n break;\n }\n }\n }\n if(key == 32){ //Space to go to search\nupdateLabel(text);\n }\n sindex = 0;\n cycle = false;\n updateLabel(text);\n}\n\nfunction updateLabel(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n if (text[0] === '/') {\n// if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n document.getElementById(\"searchType\").innerHTML = \"Allmusic search\";\n break;\n case \"d\":\n document.getElementById(\"searchType\").innerHTML = \"Duck Duck Go search\";\n break;\n case \"di\":\n document.getElementById(\"searchType\").innerHTML = \"Discogs search\";\n break;\n case \"i\":\n document.getElementById(\"searchType\").innerHTML = \"IMDB search\";\n break;\n case \"m\":\n document.getElementById(\"searchType\").innerHTML = \"TheMovieDB search\";\n break;\n case \"r\":\n document.getElementById(\"searchType\").innerHTML = \"Reddit search\";\n break;\n case \"q\":\n document.getElementById(\"searchType\").innerHTML = \"Qwant search\";\n break;\n case \"so\":\n document.getElementById(\"searchType\").innerHTML = \"Soundcloud search\";\n break;\n case \"s\":\n document.getElementById(\"searchType\").innerHTML = \"Spotify search\";\n break;\n case \"tv\":\n document.getElementById(\"searchType\").innerHTML = \"TheTVDB search\";\n break;\n case \"t\":\n document.getElementById(\"searchType\").innerHTML = \"Trakt search\";\n break;\n case \"y\":\n document.getElementById(\"searchType\").innerHTML = \"YouTube search\";\n break;\n case \"w\":\n document.getElementById(\"searchType\").innerHTML = \"Wikipedia search\";\n break;\n case \"p\":\n document.getElementById(\"searchType\").innerHTML = \"Plex search\";\n break;\n case \"rt\":\n document.getElementById(\"searchType\").innerHTML = \"Rotten Tomatoes search\";\n break;\n default:\n document.getElementById(\"searchType\").innerHTML = \"Invalid search\";\n break;\n }\n}else {\n document.getElementById(\"searchType\").innerHTML = \"Google search\";\n }\n}\n\nfunction search(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n if (text[0] === '/') {\n if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n window.location = \"https://www.allmusic.com/search/all/\" + subtext;\n break;\n case \"d\":\n window.location = \"https://duckduckgo.com/?q=\" + subtext;\n break;\n case \"di\":\n window.location = \"https://www.discogs.com/search/?q=\" + subtext;\n break;\n case \"i\":\n window.location = \"https://www.imdb.com/find?q=\" + subtext;\n break;\n case \"m\":\n window.location = \"https://www.themoviedb.org/search?query=\" + subtext;\n break;\n case \"r\":\n window.location = \"https://www.reddit.com/search?q=\" + subtext;\n break;\n case \"q\":\n window.location = \"https://www.qwant.com/?q=\" + subtext;\n break;\n case \"so\":\n window.location = \"https://soundcloud.com/search?q=\" + subtext;\n break;\n case \"s\":\n window.location = \"https://open.spotify.com/search/results/\" + subtext;\n break;\n case \"t\":\n window.location = \"https://trakt.tv/search?query=\" + subtext;\n break;\n case \"tv\":\n window.location = \"https://www.thetvdb.com/search?query=\" + subtext;\n break;\n case \"y\":\n window.location = \"https://www.youtube.com/results?search_query=\" + subtext;\n break;\n case \"w\":\n window.location = \"https://en.wikipedia.org/w/index.php?search=\" + subtext;\n break;\n case \"p\":\n window.location = \"https://app.plex.tv/desktop/#!/search?query=\" + subtext;\n break;\n case \"rt\":\n window.location = \"https://www.rottentomatoes.com/search?search=\" + subtext;\n break;\n }\n } else {\n var option = text.substr(1);\n switch (option) {\n case \"d\":\n window.location = \"https://www.duckduckgo.com\";\n break;\n case \"y\":\n window.location = \"https://www.youtube.com\";\n break;\n case \"r\":\n window.location = \"https://reddit.com\";\n break;\n case \"s\":\n window.location = \"https://open.spotify.com\";\n break;\n }\n }\n } else if (validURL(text)) {\n if (containsProtocol(text))\n window.location = text;\n else\n window.location = \"https://\" + text;\n } else {\n window.location = \"https://www.google.com/search?q=\" + text;\n }\n}\n\n// Source: https://stackoverflow.com/questions/5717093/check-if-a-javascript-string-is-a-url\nfunction validURL(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/)?' + // protocol\n '((([a-z\\\\d]([a-z\\\\d-]*[a-z\\\\d])*)\\\\.)+[a-z]{2,}|' + // domain name\n '((\\\\d{1,3}\\\\.){3}\\\\d{1,3}))' + // OR ip (v4) address\n '(\\\\:\\\\d+)?(\\\\/[-a-z\\\\d%_.~+]*)*' + // port and path\n '(\\\\?[;&a-z\\\\d%_.~+=-]*)?' + // query string\n '(\\\\#[-a-z\\\\d_]*)?$', 'i'); // fragment locator\n return !!pattern.test(str);\n}\n\nfunction containsProtocol(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/){1}.*', 'i');\n return !!pattern.test(str);\n}\n\nString.prototype.replaceAll = function(search, replacement) {\n var target = this;\n return target.split(search).join(replacement);\n};"]},"metadata":{},"sourceType":"module"}
\ No newline at end of file
diff --git a/node_modules/.cache/babel-loader/3cb02ead812faf219536397ebc790d49.json b/node_modules/.cache/babel-loader/3cb02ead812faf219536397ebc790d49.json
new file mode 100644
index 00000000..5dc36d71
--- /dev/null
+++ b/node_modules/.cache/babel-loader/3cb02ead812faf219536397ebc790d49.json
@@ -0,0 +1 @@
+{"ast":null,"code":"var _jsxFileName = \"/home/seanedmunds/dev/home-page/src/index.js\",\n _s = $RefreshSig$();\n\nimport React from 'react';\nimport { useState, useEffect } from 'react';\nimport ReactDOM from 'react-dom';\nimport './index.css';\nimport { jsxDEV as _jsxDEV } from \"react/jsx-dev-runtime\";\n\nconst setValueFromLocalStorage = property => {\n let value = localStorage.getItem(property);\n setValue(property, value);\n};\n\nconst setValue = (property, value) => {\n if (value) {\n document.documentElement.style.setProperty(`--${property}`, value);\n const input = document.querySelector(`#${property}`);\n\n if (input) {\n value = value.replace('px', '');\n input.value = value;\n }\n }\n};\n\nfunction Homepage() {\n setTheme();\n return /*#__PURE__*/_jsxDEV(\"main\", {\n id: \"container\",\n className: \"fade\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Search, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 28,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 27,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Header, {\n date: date(),\n greet: greet()\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 31,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 30,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Applications, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 37,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 36,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Bookmarks, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 40,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 39,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(ModalMenu, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 43,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 42,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(ModalInit, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 46,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 45,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 26,\n columnNumber: 5\n }, this);\n}\n\n_c = Homepage;\n\nfunction Search() {\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"search\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"abackground\",\n children: [/*#__PURE__*/_jsxDEV(\"input\", {\n name: \"keywords\",\n type: \"text\",\n className: \"keyword\",\n id: \"keywords\",\n size: \"50\",\n spellCheck: \"true\",\n placeholder: \"\"\n /*onFocus={this.placeholder = \"\"} onBlur={this.placeholder = ''}*/\n ,\n autoComplete: \"off\",\n autoFocus: true,\n onKeyUp: handleKeyPress\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 56,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n id: \"searchType\",\n className: \"Input-label\",\n children: \"Google search\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 57,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 55,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 54,\n columnNumber: 5\n }, this);\n}\n\n_c2 = Search;\n\nfunction Header(props) {\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"header\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n id: \"greeting_block\",\n children: /*#__PURE__*/_jsxDEV(\"h1\", {\n id: \"header_greet\",\n children: props.greet\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 67,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 66,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"date_block\",\n children: [/*#__PURE__*/_jsxDEV(\"h2\", {\n id: \"header_date\",\n children: props.date\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 70,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(Clock, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 71,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 69,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 65,\n columnNumber: 5\n }, this);\n}\n\n_c3 = Header;\n\nfunction Applications() {\n let appList = getApps();\n var items = [];\n\n for (var i = 0; i < appList.apps.length; i++) {\n var safe = appList.apps[i].NSFW;\n var NSFWEnabled = localStorage.getItem(\"contenttype\");\n\n if (safe === \"SAFE\") {\n items.push( /*#__PURE__*/_jsxDEV(App, {\n name: appList.apps[i].name,\n url: appList.apps[i].url,\n icon: appList.apps[i].icon,\n NSFW: appList.apps[i].NSFW\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 85,\n columnNumber: 9\n }, this));\n } else if (safe === \"NSFW\" && NSFWEnabled) {\n items.push( /*#__PURE__*/_jsxDEV(App, {\n name: appList.apps[i].name,\n url: appList.apps[i].url,\n icon: appList.apps[i].icon,\n NSFW: appList.apps[i].NSFW\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 95,\n columnNumber: 9\n }, this));\n } else {}\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"apps\",\n children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n children: \"Applications\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 110,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"apps_loop\",\n children: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 111,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 109,\n columnNumber: 5\n }, this);\n}\n\n_c4 = Applications;\n\nfunction App(props) {\n let classNameType = props.NSFW + \"-content\";\n let hrefUrl = \"https://\" + props.url;\n let iconName = \"mdi-\" + props.icon;\n return /*#__PURE__*/_jsxDEV(\"div\", {\n className: classNameType,\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: hrefUrl,\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_item\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_icon\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify icon\",\n \"data-icon\": iconName\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 128,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 127,\n columnNumber: 13\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_text\",\n children: [/*#__PURE__*/_jsxDEV(\"span\", {\n id: \"app-name\",\n children: props.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 131,\n columnNumber: 15\n }, this), /*#__PURE__*/_jsxDEV(\"span\", {\n id: \"app-address\",\n children: props.url\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 132,\n columnNumber: 15\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 130,\n columnNumber: 13\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 126,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 125,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 124,\n columnNumber: 7\n }, this);\n}\n\n_c5 = App;\n\nfunction Bookmarks() {\n let bookmarkList = getLinks();\n var items = [];\n\n for (var i = 0; i < bookmarkList.bookmarks.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(LinkGroups, {\n category: bookmarkList.bookmarks[i].category,\n links: bookmarkList.bookmarks[i].links\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 145,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"links\",\n children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n children: \"Bookmarks\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 154,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"links_loop\",\n children: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 155,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 153,\n columnNumber: 5\n }, this);\n}\n\n_c6 = Bookmarks;\n\nfunction LinkGroups(props) {\n var items = [];\n\n for (var i = 0; i < props.links.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(LinkItem, {\n link: props.links[i]\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 166,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"links_item\",\n children: [/*#__PURE__*/_jsxDEV(\"h4\", {\n children: props.category\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 174,\n columnNumber: 7\n }, this), items]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 173,\n columnNumber: 5\n }, this);\n}\n\n_c7 = LinkGroups;\n\nfunction LinkItem(props) {\n return /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: props.link.url,\n className: \"theme_color-border theme_text-select\",\n children: props.link.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 183,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 182,\n columnNumber: 5\n }, this);\n}\n\n_c8 = LinkItem;\n\nfunction ModalMenu() {\n var providers = getProviders();\n var items = [];\n var isChecked = localStorage.getItem(\"contenttype\");\n\n for (var i = 0; i < providers.providers.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(Provider, {\n provider: providers.providers[i]\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 194,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"modal\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n children: [/*#__PURE__*/_jsxDEV(\"header\", {\n id: \"modal-header\",\n children: [/*#__PURE__*/_jsxDEV(\"h1\", {\n children: \"Options\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 204,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n href: \"#\",\n title: \"Close\",\n className: \"modal-close\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-close\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 206,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 205,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 203,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"h2\", {\n children: \"Color themes\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 210,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"modal-theme\",\n children: [/*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"blackboard\",\n className: \"theme-button theme-blackboard\",\n onClick: updateTheme,\n children: \"Blackboard\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 213,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"gazette\",\n className: \"theme-button theme-gazette\",\n onClick: updateTheme,\n children: \"Gazette\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 214,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"espresso\",\n className: \"theme-button theme-espresso\",\n onClick: updateTheme,\n children: \"Espresso\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 215,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cab\",\n className: \"theme-button theme-cab\",\n onClick: updateTheme,\n children: \"Cab\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 216,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cloud\",\n className: \"theme-button theme-cloud\",\n onClick: updateTheme,\n children: \"Cloud\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 217,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"lime\",\n className: \"theme-button theme-lime\",\n onClick: updateTheme,\n children: \"Lime\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 218,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"passion\",\n className: \"theme-button theme-passion\",\n onClick: updateTheme,\n children: \"Passion\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 219,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"blues\",\n className: \"theme-button theme-blues\",\n onClick: updateTheme,\n children: \"Blues\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 220,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"chalk\",\n className: \"theme-button theme-chalk\",\n onClick: updateTheme,\n children: \"Chalk\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 221,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"tron\",\n className: \"theme-button theme-tron\",\n onClick: updateTheme,\n children: \"Tron\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 222,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"paper\",\n className: \"theme-button theme-paper\",\n onClick: updateTheme,\n children: \"Paper\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 223,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cyberpunk\",\n className: \"theme-button theme-cyberpunk\",\n onClick: updateTheme,\n children: \"Cyberpunk\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 224,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"quadra\",\n className: \"theme-button theme-panam\",\n onClick: updateTheme,\n children: \"Quadra\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 225,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"panam\",\n className: \"theme-button theme-panam\",\n onClick: updateTheme,\n children: \"Panam\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 226,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"touch\",\n className: \"theme-button theme-touch\",\n onClick: updateTheme,\n children: \"Touch\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 227,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"peek\",\n className: \"theme-button theme-peek\",\n onClick: updateTheme,\n children: \"Peek\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 228,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 212,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"h2\", {\n children: \"Search options\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 232,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"providers\",\n children: /*#__PURE__*/_jsxDEV(\"table\", {\n children: /*#__PURE__*/_jsxDEV(\"tbody\", {\n children: [/*#__PURE__*/_jsxDEV(\"tr\", {\n children: [/*#__PURE__*/_jsxDEV(\"th\", {\n children: \"Website\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 237,\n columnNumber: 19\n }, this), /*#__PURE__*/_jsxDEV(\"th\", {\n children: \"Prefix\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 238,\n columnNumber: 19\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 236,\n columnNumber: 17\n }, this), items]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 235,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 234,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 233,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"header\", {\n id: \"modal-footer\",\n children: [/*#__PURE__*/_jsxDEV(\"a\", {\n href: \"https://github.com/jeroenpardon/\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-github-box\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 246,\n columnNumber: 54\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 246,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n href: \"https://materialdesignicons.com/\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-material-design\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 247,\n columnNumber: 54\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 247,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(HideButton, {\n checked: isChecked\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 248,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 245,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 202,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 201,\n columnNumber: 5\n }, this);\n}\n\n_c9 = ModalMenu;\n\nfunction HideButton(props) {\n return /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"sneaky\",\n children: [/*#__PURE__*/_jsxDEV(\"input\", {\n type: \"checkbox\",\n id: \"contenttype\",\n onClick: udpateDisplayedItems,\n defaultChecked: !props.checked\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 260,\n columnNumber: 29\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n for: \"contenttype\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-domino-mask\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 261,\n columnNumber: 30\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 261,\n columnNumber: 5\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 260,\n columnNumber: 5\n }, this);\n}\n\n_c10 = HideButton;\n\nfunction Provider(props) {\n return /*#__PURE__*/_jsxDEV(\"tr\", {\n children: [/*#__PURE__*/_jsxDEV(\"td\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: props.provider.url,\n children: props.provider.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 268,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 268,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"td\", {\n children: props.provider.prefix\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 269,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 267,\n columnNumber: 5\n }, this);\n}\n\n_c11 = Provider;\n\nfunction ModalInit() {\n setDisplayedItems();\n return /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"modal_init\",\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n className: \"btn\",\n href: \"#modal\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify icon\",\n \"data-icon\": \"mdi-xbox-controller-menu\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 279,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 278,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 277,\n columnNumber: 5\n }, this);\n}\n\n_c12 = ModalInit;\nReactDOM.render( /*#__PURE__*/_jsxDEV(Homepage, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 286,\n columnNumber: 3\n}, this), document.getElementById('root')); //Functions below this line are for calculating data for\n//other functions\n\nfunction date() {\n let currentDate = new Date();\n let dateOptions = {\n weekday: \"long\",\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\"\n };\n let date = currentDate.toLocaleDateString(\"en-GB\", dateOptions);\n return date;\n}\n\nfunction fixDigits(k) {\n if (k < 10) {\n return \"0\" + k;\n } else {\n return k;\n }\n}\n\nfunction greet() {\n let currentTime = new Date();\n let greet = Math.floor(currentTime.getHours() / 6);\n let easterEggChance = Math.floor(Math.random() * 100);\n\n let greetings = require('./messages.json');\n\n let timeBased = [];\n let easterEggs = [];\n\n for (var i = 0; i < greetings.messages.length; i++) {\n if (greetings.messages[i].easteregg === \"FALSE\") {\n timeBased = timeBased.concat(greetings.messages[i]);\n } else {\n easterEggs = easterEggs.concat(greetings.messages[i]);\n }\n }\n\n if (easterEggChance > 10) {\n return timeBased[greet].message;\n } else {\n let easterEggText = Math.floor(Math.random() * easterEggs.length);\n return easterEggs[easterEggText].message;\n }\n}\n\nfunction Clock() {\n _s();\n\n const [date, setDate] = useState(new Date());\n\n function refreshClock() {\n setDate(new Date());\n }\n\n useEffect(() => {\n const timerId = setInterval(refreshClock, 1000);\n return function cleanup() {\n clearInterval(timerId);\n };\n }, []);\n var hour = date.getHours();\n var minutes = date.getMinutes(); //var seconds = date.getSeconds();\n\n var midday = \"AM\";\n midday = hour >= 12 ? \"PM\" : \"AM\";\n hour = hour === 0 ? 12 : hour > 12 ? hour - 12 : hour;\n minutes = fixDigits(minutes); //seconds = fixDigits(seconds);\n\n let time = hour + \":\" + minutes + \" \" + midday;\n return /*#__PURE__*/_jsxDEV(\"h2\", {\n id: \"clock\",\n children: time\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 357,\n columnNumber: 5\n }, this);\n}\n\n_s(Clock, \"Gqi45WOZhU2c0BLYX0HoJeiR0fk=\");\n\n_c13 = Clock;\n\nfunction getApps() {\n let applications = require('./apps.json');\n\n return applications;\n}\n\nfunction getLinks() {\n let links = require('./links.json');\n\n return links;\n}\n\nfunction getProviders() {\n let providers = require('./providers.json');\n\n return providers;\n}\n\nfunction getThemes() {\n let themes = require('./themes.json');\n\n return themes;\n}\n\nfunction updateTheme(e) {\n var themes = getThemes();\n var themeName = e.target.innerHTML.toLowerCase();\n var index = themes.themes.findIndex(function (item, i) {\n return item.name === themeName;\n });\n localStorage.setItem(\"image-background\", themes.themes[index].imagebackground);\n localStorage.setItem(\"color-background\", themes.themes[index].colorbackground);\n localStorage.setItem(\"color-search-background\", themes.themes[index].colorserachbackground);\n localStorage.setItem(\"color-text-pri\", themes.themes[index].colortextpri);\n localStorage.setItem(\"color-text-acc\", themes.themes[index].colortextacc);\n localStorage.setItem(\"color-border\", themes.themes[index].colorborder); //document.documentElement.style.setProperty(prop, `var(--${themeName}${prop.substring(10)})`);\n\n setTheme();\n}\n\nfunction setTheme() {\n setValueFromLocalStorage('image-background');\n setValueFromLocalStorage('color-background');\n setValueFromLocalStorage('color-search-background');\n setValueFromLocalStorage('color-text-pri');\n setValueFromLocalStorage('color-text-acc');\n setValueFromLocalStorage('color-border');\n setValueFromLocalStorage('content-display');\n}\n\nfunction handleKeyPress(e) {\n var sindex = 0;\n var cycle = false;\n var key = e.keyCode || e.which;\n var text = e.target.value.replaceAll(\"+\", \"%2B\");\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n\n if (key == 13) {\n // Search functions\n search(text);\n }\n\n if (key == 9) {\n // Tab Completion Functions\n e.preventDefault();\n e.stopPropagation();\n\n if (text[0] === ';') {\n switch (option) {\n case 't':\n var streamers = ['admiralbahroo', 'moonmoon_ow', 'witwix'];\n\n if (!subtext || cycle) {\n cycle = true;\n if (sindex > streamers.length - 1) sindex = 0;\n document.getElementById(\"keywords\").value = ';t ' + streamers[sindex++];\n return;\n }\n\n for (var streamer of streamers) {\n if (subtext === streamer.substr(0, subtext.length)) {\n document.getElementById(\"keywords\").value = ';t ' + streamer;\n return;\n }\n }\n\n break;\n }\n }\n }\n\n if (key == 32) {\n //Space to go to search\n updateLabel(text);\n }\n\n sindex = 0;\n cycle = false;\n updateLabel(text);\n}\n\nfunction updateLabel(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n\n if (text[0] === '/') {\n // if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n document.getElementById(\"searchType\").innerHTML = \"Allmusic search\";\n break;\n\n case \"d\":\n document.getElementById(\"searchType\").innerHTML = \"Duck Duck Go search\";\n break;\n\n case \"di\":\n document.getElementById(\"searchType\").innerHTML = \"Discogs search\";\n break;\n\n case \"i\":\n document.getElementById(\"searchType\").innerHTML = \"IMDB search\";\n break;\n\n case \"m\":\n document.getElementById(\"searchType\").innerHTML = \"TheMovieDB search\";\n break;\n\n case \"r\":\n document.getElementById(\"searchType\").innerHTML = \"Reddit search\";\n break;\n\n case \"q\":\n document.getElementById(\"searchType\").innerHTML = \"Qwant search\";\n break;\n\n case \"so\":\n document.getElementById(\"searchType\").innerHTML = \"Soundcloud search\";\n break;\n\n case \"s\":\n document.getElementById(\"searchType\").innerHTML = \"Spotify search\";\n break;\n\n case \"tv\":\n document.getElementById(\"searchType\").innerHTML = \"TheTVDB search\";\n break;\n\n case \"t\":\n document.getElementById(\"searchType\").innerHTML = \"Trakt search\";\n break;\n\n case \"y\":\n document.getElementById(\"searchType\").innerHTML = \"YouTube search\";\n break;\n\n case \"w\":\n document.getElementById(\"searchType\").innerHTML = \"Wikipedia search\";\n break;\n\n case \"p\":\n document.getElementById(\"searchType\").innerHTML = \"Plex search\";\n break;\n\n case \"rt\":\n document.getElementById(\"searchType\").innerHTML = \"Rotten Tomatoes search\";\n break;\n\n default:\n document.getElementById(\"searchType\").innerHTML = \"Invalid search\";\n break;\n }\n } else {\n document.getElementById(\"searchType\").innerHTML = \"Google search\";\n }\n}\n\nfunction search(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n\n if (text[0] === '/') {\n if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n window.location = \"https://www.allmusic.com/search/all/\" + subtext;\n break;\n\n case \"d\":\n window.location = \"https://duckduckgo.com/?q=\" + subtext;\n break;\n\n case \"di\":\n window.location = \"https://www.discogs.com/search/?q=\" + subtext;\n break;\n\n case \"i\":\n window.location = \"https://www.imdb.com/find?q=\" + subtext;\n break;\n\n case \"m\":\n window.location = \"https://www.themoviedb.org/search?query=\" + subtext;\n break;\n\n case \"r\":\n window.location = \"https://www.reddit.com/search?q=\" + subtext;\n break;\n\n case \"q\":\n window.location = \"https://www.qwant.com/?q=\" + subtext;\n break;\n\n case \"so\":\n window.location = \"https://soundcloud.com/search?q=\" + subtext;\n break;\n\n case \"s\":\n window.location = \"https://open.spotify.com/search/results/\" + subtext;\n break;\n\n case \"t\":\n window.location = \"https://trakt.tv/search?query=\" + subtext;\n break;\n\n case \"tv\":\n window.location = \"https://www.thetvdb.com/search?query=\" + subtext;\n break;\n\n case \"y\":\n window.location = \"https://www.youtube.com/results?search_query=\" + subtext;\n break;\n\n case \"w\":\n window.location = \"https://en.wikipedia.org/w/index.php?search=\" + subtext;\n break;\n\n case \"p\":\n window.location = \"https://app.plex.tv/desktop/#!/search?query=\" + subtext;\n break;\n\n case \"rt\":\n window.location = \"https://www.rottentomatoes.com/search?search=\" + subtext;\n break;\n }\n } else {\n var option = text.substr(1);\n\n switch (option) {\n case \"d\":\n window.location = \"https://www.duckduckgo.com\";\n break;\n\n case \"y\":\n window.location = \"https://www.youtube.com\";\n break;\n\n case \"r\":\n window.location = \"https://reddit.com\";\n break;\n\n case \"s\":\n window.location = \"https://open.spotify.com\";\n break;\n }\n }\n } else if (validURL(text)) {\n if (containsProtocol(text)) window.location = text;else window.location = \"https://\" + text;\n } else {\n window.location = \"https://www.google.com/search?q=\" + text;\n }\n}\n\nfunction validURL(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/)?' + // protocol\n '((([a-z\\\\d]([a-z\\\\d-]*[a-z\\\\d])*)\\\\.)+[a-z]{2,}|' + // domain name\n '((\\\\d{1,3}\\\\.){3}\\\\d{1,3}))' + // OR ip (v4) address\n '(\\\\:\\\\d+)?(\\\\/[-a-z\\\\d%_.~+]*)*' + // port and path\n '(\\\\?[;&a-z\\\\d%_.~+=-]*)?' + // query string\n '(\\\\#[-a-z\\\\d_]*)?$', 'i'); // fragment locator\n\n return !!pattern.test(str);\n}\n\nfunction containsProtocol(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/){1}.*', 'i');\n return !!pattern.test(str);\n}\n\nString.prototype.replaceAll = function (search, replacement) {\n var target = this;\n return target.split(search).join(replacement);\n};\n\nfunction udpateDisplayedItems(e) {\n localStorage.setItem('contenttype', e.target.checked);\n\n if (e.target.checked) {\n localStorage.setItem('content-display', 'none');\n } else {\n localStorage.setItem('content-display', 'block');\n }\n\n setDisplayedItems();\n}\n\nfunction setDisplayedItems() {\n setValueFromLocalStorage('contenttype');\n setValueFromLocalStorage('content-display');\n}\n\nvar _c, _c2, _c3, _c4, _c5, _c6, _c7, _c8, _c9, _c10, _c11, _c12, _c13;\n\n$RefreshReg$(_c, \"Homepage\");\n$RefreshReg$(_c2, \"Search\");\n$RefreshReg$(_c3, \"Header\");\n$RefreshReg$(_c4, \"Applications\");\n$RefreshReg$(_c5, \"App\");\n$RefreshReg$(_c6, \"Bookmarks\");\n$RefreshReg$(_c7, \"LinkGroups\");\n$RefreshReg$(_c8, \"LinkItem\");\n$RefreshReg$(_c9, \"ModalMenu\");\n$RefreshReg$(_c10, \"HideButton\");\n$RefreshReg$(_c11, \"Provider\");\n$RefreshReg$(_c12, \"ModalInit\");\n$RefreshReg$(_c13, \"Clock\");","map":{"version":3,"sources":["/home/seanedmunds/dev/home-page/src/index.js"],"names":["React","useState","useEffect","ReactDOM","setValueFromLocalStorage","property","value","localStorage","getItem","setValue","document","documentElement","style","setProperty","input","querySelector","replace","Homepage","setTheme","date","greet","Search","handleKeyPress","Header","props","Applications","appList","getApps","items","i","apps","length","safe","NSFW","NSFWEnabled","push","name","url","icon","App","classNameType","hrefUrl","iconName","Bookmarks","bookmarkList","getLinks","bookmarks","category","links","LinkGroups","LinkItem","link","ModalMenu","providers","getProviders","isChecked","updateTheme","HideButton","udpateDisplayedItems","checked","Provider","provider","prefix","ModalInit","setDisplayedItems","render","getElementById","currentDate","Date","dateOptions","weekday","year","month","day","toLocaleDateString","fixDigits","k","currentTime","Math","floor","getHours","easterEggChance","random","greetings","require","timeBased","easterEggs","messages","easteregg","concat","message","easterEggText","Clock","setDate","refreshClock","timerId","setInterval","cleanup","clearInterval","hour","minutes","getMinutes","midday","time","applications","getThemes","themes","e","themeName","target","innerHTML","toLowerCase","index","findIndex","item","setItem","imagebackground","colorbackground","colorserachbackground","colortextpri","colortextacc","colorborder","sindex","cycle","key","keyCode","which","text","replaceAll","option","substr","indexOf","subtext","search","preventDefault","stopPropagation","streamers","streamer","updateLabel","window","location","validURL","containsProtocol","str","pattern","RegExp","test","String","prototype","replacement","split","join"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { useState, useEffect } from 'react';\nimport ReactDOM from 'react-dom';\nimport './index.css';\n\nconst setValueFromLocalStorage = property => {\n let value = localStorage.getItem(property);\n setValue(property, value);\n};\nconst setValue = (property, value) => {\n if (value) {\n document.documentElement.style.setProperty(`--${property}`, value);\n\n const input = document.querySelector(`#${property}`);\n if (input) {\n value = value.replace('px', '');\n input.value = value;\n }\n }\n};\n\nfunction Homepage() {\n setTheme();\n \n return (\n \n \n \n
\n \n \n
\n \n \n \n
\n \n \n
\n \n \n
\n \n );\n}\n\nfunction Search() {\n return (\n \n )\n}\n\nfunction Header(props) {\n return (\n \n );\n}\n\nfunction Applications() {\n let appList = getApps();\n var items = [];\n for (var i = 0; i < appList.apps.length; i++) {\n var safe = appList.apps[i].NSFW;\n var NSFWEnabled = localStorage.getItem(\"contenttype\");\n if (safe === \"SAFE\") {\n items.push(\n \n );\n } else if (safe === \"NSFW\" && NSFWEnabled) {\n items.push(\n \n );\n } else {\n \n }\n \n }\n return (\n \n Applications
\n \n {items}\n
\n \n );\n}\n\nfunction App(props) {\n \n let classNameType = props.NSFW + \"-content\";\n let hrefUrl = \"https://\" + props.url;\n let iconName = \"mdi-\" + props.icon;\n return (\n \n );\n}\n\nfunction Bookmarks() {\n let bookmarkList = getLinks();\n var items = [];\n for (var i = 0; i < bookmarkList.bookmarks.length; i++) {\n items.push(\n \n );\n }\n return (\n \n Bookmarks
\n \n {items}\n
\n \n );\n}\n\nfunction LinkGroups(props) {\n var items = [];\n for (var i = 0; i < props.links.length; i++) {\n items.push(\n \n );\n }\n return (\n \n
{props.category}
\n {items}\n \n );\n}\n\nfunction LinkItem(props) {\n return (\n \n );\n}\n\nfunction ModalMenu() {\n var providers = getProviders();\n var items = [];\n var isChecked = localStorage.getItem(\"contenttype\");\n for (var i = 0; i < providers.providers.length; i++) {\n items.push(\n \n );\n }\n return (\n \n \n \n\n
Color themes
\n\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n\n\n
Search options
\n
\n \n \n \n | Website | \n Prefix | \n
\n {items}\n \n
\n \n\n \n
\n \n );\n}\n\nfunction HideButton(props) {\n \n return (\n \n
\n );\n}\n\nfunction Provider(props) {\n return (\n \n | {props.provider.name} | \n {props.provider.prefix} | \n
\n );\n}\n\nfunction ModalInit() {\n setDisplayedItems();\n return (\n \n );\n}\n\nReactDOM.render(\n ,\n document.getElementById('root')\n);\n\n//Functions below this line are for calculating data for\n//other functions\n\nfunction date() {\n let currentDate = new Date();\n let dateOptions = {\n weekday: \"long\",\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\"\n };\n let date = currentDate.toLocaleDateString(\"en-GB\", dateOptions);\n return date;\n}\nfunction fixDigits(k) {\n if (k < 10) {\n return \"0\" + k;\n }\n else {\n return k;\n }\n}\nfunction greet() {\n let currentTime = new Date();\n let greet = Math.floor(currentTime.getHours() / 6);\n let easterEggChance = Math.floor(Math.random() * 100);\n let greetings = require('./messages.json');\n let timeBased = [];\n let easterEggs = [];\n for (var i = 0; i < greetings.messages.length; i++) {\n if (greetings.messages[i].easteregg === \"FALSE\") {\n timeBased = timeBased.concat(greetings.messages[i]);\n } else {\n easterEggs = easterEggs.concat(greetings.messages[i]);\n }\n }\n if (easterEggChance > 10) {\n return timeBased[greet].message;\n } else {\n let easterEggText = Math.floor(Math.random() * easterEggs.length);\n return easterEggs[easterEggText].message;\n }\n}\nfunction Clock() {\n const [date, setDate] = useState(new Date());\n\n function refreshClock() {\n setDate(new Date());\n }\n useEffect(() => {\n const timerId = setInterval(refreshClock, 1000);\n return function cleanup() {\n clearInterval(timerId);\n };\n }, []);\n\n var hour = date.getHours();\n var minutes = date.getMinutes();\n //var seconds = date.getSeconds();\n var midday = \"AM\";\n midday = (hour >= 12) ? \"PM\" : \"AM\";\n hour = (hour === 0) ? 12 : ((hour > 12) ? (hour - 12) : hour);\n minutes = fixDigits(minutes);\n //seconds = fixDigits(seconds);\n let time = hour + \":\" + minutes + \" \" + midday;\n\n return (\n {time}
\n\n );\n}\nfunction getApps() {\n let applications = require('./apps.json');\n return applications;\n}\nfunction getLinks() {\n let links = require('./links.json');\n return links;\n}\nfunction getProviders() {\n let providers = require('./providers.json');\n return providers;\n}\nfunction getThemes() {\n let themes = require('./themes.json');\n return themes;\n}\nfunction updateTheme(e) {\n var themes = getThemes();\n var themeName = e.target.innerHTML.toLowerCase();\n var index = themes.themes.findIndex(function(item, i){\n return item.name === themeName\n });\n localStorage.setItem(\"image-background\", themes.themes[index].imagebackground);\n localStorage.setItem(\"color-background\", themes.themes[index].colorbackground);\n localStorage.setItem(\"color-search-background\", themes.themes[index].colorserachbackground);\n localStorage.setItem(\"color-text-pri\",themes.themes[index].colortextpri);\n localStorage.setItem(\"color-text-acc\", themes.themes[index].colortextacc);\n localStorage.setItem(\"color-border\", themes.themes[index].colorborder);\n \n //document.documentElement.style.setProperty(prop, `var(--${themeName}${prop.substring(10)})`);\n setTheme();\n}\nfunction setTheme() {\n setValueFromLocalStorage('image-background');\n setValueFromLocalStorage('color-background');\n setValueFromLocalStorage('color-search-background');\n setValueFromLocalStorage('color-text-pri');\n setValueFromLocalStorage('color-text-acc');\n setValueFromLocalStorage('color-border');\n setValueFromLocalStorage('content-display');\n}\nfunction handleKeyPress(e) {\n var sindex = 0;\n var cycle = false;\n var key = e.keyCode || e.which;\n var text = e.target.value.replaceAll(\"+\", \"%2B\");\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n if (key == 13) { // Search functions\n search(text);\n }\n if (key == 9) { // Tab Completion Functions\n e.preventDefault();\n e.stopPropagation();\n if (text[0] === ';') {\n switch (option) {\n case 't':\n var streamers = ['admiralbahroo', 'moonmoon_ow', 'witwix'];\n if (!subtext || cycle) {\n cycle = true;\n if (sindex > streamers.length - 1) sindex = 0;\n document.getElementById(\"keywords\").value = ';t ' + streamers[sindex++];\n return;\n }\n for (var streamer of streamers) {\n if (subtext === streamer.substr(0, subtext.length)) {\n document.getElementById(\"keywords\").value = ';t ' + streamer;\n return;\n }\n }\n break;\n }\n }\n }\n if(key == 32){ //Space to go to search\nupdateLabel(text);\n }\n sindex = 0;\n cycle = false;\n updateLabel(text);\n}\nfunction updateLabel(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n if (text[0] === '/') {\n// if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n document.getElementById(\"searchType\").innerHTML = \"Allmusic search\";\n break;\n case \"d\":\n document.getElementById(\"searchType\").innerHTML = \"Duck Duck Go search\";\n break;\n case \"di\":\n document.getElementById(\"searchType\").innerHTML = \"Discogs search\";\n break;\n case \"i\":\n document.getElementById(\"searchType\").innerHTML = \"IMDB search\";\n break;\n case \"m\":\n document.getElementById(\"searchType\").innerHTML = \"TheMovieDB search\";\n break;\n case \"r\":\n document.getElementById(\"searchType\").innerHTML = \"Reddit search\";\n break;\n case \"q\":\n document.getElementById(\"searchType\").innerHTML = \"Qwant search\";\n break;\n case \"so\":\n document.getElementById(\"searchType\").innerHTML = \"Soundcloud search\";\n break;\n case \"s\":\n document.getElementById(\"searchType\").innerHTML = \"Spotify search\";\n break;\n case \"tv\":\n document.getElementById(\"searchType\").innerHTML = \"TheTVDB search\";\n break;\n case \"t\":\n document.getElementById(\"searchType\").innerHTML = \"Trakt search\";\n break;\n case \"y\":\n document.getElementById(\"searchType\").innerHTML = \"YouTube search\";\n break;\n case \"w\":\n document.getElementById(\"searchType\").innerHTML = \"Wikipedia search\";\n break;\n case \"p\":\n document.getElementById(\"searchType\").innerHTML = \"Plex search\";\n break;\n case \"rt\":\n document.getElementById(\"searchType\").innerHTML = \"Rotten Tomatoes search\";\n break;\n default:\n document.getElementById(\"searchType\").innerHTML = \"Invalid search\";\n break;\n }\n}else {\n document.getElementById(\"searchType\").innerHTML = \"Google search\";\n }\n}\nfunction search(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n if (text[0] === '/') {\n if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n window.location = \"https://www.allmusic.com/search/all/\" + subtext;\n break;\n case \"d\":\n window.location = \"https://duckduckgo.com/?q=\" + subtext;\n break;\n case \"di\":\n window.location = \"https://www.discogs.com/search/?q=\" + subtext;\n break;\n case \"i\":\n window.location = \"https://www.imdb.com/find?q=\" + subtext;\n break;\n case \"m\":\n window.location = \"https://www.themoviedb.org/search?query=\" + subtext;\n break;\n case \"r\":\n window.location = \"https://www.reddit.com/search?q=\" + subtext;\n break;\n case \"q\":\n window.location = \"https://www.qwant.com/?q=\" + subtext;\n break;\n case \"so\":\n window.location = \"https://soundcloud.com/search?q=\" + subtext;\n break;\n case \"s\":\n window.location = \"https://open.spotify.com/search/results/\" + subtext;\n break;\n case \"t\":\n window.location = \"https://trakt.tv/search?query=\" + subtext;\n break;\n case \"tv\":\n window.location = \"https://www.thetvdb.com/search?query=\" + subtext;\n break;\n case \"y\":\n window.location = \"https://www.youtube.com/results?search_query=\" + subtext;\n break;\n case \"w\":\n window.location = \"https://en.wikipedia.org/w/index.php?search=\" + subtext;\n break;\n case \"p\":\n window.location = \"https://app.plex.tv/desktop/#!/search?query=\" + subtext;\n break;\n case \"rt\":\n window.location = \"https://www.rottentomatoes.com/search?search=\" + subtext;\n break;\n }\n } else {\n var option = text.substr(1);\n switch (option) {\n case \"d\":\n window.location = \"https://www.duckduckgo.com\";\n break;\n case \"y\":\n window.location = \"https://www.youtube.com\";\n break;\n case \"r\":\n window.location = \"https://reddit.com\";\n break;\n case \"s\":\n window.location = \"https://open.spotify.com\";\n break;\n }\n }\n } else if (validURL(text)) {\n if (containsProtocol(text))\n window.location = text;\n else\n window.location = \"https://\" + text;\n } else {\n window.location = \"https://www.google.com/search?q=\" + text;\n }\n}\nfunction validURL(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/)?' + // protocol\n '((([a-z\\\\d]([a-z\\\\d-]*[a-z\\\\d])*)\\\\.)+[a-z]{2,}|' + // domain name\n '((\\\\d{1,3}\\\\.){3}\\\\d{1,3}))' + // OR ip (v4) address\n '(\\\\:\\\\d+)?(\\\\/[-a-z\\\\d%_.~+]*)*' + // port and path\n '(\\\\?[;&a-z\\\\d%_.~+=-]*)?' + // query string\n '(\\\\#[-a-z\\\\d_]*)?$', 'i'); // fragment locator\n return !!pattern.test(str);\n}\nfunction containsProtocol(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/){1}.*', 'i');\n return !!pattern.test(str);\n}\nString.prototype.replaceAll = function(search, replacement) {\n var target = this;\n return target.split(search).join(replacement);\n};\nfunction udpateDisplayedItems(e) {\n localStorage.setItem('contenttype', e.target.checked);\n if (e.target.checked) {\n localStorage.setItem('content-display', 'none');\n } else {\n localStorage.setItem('content-display', 'block');\n }\n setDisplayedItems();\n}\nfunction setDisplayedItems() {\n setValueFromLocalStorage('contenttype');\n setValueFromLocalStorage('content-display');\n}"]},"metadata":{},"sourceType":"module"}
\ No newline at end of file
diff --git a/node_modules/.cache/babel-loader/437f669234953c0a5fac42a959e50e10.json b/node_modules/.cache/babel-loader/437f669234953c0a5fac42a959e50e10.json
new file mode 100644
index 00000000..4d3aeb90
--- /dev/null
+++ b/node_modules/.cache/babel-loader/437f669234953c0a5fac42a959e50e10.json
@@ -0,0 +1 @@
+{"ast":null,"code":"var _jsxFileName = \"/home/seanedmunds/dev/home-page/src/index.js\",\n _s = $RefreshSig$();\n\nimport React from 'react';\nimport { useState, useEffect } from 'react';\nimport ReactDOM from 'react-dom'; //import { unstable_createPortal } from 'react-dom';\n\nimport './index.css';\nimport { jsxDEV as _jsxDEV } from \"react/jsx-dev-runtime\";\n\nfunction Homepage() {\n return /*#__PURE__*/_jsxDEV(\"main\", {\n id: \"container\",\n className: \"fade\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Search, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 11,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 10,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Header, {\n date: date(),\n greet: greet()\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 14,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 13,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Applications, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 20,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 19,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Bookmarks, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 23,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 22,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(ModalMenu, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 26,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 25,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(ModalInit, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 29,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 28,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 9,\n columnNumber: 5\n }, this);\n}\n\n_c = Homepage;\n\nfunction Search() {\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"search\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"abackground\",\n children: [/*#__PURE__*/_jsxDEV(\"input\", {\n name: \"keywords\",\n value: \"test\",\n type: \"text\",\n className: \"keyword\",\n id: \"keywords\",\n size: \"50\",\n spellCheck: \"true\",\n placeholder: \"\"\n /*onFocus={this.placeholder = \"\"} onBlur={this.placeholder = ''}*/\n ,\n autoComplete: \"off\",\n autoFocus: \"true\",\n onKeyUp: handleKeyPress(Event)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 39,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n id: \"searchType\",\n className: \"Input-label\",\n children: \"Google search\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 40,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 38,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 37,\n columnNumber: 5\n }, this);\n}\n\n_c2 = Search;\n\nfunction Header(props) {\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"header\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n id: \"greeting_block\",\n children: /*#__PURE__*/_jsxDEV(\"h1\", {\n id: \"header_greet\",\n children: props.greet\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 50,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 49,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"date_block\",\n children: [/*#__PURE__*/_jsxDEV(\"h2\", {\n id: \"header_date\",\n children: props.date\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 53,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(Clock, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 54,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 52,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 48,\n columnNumber: 5\n }, this);\n}\n\n_c3 = Header;\n\nfunction Applications() {\n let appList = getApps();\n var items = [];\n\n for (var i = 0; i < appList.apps.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(App, {\n name: appList.apps[i].name,\n url: appList.apps[i].url,\n icon: appList.apps[i].icon,\n NSFW: appList.apps[i].NSFW\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 65,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"apps\",\n children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n children: \"Applications\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 76,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"apps_loop\",\n children: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 77,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 75,\n columnNumber: 5\n }, this);\n}\n\n_c4 = Applications;\n\nfunction App(props) {\n let classNameType = props.NSFW + \"-content\";\n let hrefUrl = \"https://\" + props.url;\n let iconName = \"mdi-\" + props.icon;\n return /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: hrefUrl,\n className: classNameType,\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_item\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_icon\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify icon\",\n \"data-icon\": iconName\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 93,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 92,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_text\",\n children: [/*#__PURE__*/_jsxDEV(\"span\", {\n id: \"app-name\",\n children: props.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 96,\n columnNumber: 13\n }, this), /*#__PURE__*/_jsxDEV(\"span\", {\n id: \"app-address\",\n children: props.url\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 97,\n columnNumber: 13\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 95,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 91,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 90,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 89,\n columnNumber: 5\n }, this);\n}\n\n_c5 = App;\n\nfunction Bookmarks() {\n let bookmarkList = getLinks();\n var items = [];\n\n for (var i = 0; i < bookmarkList.bookmarks.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(LinkGroups, {\n category: bookmarkList.bookmarks[i].category,\n links: bookmarkList.bookmarks[i].links\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 110,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"links\",\n children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n children: \"Bookmarks\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 119,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"links_loop\",\n children: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 120,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 118,\n columnNumber: 5\n }, this);\n}\n\n_c6 = Bookmarks;\n\nfunction LinkGroups(props) {\n var items = [];\n\n for (var i = 0; i < props.links.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(LinkItem, {\n link: props.links[i]\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 131,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"links_item\",\n children: [/*#__PURE__*/_jsxDEV(\"h4\", {\n children: props.category\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 139,\n columnNumber: 7\n }, this), items]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 138,\n columnNumber: 5\n }, this);\n}\n\n_c7 = LinkGroups;\n\nfunction LinkItem(props) {\n return /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: props.link.url,\n className: \"theme_color-border theme_text-select\",\n children: props.link.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 148,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 147,\n columnNumber: 5\n }, this);\n}\n\n_c8 = LinkItem;\n\nfunction ModalMenu() {\n var providers = getProviders();\n var items = [];\n\n for (var i = 0; i < providers.providers.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(Provider, {\n provider: providers.providers[i]\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 158,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"modal\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n children: [/*#__PURE__*/_jsxDEV(\"header\", {\n id: \"modal-header\",\n children: [/*#__PURE__*/_jsxDEV(\"h1\", {\n children: \"Options\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 168,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n href: \"#\",\n title: \"Close\",\n className: \"modal-close\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-close\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 170,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 169,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 167,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"h2\", {\n children: \"Color themes\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 174,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"modal-theme\",\n children: [/*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"blackboard\",\n className: \"theme-button theme-blackboard\",\n children: \"Blackboard\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 177,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"gazette\",\n className: \"theme-button theme-gazette\",\n children: \"Gazette\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 178,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"espresso\",\n className: \"theme-button theme-espresso\",\n children: \"Espresso\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 179,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cab\",\n className: \"theme-button theme-cab\",\n children: \"Cab\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 180,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cloud\",\n className: \"theme-button theme-cloud\",\n children: \"Cloud\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 181,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"lime\",\n className: \"theme-button theme-lime\",\n children: \"Lime\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 182,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"passion\",\n className: \"theme-button theme-passion\",\n children: \"Passion\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 183,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"blues\",\n className: \"theme-button theme-blues\",\n children: \"Blues\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 184,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"chalk\",\n className: \"theme-button theme-chalk\",\n children: \"Chalk\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 185,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"tron\",\n className: \"theme-button theme-tron\",\n children: \"Tron\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 186,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"paper\",\n className: \"theme-button theme-paper\",\n children: \"Paper\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 187,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cyberpunk\",\n className: \"theme-button theme-cyberpunk\",\n children: \"Cyberpunk\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 188,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"quadra\",\n className: \"theme-button theme-panam\",\n children: \"Quadra\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 189,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"panam\",\n className: \"theme-button theme-panam\",\n children: \"Panam\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 190,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"touch\",\n className: \"theme-button theme-touch\",\n children: \"Touch\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 191,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"peek\",\n className: \"theme-button theme-peek\",\n children: \"Peek\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 192,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 176,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"h2\", {\n children: \"Search options\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 196,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"providers\",\n children: /*#__PURE__*/_jsxDEV(\"table\", {\n children: /*#__PURE__*/_jsxDEV(\"tbody\", {\n children: [/*#__PURE__*/_jsxDEV(\"tr\", {\n children: [/*#__PURE__*/_jsxDEV(\"th\", {\n children: \"Website\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 201,\n columnNumber: 19\n }, this), /*#__PURE__*/_jsxDEV(\"th\", {\n children: \"Prefix\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 202,\n columnNumber: 19\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 200,\n columnNumber: 17\n }, this), items]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 199,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 198,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 197,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"header\", {\n id: \"modal-footer\",\n children: [/*#__PURE__*/_jsxDEV(\"a\", {\n href: \"https://github.com/jeroenpardon/\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-github-box\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 210,\n columnNumber: 54\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 210,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n href: \"https://materialdesignicons.com/\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-material-design\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 211,\n columnNumber: 54\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 211,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"sneaky\",\n children: [/*#__PURE__*/_jsxDEV(\"input\", {\n type: \"checkbox\",\n id: \"contenttype\",\n onChange: \"nsfw(this)\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 212,\n columnNumber: 35\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n for: \"contenttype\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-domino-mask\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 213,\n columnNumber: 36\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 213,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 212,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 209,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 166,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 165,\n columnNumber: 5\n }, this);\n}\n\n_c9 = ModalMenu;\n\nfunction Provider(props) {\n return /*#__PURE__*/_jsxDEV(\"tr\", {\n children: [/*#__PURE__*/_jsxDEV(\"td\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: props.provider.url,\n children: props.provider.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 223,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 223,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"td\", {\n children: props.provider.prefix\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 224,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 222,\n columnNumber: 5\n }, this);\n}\n\n_c10 = Provider;\n\nfunction ModalInit() {\n return /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"modal_init\",\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n className: \"btn\",\n href: \"#modal\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify icon\",\n \"data-icon\": \"mdi-xbox-controller-menu\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 233,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 232,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 231,\n columnNumber: 5\n }, this);\n}\n\n_c11 = ModalInit;\nReactDOM.render( /*#__PURE__*/_jsxDEV(Homepage, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 240,\n columnNumber: 3\n}, this), document.getElementById('root')); //Functions below this line are for calculating data for\n//other functions\n\nfunction date() {\n let currentDate = new Date();\n let dateOptions = {\n weekday: \"long\",\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\"\n };\n let date = currentDate.toLocaleDateString(\"en-GB\", dateOptions);\n return date;\n}\n\nfunction fixDigits(k) {\n if (k < 10) {\n return \"0\" + k;\n } else {\n return k;\n }\n}\n\nfunction greet() {\n let currentTime = new Date();\n let greet = Math.floor(currentTime.getHours() / 6);\n let easterEggChance = Math.floor(Math.random() * 100);\n\n let greetings = require('./messages.json');\n\n let timeBased = [];\n let easterEggs = [];\n\n for (var i = 0; i < greetings.messages.length; i++) {\n if (greetings.messages[i].easteregg === \"FALSE\") {\n timeBased = timeBased.concat(greetings.messages[i]);\n } else {\n easterEggs = easterEggs.concat(greetings.messages[i]);\n }\n }\n\n if (easterEggChance > 10) {\n return timeBased[greet].message;\n } else {\n let easterEggText = Math.floor(Math.random() * easterEggs.length);\n return easterEggs[easterEggText].message;\n }\n}\n\nfunction Clock() {\n _s();\n\n const [date, setDate] = useState(new Date());\n\n function refreshClock() {\n setDate(new Date());\n }\n\n useEffect(() => {\n const timerId = setInterval(refreshClock, 1000);\n return function cleanup() {\n clearInterval(timerId);\n };\n }, []);\n var hour = date.getHours();\n var minutes = date.getMinutes(); //var seconds = date.getSeconds();\n\n var midday = \"AM\";\n midday = hour >= 12 ? \"PM\" : \"AM\";\n hour = hour === 0 ? 12 : hour > 12 ? hour - 12 : hour;\n minutes = fixDigits(minutes); //seconds = fixDigits(seconds);\n\n let time = hour + \":\" + minutes + \" \" + midday;\n return /*#__PURE__*/_jsxDEV(\"h2\", {\n id: \"clock\",\n children: time\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 311,\n columnNumber: 5\n }, this);\n}\n\n_s(Clock, \"Gqi45WOZhU2c0BLYX0HoJeiR0fk=\");\n\n_c12 = Clock;\n\nfunction getApps() {\n let applications = require('./apps.json');\n\n return applications;\n}\n\nfunction getLinks() {\n let links = require('./links.json');\n\n return links;\n}\n\nfunction getProviders() {\n let providers = require('./providers.json');\n\n return providers;\n}\n\nfunction handleKeyPress(e) {\n var sindex = 0;\n var cycle = false;\n var key = e.keyCode || e.which;\n var text = value.replaceAll(\"+\", \"%2B\");\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n\n if (key == 13) {\n // Search functions\n search(text);\n }\n\n if (key == 9) {\n // Tab Completion Functions\n e.preventDefault();\n e.stopPropagation();\n\n if (text[0] === ';') {\n switch (option) {\n case 't':\n var streamers = ['admiralbahroo', 'moonmoon_ow', 'witwix'];\n\n if (!subtext || cycle) {\n cycle = true;\n if (sindex > streamers.length - 1) sindex = 0;\n document.getElementById(\"keywords\").value = ';t ' + streamers[sindex++];\n return;\n }\n\n for (var streamer of streamers) {\n if (subtext === streamer.substr(0, subtext.length)) {\n document.getElementById(\"keywords\").value = ';t ' + streamer;\n return;\n }\n }\n\n break;\n }\n }\n }\n\n if (key == 32) {\n //Space to go to search\n updateLabel(text);\n }\n\n sindex = 0;\n cycle = false;\n updateLabel(text);\n}\n\nfunction updateLabel(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n\n if (text[0] === '/') {\n // if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n document.getElementById(\"searchType\").innerHTML = \"Allmusic search\";\n break;\n\n case \"d\":\n document.getElementById(\"searchType\").innerHTML = \"Duck Duck Go search\";\n break;\n\n case \"di\":\n document.getElementById(\"searchType\").innerHTML = \"Discogs search\";\n break;\n\n case \"i\":\n document.getElementById(\"searchType\").innerHTML = \"IMDB search\";\n break;\n\n case \"m\":\n document.getElementById(\"searchType\").innerHTML = \"TheMovieDB search\";\n break;\n\n case \"r\":\n document.getElementById(\"searchType\").innerHTML = \"Reddit search\";\n break;\n\n case \"q\":\n document.getElementById(\"searchType\").innerHTML = \"Qwant search\";\n break;\n\n case \"so\":\n document.getElementById(\"searchType\").innerHTML = \"Soundcloud search\";\n break;\n\n case \"s\":\n document.getElementById(\"searchType\").innerHTML = \"Spotify search\";\n break;\n\n case \"tv\":\n document.getElementById(\"searchType\").innerHTML = \"TheTVDB search\";\n break;\n\n case \"t\":\n document.getElementById(\"searchType\").innerHTML = \"Trakt search\";\n break;\n\n case \"y\":\n document.getElementById(\"searchType\").innerHTML = \"YouTube search\";\n break;\n\n case \"w\":\n document.getElementById(\"searchType\").innerHTML = \"Wikipedia search\";\n break;\n\n case \"p\":\n document.getElementById(\"searchType\").innerHTML = \"Plex search\";\n break;\n\n case \"rt\":\n document.getElementById(\"searchType\").innerHTML = \"Rotten Tomatoes search\";\n break;\n\n default:\n document.getElementById(\"searchType\").innerHTML = \"Invalid search\";\n break;\n }\n } else {\n document.getElementById(\"searchType\").innerHTML = \"Google search\";\n }\n}\n\nfunction search(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n\n if (text[0] === '/') {\n if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n window.location = \"https://www.allmusic.com/search/all/\" + subtext;\n break;\n\n case \"d\":\n window.location = \"https://duckduckgo.com/?q=\" + subtext;\n break;\n\n case \"di\":\n window.location = \"https://www.discogs.com/search/?q=\" + subtext;\n break;\n\n case \"i\":\n window.location = \"https://www.imdb.com/find?q=\" + subtext;\n break;\n\n case \"m\":\n window.location = \"https://www.themoviedb.org/search?query=\" + subtext;\n break;\n\n case \"r\":\n window.location = \"https://www.reddit.com/search?q=\" + subtext;\n break;\n\n case \"q\":\n window.location = \"https://www.qwant.com/?q=\" + subtext;\n break;\n\n case \"so\":\n window.location = \"https://soundcloud.com/search?q=\" + subtext;\n break;\n\n case \"s\":\n window.location = \"https://open.spotify.com/search/results/\" + subtext;\n break;\n\n case \"t\":\n window.location = \"https://trakt.tv/search?query=\" + subtext;\n break;\n\n case \"tv\":\n window.location = \"https://www.thetvdb.com/search?query=\" + subtext;\n break;\n\n case \"y\":\n window.location = \"https://www.youtube.com/results?search_query=\" + subtext;\n break;\n\n case \"w\":\n window.location = \"https://en.wikipedia.org/w/index.php?search=\" + subtext;\n break;\n\n case \"p\":\n window.location = \"https://app.plex.tv/desktop/#!/search?query=\" + subtext;\n break;\n\n case \"rt\":\n window.location = \"https://www.rottentomatoes.com/search?search=\" + subtext;\n break;\n }\n } else {\n var option = text.substr(1);\n\n switch (option) {\n case \"d\":\n window.location = \"https://www.duckduckgo.com\";\n break;\n\n case \"y\":\n window.location = \"https://www.youtube.com\";\n break;\n\n case \"r\":\n window.location = \"https://reddit.com\";\n break;\n\n case \"s\":\n window.location = \"https://open.spotify.com\";\n break;\n }\n }\n } else if (validURL(text)) {\n if (containsProtocol(text)) window.location = text;else window.location = \"https://\" + text;\n } else {\n window.location = \"https://www.google.com/search?q=\" + text;\n }\n} // Source: https://stackoverflow.com/questions/5717093/check-if-a-javascript-string-is-a-url\n\n\nfunction validURL(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/)?' + // protocol\n '((([a-z\\\\d]([a-z\\\\d-]*[a-z\\\\d])*)\\\\.)+[a-z]{2,}|' + // domain name\n '((\\\\d{1,3}\\\\.){3}\\\\d{1,3}))' + // OR ip (v4) address\n '(\\\\:\\\\d+)?(\\\\/[-a-z\\\\d%_.~+]*)*' + // port and path\n '(\\\\?[;&a-z\\\\d%_.~+=-]*)?' + // query string\n '(\\\\#[-a-z\\\\d_]*)?$', 'i'); // fragment locator\n\n return !!pattern.test(str);\n}\n\nfunction containsProtocol(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/){1}.*', 'i');\n return !!pattern.test(str);\n}\n\nString.prototype.replaceAll = function (search, replacement) {\n var target = this;\n return target.split(search).join(replacement);\n};\n\nvar _c, _c2, _c3, _c4, _c5, _c6, _c7, _c8, _c9, _c10, _c11, _c12;\n\n$RefreshReg$(_c, \"Homepage\");\n$RefreshReg$(_c2, \"Search\");\n$RefreshReg$(_c3, \"Header\");\n$RefreshReg$(_c4, \"Applications\");\n$RefreshReg$(_c5, \"App\");\n$RefreshReg$(_c6, \"Bookmarks\");\n$RefreshReg$(_c7, \"LinkGroups\");\n$RefreshReg$(_c8, \"LinkItem\");\n$RefreshReg$(_c9, \"ModalMenu\");\n$RefreshReg$(_c10, \"Provider\");\n$RefreshReg$(_c11, \"ModalInit\");\n$RefreshReg$(_c12, \"Clock\");","map":{"version":3,"sources":["/home/seanedmunds/dev/home-page/src/index.js"],"names":["React","useState","useEffect","ReactDOM","Homepage","date","greet","Search","handleKeyPress","Event","Header","props","Applications","appList","getApps","items","i","apps","length","push","name","url","icon","NSFW","App","classNameType","hrefUrl","iconName","Bookmarks","bookmarkList","getLinks","bookmarks","category","links","LinkGroups","LinkItem","link","ModalMenu","providers","getProviders","Provider","provider","prefix","ModalInit","render","document","getElementById","currentDate","Date","dateOptions","weekday","year","month","day","toLocaleDateString","fixDigits","k","currentTime","Math","floor","getHours","easterEggChance","random","greetings","require","timeBased","easterEggs","messages","easteregg","concat","message","easterEggText","Clock","setDate","refreshClock","timerId","setInterval","cleanup","clearInterval","hour","minutes","getMinutes","midday","time","applications","e","sindex","cycle","key","keyCode","which","text","value","replaceAll","option","substr","indexOf","subtext","search","preventDefault","stopPropagation","streamers","streamer","updateLabel","innerHTML","window","location","validURL","containsProtocol","str","pattern","RegExp","test","String","prototype","replacement","target","split","join"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { useState, useEffect } from 'react';\nimport ReactDOM from 'react-dom';\n//import { unstable_createPortal } from 'react-dom';\nimport './index.css';\n\nfunction Homepage() {\n return (\n \n \n \n
\n \n \n
\n \n \n \n
\n \n \n
\n \n \n
\n \n );\n}\n\nfunction Search() {\n return (\n \n )\n}\n\nfunction Header(props) {\n return (\n \n );\n}\n\nfunction Applications() {\n let appList = getApps();\n var items = [];\n for (var i = 0; i < appList.apps.length; i++) {\n items.push(\n \n );\n }\n return (\n \n Applications
\n \n {items}\n
\n \n );\n}\n\nfunction App(props) {\n let classNameType = props.NSFW + \"-content\";\n let hrefUrl = \"https://\" + props.url;\n let iconName = \"mdi-\" + props.icon;\n return (\n \n );\n}\n\nfunction Bookmarks() {\n let bookmarkList = getLinks();\n var items = [];\n for (var i = 0; i < bookmarkList.bookmarks.length; i++) {\n items.push(\n \n );\n }\n return (\n \n Bookmarks
\n \n {items}\n
\n \n );\n}\n\nfunction LinkGroups(props) {\n var items = [];\n for (var i = 0; i < props.links.length; i++) {\n items.push(\n \n );\n }\n return (\n \n
{props.category}
\n {items}\n \n );\n}\n\nfunction LinkItem(props) {\n return (\n \n );\n}\n\nfunction ModalMenu() {\n var providers = getProviders();\n var items = [];\n for (var i = 0; i < providers.providers.length; i++) {\n items.push(\n \n );\n }\n return (\n \n \n \n\n
Color themes
\n\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n\n\n
Search options
\n
\n \n \n \n | Website | \n Prefix | \n
\n {items}\n \n
\n \n\n \n
\n \n );\n}\n\nfunction Provider(props) {\n return (\n \n | {props.provider.name} | \n {props.provider.prefix} | \n
\n );\n}\n\nfunction ModalInit() {\n return (\n \n );\n}\n\nReactDOM.render(\n ,\n document.getElementById('root')\n);\n\n//Functions below this line are for calculating data for\n//other functions\n\nfunction date() {\n let currentDate = new Date();\n let dateOptions = {\n weekday: \"long\",\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\"\n };\n let date = currentDate.toLocaleDateString(\"en-GB\", dateOptions);\n return date;\n}\nfunction fixDigits(k) {\n if (k < 10) {\n return \"0\" + k;\n }\n else {\n return k;\n }\n}\nfunction greet() {\n let currentTime = new Date();\n let greet = Math.floor(currentTime.getHours() / 6);\n let easterEggChance = Math.floor(Math.random() * 100);\n let greetings = require('./messages.json');\n let timeBased = [];\n let easterEggs = [];\n for (var i = 0; i < greetings.messages.length; i++) {\n if (greetings.messages[i].easteregg === \"FALSE\") {\n timeBased = timeBased.concat(greetings.messages[i]);\n } else {\n easterEggs = easterEggs.concat(greetings.messages[i]);\n }\n }\n if (easterEggChance > 10) {\n return timeBased[greet].message;\n } else {\n let easterEggText = Math.floor(Math.random() * easterEggs.length);\n return easterEggs[easterEggText].message;\n }\n}\nfunction Clock() {\n const [date, setDate] = useState(new Date());\n\n function refreshClock() {\n setDate(new Date());\n }\n useEffect(() => {\n const timerId = setInterval(refreshClock, 1000);\n return function cleanup() {\n clearInterval(timerId);\n };\n }, []);\n\n var hour = date.getHours();\n var minutes = date.getMinutes();\n //var seconds = date.getSeconds();\n var midday = \"AM\";\n midday = (hour >= 12) ? \"PM\" : \"AM\";\n hour = (hour === 0) ? 12 : ((hour > 12) ? (hour - 12) : hour);\n minutes = fixDigits(minutes);\n //seconds = fixDigits(seconds);\n let time = hour + \":\" + minutes + \" \" + midday;\n\n return (\n {time}
\n\n );\n}\nfunction getApps() {\n let applications = require('./apps.json');\n return applications;\n}\nfunction getLinks() {\n let links = require('./links.json');\n return links;\n}\nfunction getProviders() {\n let providers = require('./providers.json');\n return providers;\n}\n\nfunction handleKeyPress(e) {\n var sindex = 0;\n var cycle = false;\n var key = e.keyCode || e.which;\n var text = value.replaceAll(\"+\", \"%2B\");\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n if (key == 13) { // Search functions\n search(text);\n }\n if (key == 9) { // Tab Completion Functions\n e.preventDefault();\n e.stopPropagation();\n if (text[0] === ';') {\n switch (option) {\n case 't':\n var streamers = ['admiralbahroo', 'moonmoon_ow', 'witwix'];\n if (!subtext || cycle) {\n cycle = true;\n if (sindex > streamers.length - 1) sindex = 0;\n document.getElementById(\"keywords\").value = ';t ' + streamers[sindex++];\n return;\n }\n for (var streamer of streamers) {\n if (subtext === streamer.substr(0, subtext.length)) {\n document.getElementById(\"keywords\").value = ';t ' + streamer;\n return;\n }\n }\n break;\n }\n }\n }\n if(key == 32){ //Space to go to search\nupdateLabel(text);\n }\n sindex = 0;\n cycle = false;\n updateLabel(text);\n}\n\nfunction updateLabel(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n if (text[0] === '/') {\n// if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n document.getElementById(\"searchType\").innerHTML = \"Allmusic search\";\n break;\n case \"d\":\n document.getElementById(\"searchType\").innerHTML = \"Duck Duck Go search\";\n break;\n case \"di\":\n document.getElementById(\"searchType\").innerHTML = \"Discogs search\";\n break;\n case \"i\":\n document.getElementById(\"searchType\").innerHTML = \"IMDB search\";\n break;\n case \"m\":\n document.getElementById(\"searchType\").innerHTML = \"TheMovieDB search\";\n break;\n case \"r\":\n document.getElementById(\"searchType\").innerHTML = \"Reddit search\";\n break;\n case \"q\":\n document.getElementById(\"searchType\").innerHTML = \"Qwant search\";\n break;\n case \"so\":\n document.getElementById(\"searchType\").innerHTML = \"Soundcloud search\";\n break;\n case \"s\":\n document.getElementById(\"searchType\").innerHTML = \"Spotify search\";\n break;\n case \"tv\":\n document.getElementById(\"searchType\").innerHTML = \"TheTVDB search\";\n break;\n case \"t\":\n document.getElementById(\"searchType\").innerHTML = \"Trakt search\";\n break;\n case \"y\":\n document.getElementById(\"searchType\").innerHTML = \"YouTube search\";\n break;\n case \"w\":\n document.getElementById(\"searchType\").innerHTML = \"Wikipedia search\";\n break;\n case \"p\":\n document.getElementById(\"searchType\").innerHTML = \"Plex search\";\n break;\n case \"rt\":\n document.getElementById(\"searchType\").innerHTML = \"Rotten Tomatoes search\";\n break;\n default:\n document.getElementById(\"searchType\").innerHTML = \"Invalid search\";\n break;\n }\n}else {\n document.getElementById(\"searchType\").innerHTML = \"Google search\";\n }\n}\n\nfunction search(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n if (text[0] === '/') {\n if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n window.location = \"https://www.allmusic.com/search/all/\" + subtext;\n break;\n case \"d\":\n window.location = \"https://duckduckgo.com/?q=\" + subtext;\n break;\n case \"di\":\n window.location = \"https://www.discogs.com/search/?q=\" + subtext;\n break;\n case \"i\":\n window.location = \"https://www.imdb.com/find?q=\" + subtext;\n break;\n case \"m\":\n window.location = \"https://www.themoviedb.org/search?query=\" + subtext;\n break;\n case \"r\":\n window.location = \"https://www.reddit.com/search?q=\" + subtext;\n break;\n case \"q\":\n window.location = \"https://www.qwant.com/?q=\" + subtext;\n break;\n case \"so\":\n window.location = \"https://soundcloud.com/search?q=\" + subtext;\n break;\n case \"s\":\n window.location = \"https://open.spotify.com/search/results/\" + subtext;\n break;\n case \"t\":\n window.location = \"https://trakt.tv/search?query=\" + subtext;\n break;\n case \"tv\":\n window.location = \"https://www.thetvdb.com/search?query=\" + subtext;\n break;\n case \"y\":\n window.location = \"https://www.youtube.com/results?search_query=\" + subtext;\n break;\n case \"w\":\n window.location = \"https://en.wikipedia.org/w/index.php?search=\" + subtext;\n break;\n case \"p\":\n window.location = \"https://app.plex.tv/desktop/#!/search?query=\" + subtext;\n break;\n case \"rt\":\n window.location = \"https://www.rottentomatoes.com/search?search=\" + subtext;\n break;\n }\n } else {\n var option = text.substr(1);\n switch (option) {\n case \"d\":\n window.location = \"https://www.duckduckgo.com\";\n break;\n case \"y\":\n window.location = \"https://www.youtube.com\";\n break;\n case \"r\":\n window.location = \"https://reddit.com\";\n break;\n case \"s\":\n window.location = \"https://open.spotify.com\";\n break;\n }\n }\n } else if (validURL(text)) {\n if (containsProtocol(text))\n window.location = text;\n else\n window.location = \"https://\" + text;\n } else {\n window.location = \"https://www.google.com/search?q=\" + text;\n }\n}\n\n// Source: https://stackoverflow.com/questions/5717093/check-if-a-javascript-string-is-a-url\nfunction validURL(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/)?' + // protocol\n '((([a-z\\\\d]([a-z\\\\d-]*[a-z\\\\d])*)\\\\.)+[a-z]{2,}|' + // domain name\n '((\\\\d{1,3}\\\\.){3}\\\\d{1,3}))' + // OR ip (v4) address\n '(\\\\:\\\\d+)?(\\\\/[-a-z\\\\d%_.~+]*)*' + // port and path\n '(\\\\?[;&a-z\\\\d%_.~+=-]*)?' + // query string\n '(\\\\#[-a-z\\\\d_]*)?$', 'i'); // fragment locator\n return !!pattern.test(str);\n}\n\nfunction containsProtocol(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/){1}.*', 'i');\n return !!pattern.test(str);\n}\n\nString.prototype.replaceAll = function(search, replacement) {\n var target = this;\n return target.split(search).join(replacement);\n};"]},"metadata":{},"sourceType":"module"}
\ No newline at end of file
diff --git a/node_modules/.cache/babel-loader/43b7d0800c5b343da09d2173f84d8a5b.json b/node_modules/.cache/babel-loader/43b7d0800c5b343da09d2173f84d8a5b.json
new file mode 100644
index 00000000..a7d03b3d
--- /dev/null
+++ b/node_modules/.cache/babel-loader/43b7d0800c5b343da09d2173f84d8a5b.json
@@ -0,0 +1 @@
+{"ast":null,"code":"var _jsxFileName = \"/home/seanedmunds/dev/home-page/src/index.js\",\n _s = $RefreshSig$();\n\nimport React from 'react';\nimport { useState, useEffect } from 'react';\nimport ReactDOM from 'react-dom';\nimport './index.css';\nimport { jsxDEV as _jsxDEV } from \"react/jsx-dev-runtime\";\n\nconst setValueFromLocalStorage = property => {\n let value = localStorage.getItem(property);\n setValue(property, value);\n};\n\nconst setValue = (property, value) => {\n if (value) {\n document.documentElement.style.setProperty(`--${property}`, value);\n const input = document.querySelector(`#${property}`);\n\n if (input) {\n value = value.replace('px', '');\n input.value = value;\n }\n }\n};\n\nfunction Homepage() {\n setTheme();\n return /*#__PURE__*/_jsxDEV(\"main\", {\n id: \"container\",\n className: \"fade\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Search, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 28,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 27,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Header, {\n date: date(),\n greet: greet()\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 31,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 30,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Applications, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 37,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 36,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Bookmarks, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 40,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 39,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(ModalMenu, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 43,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 42,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(ModalInit, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 46,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 45,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 26,\n columnNumber: 5\n }, this);\n}\n\n_c = Homepage;\n\nfunction Search() {\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"search\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"abackground\",\n children: [/*#__PURE__*/_jsxDEV(\"input\", {\n name: \"keywords\",\n type: \"text\",\n className: \"keyword\",\n id: \"keywords\",\n size: \"50\",\n spellCheck: \"true\",\n placeholder: \"\"\n /*onFocus={this.placeholder = \"\"} onBlur={this.placeholder = ''}*/\n ,\n autoComplete: \"off\",\n autoFocus: true,\n onKeyUp: handleKeyPress\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 56,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n id: \"searchType\",\n className: \"Input-label\",\n children: \"Google search\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 57,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 55,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 54,\n columnNumber: 5\n }, this);\n}\n\n_c2 = Search;\n\nfunction Header(props) {\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"header\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n id: \"greeting_block\",\n children: /*#__PURE__*/_jsxDEV(\"h1\", {\n id: \"header_greet\",\n children: props.greet\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 67,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 66,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"date_block\",\n children: [/*#__PURE__*/_jsxDEV(\"h2\", {\n id: \"header_date\",\n children: props.date\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 70,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(Clock, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 71,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 69,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 65,\n columnNumber: 5\n }, this);\n}\n\n_c3 = Header;\n\nfunction Applications() {\n let appList = getApps();\n var items = [];\n\n for (var i = 0; i < appList.apps.length; i++) {\n var safe = appList.apps[i].NSFW;\n var NSFWEnabled = localStorage.getItem(\"contenttype\");\n\n if (safe === \"SAFE\") {\n items.push( /*#__PURE__*/_jsxDEV(App, {\n name: appList.apps[i].name,\n url: appList.apps[i].url,\n icon: appList.apps[i].icon,\n NSFW: appList.apps[i].NSFW\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 85,\n columnNumber: 9\n }, this));\n } else if (safe === \"NSFW\" && NSFWEnabled) {\n items.push( /*#__PURE__*/_jsxDEV(App, {\n name: appList.apps[i].name,\n url: appList.apps[i].url,\n icon: appList.apps[i].icon,\n NSFW: appList.apps[i].NSFW\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 95,\n columnNumber: 9\n }, this));\n } else {}\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"apps\",\n children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n children: \"Applications\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 110,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"apps_loop\",\n children: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 111,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 109,\n columnNumber: 5\n }, this);\n}\n\n_c4 = Applications;\n\nfunction App(props) {\n let classNameType = props.NSFW + \"-content\";\n let hrefUrl = \"https://\" + props.url;\n let iconName = \"mdi-\" + props.icon;\n return /*#__PURE__*/_jsxDEV(\"div\", {\n className: classNameType,\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: hrefUrl,\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_item\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_icon\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify icon\",\n \"data-icon\": iconName\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 128,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 127,\n columnNumber: 13\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_text\",\n children: [/*#__PURE__*/_jsxDEV(\"span\", {\n id: \"app-name\",\n children: props.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 131,\n columnNumber: 15\n }, this), /*#__PURE__*/_jsxDEV(\"span\", {\n id: \"app-address\",\n children: props.url\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 132,\n columnNumber: 15\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 130,\n columnNumber: 13\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 126,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 125,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 124,\n columnNumber: 7\n }, this);\n}\n\n_c5 = App;\n\nfunction Bookmarks() {\n let bookmarkList = getLinks();\n var items = [];\n\n for (var i = 0; i < bookmarkList.bookmarks.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(LinkGroups, {\n category: bookmarkList.bookmarks[i].category,\n links: bookmarkList.bookmarks[i].links\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 145,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"links\",\n children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n children: \"Bookmarks\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 154,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"links_loop\",\n children: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 155,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 153,\n columnNumber: 5\n }, this);\n}\n\n_c6 = Bookmarks;\n\nfunction LinkGroups(props) {\n var items = [];\n\n for (var i = 0; i < props.links.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(LinkItem, {\n link: props.links[i]\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 166,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"links_item\",\n children: [/*#__PURE__*/_jsxDEV(\"h4\", {\n children: props.category\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 174,\n columnNumber: 7\n }, this), items]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 173,\n columnNumber: 5\n }, this);\n}\n\n_c7 = LinkGroups;\n\nfunction LinkItem(props) {\n return /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: props.link.url,\n className: \"theme_color-border theme_text-select\",\n children: props.link.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 183,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 182,\n columnNumber: 5\n }, this);\n}\n\n_c8 = LinkItem;\n\nfunction ModalMenu() {\n var providers = getProviders();\n var items = [];\n var isChecked = localStorage.getItem(\"contenttype\");\n\n for (var i = 0; i < providers.providers.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(Provider, {\n provider: providers.providers[i]\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 194,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"modal\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n children: [/*#__PURE__*/_jsxDEV(\"header\", {\n id: \"modal-header\",\n children: [/*#__PURE__*/_jsxDEV(\"h1\", {\n children: \"Options\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 204,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n href: \"#\",\n title: \"Close\",\n className: \"modal-close\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-close\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 206,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 205,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 203,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"h2\", {\n children: \"Color themes\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 210,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"modal-theme\",\n children: [/*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"blackboard\",\n className: \"theme-button theme-blackboard\",\n onClick: updateTheme,\n children: \"Blackboard\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 213,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"gazette\",\n className: \"theme-button theme-gazette\",\n onClick: updateTheme,\n children: \"Gazette\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 214,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"espresso\",\n className: \"theme-button theme-espresso\",\n onClick: updateTheme,\n children: \"Espresso\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 215,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cab\",\n className: \"theme-button theme-cab\",\n onClick: updateTheme,\n children: \"Cab\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 216,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cloud\",\n className: \"theme-button theme-cloud\",\n onClick: updateTheme,\n children: \"Cloud\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 217,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"lime\",\n className: \"theme-button theme-lime\",\n onClick: updateTheme,\n children: \"Lime\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 218,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"passion\",\n className: \"theme-button theme-passion\",\n onClick: updateTheme,\n children: \"Passion\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 219,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"blues\",\n className: \"theme-button theme-blues\",\n onClick: updateTheme,\n children: \"Blues\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 220,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"chalk\",\n className: \"theme-button theme-chalk\",\n onClick: updateTheme,\n children: \"Chalk\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 221,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"tron\",\n className: \"theme-button theme-tron\",\n onClick: updateTheme,\n children: \"Tron\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 222,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"paper\",\n className: \"theme-button theme-paper\",\n onClick: updateTheme,\n children: \"Paper\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 223,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cyberpunk\",\n className: \"theme-button theme-cyberpunk\",\n onClick: updateTheme,\n children: \"Cyberpunk\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 224,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"quadra\",\n className: \"theme-button theme-panam\",\n onClick: updateTheme,\n children: \"Quadra\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 225,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"panam\",\n className: \"theme-button theme-panam\",\n onClick: updateTheme,\n children: \"Panam\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 226,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"touch\",\n className: \"theme-button theme-touch\",\n onClick: updateTheme,\n children: \"Touch\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 227,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"peek\",\n className: \"theme-button theme-peek\",\n onClick: updateTheme,\n children: \"Peek\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 228,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 212,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"h2\", {\n children: \"Search options\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 232,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"providers\",\n children: /*#__PURE__*/_jsxDEV(\"table\", {\n children: /*#__PURE__*/_jsxDEV(\"tbody\", {\n children: [/*#__PURE__*/_jsxDEV(\"tr\", {\n children: [/*#__PURE__*/_jsxDEV(\"th\", {\n children: \"Website\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 237,\n columnNumber: 19\n }, this), /*#__PURE__*/_jsxDEV(\"th\", {\n children: \"Prefix\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 238,\n columnNumber: 19\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 236,\n columnNumber: 17\n }, this), items]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 235,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 234,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 233,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"header\", {\n id: \"modal-footer\",\n children: [/*#__PURE__*/_jsxDEV(\"a\", {\n href: \"https://github.com/jeroenpardon/\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-github-box\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 246,\n columnNumber: 54\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 246,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n href: \"https://materialdesignicons.com/\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-material-design\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 247,\n columnNumber: 54\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 247,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(HideButton, {\n checked: isChecked\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 248,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 245,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 202,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 201,\n columnNumber: 5\n }, this);\n}\n\n_c9 = ModalMenu;\n\nfunction HideButton(props) {\n console.log(props.checked);\n return /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"sneaky\",\n children: [/*#__PURE__*/_jsxDEV(\"input\", {\n type: \"checkbox\",\n id: \"contenttype\",\n onClick: udpateDisplayedItems,\n defaultChecked: props.checked\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 260,\n columnNumber: 29\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n for: \"contenttype\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-domino-mask\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 261,\n columnNumber: 30\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 261,\n columnNumber: 5\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 260,\n columnNumber: 5\n }, this);\n}\n\n_c10 = HideButton;\n\nfunction Provider(props) {\n return /*#__PURE__*/_jsxDEV(\"tr\", {\n children: [/*#__PURE__*/_jsxDEV(\"td\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: props.provider.url,\n children: props.provider.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 268,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 268,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"td\", {\n children: props.provider.prefix\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 269,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 267,\n columnNumber: 5\n }, this);\n}\n\n_c11 = Provider;\n\nfunction ModalInit() {\n setDisplayedItems();\n return /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"modal_init\",\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n className: \"btn\",\n href: \"#modal\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify icon\",\n \"data-icon\": \"mdi-xbox-controller-menu\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 279,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 278,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 277,\n columnNumber: 5\n }, this);\n}\n\n_c12 = ModalInit;\nReactDOM.render( /*#__PURE__*/_jsxDEV(Homepage, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 286,\n columnNumber: 3\n}, this), document.getElementById('root')); //Functions below this line are for calculating data for\n//other functions\n\nfunction date() {\n let currentDate = new Date();\n let dateOptions = {\n weekday: \"long\",\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\"\n };\n let date = currentDate.toLocaleDateString(\"en-GB\", dateOptions);\n return date;\n}\n\nfunction fixDigits(k) {\n if (k < 10) {\n return \"0\" + k;\n } else {\n return k;\n }\n}\n\nfunction greet() {\n let currentTime = new Date();\n let greet = Math.floor(currentTime.getHours() / 6);\n let easterEggChance = Math.floor(Math.random() * 100);\n\n let greetings = require('./messages.json');\n\n let timeBased = [];\n let easterEggs = [];\n\n for (var i = 0; i < greetings.messages.length; i++) {\n if (greetings.messages[i].easteregg === \"FALSE\") {\n timeBased = timeBased.concat(greetings.messages[i]);\n } else {\n easterEggs = easterEggs.concat(greetings.messages[i]);\n }\n }\n\n if (easterEggChance > 10) {\n return timeBased[greet].message;\n } else {\n let easterEggText = Math.floor(Math.random() * easterEggs.length);\n return easterEggs[easterEggText].message;\n }\n}\n\nfunction Clock() {\n _s();\n\n const [date, setDate] = useState(new Date());\n\n function refreshClock() {\n setDate(new Date());\n }\n\n useEffect(() => {\n const timerId = setInterval(refreshClock, 1000);\n return function cleanup() {\n clearInterval(timerId);\n };\n }, []);\n var hour = date.getHours();\n var minutes = date.getMinutes(); //var seconds = date.getSeconds();\n\n var midday = \"AM\";\n midday = hour >= 12 ? \"PM\" : \"AM\";\n hour = hour === 0 ? 12 : hour > 12 ? hour - 12 : hour;\n minutes = fixDigits(minutes); //seconds = fixDigits(seconds);\n\n let time = hour + \":\" + minutes + \" \" + midday;\n return /*#__PURE__*/_jsxDEV(\"h2\", {\n id: \"clock\",\n children: time\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 357,\n columnNumber: 5\n }, this);\n}\n\n_s(Clock, \"Gqi45WOZhU2c0BLYX0HoJeiR0fk=\");\n\n_c13 = Clock;\n\nfunction getApps() {\n let applications = require('./apps.json');\n\n return applications;\n}\n\nfunction getLinks() {\n let links = require('./links.json');\n\n return links;\n}\n\nfunction getProviders() {\n let providers = require('./providers.json');\n\n return providers;\n}\n\nfunction getThemes() {\n let themes = require('./themes.json');\n\n return themes;\n}\n\nfunction updateTheme(e) {\n var themes = getThemes();\n var themeName = e.target.innerHTML.toLowerCase();\n var index = themes.themes.findIndex(function (item, i) {\n return item.name === themeName;\n });\n localStorage.setItem(\"image-background\", themes.themes[index].imagebackground);\n localStorage.setItem(\"color-background\", themes.themes[index].colorbackground);\n localStorage.setItem(\"color-search-background\", themes.themes[index].colorserachbackground);\n localStorage.setItem(\"color-text-pri\", themes.themes[index].colortextpri);\n localStorage.setItem(\"color-text-acc\", themes.themes[index].colortextacc);\n localStorage.setItem(\"color-border\", themes.themes[index].colorborder); //document.documentElement.style.setProperty(prop, `var(--${themeName}${prop.substring(10)})`);\n\n setTheme();\n}\n\nfunction setTheme() {\n setValueFromLocalStorage('image-background');\n setValueFromLocalStorage('color-background');\n setValueFromLocalStorage('color-search-background');\n setValueFromLocalStorage('color-text-pri');\n setValueFromLocalStorage('color-text-acc');\n setValueFromLocalStorage('color-border');\n setValueFromLocalStorage('content-display');\n}\n\nfunction handleKeyPress(e) {\n var sindex = 0;\n var cycle = false;\n var key = e.keyCode || e.which;\n var text = e.target.value.replaceAll(\"+\", \"%2B\");\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n\n if (key == 13) {\n // Search functions\n search(text);\n }\n\n if (key == 9) {\n // Tab Completion Functions\n e.preventDefault();\n e.stopPropagation();\n\n if (text[0] === ';') {\n switch (option) {\n case 't':\n var streamers = ['admiralbahroo', 'moonmoon_ow', 'witwix'];\n\n if (!subtext || cycle) {\n cycle = true;\n if (sindex > streamers.length - 1) sindex = 0;\n document.getElementById(\"keywords\").value = ';t ' + streamers[sindex++];\n return;\n }\n\n for (var streamer of streamers) {\n if (subtext === streamer.substr(0, subtext.length)) {\n document.getElementById(\"keywords\").value = ';t ' + streamer;\n return;\n }\n }\n\n break;\n }\n }\n }\n\n if (key == 32) {\n //Space to go to search\n updateLabel(text);\n }\n\n sindex = 0;\n cycle = false;\n updateLabel(text);\n}\n\nfunction updateLabel(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n\n if (text[0] === '/') {\n // if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n document.getElementById(\"searchType\").innerHTML = \"Allmusic search\";\n break;\n\n case \"d\":\n document.getElementById(\"searchType\").innerHTML = \"Duck Duck Go search\";\n break;\n\n case \"di\":\n document.getElementById(\"searchType\").innerHTML = \"Discogs search\";\n break;\n\n case \"i\":\n document.getElementById(\"searchType\").innerHTML = \"IMDB search\";\n break;\n\n case \"m\":\n document.getElementById(\"searchType\").innerHTML = \"TheMovieDB search\";\n break;\n\n case \"r\":\n document.getElementById(\"searchType\").innerHTML = \"Reddit search\";\n break;\n\n case \"q\":\n document.getElementById(\"searchType\").innerHTML = \"Qwant search\";\n break;\n\n case \"so\":\n document.getElementById(\"searchType\").innerHTML = \"Soundcloud search\";\n break;\n\n case \"s\":\n document.getElementById(\"searchType\").innerHTML = \"Spotify search\";\n break;\n\n case \"tv\":\n document.getElementById(\"searchType\").innerHTML = \"TheTVDB search\";\n break;\n\n case \"t\":\n document.getElementById(\"searchType\").innerHTML = \"Trakt search\";\n break;\n\n case \"y\":\n document.getElementById(\"searchType\").innerHTML = \"YouTube search\";\n break;\n\n case \"w\":\n document.getElementById(\"searchType\").innerHTML = \"Wikipedia search\";\n break;\n\n case \"p\":\n document.getElementById(\"searchType\").innerHTML = \"Plex search\";\n break;\n\n case \"rt\":\n document.getElementById(\"searchType\").innerHTML = \"Rotten Tomatoes search\";\n break;\n\n default:\n document.getElementById(\"searchType\").innerHTML = \"Invalid search\";\n break;\n }\n } else {\n document.getElementById(\"searchType\").innerHTML = \"Google search\";\n }\n}\n\nfunction search(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n\n if (text[0] === '/') {\n if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n window.location = \"https://www.allmusic.com/search/all/\" + subtext;\n break;\n\n case \"d\":\n window.location = \"https://duckduckgo.com/?q=\" + subtext;\n break;\n\n case \"di\":\n window.location = \"https://www.discogs.com/search/?q=\" + subtext;\n break;\n\n case \"i\":\n window.location = \"https://www.imdb.com/find?q=\" + subtext;\n break;\n\n case \"m\":\n window.location = \"https://www.themoviedb.org/search?query=\" + subtext;\n break;\n\n case \"r\":\n window.location = \"https://www.reddit.com/search?q=\" + subtext;\n break;\n\n case \"q\":\n window.location = \"https://www.qwant.com/?q=\" + subtext;\n break;\n\n case \"so\":\n window.location = \"https://soundcloud.com/search?q=\" + subtext;\n break;\n\n case \"s\":\n window.location = \"https://open.spotify.com/search/results/\" + subtext;\n break;\n\n case \"t\":\n window.location = \"https://trakt.tv/search?query=\" + subtext;\n break;\n\n case \"tv\":\n window.location = \"https://www.thetvdb.com/search?query=\" + subtext;\n break;\n\n case \"y\":\n window.location = \"https://www.youtube.com/results?search_query=\" + subtext;\n break;\n\n case \"w\":\n window.location = \"https://en.wikipedia.org/w/index.php?search=\" + subtext;\n break;\n\n case \"p\":\n window.location = \"https://app.plex.tv/desktop/#!/search?query=\" + subtext;\n break;\n\n case \"rt\":\n window.location = \"https://www.rottentomatoes.com/search?search=\" + subtext;\n break;\n }\n } else {\n var option = text.substr(1);\n\n switch (option) {\n case \"d\":\n window.location = \"https://www.duckduckgo.com\";\n break;\n\n case \"y\":\n window.location = \"https://www.youtube.com\";\n break;\n\n case \"r\":\n window.location = \"https://reddit.com\";\n break;\n\n case \"s\":\n window.location = \"https://open.spotify.com\";\n break;\n }\n }\n } else if (validURL(text)) {\n if (containsProtocol(text)) window.location = text;else window.location = \"https://\" + text;\n } else {\n window.location = \"https://www.google.com/search?q=\" + text;\n }\n}\n\nfunction validURL(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/)?' + // protocol\n '((([a-z\\\\d]([a-z\\\\d-]*[a-z\\\\d])*)\\\\.)+[a-z]{2,}|' + // domain name\n '((\\\\d{1,3}\\\\.){3}\\\\d{1,3}))' + // OR ip (v4) address\n '(\\\\:\\\\d+)?(\\\\/[-a-z\\\\d%_.~+]*)*' + // port and path\n '(\\\\?[;&a-z\\\\d%_.~+=-]*)?' + // query string\n '(\\\\#[-a-z\\\\d_]*)?$', 'i'); // fragment locator\n\n return !!pattern.test(str);\n}\n\nfunction containsProtocol(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/){1}.*', 'i');\n return !!pattern.test(str);\n}\n\nString.prototype.replaceAll = function (search, replacement) {\n var target = this;\n return target.split(search).join(replacement);\n};\n\nfunction udpateDisplayedItems(e) {\n localStorage.setItem('contenttype', e.target.checked);\n\n if (e.target.checked) {\n localStorage.setItem('content-display', 'none');\n } else {\n localStorage.setItem('content-display', 'block');\n }\n\n setDisplayedItems();\n}\n\nfunction setDisplayedItems() {\n setValueFromLocalStorage('contenttype');\n setValueFromLocalStorage('content-display');\n}\n\nvar _c, _c2, _c3, _c4, _c5, _c6, _c7, _c8, _c9, _c10, _c11, _c12, _c13;\n\n$RefreshReg$(_c, \"Homepage\");\n$RefreshReg$(_c2, \"Search\");\n$RefreshReg$(_c3, \"Header\");\n$RefreshReg$(_c4, \"Applications\");\n$RefreshReg$(_c5, \"App\");\n$RefreshReg$(_c6, \"Bookmarks\");\n$RefreshReg$(_c7, \"LinkGroups\");\n$RefreshReg$(_c8, \"LinkItem\");\n$RefreshReg$(_c9, \"ModalMenu\");\n$RefreshReg$(_c10, \"HideButton\");\n$RefreshReg$(_c11, \"Provider\");\n$RefreshReg$(_c12, \"ModalInit\");\n$RefreshReg$(_c13, \"Clock\");","map":{"version":3,"sources":["/home/seanedmunds/dev/home-page/src/index.js"],"names":["React","useState","useEffect","ReactDOM","setValueFromLocalStorage","property","value","localStorage","getItem","setValue","document","documentElement","style","setProperty","input","querySelector","replace","Homepage","setTheme","date","greet","Search","handleKeyPress","Header","props","Applications","appList","getApps","items","i","apps","length","safe","NSFW","NSFWEnabled","push","name","url","icon","App","classNameType","hrefUrl","iconName","Bookmarks","bookmarkList","getLinks","bookmarks","category","links","LinkGroups","LinkItem","link","ModalMenu","providers","getProviders","isChecked","updateTheme","HideButton","console","log","checked","udpateDisplayedItems","Provider","provider","prefix","ModalInit","setDisplayedItems","render","getElementById","currentDate","Date","dateOptions","weekday","year","month","day","toLocaleDateString","fixDigits","k","currentTime","Math","floor","getHours","easterEggChance","random","greetings","require","timeBased","easterEggs","messages","easteregg","concat","message","easterEggText","Clock","setDate","refreshClock","timerId","setInterval","cleanup","clearInterval","hour","minutes","getMinutes","midday","time","applications","getThemes","themes","e","themeName","target","innerHTML","toLowerCase","index","findIndex","item","setItem","imagebackground","colorbackground","colorserachbackground","colortextpri","colortextacc","colorborder","sindex","cycle","key","keyCode","which","text","replaceAll","option","substr","indexOf","subtext","search","preventDefault","stopPropagation","streamers","streamer","updateLabel","window","location","validURL","containsProtocol","str","pattern","RegExp","test","String","prototype","replacement","split","join"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { useState, useEffect } from 'react';\nimport ReactDOM from 'react-dom';\nimport './index.css';\n\nconst setValueFromLocalStorage = property => {\n let value = localStorage.getItem(property);\n setValue(property, value);\n};\nconst setValue = (property, value) => {\n if (value) {\n document.documentElement.style.setProperty(`--${property}`, value);\n\n const input = document.querySelector(`#${property}`);\n if (input) {\n value = value.replace('px', '');\n input.value = value;\n }\n }\n};\n\nfunction Homepage() {\n setTheme();\n \n return (\n \n \n \n
\n \n \n
\n \n \n \n
\n \n \n
\n \n \n
\n \n );\n}\n\nfunction Search() {\n return (\n \n )\n}\n\nfunction Header(props) {\n return (\n \n );\n}\n\nfunction Applications() {\n let appList = getApps();\n var items = [];\n for (var i = 0; i < appList.apps.length; i++) {\n var safe = appList.apps[i].NSFW;\n var NSFWEnabled = localStorage.getItem(\"contenttype\");\n if (safe === \"SAFE\") {\n items.push(\n \n );\n } else if (safe === \"NSFW\" && NSFWEnabled) {\n items.push(\n \n );\n } else {\n \n }\n \n }\n return (\n \n Applications
\n \n {items}\n
\n \n );\n}\n\nfunction App(props) {\n \n let classNameType = props.NSFW + \"-content\";\n let hrefUrl = \"https://\" + props.url;\n let iconName = \"mdi-\" + props.icon;\n return (\n \n );\n}\n\nfunction Bookmarks() {\n let bookmarkList = getLinks();\n var items = [];\n for (var i = 0; i < bookmarkList.bookmarks.length; i++) {\n items.push(\n \n );\n }\n return (\n \n Bookmarks
\n \n {items}\n
\n \n );\n}\n\nfunction LinkGroups(props) {\n var items = [];\n for (var i = 0; i < props.links.length; i++) {\n items.push(\n \n );\n }\n return (\n \n
{props.category}
\n {items}\n \n );\n}\n\nfunction LinkItem(props) {\n return (\n \n );\n}\n\nfunction ModalMenu() {\n var providers = getProviders();\n var items = [];\n var isChecked = localStorage.getItem(\"contenttype\");\n for (var i = 0; i < providers.providers.length; i++) {\n items.push(\n \n );\n }\n return (\n \n \n \n\n
Color themes
\n\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n\n\n
Search options
\n
\n \n \n \n | Website | \n Prefix | \n
\n {items}\n \n
\n \n\n \n
\n \n );\n}\n\nfunction HideButton(props) {\n console.log(props.checked);\n return (\n \n
\n );\n}\n\nfunction Provider(props) {\n return (\n \n | {props.provider.name} | \n {props.provider.prefix} | \n
\n );\n}\n\nfunction ModalInit() {\n setDisplayedItems();\n return (\n \n );\n}\n\nReactDOM.render(\n ,\n document.getElementById('root')\n);\n\n//Functions below this line are for calculating data for\n//other functions\n\nfunction date() {\n let currentDate = new Date();\n let dateOptions = {\n weekday: \"long\",\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\"\n };\n let date = currentDate.toLocaleDateString(\"en-GB\", dateOptions);\n return date;\n}\nfunction fixDigits(k) {\n if (k < 10) {\n return \"0\" + k;\n }\n else {\n return k;\n }\n}\nfunction greet() {\n let currentTime = new Date();\n let greet = Math.floor(currentTime.getHours() / 6);\n let easterEggChance = Math.floor(Math.random() * 100);\n let greetings = require('./messages.json');\n let timeBased = [];\n let easterEggs = [];\n for (var i = 0; i < greetings.messages.length; i++) {\n if (greetings.messages[i].easteregg === \"FALSE\") {\n timeBased = timeBased.concat(greetings.messages[i]);\n } else {\n easterEggs = easterEggs.concat(greetings.messages[i]);\n }\n }\n if (easterEggChance > 10) {\n return timeBased[greet].message;\n } else {\n let easterEggText = Math.floor(Math.random() * easterEggs.length);\n return easterEggs[easterEggText].message;\n }\n}\nfunction Clock() {\n const [date, setDate] = useState(new Date());\n\n function refreshClock() {\n setDate(new Date());\n }\n useEffect(() => {\n const timerId = setInterval(refreshClock, 1000);\n return function cleanup() {\n clearInterval(timerId);\n };\n }, []);\n\n var hour = date.getHours();\n var minutes = date.getMinutes();\n //var seconds = date.getSeconds();\n var midday = \"AM\";\n midday = (hour >= 12) ? \"PM\" : \"AM\";\n hour = (hour === 0) ? 12 : ((hour > 12) ? (hour - 12) : hour);\n minutes = fixDigits(minutes);\n //seconds = fixDigits(seconds);\n let time = hour + \":\" + minutes + \" \" + midday;\n\n return (\n {time}
\n\n );\n}\nfunction getApps() {\n let applications = require('./apps.json');\n return applications;\n}\nfunction getLinks() {\n let links = require('./links.json');\n return links;\n}\nfunction getProviders() {\n let providers = require('./providers.json');\n return providers;\n}\nfunction getThemes() {\n let themes = require('./themes.json');\n return themes;\n}\nfunction updateTheme(e) {\n var themes = getThemes();\n var themeName = e.target.innerHTML.toLowerCase();\n var index = themes.themes.findIndex(function(item, i){\n return item.name === themeName\n });\n localStorage.setItem(\"image-background\", themes.themes[index].imagebackground);\n localStorage.setItem(\"color-background\", themes.themes[index].colorbackground);\n localStorage.setItem(\"color-search-background\", themes.themes[index].colorserachbackground);\n localStorage.setItem(\"color-text-pri\",themes.themes[index].colortextpri);\n localStorage.setItem(\"color-text-acc\", themes.themes[index].colortextacc);\n localStorage.setItem(\"color-border\", themes.themes[index].colorborder);\n \n //document.documentElement.style.setProperty(prop, `var(--${themeName}${prop.substring(10)})`);\n setTheme();\n}\nfunction setTheme() {\n setValueFromLocalStorage('image-background');\n setValueFromLocalStorage('color-background');\n setValueFromLocalStorage('color-search-background');\n setValueFromLocalStorage('color-text-pri');\n setValueFromLocalStorage('color-text-acc');\n setValueFromLocalStorage('color-border');\n setValueFromLocalStorage('content-display');\n}\nfunction handleKeyPress(e) {\n var sindex = 0;\n var cycle = false;\n var key = e.keyCode || e.which;\n var text = e.target.value.replaceAll(\"+\", \"%2B\");\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n if (key == 13) { // Search functions\n search(text);\n }\n if (key == 9) { // Tab Completion Functions\n e.preventDefault();\n e.stopPropagation();\n if (text[0] === ';') {\n switch (option) {\n case 't':\n var streamers = ['admiralbahroo', 'moonmoon_ow', 'witwix'];\n if (!subtext || cycle) {\n cycle = true;\n if (sindex > streamers.length - 1) sindex = 0;\n document.getElementById(\"keywords\").value = ';t ' + streamers[sindex++];\n return;\n }\n for (var streamer of streamers) {\n if (subtext === streamer.substr(0, subtext.length)) {\n document.getElementById(\"keywords\").value = ';t ' + streamer;\n return;\n }\n }\n break;\n }\n }\n }\n if(key == 32){ //Space to go to search\nupdateLabel(text);\n }\n sindex = 0;\n cycle = false;\n updateLabel(text);\n}\nfunction updateLabel(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n if (text[0] === '/') {\n// if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n document.getElementById(\"searchType\").innerHTML = \"Allmusic search\";\n break;\n case \"d\":\n document.getElementById(\"searchType\").innerHTML = \"Duck Duck Go search\";\n break;\n case \"di\":\n document.getElementById(\"searchType\").innerHTML = \"Discogs search\";\n break;\n case \"i\":\n document.getElementById(\"searchType\").innerHTML = \"IMDB search\";\n break;\n case \"m\":\n document.getElementById(\"searchType\").innerHTML = \"TheMovieDB search\";\n break;\n case \"r\":\n document.getElementById(\"searchType\").innerHTML = \"Reddit search\";\n break;\n case \"q\":\n document.getElementById(\"searchType\").innerHTML = \"Qwant search\";\n break;\n case \"so\":\n document.getElementById(\"searchType\").innerHTML = \"Soundcloud search\";\n break;\n case \"s\":\n document.getElementById(\"searchType\").innerHTML = \"Spotify search\";\n break;\n case \"tv\":\n document.getElementById(\"searchType\").innerHTML = \"TheTVDB search\";\n break;\n case \"t\":\n document.getElementById(\"searchType\").innerHTML = \"Trakt search\";\n break;\n case \"y\":\n document.getElementById(\"searchType\").innerHTML = \"YouTube search\";\n break;\n case \"w\":\n document.getElementById(\"searchType\").innerHTML = \"Wikipedia search\";\n break;\n case \"p\":\n document.getElementById(\"searchType\").innerHTML = \"Plex search\";\n break;\n case \"rt\":\n document.getElementById(\"searchType\").innerHTML = \"Rotten Tomatoes search\";\n break;\n default:\n document.getElementById(\"searchType\").innerHTML = \"Invalid search\";\n break;\n }\n}else {\n document.getElementById(\"searchType\").innerHTML = \"Google search\";\n }\n}\nfunction search(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n if (text[0] === '/') {\n if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n window.location = \"https://www.allmusic.com/search/all/\" + subtext;\n break;\n case \"d\":\n window.location = \"https://duckduckgo.com/?q=\" + subtext;\n break;\n case \"di\":\n window.location = \"https://www.discogs.com/search/?q=\" + subtext;\n break;\n case \"i\":\n window.location = \"https://www.imdb.com/find?q=\" + subtext;\n break;\n case \"m\":\n window.location = \"https://www.themoviedb.org/search?query=\" + subtext;\n break;\n case \"r\":\n window.location = \"https://www.reddit.com/search?q=\" + subtext;\n break;\n case \"q\":\n window.location = \"https://www.qwant.com/?q=\" + subtext;\n break;\n case \"so\":\n window.location = \"https://soundcloud.com/search?q=\" + subtext;\n break;\n case \"s\":\n window.location = \"https://open.spotify.com/search/results/\" + subtext;\n break;\n case \"t\":\n window.location = \"https://trakt.tv/search?query=\" + subtext;\n break;\n case \"tv\":\n window.location = \"https://www.thetvdb.com/search?query=\" + subtext;\n break;\n case \"y\":\n window.location = \"https://www.youtube.com/results?search_query=\" + subtext;\n break;\n case \"w\":\n window.location = \"https://en.wikipedia.org/w/index.php?search=\" + subtext;\n break;\n case \"p\":\n window.location = \"https://app.plex.tv/desktop/#!/search?query=\" + subtext;\n break;\n case \"rt\":\n window.location = \"https://www.rottentomatoes.com/search?search=\" + subtext;\n break;\n }\n } else {\n var option = text.substr(1);\n switch (option) {\n case \"d\":\n window.location = \"https://www.duckduckgo.com\";\n break;\n case \"y\":\n window.location = \"https://www.youtube.com\";\n break;\n case \"r\":\n window.location = \"https://reddit.com\";\n break;\n case \"s\":\n window.location = \"https://open.spotify.com\";\n break;\n }\n }\n } else if (validURL(text)) {\n if (containsProtocol(text))\n window.location = text;\n else\n window.location = \"https://\" + text;\n } else {\n window.location = \"https://www.google.com/search?q=\" + text;\n }\n}\nfunction validURL(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/)?' + // protocol\n '((([a-z\\\\d]([a-z\\\\d-]*[a-z\\\\d])*)\\\\.)+[a-z]{2,}|' + // domain name\n '((\\\\d{1,3}\\\\.){3}\\\\d{1,3}))' + // OR ip (v4) address\n '(\\\\:\\\\d+)?(\\\\/[-a-z\\\\d%_.~+]*)*' + // port and path\n '(\\\\?[;&a-z\\\\d%_.~+=-]*)?' + // query string\n '(\\\\#[-a-z\\\\d_]*)?$', 'i'); // fragment locator\n return !!pattern.test(str);\n}\nfunction containsProtocol(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/){1}.*', 'i');\n return !!pattern.test(str);\n}\nString.prototype.replaceAll = function(search, replacement) {\n var target = this;\n return target.split(search).join(replacement);\n};\nfunction udpateDisplayedItems(e) {\n localStorage.setItem('contenttype', e.target.checked);\n if (e.target.checked) {\n localStorage.setItem('content-display', 'none');\n } else {\n localStorage.setItem('content-display', 'block');\n }\n setDisplayedItems();\n}\nfunction setDisplayedItems() {\n setValueFromLocalStorage('contenttype');\n setValueFromLocalStorage('content-display');\n}"]},"metadata":{},"sourceType":"module"}
\ No newline at end of file
diff --git a/node_modules/.cache/babel-loader/43fff276278ffc6a9cd2cb5e050d3241.json b/node_modules/.cache/babel-loader/43fff276278ffc6a9cd2cb5e050d3241.json
new file mode 100644
index 00000000..a8b3b399
--- /dev/null
+++ b/node_modules/.cache/babel-loader/43fff276278ffc6a9cd2cb5e050d3241.json
@@ -0,0 +1 @@
+{"ast":null,"code":"var _jsxFileName = \"/home/seanedmunds/dev/home-page/src/index.js\",\n _s = $RefreshSig$();\n\nimport React from 'react';\nimport { useState, useEffect } from 'react';\nimport ReactDOM from 'react-dom'; //import { unstable_createPortal } from 'react-dom';\n\nimport './index.css';\nimport { jsxDEV as _jsxDEV } from \"react/jsx-dev-runtime\";\n\nfunction Homepage() {\n return /*#__PURE__*/_jsxDEV(\"main\", {\n id: \"container\",\n className: \"fade\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Search, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 11,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 10,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Header, {\n date: date(),\n greet: greet()\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 14,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 13,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Applications, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 20,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 19,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Bookmarks, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 23,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 22,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(ModalMenu, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 26,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 25,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(ModalInit, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 29,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 28,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 9,\n columnNumber: 5\n }, this);\n}\n\n_c = Homepage;\n\nfunction Search() {\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"search\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"abackground\",\n children: [/*#__PURE__*/_jsxDEV(\"input\", {\n name: \"keywords\",\n type: \"text\",\n className: \"keyword\",\n id: \"keywords\",\n size: \"50\",\n spellCheck: \"true\",\n placeholder: \"\"\n /*onFocus={this.placeholder = \"\"} onBlur={this.placeholder = ''}*/\n ,\n autoComplete: \"off\",\n autoFocus: true,\n onKeyUp: handleKeyPress\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 39,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n id: \"searchType\",\n className: \"Input-label\",\n children: \"Google search\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 40,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 38,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 37,\n columnNumber: 5\n }, this);\n}\n\n_c2 = Search;\n\nfunction Header(props) {\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"header\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n id: \"greeting_block\",\n children: /*#__PURE__*/_jsxDEV(\"h1\", {\n id: \"header_greet\",\n children: props.greet\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 50,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 49,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"date_block\",\n children: [/*#__PURE__*/_jsxDEV(\"h2\", {\n id: \"header_date\",\n children: props.date\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 53,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(Clock, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 54,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 52,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 48,\n columnNumber: 5\n }, this);\n}\n\n_c3 = Header;\n\nfunction Applications() {\n let appList = getApps();\n var items = [];\n\n for (var i = 0; i < appList.apps.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(App, {\n name: appList.apps[i].name,\n url: appList.apps[i].url,\n icon: appList.apps[i].icon,\n NSFW: appList.apps[i].NSFW\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 65,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"apps\",\n children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n children: \"Applications\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 76,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"apps_loop\",\n children: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 77,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 75,\n columnNumber: 5\n }, this);\n}\n\n_c4 = Applications;\n\nfunction App(props) {\n let classNameType = props.NSFW + \"-content\";\n let hrefUrl = \"https://\" + props.url;\n let iconName = \"mdi-\" + props.icon;\n return /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: hrefUrl,\n className: classNameType,\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_item\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_icon\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify icon\",\n \"data-icon\": iconName\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 93,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 92,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_text\",\n children: [/*#__PURE__*/_jsxDEV(\"span\", {\n id: \"app-name\",\n children: props.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 96,\n columnNumber: 13\n }, this), /*#__PURE__*/_jsxDEV(\"span\", {\n id: \"app-address\",\n children: props.url\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 97,\n columnNumber: 13\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 95,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 91,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 90,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 89,\n columnNumber: 5\n }, this);\n}\n\n_c5 = App;\n\nfunction Bookmarks() {\n let bookmarkList = getLinks();\n var items = [];\n\n for (var i = 0; i < bookmarkList.bookmarks.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(LinkGroups, {\n category: bookmarkList.bookmarks[i].category,\n links: bookmarkList.bookmarks[i].links\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 110,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"links\",\n children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n children: \"Bookmarks\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 119,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"links_loop\",\n children: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 120,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 118,\n columnNumber: 5\n }, this);\n}\n\n_c6 = Bookmarks;\n\nfunction LinkGroups(props) {\n var items = [];\n\n for (var i = 0; i < props.links.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(LinkItem, {\n link: props.links[i]\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 131,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"links_item\",\n children: [/*#__PURE__*/_jsxDEV(\"h4\", {\n children: props.category\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 139,\n columnNumber: 7\n }, this), items]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 138,\n columnNumber: 5\n }, this);\n}\n\n_c7 = LinkGroups;\n\nfunction LinkItem(props) {\n return /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: props.link.url,\n className: \"theme_color-border theme_text-select\",\n children: props.link.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 148,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 147,\n columnNumber: 5\n }, this);\n}\n\n_c8 = LinkItem;\n\nfunction ModalMenu() {\n var providers = getProviders();\n var items = [];\n\n for (var i = 0; i < providers.providers.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(Provider, {\n provider: providers.providers[i]\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 158,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"modal\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n children: [/*#__PURE__*/_jsxDEV(\"header\", {\n id: \"modal-header\",\n children: [/*#__PURE__*/_jsxDEV(\"h1\", {\n children: \"Options\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 168,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n href: \"#\",\n title: \"Close\",\n className: \"modal-close\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-close\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 170,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 169,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 167,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"h2\", {\n children: \"Color themes\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 174,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"modal-theme\",\n children: [/*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"blackboard\",\n className: \"theme-button theme-blackboard\",\n onClick: updateTheme,\n children: \"Blackboard\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 177,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"gazette\",\n className: \"theme-button theme-gazette\",\n children: \"Gazette\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 178,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"espresso\",\n className: \"theme-button theme-espresso\",\n children: \"Espresso\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 179,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cab\",\n className: \"theme-button theme-cab\",\n children: \"Cab\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 180,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cloud\",\n className: \"theme-button theme-cloud\",\n children: \"Cloud\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 181,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"lime\",\n className: \"theme-button theme-lime\",\n children: \"Lime\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 182,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"passion\",\n className: \"theme-button theme-passion\",\n children: \"Passion\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 183,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"blues\",\n className: \"theme-button theme-blues\",\n children: \"Blues\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 184,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"chalk\",\n className: \"theme-button theme-chalk\",\n children: \"Chalk\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 185,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"tron\",\n className: \"theme-button theme-tron\",\n children: \"Tron\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 186,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"paper\",\n className: \"theme-button theme-paper\",\n children: \"Paper\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 187,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cyberpunk\",\n className: \"theme-button theme-cyberpunk\",\n children: \"Cyberpunk\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 188,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"quadra\",\n className: \"theme-button theme-panam\",\n children: \"Quadra\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 189,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"panam\",\n className: \"theme-button theme-panam\",\n children: \"Panam\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 190,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"touch\",\n className: \"theme-button theme-touch\",\n children: \"Touch\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 191,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"peek\",\n className: \"theme-button theme-peek\",\n children: \"Peek\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 192,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 176,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"h2\", {\n children: \"Search options\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 196,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"providers\",\n children: /*#__PURE__*/_jsxDEV(\"table\", {\n children: /*#__PURE__*/_jsxDEV(\"tbody\", {\n children: [/*#__PURE__*/_jsxDEV(\"tr\", {\n children: [/*#__PURE__*/_jsxDEV(\"th\", {\n children: \"Website\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 201,\n columnNumber: 19\n }, this), /*#__PURE__*/_jsxDEV(\"th\", {\n children: \"Prefix\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 202,\n columnNumber: 19\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 200,\n columnNumber: 17\n }, this), items]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 199,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 198,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 197,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"header\", {\n id: \"modal-footer\",\n children: [/*#__PURE__*/_jsxDEV(\"a\", {\n href: \"https://github.com/jeroenpardon/\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-github-box\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 210,\n columnNumber: 54\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 210,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n href: \"https://materialdesignicons.com/\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-material-design\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 211,\n columnNumber: 54\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 211,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"sneaky\",\n children: [/*#__PURE__*/_jsxDEV(\"input\", {\n type: \"checkbox\",\n id: \"contenttype\",\n onChange: \"nsfw(this)\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 212,\n columnNumber: 35\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n for: \"contenttype\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-domino-mask\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 213,\n columnNumber: 36\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 213,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 212,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 209,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 166,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 165,\n columnNumber: 5\n }, this);\n}\n\n_c9 = ModalMenu;\n\nfunction Provider(props) {\n return /*#__PURE__*/_jsxDEV(\"tr\", {\n children: [/*#__PURE__*/_jsxDEV(\"td\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: props.provider.url,\n children: props.provider.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 223,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 223,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"td\", {\n children: props.provider.prefix\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 224,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 222,\n columnNumber: 5\n }, this);\n}\n\n_c10 = Provider;\n\nfunction ModalInit() {\n return /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"modal_init\",\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n className: \"btn\",\n href: \"#modal\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify icon\",\n \"data-icon\": \"mdi-xbox-controller-menu\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 233,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 232,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 231,\n columnNumber: 5\n }, this);\n}\n\n_c11 = ModalInit;\nReactDOM.render( /*#__PURE__*/_jsxDEV(Homepage, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 240,\n columnNumber: 3\n}, this), document.getElementById('root')); //Functions below this line are for calculating data for\n//other functions\n\nfunction date() {\n let currentDate = new Date();\n let dateOptions = {\n weekday: \"long\",\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\"\n };\n let date = currentDate.toLocaleDateString(\"en-GB\", dateOptions);\n return date;\n}\n\nfunction fixDigits(k) {\n if (k < 10) {\n return \"0\" + k;\n } else {\n return k;\n }\n}\n\nfunction greet() {\n let currentTime = new Date();\n let greet = Math.floor(currentTime.getHours() / 6);\n let easterEggChance = Math.floor(Math.random() * 100);\n\n let greetings = require('./messages.json');\n\n let timeBased = [];\n let easterEggs = [];\n\n for (var i = 0; i < greetings.messages.length; i++) {\n if (greetings.messages[i].easteregg === \"FALSE\") {\n timeBased = timeBased.concat(greetings.messages[i]);\n } else {\n easterEggs = easterEggs.concat(greetings.messages[i]);\n }\n }\n\n if (easterEggChance > 10) {\n return timeBased[greet].message;\n } else {\n let easterEggText = Math.floor(Math.random() * easterEggs.length);\n return easterEggs[easterEggText].message;\n }\n}\n\nfunction Clock() {\n _s();\n\n const [date, setDate] = useState(new Date());\n\n function refreshClock() {\n setDate(new Date());\n }\n\n useEffect(() => {\n const timerId = setInterval(refreshClock, 1000);\n return function cleanup() {\n clearInterval(timerId);\n };\n }, []);\n var hour = date.getHours();\n var minutes = date.getMinutes(); //var seconds = date.getSeconds();\n\n var midday = \"AM\";\n midday = hour >= 12 ? \"PM\" : \"AM\";\n hour = hour === 0 ? 12 : hour > 12 ? hour - 12 : hour;\n minutes = fixDigits(minutes); //seconds = fixDigits(seconds);\n\n let time = hour + \":\" + minutes + \" \" + midday;\n return /*#__PURE__*/_jsxDEV(\"h2\", {\n id: \"clock\",\n children: time\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 311,\n columnNumber: 5\n }, this);\n}\n\n_s(Clock, \"Gqi45WOZhU2c0BLYX0HoJeiR0fk=\");\n\n_c12 = Clock;\n\nfunction getApps() {\n let applications = require('./apps.json');\n\n return applications;\n}\n\nfunction getLinks() {\n let links = require('./links.json');\n\n return links;\n}\n\nfunction getProviders() {\n let providers = require('./providers.json');\n\n return providers;\n}\n\nfunction getThemes() {\n let themes = require('./themes.json');\n\n return themes;\n}\n\nfunction updateTheme(e) {\n var themes = getThemes();\n var themeName = e.target.innerHTML.toLowerCase();\n console.log(themes.themes.name.indexOf(themeName));\n}\n\nfunction handleKeyPress(e) {\n var sindex = 0;\n var cycle = false;\n var key = e.keyCode || e.which;\n var text = e.target.value.replaceAll(\"+\", \"%2B\");\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n\n if (key == 13) {\n // Search functions\n search(text);\n }\n\n if (key == 9) {\n // Tab Completion Functions\n e.preventDefault();\n e.stopPropagation();\n\n if (text[0] === ';') {\n switch (option) {\n case 't':\n var streamers = ['admiralbahroo', 'moonmoon_ow', 'witwix'];\n\n if (!subtext || cycle) {\n cycle = true;\n if (sindex > streamers.length - 1) sindex = 0;\n document.getElementById(\"keywords\").value = ';t ' + streamers[sindex++];\n return;\n }\n\n for (var streamer of streamers) {\n if (subtext === streamer.substr(0, subtext.length)) {\n document.getElementById(\"keywords\").value = ';t ' + streamer;\n return;\n }\n }\n\n break;\n }\n }\n }\n\n if (key == 32) {\n //Space to go to search\n updateLabel(text);\n }\n\n sindex = 0;\n cycle = false;\n updateLabel(text);\n}\n\nfunction updateLabel(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n\n if (text[0] === '/') {\n // if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n document.getElementById(\"searchType\").innerHTML = \"Allmusic search\";\n break;\n\n case \"d\":\n document.getElementById(\"searchType\").innerHTML = \"Duck Duck Go search\";\n break;\n\n case \"di\":\n document.getElementById(\"searchType\").innerHTML = \"Discogs search\";\n break;\n\n case \"i\":\n document.getElementById(\"searchType\").innerHTML = \"IMDB search\";\n break;\n\n case \"m\":\n document.getElementById(\"searchType\").innerHTML = \"TheMovieDB search\";\n break;\n\n case \"r\":\n document.getElementById(\"searchType\").innerHTML = \"Reddit search\";\n break;\n\n case \"q\":\n document.getElementById(\"searchType\").innerHTML = \"Qwant search\";\n break;\n\n case \"so\":\n document.getElementById(\"searchType\").innerHTML = \"Soundcloud search\";\n break;\n\n case \"s\":\n document.getElementById(\"searchType\").innerHTML = \"Spotify search\";\n break;\n\n case \"tv\":\n document.getElementById(\"searchType\").innerHTML = \"TheTVDB search\";\n break;\n\n case \"t\":\n document.getElementById(\"searchType\").innerHTML = \"Trakt search\";\n break;\n\n case \"y\":\n document.getElementById(\"searchType\").innerHTML = \"YouTube search\";\n break;\n\n case \"w\":\n document.getElementById(\"searchType\").innerHTML = \"Wikipedia search\";\n break;\n\n case \"p\":\n document.getElementById(\"searchType\").innerHTML = \"Plex search\";\n break;\n\n case \"rt\":\n document.getElementById(\"searchType\").innerHTML = \"Rotten Tomatoes search\";\n break;\n\n default:\n document.getElementById(\"searchType\").innerHTML = \"Invalid search\";\n break;\n }\n } else {\n document.getElementById(\"searchType\").innerHTML = \"Google search\";\n }\n}\n\nfunction search(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n\n if (text[0] === '/') {\n if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n window.location = \"https://www.allmusic.com/search/all/\" + subtext;\n break;\n\n case \"d\":\n window.location = \"https://duckduckgo.com/?q=\" + subtext;\n break;\n\n case \"di\":\n window.location = \"https://www.discogs.com/search/?q=\" + subtext;\n break;\n\n case \"i\":\n window.location = \"https://www.imdb.com/find?q=\" + subtext;\n break;\n\n case \"m\":\n window.location = \"https://www.themoviedb.org/search?query=\" + subtext;\n break;\n\n case \"r\":\n window.location = \"https://www.reddit.com/search?q=\" + subtext;\n break;\n\n case \"q\":\n window.location = \"https://www.qwant.com/?q=\" + subtext;\n break;\n\n case \"so\":\n window.location = \"https://soundcloud.com/search?q=\" + subtext;\n break;\n\n case \"s\":\n window.location = \"https://open.spotify.com/search/results/\" + subtext;\n break;\n\n case \"t\":\n window.location = \"https://trakt.tv/search?query=\" + subtext;\n break;\n\n case \"tv\":\n window.location = \"https://www.thetvdb.com/search?query=\" + subtext;\n break;\n\n case \"y\":\n window.location = \"https://www.youtube.com/results?search_query=\" + subtext;\n break;\n\n case \"w\":\n window.location = \"https://en.wikipedia.org/w/index.php?search=\" + subtext;\n break;\n\n case \"p\":\n window.location = \"https://app.plex.tv/desktop/#!/search?query=\" + subtext;\n break;\n\n case \"rt\":\n window.location = \"https://www.rottentomatoes.com/search?search=\" + subtext;\n break;\n }\n } else {\n var option = text.substr(1);\n\n switch (option) {\n case \"d\":\n window.location = \"https://www.duckduckgo.com\";\n break;\n\n case \"y\":\n window.location = \"https://www.youtube.com\";\n break;\n\n case \"r\":\n window.location = \"https://reddit.com\";\n break;\n\n case \"s\":\n window.location = \"https://open.spotify.com\";\n break;\n }\n }\n } else if (validURL(text)) {\n if (containsProtocol(text)) window.location = text;else window.location = \"https://\" + text;\n } else {\n window.location = \"https://www.google.com/search?q=\" + text;\n }\n} // Source: https://stackoverflow.com/questions/5717093/check-if-a-javascript-string-is-a-url\n\n\nfunction validURL(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/)?' + // protocol\n '((([a-z\\\\d]([a-z\\\\d-]*[a-z\\\\d])*)\\\\.)+[a-z]{2,}|' + // domain name\n '((\\\\d{1,3}\\\\.){3}\\\\d{1,3}))' + // OR ip (v4) address\n '(\\\\:\\\\d+)?(\\\\/[-a-z\\\\d%_.~+]*)*' + // port and path\n '(\\\\?[;&a-z\\\\d%_.~+=-]*)?' + // query string\n '(\\\\#[-a-z\\\\d_]*)?$', 'i'); // fragment locator\n\n return !!pattern.test(str);\n}\n\nfunction containsProtocol(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/){1}.*', 'i');\n return !!pattern.test(str);\n}\n\nString.prototype.replaceAll = function (search, replacement) {\n var target = this;\n return target.split(search).join(replacement);\n};\n\nvar _c, _c2, _c3, _c4, _c5, _c6, _c7, _c8, _c9, _c10, _c11, _c12;\n\n$RefreshReg$(_c, \"Homepage\");\n$RefreshReg$(_c2, \"Search\");\n$RefreshReg$(_c3, \"Header\");\n$RefreshReg$(_c4, \"Applications\");\n$RefreshReg$(_c5, \"App\");\n$RefreshReg$(_c6, \"Bookmarks\");\n$RefreshReg$(_c7, \"LinkGroups\");\n$RefreshReg$(_c8, \"LinkItem\");\n$RefreshReg$(_c9, \"ModalMenu\");\n$RefreshReg$(_c10, \"Provider\");\n$RefreshReg$(_c11, \"ModalInit\");\n$RefreshReg$(_c12, \"Clock\");","map":{"version":3,"sources":["/home/seanedmunds/dev/home-page/src/index.js"],"names":["React","useState","useEffect","ReactDOM","Homepage","date","greet","Search","handleKeyPress","Header","props","Applications","appList","getApps","items","i","apps","length","push","name","url","icon","NSFW","App","classNameType","hrefUrl","iconName","Bookmarks","bookmarkList","getLinks","bookmarks","category","links","LinkGroups","LinkItem","link","ModalMenu","providers","getProviders","updateTheme","Provider","provider","prefix","ModalInit","render","document","getElementById","currentDate","Date","dateOptions","weekday","year","month","day","toLocaleDateString","fixDigits","k","currentTime","Math","floor","getHours","easterEggChance","random","greetings","require","timeBased","easterEggs","messages","easteregg","concat","message","easterEggText","Clock","setDate","refreshClock","timerId","setInterval","cleanup","clearInterval","hour","minutes","getMinutes","midday","time","applications","getThemes","themes","e","themeName","target","innerHTML","toLowerCase","console","log","indexOf","sindex","cycle","key","keyCode","which","text","value","replaceAll","option","substr","subtext","search","preventDefault","stopPropagation","streamers","streamer","updateLabel","window","location","validURL","containsProtocol","str","pattern","RegExp","test","String","prototype","replacement","split","join"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { useState, useEffect } from 'react';\nimport ReactDOM from 'react-dom';\n//import { unstable_createPortal } from 'react-dom';\nimport './index.css';\n\nfunction Homepage() {\n return (\n \n \n \n
\n \n \n
\n \n \n \n
\n \n \n
\n \n \n
\n \n );\n}\n\nfunction Search() {\n return (\n \n )\n}\n\nfunction Header(props) {\n return (\n \n );\n}\n\nfunction Applications() {\n let appList = getApps();\n var items = [];\n for (var i = 0; i < appList.apps.length; i++) {\n items.push(\n \n );\n }\n return (\n \n Applications
\n \n {items}\n
\n \n );\n}\n\nfunction App(props) {\n let classNameType = props.NSFW + \"-content\";\n let hrefUrl = \"https://\" + props.url;\n let iconName = \"mdi-\" + props.icon;\n return (\n \n );\n}\n\nfunction Bookmarks() {\n let bookmarkList = getLinks();\n var items = [];\n for (var i = 0; i < bookmarkList.bookmarks.length; i++) {\n items.push(\n \n );\n }\n return (\n \n Bookmarks
\n \n {items}\n
\n \n );\n}\n\nfunction LinkGroups(props) {\n var items = [];\n for (var i = 0; i < props.links.length; i++) {\n items.push(\n \n );\n }\n return (\n \n
{props.category}
\n {items}\n \n );\n}\n\nfunction LinkItem(props) {\n return (\n \n );\n}\n\nfunction ModalMenu() {\n var providers = getProviders();\n var items = [];\n for (var i = 0; i < providers.providers.length; i++) {\n items.push(\n \n );\n }\n return (\n \n \n \n\n
Color themes
\n\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n\n\n
Search options
\n
\n \n \n \n | Website | \n Prefix | \n
\n {items}\n \n
\n \n\n \n
\n \n );\n}\n\nfunction Provider(props) {\n return (\n \n | {props.provider.name} | \n {props.provider.prefix} | \n
\n );\n}\n\nfunction ModalInit() {\n return (\n \n );\n}\n\nReactDOM.render(\n ,\n document.getElementById('root')\n);\n\n//Functions below this line are for calculating data for\n//other functions\n\nfunction date() {\n let currentDate = new Date();\n let dateOptions = {\n weekday: \"long\",\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\"\n };\n let date = currentDate.toLocaleDateString(\"en-GB\", dateOptions);\n return date;\n}\nfunction fixDigits(k) {\n if (k < 10) {\n return \"0\" + k;\n }\n else {\n return k;\n }\n}\nfunction greet() {\n let currentTime = new Date();\n let greet = Math.floor(currentTime.getHours() / 6);\n let easterEggChance = Math.floor(Math.random() * 100);\n let greetings = require('./messages.json');\n let timeBased = [];\n let easterEggs = [];\n for (var i = 0; i < greetings.messages.length; i++) {\n if (greetings.messages[i].easteregg === \"FALSE\") {\n timeBased = timeBased.concat(greetings.messages[i]);\n } else {\n easterEggs = easterEggs.concat(greetings.messages[i]);\n }\n }\n if (easterEggChance > 10) {\n return timeBased[greet].message;\n } else {\n let easterEggText = Math.floor(Math.random() * easterEggs.length);\n return easterEggs[easterEggText].message;\n }\n}\nfunction Clock() {\n const [date, setDate] = useState(new Date());\n\n function refreshClock() {\n setDate(new Date());\n }\n useEffect(() => {\n const timerId = setInterval(refreshClock, 1000);\n return function cleanup() {\n clearInterval(timerId);\n };\n }, []);\n\n var hour = date.getHours();\n var minutes = date.getMinutes();\n //var seconds = date.getSeconds();\n var midday = \"AM\";\n midday = (hour >= 12) ? \"PM\" : \"AM\";\n hour = (hour === 0) ? 12 : ((hour > 12) ? (hour - 12) : hour);\n minutes = fixDigits(minutes);\n //seconds = fixDigits(seconds);\n let time = hour + \":\" + minutes + \" \" + midday;\n\n return (\n {time}
\n\n );\n}\nfunction getApps() {\n let applications = require('./apps.json');\n return applications;\n}\nfunction getLinks() {\n let links = require('./links.json');\n return links;\n}\nfunction getProviders() {\n let providers = require('./providers.json');\n return providers;\n}\nfunction getThemes() {\n let themes = require('./themes.json');\n return themes;\n}\n\nfunction updateTheme(e) {\n var themes = getThemes();\n var themeName = e.target.innerHTML.toLowerCase();\n console.log(themes.themes.name.indexOf(themeName));\n}\n\nfunction handleKeyPress(e) {\n var sindex = 0;\n var cycle = false;\n var key = e.keyCode || e.which;\n var text = e.target.value.replaceAll(\"+\", \"%2B\");\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n if (key == 13) { // Search functions\n search(text);\n }\n if (key == 9) { // Tab Completion Functions\n e.preventDefault();\n e.stopPropagation();\n if (text[0] === ';') {\n switch (option) {\n case 't':\n var streamers = ['admiralbahroo', 'moonmoon_ow', 'witwix'];\n if (!subtext || cycle) {\n cycle = true;\n if (sindex > streamers.length - 1) sindex = 0;\n document.getElementById(\"keywords\").value = ';t ' + streamers[sindex++];\n return;\n }\n for (var streamer of streamers) {\n if (subtext === streamer.substr(0, subtext.length)) {\n document.getElementById(\"keywords\").value = ';t ' + streamer;\n return;\n }\n }\n break;\n }\n }\n }\n if(key == 32){ //Space to go to search\nupdateLabel(text);\n }\n sindex = 0;\n cycle = false;\n updateLabel(text);\n}\n\nfunction updateLabel(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n if (text[0] === '/') {\n// if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n document.getElementById(\"searchType\").innerHTML = \"Allmusic search\";\n break;\n case \"d\":\n document.getElementById(\"searchType\").innerHTML = \"Duck Duck Go search\";\n break;\n case \"di\":\n document.getElementById(\"searchType\").innerHTML = \"Discogs search\";\n break;\n case \"i\":\n document.getElementById(\"searchType\").innerHTML = \"IMDB search\";\n break;\n case \"m\":\n document.getElementById(\"searchType\").innerHTML = \"TheMovieDB search\";\n break;\n case \"r\":\n document.getElementById(\"searchType\").innerHTML = \"Reddit search\";\n break;\n case \"q\":\n document.getElementById(\"searchType\").innerHTML = \"Qwant search\";\n break;\n case \"so\":\n document.getElementById(\"searchType\").innerHTML = \"Soundcloud search\";\n break;\n case \"s\":\n document.getElementById(\"searchType\").innerHTML = \"Spotify search\";\n break;\n case \"tv\":\n document.getElementById(\"searchType\").innerHTML = \"TheTVDB search\";\n break;\n case \"t\":\n document.getElementById(\"searchType\").innerHTML = \"Trakt search\";\n break;\n case \"y\":\n document.getElementById(\"searchType\").innerHTML = \"YouTube search\";\n break;\n case \"w\":\n document.getElementById(\"searchType\").innerHTML = \"Wikipedia search\";\n break;\n case \"p\":\n document.getElementById(\"searchType\").innerHTML = \"Plex search\";\n break;\n case \"rt\":\n document.getElementById(\"searchType\").innerHTML = \"Rotten Tomatoes search\";\n break;\n default:\n document.getElementById(\"searchType\").innerHTML = \"Invalid search\";\n break;\n }\n}else {\n document.getElementById(\"searchType\").innerHTML = \"Google search\";\n }\n}\n\nfunction search(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n if (text[0] === '/') {\n if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n window.location = \"https://www.allmusic.com/search/all/\" + subtext;\n break;\n case \"d\":\n window.location = \"https://duckduckgo.com/?q=\" + subtext;\n break;\n case \"di\":\n window.location = \"https://www.discogs.com/search/?q=\" + subtext;\n break;\n case \"i\":\n window.location = \"https://www.imdb.com/find?q=\" + subtext;\n break;\n case \"m\":\n window.location = \"https://www.themoviedb.org/search?query=\" + subtext;\n break;\n case \"r\":\n window.location = \"https://www.reddit.com/search?q=\" + subtext;\n break;\n case \"q\":\n window.location = \"https://www.qwant.com/?q=\" + subtext;\n break;\n case \"so\":\n window.location = \"https://soundcloud.com/search?q=\" + subtext;\n break;\n case \"s\":\n window.location = \"https://open.spotify.com/search/results/\" + subtext;\n break;\n case \"t\":\n window.location = \"https://trakt.tv/search?query=\" + subtext;\n break;\n case \"tv\":\n window.location = \"https://www.thetvdb.com/search?query=\" + subtext;\n break;\n case \"y\":\n window.location = \"https://www.youtube.com/results?search_query=\" + subtext;\n break;\n case \"w\":\n window.location = \"https://en.wikipedia.org/w/index.php?search=\" + subtext;\n break;\n case \"p\":\n window.location = \"https://app.plex.tv/desktop/#!/search?query=\" + subtext;\n break;\n case \"rt\":\n window.location = \"https://www.rottentomatoes.com/search?search=\" + subtext;\n break;\n }\n } else {\n var option = text.substr(1);\n switch (option) {\n case \"d\":\n window.location = \"https://www.duckduckgo.com\";\n break;\n case \"y\":\n window.location = \"https://www.youtube.com\";\n break;\n case \"r\":\n window.location = \"https://reddit.com\";\n break;\n case \"s\":\n window.location = \"https://open.spotify.com\";\n break;\n }\n }\n } else if (validURL(text)) {\n if (containsProtocol(text))\n window.location = text;\n else\n window.location = \"https://\" + text;\n } else {\n window.location = \"https://www.google.com/search?q=\" + text;\n }\n}\n\n// Source: https://stackoverflow.com/questions/5717093/check-if-a-javascript-string-is-a-url\nfunction validURL(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/)?' + // protocol\n '((([a-z\\\\d]([a-z\\\\d-]*[a-z\\\\d])*)\\\\.)+[a-z]{2,}|' + // domain name\n '((\\\\d{1,3}\\\\.){3}\\\\d{1,3}))' + // OR ip (v4) address\n '(\\\\:\\\\d+)?(\\\\/[-a-z\\\\d%_.~+]*)*' + // port and path\n '(\\\\?[;&a-z\\\\d%_.~+=-]*)?' + // query string\n '(\\\\#[-a-z\\\\d_]*)?$', 'i'); // fragment locator\n return !!pattern.test(str);\n}\n\nfunction containsProtocol(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/){1}.*', 'i');\n return !!pattern.test(str);\n}\n\nString.prototype.replaceAll = function(search, replacement) {\n var target = this;\n return target.split(search).join(replacement);\n};"]},"metadata":{},"sourceType":"module"}
\ No newline at end of file
diff --git a/node_modules/.cache/babel-loader/48b42668f92b581ee8503513588fb7f7.json b/node_modules/.cache/babel-loader/48b42668f92b581ee8503513588fb7f7.json
new file mode 100644
index 00000000..b8ddf52d
--- /dev/null
+++ b/node_modules/.cache/babel-loader/48b42668f92b581ee8503513588fb7f7.json
@@ -0,0 +1 @@
+{"ast":null,"code":"var _jsxFileName = \"/home/seanedmunds/dev/home-page/src/index.js\",\n _s = $RefreshSig$();\n\nimport React from 'react';\nimport { useState, useEffect } from 'react';\nimport ReactDOM from 'react-dom';\nimport './index.css';\nimport { jsxDEV as _jsxDEV } from \"react/jsx-dev-runtime\";\n\nconst setValueFromLocalStorage = property => {\n let value = localStorage.getItem(property);\n setValue(property, value);\n};\n\nconst setValue = (property, value) => {\n if (value) {\n document.documentElement.style.setProperty(`--${property}`, value);\n const input = document.querySelector(`#${property}`);\n\n if (input) {\n value = value.replace('px', '');\n input.value = value;\n }\n }\n};\n\nfunction Homepage() {\n setTheme();\n return /*#__PURE__*/_jsxDEV(\"main\", {\n id: \"container\",\n className: \"fade\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Search, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 28,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 27,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Header, {\n date: date(),\n greet: greet()\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 31,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 30,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Applications, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 37,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 36,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Bookmarks, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 40,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 39,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(ModalMenu, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 43,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 42,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(ModalInit, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 46,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 45,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 26,\n columnNumber: 5\n }, this);\n}\n\n_c = Homepage;\n\nfunction Search() {\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"search\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"abackground\",\n children: [/*#__PURE__*/_jsxDEV(\"input\", {\n name: \"keywords\",\n type: \"text\",\n className: \"keyword\",\n id: \"keywords\",\n size: \"50\",\n spellCheck: \"true\",\n placeholder: \"\"\n /*onFocus={this.placeholder = \"\"} onBlur={this.placeholder = ''}*/\n ,\n autoComplete: \"off\",\n autoFocus: true,\n onKeyUp: handleKeyPress\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 56,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n id: \"searchType\",\n className: \"Input-label\",\n children: \"Google search\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 57,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 55,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 54,\n columnNumber: 5\n }, this);\n}\n\n_c2 = Search;\n\nfunction Header(props) {\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"header\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n id: \"greeting_block\",\n children: /*#__PURE__*/_jsxDEV(\"h1\", {\n id: \"header_greet\",\n children: props.greet\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 67,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 66,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"date_block\",\n children: [/*#__PURE__*/_jsxDEV(\"h2\", {\n id: \"header_date\",\n children: props.date\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 70,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(Clock, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 71,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 69,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 65,\n columnNumber: 5\n }, this);\n}\n\n_c3 = Header;\n\nfunction Applications() {\n let appList = getApps();\n var items = [];\n\n for (var i = 0; i < appList.apps.length; i++) {\n var safe = appList.apps[i].NSFW;\n var NSFWEnabled = localStorage.getItem(\"contenttype\");\n\n if (safe === \"SAFE\") {\n items.push( /*#__PURE__*/_jsxDEV(App, {\n name: appList.apps[i].name,\n url: appList.apps[i].url,\n icon: appList.apps[i].icon,\n NSFW: appList.apps[i].NSFW\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 85,\n columnNumber: 9\n }, this));\n } else if (safe === \"NSFW\" && NSFWEnabled) {\n items.push( /*#__PURE__*/_jsxDEV(App, {\n name: appList.apps[i].name,\n url: appList.apps[i].url,\n icon: appList.apps[i].icon,\n NSFW: appList.apps[i].NSFW\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 95,\n columnNumber: 9\n }, this));\n } else {}\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"apps\",\n children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n children: \"Applications\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 110,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"apps_loop\",\n children: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 111,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 109,\n columnNumber: 5\n }, this);\n}\n\n_c4 = Applications;\n\nfunction App(props) {\n let classNameType = props.NSFW + \"-content\";\n let hrefUrl = \"https://\" + props.url;\n let iconName = \"mdi-\" + props.icon;\n return /*#__PURE__*/_jsxDEV(\"div\", {\n className: classNameType,\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: hrefUrl,\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_item\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_icon\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify icon\",\n \"data-icon\": iconName\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 128,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 127,\n columnNumber: 13\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_text\",\n children: [/*#__PURE__*/_jsxDEV(\"span\", {\n id: \"app-name\",\n children: props.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 131,\n columnNumber: 15\n }, this), /*#__PURE__*/_jsxDEV(\"span\", {\n id: \"app-address\",\n children: props.url\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 132,\n columnNumber: 15\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 130,\n columnNumber: 13\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 126,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 125,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 124,\n columnNumber: 7\n }, this);\n}\n\n_c5 = App;\n\nfunction Bookmarks() {\n let bookmarkList = getLinks();\n var items = [];\n\n for (var i = 0; i < bookmarkList.bookmarks.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(LinkGroups, {\n category: bookmarkList.bookmarks[i].category,\n links: bookmarkList.bookmarks[i].links\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 145,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"links\",\n children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n children: \"Bookmarks\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 154,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"links_loop\",\n children: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 155,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 153,\n columnNumber: 5\n }, this);\n}\n\n_c6 = Bookmarks;\n\nfunction LinkGroups(props) {\n var items = [];\n\n for (var i = 0; i < props.links.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(LinkItem, {\n link: props.links[i]\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 166,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"links_item\",\n children: [/*#__PURE__*/_jsxDEV(\"h4\", {\n children: props.category\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 174,\n columnNumber: 7\n }, this), items]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 173,\n columnNumber: 5\n }, this);\n}\n\n_c7 = LinkGroups;\n\nfunction LinkItem(props) {\n return /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: props.link.url,\n className: \"theme_color-border theme_text-select\",\n children: props.link.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 183,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 182,\n columnNumber: 5\n }, this);\n}\n\n_c8 = LinkItem;\n\nfunction ModalMenu() {\n var providers = getProviders();\n var items = [];\n var isChecked = localStorage.getItem(\"contenttype\");\n console.log(localStorage.getItem(\"contenttype\"));\n\n for (var i = 0; i < providers.providers.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(Provider, {\n provider: providers.providers[i]\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 195,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"modal\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n children: [/*#__PURE__*/_jsxDEV(\"header\", {\n id: \"modal-header\",\n children: [/*#__PURE__*/_jsxDEV(\"h1\", {\n children: \"Options\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 205,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n href: \"#\",\n title: \"Close\",\n className: \"modal-close\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-close\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 207,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 206,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 204,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"h2\", {\n children: \"Color themes\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 211,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"modal-theme\",\n children: [/*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"blackboard\",\n className: \"theme-button theme-blackboard\",\n onClick: updateTheme,\n children: \"Blackboard\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 214,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"gazette\",\n className: \"theme-button theme-gazette\",\n onClick: updateTheme,\n children: \"Gazette\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 215,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"espresso\",\n className: \"theme-button theme-espresso\",\n onClick: updateTheme,\n children: \"Espresso\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 216,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cab\",\n className: \"theme-button theme-cab\",\n onClick: updateTheme,\n children: \"Cab\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 217,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cloud\",\n className: \"theme-button theme-cloud\",\n onClick: updateTheme,\n children: \"Cloud\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 218,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"lime\",\n className: \"theme-button theme-lime\",\n onClick: updateTheme,\n children: \"Lime\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 219,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"passion\",\n className: \"theme-button theme-passion\",\n onClick: updateTheme,\n children: \"Passion\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 220,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"blues\",\n className: \"theme-button theme-blues\",\n onClick: updateTheme,\n children: \"Blues\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 221,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"chalk\",\n className: \"theme-button theme-chalk\",\n onClick: updateTheme,\n children: \"Chalk\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 222,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"tron\",\n className: \"theme-button theme-tron\",\n onClick: updateTheme,\n children: \"Tron\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 223,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"paper\",\n className: \"theme-button theme-paper\",\n onClick: updateTheme,\n children: \"Paper\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 224,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cyberpunk\",\n className: \"theme-button theme-cyberpunk\",\n onClick: updateTheme,\n children: \"Cyberpunk\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 225,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"quadra\",\n className: \"theme-button theme-panam\",\n onClick: updateTheme,\n children: \"Quadra\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 226,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"panam\",\n className: \"theme-button theme-panam\",\n onClick: updateTheme,\n children: \"Panam\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 227,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"touch\",\n className: \"theme-button theme-touch\",\n onClick: updateTheme,\n children: \"Touch\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 228,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"peek\",\n className: \"theme-button theme-peek\",\n onClick: updateTheme,\n children: \"Peek\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 229,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 213,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"h2\", {\n children: \"Search options\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 233,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"providers\",\n children: /*#__PURE__*/_jsxDEV(\"table\", {\n children: /*#__PURE__*/_jsxDEV(\"tbody\", {\n children: [/*#__PURE__*/_jsxDEV(\"tr\", {\n children: [/*#__PURE__*/_jsxDEV(\"th\", {\n children: \"Website\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 238,\n columnNumber: 19\n }, this), /*#__PURE__*/_jsxDEV(\"th\", {\n children: \"Prefix\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 239,\n columnNumber: 19\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 237,\n columnNumber: 17\n }, this), items]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 236,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 235,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 234,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"header\", {\n id: \"modal-footer\",\n children: [/*#__PURE__*/_jsxDEV(\"a\", {\n href: \"https://github.com/jeroenpardon/\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-github-box\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 247,\n columnNumber: 54\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 247,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n href: \"https://materialdesignicons.com/\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-material-design\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 248,\n columnNumber: 54\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 248,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(HideButton, {\n checked: isChecked\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 249,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 246,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 203,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 202,\n columnNumber: 5\n }, this);\n}\n\n_c9 = ModalMenu;\n\nfunction HideButton(props) {\n console.log(props.checked);\n\n if (props.checked === \"true\") {\n console.log(\"icon should be grey\");\n return /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"sneaky\",\n children: [/*#__PURE__*/_jsxDEV(\"input\", {\n type: \"checkbox\",\n id: \"contenttype\",\n onChange: udpateDisplayedItems,\n defaultChecked: true\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 263,\n columnNumber: 31\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n for: \"contenttype\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-domino-mask\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 264,\n columnNumber: 32\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 264,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 263,\n columnNumber: 7\n }, this);\n } else {\n console.log(\"icon should be white\");\n return /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"sneaky\",\n children: [/*#__PURE__*/_jsxDEV(\"input\", {\n type: \"checkbox\",\n id: \"contenttype\",\n onChange: udpateDisplayedItems,\n defaultChecked: false\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 269,\n columnNumber: 31\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n for: \"contenttype\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-domino-mask\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 270,\n columnNumber: 32\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 270,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 269,\n columnNumber: 7\n }, this);\n }\n}\n\n_c10 = HideButton;\n\nfunction Provider(props) {\n return /*#__PURE__*/_jsxDEV(\"tr\", {\n children: [/*#__PURE__*/_jsxDEV(\"td\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: props.provider.url,\n children: props.provider.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 278,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 278,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"td\", {\n children: props.provider.prefix\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 279,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 277,\n columnNumber: 5\n }, this);\n}\n\n_c11 = Provider;\n\nfunction ModalInit() {\n setDisplayedItems();\n return /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"modal_init\",\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n className: \"btn\",\n href: \"#modal\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify icon\",\n \"data-icon\": \"mdi-xbox-controller-menu\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 289,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 288,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 287,\n columnNumber: 5\n }, this);\n}\n\n_c12 = ModalInit;\nReactDOM.render( /*#__PURE__*/_jsxDEV(Homepage, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 296,\n columnNumber: 3\n}, this), document.getElementById('root')); //Functions below this line are for calculating data for\n//other functions\n\nfunction date() {\n let currentDate = new Date();\n let dateOptions = {\n weekday: \"long\",\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\"\n };\n let date = currentDate.toLocaleDateString(\"en-GB\", dateOptions);\n return date;\n}\n\nfunction fixDigits(k) {\n if (k < 10) {\n return \"0\" + k;\n } else {\n return k;\n }\n}\n\nfunction greet() {\n let currentTime = new Date();\n let greet = Math.floor(currentTime.getHours() / 6);\n let easterEggChance = Math.floor(Math.random() * 100);\n\n let greetings = require('./messages.json');\n\n let timeBased = [];\n let easterEggs = [];\n\n for (var i = 0; i < greetings.messages.length; i++) {\n if (greetings.messages[i].easteregg === \"FALSE\") {\n timeBased = timeBased.concat(greetings.messages[i]);\n } else {\n easterEggs = easterEggs.concat(greetings.messages[i]);\n }\n }\n\n if (easterEggChance > 10) {\n return timeBased[greet].message;\n } else {\n let easterEggText = Math.floor(Math.random() * easterEggs.length);\n return easterEggs[easterEggText].message;\n }\n}\n\nfunction Clock() {\n _s();\n\n const [date, setDate] = useState(new Date());\n\n function refreshClock() {\n setDate(new Date());\n }\n\n useEffect(() => {\n const timerId = setInterval(refreshClock, 1000);\n return function cleanup() {\n clearInterval(timerId);\n };\n }, []);\n var hour = date.getHours();\n var minutes = date.getMinutes(); //var seconds = date.getSeconds();\n\n var midday = \"AM\";\n midday = hour >= 12 ? \"PM\" : \"AM\";\n hour = hour === 0 ? 12 : hour > 12 ? hour - 12 : hour;\n minutes = fixDigits(minutes); //seconds = fixDigits(seconds);\n\n let time = hour + \":\" + minutes + \" \" + midday;\n return /*#__PURE__*/_jsxDEV(\"h2\", {\n id: \"clock\",\n children: time\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 367,\n columnNumber: 5\n }, this);\n}\n\n_s(Clock, \"Gqi45WOZhU2c0BLYX0HoJeiR0fk=\");\n\n_c13 = Clock;\n\nfunction getApps() {\n let applications = require('./apps.json');\n\n return applications;\n}\n\nfunction getLinks() {\n let links = require('./links.json');\n\n return links;\n}\n\nfunction getProviders() {\n let providers = require('./providers.json');\n\n return providers;\n}\n\nfunction getThemes() {\n let themes = require('./themes.json');\n\n return themes;\n}\n\nfunction updateTheme(e) {\n var themes = getThemes();\n var themeName = e.target.innerHTML.toLowerCase();\n var index = themes.themes.findIndex(function (item, i) {\n return item.name === themeName;\n });\n localStorage.setItem(\"image-background\", themes.themes[index].imagebackground);\n localStorage.setItem(\"color-background\", themes.themes[index].colorbackground);\n localStorage.setItem(\"color-search-background\", themes.themes[index].colorserachbackground);\n localStorage.setItem(\"color-text-pri\", themes.themes[index].colortextpri);\n localStorage.setItem(\"color-text-acc\", themes.themes[index].colortextacc);\n localStorage.setItem(\"color-border\", themes.themes[index].colorborder); //document.documentElement.style.setProperty(prop, `var(--${themeName}${prop.substring(10)})`);\n\n setTheme();\n}\n\nfunction setTheme() {\n setValueFromLocalStorage('image-background');\n setValueFromLocalStorage('color-background');\n setValueFromLocalStorage('color-search-background');\n setValueFromLocalStorage('color-text-pri');\n setValueFromLocalStorage('color-text-acc');\n setValueFromLocalStorage('color-border');\n setValueFromLocalStorage('content-display');\n}\n\nfunction handleKeyPress(e) {\n var sindex = 0;\n var cycle = false;\n var key = e.keyCode || e.which;\n var text = e.target.value.replaceAll(\"+\", \"%2B\");\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n\n if (key === 13) {\n // Search functions\n search(text);\n }\n\n if (key === 9) {\n // Tab Completion Functions\n e.preventDefault();\n e.stopPropagation();\n\n if (text[0] === ';') {\n switch (option) {\n case 't':\n var streamers = ['admiralbahroo', 'moonmoon_ow', 'witwix'];\n\n if (!subtext || cycle) {\n cycle = true;\n if (sindex > streamers.length - 1) sindex = 0;\n document.getElementById(\"keywords\").value = ';t ' + streamers[sindex++];\n return;\n }\n\n for (var streamer of streamers) {\n if (subtext === streamer.substr(0, subtext.length)) {\n document.getElementById(\"keywords\").value = ';t ' + streamer;\n return;\n }\n }\n\n break;\n\n default:\n break;\n }\n }\n }\n\n if (key === 32) {\n //Space to go to search\n updateLabel(text);\n }\n\n sindex = 0;\n cycle = false;\n updateLabel(text);\n}\n\nfunction updateLabel(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n\n if (text[0] === '/') {\n // if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n document.getElementById(\"searchType\").innerHTML = \"Allmusic search\";\n break;\n\n case \"d\":\n document.getElementById(\"searchType\").innerHTML = \"Duck Duck Go search\";\n break;\n\n case \"di\":\n document.getElementById(\"searchType\").innerHTML = \"Discogs search\";\n break;\n\n case \"i\":\n document.getElementById(\"searchType\").innerHTML = \"IMDB search\";\n break;\n\n case \"m\":\n document.getElementById(\"searchType\").innerHTML = \"TheMovieDB search\";\n break;\n\n case \"r\":\n document.getElementById(\"searchType\").innerHTML = \"Reddit search\";\n break;\n\n case \"q\":\n document.getElementById(\"searchType\").innerHTML = \"Qwant search\";\n break;\n\n case \"so\":\n document.getElementById(\"searchType\").innerHTML = \"Soundcloud search\";\n break;\n\n case \"s\":\n document.getElementById(\"searchType\").innerHTML = \"Spotify search\";\n break;\n\n case \"tv\":\n document.getElementById(\"searchType\").innerHTML = \"TheTVDB search\";\n break;\n\n case \"t\":\n document.getElementById(\"searchType\").innerHTML = \"Trakt search\";\n break;\n\n case \"y\":\n document.getElementById(\"searchType\").innerHTML = \"YouTube search\";\n break;\n\n case \"w\":\n document.getElementById(\"searchType\").innerHTML = \"Wikipedia search\";\n break;\n\n case \"p\":\n document.getElementById(\"searchType\").innerHTML = \"Plex search\";\n break;\n\n case \"rt\":\n document.getElementById(\"searchType\").innerHTML = \"Rotten Tomatoes search\";\n break;\n\n default:\n document.getElementById(\"searchType\").innerHTML = \"Invalid search\";\n break;\n }\n } else {\n document.getElementById(\"searchType\").innerHTML = \"Google search\";\n }\n}\n\nfunction search(text) {\n if (text[0] === '/') {\n if (text.indexOf(' ') > -1) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n\n switch (option) {\n case \"am\":\n window.location = \"https://www.allmusic.com/search/all/\" + subtext;\n break;\n\n case \"d\":\n window.location = \"https://duckduckgo.com/?q=\" + subtext;\n break;\n\n case \"di\":\n window.location = \"https://www.discogs.com/search/?q=\" + subtext;\n break;\n\n case \"i\":\n window.location = \"https://www.imdb.com/find?q=\" + subtext;\n break;\n\n case \"m\":\n window.location = \"https://www.themoviedb.org/search?query=\" + subtext;\n break;\n\n case \"r\":\n window.location = \"https://www.reddit.com/search?q=\" + subtext;\n break;\n\n case \"q\":\n window.location = \"https://www.qwant.com/?q=\" + subtext;\n break;\n\n case \"so\":\n window.location = \"https://soundcloud.com/search?q=\" + subtext;\n break;\n\n case \"s\":\n window.location = \"https://open.spotify.com/search/results/\" + subtext;\n break;\n\n case \"t\":\n window.location = \"https://trakt.tv/search?query=\" + subtext;\n break;\n\n case \"tv\":\n window.location = \"https://www.thetvdb.com/search?query=\" + subtext;\n break;\n\n case \"y\":\n window.location = \"https://www.youtube.com/results?search_query=\" + subtext;\n break;\n\n case \"w\":\n window.location = \"https://en.wikipedia.org/w/index.php?search=\" + subtext;\n break;\n\n case \"p\":\n window.location = \"https://app.plex.tv/desktop/#!/search?query=\" + subtext;\n break;\n\n case \"rt\":\n window.location = \"https://www.rottentomatoes.com/search?search=\" + subtext;\n break;\n\n default:\n break;\n }\n } else {\n var option = text.substr(1);\n\n switch (option) {\n case \"d\":\n window.location = \"https://www.duckduckgo.com\";\n break;\n\n case \"y\":\n window.location = \"https://www.youtube.com\";\n break;\n\n case \"r\":\n window.location = \"https://reddit.com\";\n break;\n\n case \"s\":\n window.location = \"https://open.spotify.com\";\n break;\n }\n }\n } else if (validURL(text)) {\n if (containsProtocol(text)) window.location = text;else window.location = \"https://\" + text;\n } else {\n window.location = \"https://www.google.com/search?q=\" + text;\n }\n}\n\nfunction validURL(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/)?' + // protocol\n '((([a-z\\\\d]([a-z\\\\d-]*[a-z\\\\d])*)\\\\.)+[a-z]{2,}|' + // domain name\n '((\\\\d{1,3}\\\\.){3}\\\\d{1,3}))' + // OR ip (v4) address\n '(\\\\:\\\\d+)?(\\\\/[-a-z\\\\d%_.~+]*)*' + // port and path\n '(\\\\?[;&a-z\\\\d%_.~+=-]*)?' + // query string\n '(\\\\#[-a-z\\\\d_]*)?$', 'i'); // fragment locator\n\n return !!pattern.test(str);\n}\n\nfunction containsProtocol(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/){1}.*', 'i');\n return !!pattern.test(str);\n}\n\nString.prototype.replaceAll = function (search, replacement) {\n var target = this;\n return target.split(search).join(replacement);\n};\n\nfunction udpateDisplayedItems(e) {\n localStorage.setItem('contenttype', e.target.checked);\n\n if (e.target.checked) {\n localStorage.setItem('content-display', 'none');\n } else {\n localStorage.setItem('content-display', 'block');\n }\n\n setDisplayedItems();\n}\n\nfunction setDisplayedItems() {\n setValueFromLocalStorage('contenttype');\n setValueFromLocalStorage('content-display');\n}\n\nvar _c, _c2, _c3, _c4, _c5, _c6, _c7, _c8, _c9, _c10, _c11, _c12, _c13;\n\n$RefreshReg$(_c, \"Homepage\");\n$RefreshReg$(_c2, \"Search\");\n$RefreshReg$(_c3, \"Header\");\n$RefreshReg$(_c4, \"Applications\");\n$RefreshReg$(_c5, \"App\");\n$RefreshReg$(_c6, \"Bookmarks\");\n$RefreshReg$(_c7, \"LinkGroups\");\n$RefreshReg$(_c8, \"LinkItem\");\n$RefreshReg$(_c9, \"ModalMenu\");\n$RefreshReg$(_c10, \"HideButton\");\n$RefreshReg$(_c11, \"Provider\");\n$RefreshReg$(_c12, \"ModalInit\");\n$RefreshReg$(_c13, \"Clock\");","map":{"version":3,"sources":["/home/seanedmunds/dev/home-page/src/index.js"],"names":["React","useState","useEffect","ReactDOM","setValueFromLocalStorage","property","value","localStorage","getItem","setValue","document","documentElement","style","setProperty","input","querySelector","replace","Homepage","setTheme","date","greet","Search","handleKeyPress","Header","props","Applications","appList","getApps","items","i","apps","length","safe","NSFW","NSFWEnabled","push","name","url","icon","App","classNameType","hrefUrl","iconName","Bookmarks","bookmarkList","getLinks","bookmarks","category","links","LinkGroups","LinkItem","link","ModalMenu","providers","getProviders","isChecked","console","log","updateTheme","HideButton","checked","udpateDisplayedItems","Provider","provider","prefix","ModalInit","setDisplayedItems","render","getElementById","currentDate","Date","dateOptions","weekday","year","month","day","toLocaleDateString","fixDigits","k","currentTime","Math","floor","getHours","easterEggChance","random","greetings","require","timeBased","easterEggs","messages","easteregg","concat","message","easterEggText","Clock","setDate","refreshClock","timerId","setInterval","cleanup","clearInterval","hour","minutes","getMinutes","midday","time","applications","getThemes","themes","e","themeName","target","innerHTML","toLowerCase","index","findIndex","item","setItem","imagebackground","colorbackground","colorserachbackground","colortextpri","colortextacc","colorborder","sindex","cycle","key","keyCode","which","text","replaceAll","option","substr","indexOf","subtext","search","preventDefault","stopPropagation","streamers","streamer","updateLabel","window","location","validURL","containsProtocol","str","pattern","RegExp","test","String","prototype","replacement","split","join"],"mappings":";;;AAAA,OAAOA,KAAP,MAAkB,OAAlB;AACA,SAASC,QAAT,EAAmBC,SAAnB,QAAoC,OAApC;AACA,OAAOC,QAAP,MAAqB,WAArB;AACA,OAAO,aAAP;;;AAEA,MAAMC,wBAAwB,GAAGC,QAAQ,IAAI;AAC3C,MAAIC,KAAK,GAAGC,YAAY,CAACC,OAAb,CAAqBH,QAArB,CAAZ;AACAI,EAAAA,QAAQ,CAACJ,QAAD,EAAWC,KAAX,CAAR;AACD,CAHD;;AAIA,MAAMG,QAAQ,GAAG,CAACJ,QAAD,EAAWC,KAAX,KAAqB;AACpC,MAAIA,KAAJ,EAAW;AACPI,IAAAA,QAAQ,CAACC,eAAT,CAAyBC,KAAzB,CAA+BC,WAA/B,CAA4C,KAAIR,QAAS,EAAzD,EAA4DC,KAA5D;AAEA,UAAMQ,KAAK,GAAGJ,QAAQ,CAACK,aAAT,CAAwB,IAAGV,QAAS,EAApC,CAAd;;AACA,QAAIS,KAAJ,EAAW;AACPR,MAAAA,KAAK,GAAGA,KAAK,CAACU,OAAN,CAAc,IAAd,EAAoB,EAApB,CAAR;AACAF,MAAAA,KAAK,CAACR,KAAN,GAAcA,KAAd;AACH;AACJ;AACF,CAVD;;AAYA,SAASW,QAAT,GAAoB;AAClBC,EAAAA,QAAQ;AAER,sBACE;AAAM,IAAA,EAAE,EAAC,WAAT;AAAqB,IAAA,SAAS,EAAC,MAA/B;AAAA,4BACI;AAAA,6BACE,QAAC,MAAD;AAAA;AAAA;AAAA;AAAA;AADF;AAAA;AAAA;AAAA;AAAA,YADJ,eAII;AAAA,6BACE,QAAC,MAAD;AACE,QAAA,IAAI,EAAEC,IAAI,EADZ;AAEE,QAAA,KAAK,EAAEC,KAAK;AAFd;AAAA;AAAA;AAAA;AAAA;AADF;AAAA;AAAA;AAAA;AAAA,YAJJ,eAUI;AAAA,6BACE,QAAC,YAAD;AAAA;AAAA;AAAA;AAAA;AADF;AAAA;AAAA;AAAA;AAAA,YAVJ,eAaI;AAAA,6BACE,QAAC,SAAD;AAAA;AAAA;AAAA;AAAA;AADF;AAAA;AAAA;AAAA;AAAA,YAbJ,eAgBI;AAAA,6BACE,QAAC,SAAD;AAAA;AAAA;AAAA;AAAA;AADF;AAAA;AAAA;AAAA;AAAA,YAhBJ,eAmBI;AAAA,6BACE,QAAC,SAAD;AAAA;AAAA;AAAA;AAAA;AADF;AAAA;AAAA;AAAA;AAAA,YAnBJ;AAAA;AAAA;AAAA;AAAA;AAAA,UADF;AAyBD;;KA5BQH,Q;;AA8BT,SAASI,MAAT,GAAkB;AAChB,sBACE;AAAS,IAAA,EAAE,EAAC,QAAZ;AAAA,2BACE;AAAK,MAAA,SAAS,EAAC,aAAf;AAAA,8BACE;AAAO,QAAA,IAAI,EAAC,UAAZ;AAAuB,QAAA,IAAI,EAAC,MAA5B;AAAmC,QAAA,SAAS,EAAC,SAA7C;AAAuD,QAAA,EAAE,EAAC,UAA1D;AAAqE,QAAA,IAAI,EAAC,IAA1E;AAA+E,QAAA,UAAU,EAAC,MAA1F;AAAiG,QAAA,WAAW,EAAC;AAAG;AAAhH;AAAmL,QAAA,YAAY,EAAC,KAAhM;AAAsM,QAAA,SAAS,EAAE,IAAjN;AAAuN,QAAA,OAAO,EAAEC;AAAhO;AAAA;AAAA;AAAA;AAAA,cADF,eAEE;AAAO,QAAA,EAAE,EAAC,YAAV;AAAuB,QAAA,SAAS,EAAC,aAAjC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,cAFF;AAAA;AAAA;AAAA;AAAA;AAAA;AADF;AAAA;AAAA;AAAA;AAAA,UADF;AAQD;;MATQD,M;;AAWT,SAASE,MAAT,CAAgBC,KAAhB,EAAuB;AACrB,sBACE;AAAS,IAAA,EAAE,EAAC,QAAZ;AAAA,4BACE;AAAK,MAAA,EAAE,EAAC,gBAAR;AAAA,6BACE;AAAI,QAAA,EAAE,EAAC,cAAP;AAAA,kBAAuBA,KAAK,CAACJ;AAA7B;AAAA;AAAA;AAAA;AAAA;AADF;AAAA;AAAA;AAAA;AAAA,YADF,eAIE;AAAK,MAAA,EAAE,EAAC,YAAR;AAAA,8BACE;AAAI,QAAA,EAAE,EAAC,aAAP;AAAA,kBAAsBI,KAAK,CAACL;AAA5B;AAAA;AAAA;AAAA;AAAA,cADF,eAEE,QAAC,KAAD;AAAA;AAAA;AAAA;AAAA,cAFF;AAAA;AAAA;AAAA;AAAA;AAAA,YAJF;AAAA;AAAA;AAAA;AAAA;AAAA,UADF;AAWD;;MAZQI,M;;AAcT,SAASE,YAAT,GAAwB;AACtB,MAAIC,OAAO,GAAGC,OAAO,EAArB;AACA,MAAIC,KAAK,GAAG,EAAZ;;AACA,OAAK,IAAIC,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGH,OAAO,CAACI,IAAR,CAAaC,MAAjC,EAAyCF,CAAC,EAA1C,EAA8C;AAC5C,QAAIG,IAAI,GAAGN,OAAO,CAACI,IAAR,CAAaD,CAAb,EAAgBI,IAA3B;AACA,QAAIC,WAAW,GAAG3B,YAAY,CAACC,OAAb,CAAqB,aAArB,CAAlB;;AACA,QAAIwB,IAAI,KAAK,MAAb,EAAqB;AACnBJ,MAAAA,KAAK,CAACO,IAAN,eACE,QAAC,GAAD;AAEE,QAAA,IAAI,EAAET,OAAO,CAACI,IAAR,CAAaD,CAAb,EAAgBO,IAFxB;AAGE,QAAA,GAAG,EAAEV,OAAO,CAACI,IAAR,CAAaD,CAAb,EAAgBQ,GAHvB;AAIE,QAAA,IAAI,EAAEX,OAAO,CAACI,IAAR,CAAaD,CAAb,EAAgBS,IAJxB;AAKE,QAAA,IAAI,EAAEZ,OAAO,CAACI,IAAR,CAAaD,CAAb,EAAgBI;AALxB,SACOJ,CADP;AAAA;AAAA;AAAA;AAAA,cADF;AASD,KAVD,MAUO,IAAIG,IAAI,KAAK,MAAT,IAAmBE,WAAvB,EAAoC;AACzCN,MAAAA,KAAK,CAACO,IAAN,eACE,QAAC,GAAD;AAEE,QAAA,IAAI,EAAET,OAAO,CAACI,IAAR,CAAaD,CAAb,EAAgBO,IAFxB;AAGE,QAAA,GAAG,EAAEV,OAAO,CAACI,IAAR,CAAaD,CAAb,EAAgBQ,GAHvB;AAIE,QAAA,IAAI,EAAEX,OAAO,CAACI,IAAR,CAAaD,CAAb,EAAgBS,IAJxB;AAKE,QAAA,IAAI,EAAEZ,OAAO,CAACI,IAAR,CAAaD,CAAb,EAAgBI;AALxB,SACOJ,CADP;AAAA;AAAA;AAAA;AAAA,cADF;AASD,KAVM,MAUA,CAEN;AAEF;;AACD,sBACE;AAAS,IAAA,EAAE,EAAC,MAAZ;AAAA,4BACE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,YADF,eAEE;AAAK,MAAA,EAAE,EAAC,WAAR;AAAA,gBACGD;AADH;AAAA;AAAA;AAAA;AAAA,YAFF;AAAA;AAAA;AAAA;AAAA;AAAA,UADF;AAQD;;MAvCQH,Y;;AAyCT,SAASc,GAAT,CAAaf,KAAb,EAAoB;AAEhB,MAAIgB,aAAa,GAAGhB,KAAK,CAACS,IAAN,GAAa,UAAjC;AACA,MAAIQ,OAAO,GAAG,aAAajB,KAAK,CAACa,GAAjC;AACA,MAAIK,QAAQ,GAAG,SAASlB,KAAK,CAACc,IAA9B;AACA,sBACE;AAAK,IAAA,SAAS,EAAEE,aAAhB;AAAA,2BACE;AAAG,MAAA,IAAI,EAAEC,OAAT;AAAA,6BACE;AAAK,QAAA,SAAS,EAAC,WAAf;AAAA,gCACE;AAAK,UAAA,SAAS,EAAC,WAAf;AAAA,iCACE;AAAM,YAAA,SAAS,EAAC,cAAhB;AAA+B,yBAAWC;AAA1C;AAAA;AAAA;AAAA;AAAA;AADF;AAAA;AAAA;AAAA;AAAA,gBADF,eAIE;AAAK,UAAA,SAAS,EAAC,WAAf;AAAA,kCACE;AAAM,YAAA,EAAE,EAAC,UAAT;AAAA,sBAAqBlB,KAAK,CAACY;AAA3B;AAAA;AAAA;AAAA;AAAA,kBADF,eAEE;AAAM,YAAA,EAAE,EAAC,aAAT;AAAA,sBAAwBZ,KAAK,CAACa;AAA9B;AAAA;AAAA;AAAA;AAAA,kBAFF;AAAA;AAAA;AAAA;AAAA;AAAA,gBAJF;AAAA;AAAA;AAAA;AAAA;AAAA;AADF;AAAA;AAAA;AAAA;AAAA;AADF;AAAA;AAAA;AAAA;AAAA,UADF;AAeH;;MApBQE,G;;AAsBT,SAASI,SAAT,GAAqB;AACnB,MAAIC,YAAY,GAAGC,QAAQ,EAA3B;AACA,MAAIjB,KAAK,GAAG,EAAZ;;AACA,OAAK,IAAIC,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGe,YAAY,CAACE,SAAb,CAAuBf,MAA3C,EAAmDF,CAAC,EAApD,EAAwD;AACtDD,IAAAA,KAAK,CAACO,IAAN,eACE,QAAC,UAAD;AAEE,MAAA,QAAQ,EAAES,YAAY,CAACE,SAAb,CAAuBjB,CAAvB,EAA0BkB,QAFtC;AAGE,MAAA,KAAK,EAAEH,YAAY,CAACE,SAAb,CAAuBjB,CAAvB,EAA0BmB;AAHnC,OACOnB,CADP;AAAA;AAAA;AAAA;AAAA,YADF;AAOD;;AACD,sBACE;AAAS,IAAA,EAAE,EAAC,OAAZ;AAAA,4BACE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,YADF,eAEE;AAAK,MAAA,EAAE,EAAC,YAAR;AAAA,gBACKD;AADL;AAAA;AAAA;AAAA;AAAA,YAFF;AAAA;AAAA;AAAA;AAAA;AAAA,UADF;AAQD;;MApBQe,S;;AAsBT,SAASM,UAAT,CAAoBzB,KAApB,EAA2B;AACzB,MAAII,KAAK,GAAG,EAAZ;;AACA,OAAK,IAAIC,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGL,KAAK,CAACwB,KAAN,CAAYjB,MAAhC,EAAwCF,CAAC,EAAzC,EAA6C;AAC3CD,IAAAA,KAAK,CAACO,IAAN,eACE,QAAC,QAAD;AAEE,MAAA,IAAI,EAAEX,KAAK,CAACwB,KAAN,CAAYnB,CAAZ;AAFR,OACOA,CADP;AAAA;AAAA;AAAA;AAAA,YADF;AAMD;;AACD,sBACE;AAAK,IAAA,EAAE,EAAC,YAAR;AAAA,4BACE;AAAA,gBAAKL,KAAK,CAACuB;AAAX;AAAA;AAAA;AAAA;AAAA,YADF,EAEGnB,KAFH;AAAA;AAAA;AAAA;AAAA;AAAA,UADF;AAMD;;MAhBQqB,U;;AAkBT,SAASC,QAAT,CAAkB1B,KAAlB,EAAyB;AACvB,sBACE;AAAA,2BACE;AAAG,MAAA,IAAI,EAAEA,KAAK,CAAC2B,IAAN,CAAWd,GAApB;AAAyB,MAAA,SAAS,EAAC,sCAAnC;AAAA,gBAA2Eb,KAAK,CAAC2B,IAAN,CAAWf;AAAtF;AAAA;AAAA;AAAA;AAAA;AADF;AAAA;AAAA;AAAA;AAAA,UADF;AAKD;;MANQc,Q;;AAQT,SAASE,SAAT,GAAqB;AACnB,MAAIC,SAAS,GAAGC,YAAY,EAA5B;AACA,MAAI1B,KAAK,GAAG,EAAZ;AACA,MAAI2B,SAAS,GAAGhD,YAAY,CAACC,OAAb,CAAqB,aAArB,CAAhB;AACAgD,EAAAA,OAAO,CAACC,GAAR,CAAYlD,YAAY,CAACC,OAAb,CAAqB,aAArB,CAAZ;;AACA,OAAK,IAAIqB,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGwB,SAAS,CAACA,SAAV,CAAoBtB,MAAxC,EAAgDF,CAAC,EAAjD,EAAqD;AACnDD,IAAAA,KAAK,CAACO,IAAN,eACE,QAAC,QAAD;AAEE,MAAA,QAAQ,EAAEkB,SAAS,CAACA,SAAV,CAAoBxB,CAApB;AAFZ,OACOA,CADP;AAAA;AAAA;AAAA;AAAA,YADF;AAMD;;AACD,sBACE;AAAS,IAAA,EAAE,EAAC,OAAZ;AAAA,2BACE;AAAA,8BACE;AAAQ,QAAA,EAAE,EAAC,cAAX;AAAA,gCACE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,gBADF,eAEE;AAAG,UAAA,IAAI,EAAC,GAAR;AAAY,UAAA,KAAK,EAAC,OAAlB;AAA0B,UAAA,SAAS,EAAC,aAApC;AAAA,iCACE;AAAM,YAAA,SAAS,EAAC,SAAhB;AAA0B,yBAAU;AAApC;AAAA;AAAA;AAAA;AAAA;AADF;AAAA;AAAA;AAAA;AAAA,gBAFF;AAAA;AAAA;AAAA;AAAA;AAAA,cADF,eAQE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,cARF,eAUE;AAAK,QAAA,EAAE,EAAC,aAAR;AAAA,gCACE;AAAQ,wBAAW,YAAnB;AAAgC,UAAA,SAAS,EAAC,+BAA1C;AAA0E,UAAA,OAAO,EAAE6B,WAAnF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,gBADF,eAEE;AAAQ,wBAAW,SAAnB;AAA6B,UAAA,SAAS,EAAC,4BAAvC;AAAoE,UAAA,OAAO,EAAEA,WAA7E;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,gBAFF,eAGE;AAAQ,wBAAW,UAAnB;AAA8B,UAAA,SAAS,EAAC,6BAAxC;AAAsE,UAAA,OAAO,EAAEA,WAA/E;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,gBAHF,eAIE;AAAQ,wBAAW,KAAnB;AAAyB,UAAA,SAAS,EAAC,wBAAnC;AAA4D,UAAA,OAAO,EAAEA,WAArE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,gBAJF,eAKE;AAAQ,wBAAW,OAAnB;AAA2B,UAAA,SAAS,EAAC,0BAArC;AAAgE,UAAA,OAAO,EAAEA,WAAzE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,gBALF,eAME;AAAQ,wBAAW,MAAnB;AAA0B,UAAA,SAAS,EAAC,yBAApC;AAA8D,UAAA,OAAO,EAAEA,WAAvE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,gBANF,eAOE;AAAQ,wBAAW,SAAnB;AAA6B,UAAA,SAAS,EAAC,4BAAvC;AAAoE,UAAA,OAAO,EAAEA,WAA7E;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,gBAPF,eAQE;AAAQ,wBAAW,OAAnB;AAA2B,UAAA,SAAS,EAAC,0BAArC;AAAgE,UAAA,OAAO,EAAEA,WAAzE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,gBARF,eASE;AAAQ,wBAAW,OAAnB;AAA2B,UAAA,SAAS,EAAC,0BAArC;AAAgE,UAAA,OAAO,EAAEA,WAAzE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,gBATF,eAUE;AAAQ,wBAAW,MAAnB;AAA0B,UAAA,SAAS,EAAC,yBAApC;AAA8D,UAAA,OAAO,EAAEA,WAAvE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,gBAVF,eAWE;AAAQ,wBAAW,OAAnB;AAA2B,UAAA,SAAS,EAAC,0BAArC;AAAgE,UAAA,OAAO,EAAEA,WAAzE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,gBAXF,eAYE;AAAQ,wBAAW,WAAnB;AAA+B,UAAA,SAAS,EAAC,8BAAzC;AAAwE,UAAA,OAAO,EAAEA,WAAjF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,gBAZF,eAaE;AAAQ,wBAAW,QAAnB;AAA4B,UAAA,SAAS,EAAC,0BAAtC;AAAiE,UAAA,OAAO,EAAEA,WAA1E;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,gBAbF,eAcE;AAAQ,wBAAW,OAAnB;AAA2B,UAAA,SAAS,EAAC,0BAArC;AAAgE,UAAA,OAAO,EAAEA,WAAzE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,gBAdF,eAeE;AAAQ,wBAAW,OAAnB;AAA2B,UAAA,SAAS,EAAC,0BAArC;AAAgE,UAAA,OAAO,EAAEA,WAAzE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,gBAfF,eAgBE;AAAQ,wBAAW,MAAnB;AAA0B,UAAA,SAAS,EAAC,yBAApC;AAA8D,UAAA,OAAO,EAAEA,WAAvE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,gBAhBF;AAAA;AAAA;AAAA;AAAA;AAAA,cAVF,eA8BE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,cA9BF,eA+BI;AAAS,QAAA,EAAE,EAAC,WAAZ;AAAA,+BACE;AAAA,iCACE;AAAA,oCACE;AAAA,sCACE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,sBADF,eAEE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,sBAFF;AAAA;AAAA;AAAA;AAAA;AAAA,oBADF,EAKG9B,KALH;AAAA;AAAA;AAAA;AAAA;AAAA;AADF;AAAA;AAAA;AAAA;AAAA;AADF;AAAA;AAAA;AAAA;AAAA,cA/BJ,eA2CE;AAAQ,QAAA,EAAE,EAAC,cAAX;AAAA,gCACE;AAAG,UAAA,IAAI,EAAC,kCAAR;AAAA,iCAA2C;AAAM,YAAA,SAAS,EAAC,SAAhB;AAA0B,yBAAU;AAApC;AAAA;AAAA;AAAA;AAAA;AAA3C;AAAA;AAAA;AAAA;AAAA,gBADF,eAEE;AAAG,UAAA,IAAI,EAAC,kCAAR;AAAA,iCAA2C;AAAM,YAAA,SAAS,EAAC,SAAhB;AAA0B,yBAAU;AAApC;AAAA;AAAA;AAAA;AAAA;AAA3C;AAAA;AAAA;AAAA;AAAA,gBAFF,eAGE,QAAC,UAAD;AACE,UAAA,OAAO,EAAI2B;AADb;AAAA;AAAA;AAAA;AAAA,gBAHF;AAAA;AAAA;AAAA;AAAA;AAAA,cA3CF;AAAA;AAAA;AAAA;AAAA;AAAA;AADF;AAAA;AAAA;AAAA;AAAA,UADF;AAuDD;;MApEQH,S;;AAsET,SAASO,UAAT,CAAoBnC,KAApB,EAA2B;AACzBgC,EAAAA,OAAO,CAACC,GAAR,CAAYjC,KAAK,CAACoC,OAAlB;;AACA,MAAGpC,KAAK,CAACoC,OAAN,KAAkB,MAArB,EAA6B;AAC3BJ,IAAAA,OAAO,CAACC,GAAR,CAAY,qBAAZ;AACA,wBACE;AAAK,MAAA,SAAS,EAAC,QAAf;AAAA,8BAAwB;AAAO,QAAA,IAAI,EAAC,UAAZ;AAAuB,QAAA,EAAE,EAAC,aAA1B;AAAwC,QAAA,QAAQ,EAAEI,oBAAlD;AAAwE,QAAA,cAAc,EAAE;AAAxF;AAAA;AAAA;AAAA;AAAA,cAAxB,eACA;AAAO,QAAA,GAAG,EAAC,aAAX;AAAA,+BAAyB;AAAM,UAAA,SAAS,EAAC,SAAhB;AAA0B,uBAAU;AAApC;AAAA;AAAA;AAAA;AAAA;AAAzB;AAAA;AAAA;AAAA;AAAA,cADA;AAAA;AAAA;AAAA;AAAA;AAAA,YADF;AAID,GAND,MAMO;AACLL,IAAAA,OAAO,CAACC,GAAR,CAAY,sBAAZ;AACA,wBACE;AAAK,MAAA,SAAS,EAAC,QAAf;AAAA,8BAAwB;AAAO,QAAA,IAAI,EAAC,UAAZ;AAAuB,QAAA,EAAE,EAAC,aAA1B;AAAwC,QAAA,QAAQ,EAAEI,oBAAlD;AAAwE,QAAA,cAAc,EAAE;AAAxF;AAAA;AAAA;AAAA;AAAA,cAAxB,eACA;AAAO,QAAA,GAAG,EAAC,aAAX;AAAA,+BAAyB;AAAM,UAAA,SAAS,EAAC,SAAhB;AAA0B,uBAAU;AAApC;AAAA;AAAA;AAAA;AAAA;AAAzB;AAAA;AAAA;AAAA;AAAA,cADA;AAAA;AAAA;AAAA;AAAA;AAAA,YADF;AAID;AACF;;OAfQF,U;;AAiBT,SAASG,QAAT,CAAkBtC,KAAlB,EAAyB;AACvB,sBACE;AAAA,4BACE;AAAA,6BAAI;AAAG,QAAA,IAAI,EAAEA,KAAK,CAACuC,QAAN,CAAe1B,GAAxB;AAAA,kBAA8Bb,KAAK,CAACuC,QAAN,CAAe3B;AAA7C;AAAA;AAAA;AAAA;AAAA;AAAJ;AAAA;AAAA;AAAA;AAAA,YADF,eAEE;AAAA,gBAAKZ,KAAK,CAACuC,QAAN,CAAeC;AAApB;AAAA;AAAA;AAAA;AAAA,YAFF;AAAA;AAAA;AAAA;AAAA;AAAA,UADF;AAMD;;OAPQF,Q;;AAST,SAASG,SAAT,GAAqB;AACnBC,EAAAA,iBAAiB;AACjB,sBACE;AAAK,IAAA,EAAE,EAAC,YAAR;AAAA,2BACE;AAAG,MAAA,SAAS,EAAC,KAAb;AAAmB,MAAA,IAAI,EAAC,QAAxB;AAAA,6BACE;AAAM,QAAA,SAAS,EAAC,cAAhB;AAA+B,qBAAU;AAAzC;AAAA;AAAA;AAAA;AAAA;AADF;AAAA;AAAA;AAAA;AAAA;AADF;AAAA;AAAA;AAAA;AAAA,UADF;AAOD;;OATQD,S;AAWT9D,QAAQ,CAACgE,MAAT,eACE,QAAC,QAAD;AAAA;AAAA;AAAA;AAAA,QADF,EAEEzD,QAAQ,CAAC0D,cAAT,CAAwB,MAAxB,CAFF,E,CAKA;AACA;;AAEA,SAASjD,IAAT,GAAgB;AACd,MAAIkD,WAAW,GAAG,IAAIC,IAAJ,EAAlB;AACA,MAAIC,WAAW,GAAG;AAChBC,IAAAA,OAAO,EAAE,MADO;AAEhBC,IAAAA,IAAI,EAAE,SAFU;AAGhBC,IAAAA,KAAK,EAAE,MAHS;AAIhBC,IAAAA,GAAG,EAAE;AAJW,GAAlB;AAMA,MAAIxD,IAAI,GAAGkD,WAAW,CAACO,kBAAZ,CAA+B,OAA/B,EAAwCL,WAAxC,CAAX;AACA,SAAOpD,IAAP;AACD;;AACD,SAAS0D,SAAT,CAAmBC,CAAnB,EAAsB;AACpB,MAAIA,CAAC,GAAG,EAAR,EAAY;AACV,WAAO,MAAMA,CAAb;AACD,GAFD,MAGK;AACH,WAAOA,CAAP;AACD;AACF;;AACD,SAAS1D,KAAT,GAAiB;AACf,MAAI2D,WAAW,GAAG,IAAIT,IAAJ,EAAlB;AACA,MAAIlD,KAAK,GAAG4D,IAAI,CAACC,KAAL,CAAWF,WAAW,CAACG,QAAZ,KAAyB,CAApC,CAAZ;AACA,MAAIC,eAAe,GAAGH,IAAI,CAACC,KAAL,CAAWD,IAAI,CAACI,MAAL,KAAgB,GAA3B,CAAtB;;AACA,MAAIC,SAAS,GAAGC,OAAO,CAAC,iBAAD,CAAvB;;AACA,MAAIC,SAAS,GAAG,EAAhB;AACA,MAAIC,UAAU,GAAG,EAAjB;;AACA,OAAK,IAAI3D,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGwD,SAAS,CAACI,QAAV,CAAmB1D,MAAvC,EAA+CF,CAAC,EAAhD,EAAoD;AAClD,QAAIwD,SAAS,CAACI,QAAV,CAAmB5D,CAAnB,EAAsB6D,SAAtB,KAAoC,OAAxC,EAAiD;AAC/CH,MAAAA,SAAS,GAAGA,SAAS,CAACI,MAAV,CAAiBN,SAAS,CAACI,QAAV,CAAmB5D,CAAnB,CAAjB,CAAZ;AACD,KAFD,MAEO;AACL2D,MAAAA,UAAU,GAAGA,UAAU,CAACG,MAAX,CAAkBN,SAAS,CAACI,QAAV,CAAmB5D,CAAnB,CAAlB,CAAb;AACD;AACF;;AACD,MAAIsD,eAAe,GAAG,EAAtB,EAA0B;AACxB,WAAOI,SAAS,CAACnE,KAAD,CAAT,CAAiBwE,OAAxB;AACD,GAFD,MAEO;AACL,QAAIC,aAAa,GAAGb,IAAI,CAACC,KAAL,CAAWD,IAAI,CAACI,MAAL,KAAgBI,UAAU,CAACzD,MAAtC,CAApB;AACA,WAAOyD,UAAU,CAACK,aAAD,CAAV,CAA0BD,OAAjC;AACD;AACF;;AACD,SAASE,KAAT,GAAiB;AAAA;;AACf,QAAM,CAAC3E,IAAD,EAAO4E,OAAP,IAAkB9F,QAAQ,CAAC,IAAIqE,IAAJ,EAAD,CAAhC;;AAEA,WAAS0B,YAAT,GAAwB;AACtBD,IAAAA,OAAO,CAAC,IAAIzB,IAAJ,EAAD,CAAP;AACD;;AACDpE,EAAAA,SAAS,CAAC,MAAM;AACd,UAAM+F,OAAO,GAAGC,WAAW,CAACF,YAAD,EAAe,IAAf,CAA3B;AACA,WAAO,SAASG,OAAT,GAAmB;AACxBC,MAAAA,aAAa,CAACH,OAAD,CAAb;AACD,KAFD;AAGD,GALQ,EAKN,EALM,CAAT;AAOA,MAAII,IAAI,GAAGlF,IAAI,CAAC+D,QAAL,EAAX;AACA,MAAIoB,OAAO,GAAGnF,IAAI,CAACoF,UAAL,EAAd,CAde,CAef;;AACA,MAAIC,MAAM,GAAG,IAAb;AACAA,EAAAA,MAAM,GAAIH,IAAI,IAAI,EAAT,GAAe,IAAf,GAAsB,IAA/B;AACAA,EAAAA,IAAI,GAAIA,IAAI,KAAK,CAAV,GAAe,EAAf,GAAsBA,IAAI,GAAG,EAAR,GAAeA,IAAI,GAAG,EAAtB,GAA4BA,IAAxD;AACAC,EAAAA,OAAO,GAAGzB,SAAS,CAACyB,OAAD,CAAnB,CAnBe,CAoBf;;AACA,MAAIG,IAAI,GAAGJ,IAAI,GAAG,GAAP,GAAaC,OAAb,GAAuB,GAAvB,GAA6BE,MAAxC;AAEA,sBACE;AAAI,IAAA,EAAE,EAAC,OAAP;AAAA,cAAgBC;AAAhB;AAAA;AAAA;AAAA;AAAA,UADF;AAID;;GA3BQX,K;;OAAAA,K;;AA4BT,SAASnE,OAAT,GAAmB;AACjB,MAAI+E,YAAY,GAAGpB,OAAO,CAAC,aAAD,CAA1B;;AACA,SAAOoB,YAAP;AACD;;AACD,SAAS7D,QAAT,GAAoB;AAClB,MAAIG,KAAK,GAAGsC,OAAO,CAAC,cAAD,CAAnB;;AACA,SAAOtC,KAAP;AACD;;AACD,SAASM,YAAT,GAAwB;AACtB,MAAID,SAAS,GAAGiC,OAAO,CAAC,kBAAD,CAAvB;;AACA,SAAOjC,SAAP;AACD;;AACD,SAASsD,SAAT,GAAqB;AACnB,MAAIC,MAAM,GAAGtB,OAAO,CAAC,eAAD,CAApB;;AACA,SAAOsB,MAAP;AACD;;AACD,SAASlD,WAAT,CAAqBmD,CAArB,EAAwB;AACtB,MAAID,MAAM,GAAGD,SAAS,EAAtB;AACA,MAAIG,SAAS,GAAGD,CAAC,CAACE,MAAF,CAASC,SAAT,CAAmBC,WAAnB,EAAhB;AACA,MAAIC,KAAK,GAAGN,MAAM,CAACA,MAAP,CAAcO,SAAd,CAAwB,UAASC,IAAT,EAAevF,CAAf,EAAiB;AACnD,WAAOuF,IAAI,CAAChF,IAAL,KAAc0E,SAArB;AACD,GAFW,CAAZ;AAGAvG,EAAAA,YAAY,CAAC8G,OAAb,CAAqB,kBAArB,EAAyCT,MAAM,CAACA,MAAP,CAAcM,KAAd,EAAqBI,eAA9D;AACA/G,EAAAA,YAAY,CAAC8G,OAAb,CAAqB,kBAArB,EAAyCT,MAAM,CAACA,MAAP,CAAcM,KAAd,EAAqBK,eAA9D;AACAhH,EAAAA,YAAY,CAAC8G,OAAb,CAAqB,yBAArB,EAAgDT,MAAM,CAACA,MAAP,CAAcM,KAAd,EAAqBM,qBAArE;AACAjH,EAAAA,YAAY,CAAC8G,OAAb,CAAqB,gBAArB,EAAsCT,MAAM,CAACA,MAAP,CAAcM,KAAd,EAAqBO,YAA3D;AACAlH,EAAAA,YAAY,CAAC8G,OAAb,CAAqB,gBAArB,EAAuCT,MAAM,CAACA,MAAP,CAAcM,KAAd,EAAqBQ,YAA5D;AACAnH,EAAAA,YAAY,CAAC8G,OAAb,CAAqB,cAArB,EAAqCT,MAAM,CAACA,MAAP,CAAcM,KAAd,EAAqBS,WAA1D,EAXsB,CAatB;;AACAzG,EAAAA,QAAQ;AACT;;AACD,SAASA,QAAT,GAAoB;AAClBd,EAAAA,wBAAwB,CAAC,kBAAD,CAAxB;AACAA,EAAAA,wBAAwB,CAAC,kBAAD,CAAxB;AACAA,EAAAA,wBAAwB,CAAC,yBAAD,CAAxB;AACAA,EAAAA,wBAAwB,CAAC,gBAAD,CAAxB;AACAA,EAAAA,wBAAwB,CAAC,gBAAD,CAAxB;AACAA,EAAAA,wBAAwB,CAAC,cAAD,CAAxB;AACAA,EAAAA,wBAAwB,CAAC,iBAAD,CAAxB;AACD;;AACD,SAASkB,cAAT,CAAwBuF,CAAxB,EAA2B;AACzB,MAAIe,MAAM,GAAG,CAAb;AACA,MAAIC,KAAK,GAAG,KAAZ;AACA,MAAIC,GAAG,GAAGjB,CAAC,CAACkB,OAAF,IAAalB,CAAC,CAACmB,KAAzB;AACA,MAAIC,IAAI,GAAGpB,CAAC,CAACE,MAAF,CAASzG,KAAT,CAAe4H,UAAf,CAA0B,GAA1B,EAA+B,KAA/B,CAAX;AACA,MAAIC,MAAM,GAAGF,IAAI,CAACG,MAAL,CAAY,CAAZ,EAAeH,IAAI,CAACI,OAAL,CAAa,GAAb,IAAoB,CAAnC,KAAyCJ,IAAI,CAACG,MAAL,CAAY,CAAZ,CAAtD;AACA,MAAIE,OAAO,GAAGL,IAAI,CAACG,MAAL,CAAY,IAAID,MAAM,CAACpG,MAAvB,CAAd;;AACA,MAAI+F,GAAG,KAAK,EAAZ,EAAgB;AAAE;AACdS,IAAAA,MAAM,CAACN,IAAD,CAAN;AACH;;AACD,MAAIH,GAAG,KAAK,CAAZ,EAAe;AAAE;AACbjB,IAAAA,CAAC,CAAC2B,cAAF;AACA3B,IAAAA,CAAC,CAAC4B,eAAF;;AACA,QAAIR,IAAI,CAAC,CAAD,CAAJ,KAAY,GAAhB,EAAqB;AACjB,cAAQE,MAAR;AACI,aAAK,GAAL;AACI,cAAIO,SAAS,GAAG,CAAC,eAAD,EAAkB,aAAlB,EAAiC,QAAjC,CAAhB;;AACA,cAAI,CAACJ,OAAD,IAAYT,KAAhB,EAAuB;AACnBA,YAAAA,KAAK,GAAG,IAAR;AACA,gBAAID,MAAM,GAAGc,SAAS,CAAC3G,MAAV,GAAmB,CAAhC,EAAmC6F,MAAM,GAAG,CAAT;AACnClH,YAAAA,QAAQ,CAAC0D,cAAT,CAAwB,UAAxB,EAAoC9D,KAApC,GAA4C,QAAQoI,SAAS,CAACd,MAAM,EAAP,CAA7D;AACA;AACH;;AACD,eAAK,IAAIe,QAAT,IAAqBD,SAArB,EAAgC;AAC5B,gBAAIJ,OAAO,KAAKK,QAAQ,CAACP,MAAT,CAAgB,CAAhB,EAAmBE,OAAO,CAACvG,MAA3B,CAAhB,EAAoD;AAChDrB,cAAAA,QAAQ,CAAC0D,cAAT,CAAwB,UAAxB,EAAoC9D,KAApC,GAA4C,QAAQqI,QAApD;AACA;AACH;AACJ;;AACD;;AACF;AACE;AAjBR;AAmBH;AACJ;;AACD,MAAGb,GAAG,KAAK,EAAX,EAAc;AAAE;AAClBc,IAAAA,WAAW,CAACX,IAAD,CAAX;AACG;;AACDL,EAAAA,MAAM,GAAG,CAAT;AACAC,EAAAA,KAAK,GAAG,KAAR;AACAe,EAAAA,WAAW,CAACX,IAAD,CAAX;AACD;;AACD,SAASW,WAAT,CAAqBX,IAArB,EAA2B;AACzB,MAAIE,MAAM,GAAGF,IAAI,CAACG,MAAL,CAAY,CAAZ,EAAeH,IAAI,CAACI,OAAL,CAAa,GAAb,IAAoB,CAAnC,KAAyCJ,IAAI,CAACG,MAAL,CAAY,CAAZ,CAAtD;;AACA,MAAIH,IAAI,CAAC,CAAD,CAAJ,KAAY,GAAhB,EAAqB;AACvB;AACU,YAAQE,MAAR;AACI,WAAK,IAAL;AACIzH,QAAAA,QAAQ,CAAC0D,cAAT,CAAwB,YAAxB,EAAsC4C,SAAtC,GAAkD,iBAAlD;AACA;;AAChB,WAAK,GAAL;AACItG,QAAAA,QAAQ,CAAC0D,cAAT,CAAwB,YAAxB,EAAsC4C,SAAtC,GAAkD,qBAAlD;AACA;;AACJ,WAAK,IAAL;AACItG,QAAAA,QAAQ,CAAC0D,cAAT,CAAwB,YAAxB,EAAsC4C,SAAtC,GAAkD,gBAAlD;AACA;;AACJ,WAAK,GAAL;AACItG,QAAAA,QAAQ,CAAC0D,cAAT,CAAwB,YAAxB,EAAsC4C,SAAtC,GAAkD,aAAlD;AACA;;AACJ,WAAK,GAAL;AACItG,QAAAA,QAAQ,CAAC0D,cAAT,CAAwB,YAAxB,EAAsC4C,SAAtC,GAAkD,mBAAlD;AACA;;AACJ,WAAK,GAAL;AACItG,QAAAA,QAAQ,CAAC0D,cAAT,CAAwB,YAAxB,EAAsC4C,SAAtC,GAAkD,eAAlD;AACA;;AACJ,WAAK,GAAL;AACItG,QAAAA,QAAQ,CAAC0D,cAAT,CAAwB,YAAxB,EAAsC4C,SAAtC,GAAkD,cAAlD;AACA;;AACJ,WAAK,IAAL;AACItG,QAAAA,QAAQ,CAAC0D,cAAT,CAAwB,YAAxB,EAAsC4C,SAAtC,GAAkD,mBAAlD;AACA;;AACJ,WAAK,GAAL;AACItG,QAAAA,QAAQ,CAAC0D,cAAT,CAAwB,YAAxB,EAAsC4C,SAAtC,GAAkD,gBAAlD;AACA;;AACJ,WAAK,IAAL;AACItG,QAAAA,QAAQ,CAAC0D,cAAT,CAAwB,YAAxB,EAAsC4C,SAAtC,GAAkD,gBAAlD;AACA;;AACJ,WAAK,GAAL;AACItG,QAAAA,QAAQ,CAAC0D,cAAT,CAAwB,YAAxB,EAAsC4C,SAAtC,GAAkD,cAAlD;AACA;;AACJ,WAAK,GAAL;AACItG,QAAAA,QAAQ,CAAC0D,cAAT,CAAwB,YAAxB,EAAsC4C,SAAtC,GAAkD,gBAAlD;AACA;;AACJ,WAAK,GAAL;AACItG,QAAAA,QAAQ,CAAC0D,cAAT,CAAwB,YAAxB,EAAsC4C,SAAtC,GAAkD,kBAAlD;AACA;;AACJ,WAAK,GAAL;AACItG,QAAAA,QAAQ,CAAC0D,cAAT,CAAwB,YAAxB,EAAsC4C,SAAtC,GAAkD,aAAlD;AACA;;AACJ,WAAK,IAAL;AACItG,QAAAA,QAAQ,CAAC0D,cAAT,CAAwB,YAAxB,EAAsC4C,SAAtC,GAAkD,wBAAlD;AACA;;AACJ;AACItG,QAAAA,QAAQ,CAAC0D,cAAT,CAAwB,YAAxB,EAAsC4C,SAAtC,GAAkD,gBAAlD;AACA;AAhDI;AAkDT,GApDC,MAoDI;AACJtG,IAAAA,QAAQ,CAAC0D,cAAT,CAAwB,YAAxB,EAAsC4C,SAAtC,GAAkD,eAAlD;AACC;AACF;;AACD,SAASuB,MAAT,CAAgBN,IAAhB,EAAsB;AAGpB,MAAIA,IAAI,CAAC,CAAD,CAAJ,KAAY,GAAhB,EAAqB;AACjB,QAAIA,IAAI,CAACI,OAAL,CAAa,GAAb,IAAoB,CAAC,CAAzB,EAA4B;AAC1B,UAAIF,MAAM,GAAGF,IAAI,CAACG,MAAL,CAAY,CAAZ,EAAeH,IAAI,CAACI,OAAL,CAAa,GAAb,IAAoB,CAAnC,KAAyCJ,IAAI,CAACG,MAAL,CAAY,CAAZ,CAAtD;AACA,UAAIE,OAAO,GAAGL,IAAI,CAACG,MAAL,CAAY,IAAID,MAAM,CAACpG,MAAvB,CAAd;;AACE,cAAQoG,MAAR;AACI,aAAK,IAAL;AACIU,UAAAA,MAAM,CAACC,QAAP,GAAkB,yCAAyCR,OAA3D;AACA;;AACJ,aAAK,GAAL;AACIO,UAAAA,MAAM,CAACC,QAAP,GAAkB,+BAA+BR,OAAjD;AACA;;AACJ,aAAK,IAAL;AACIO,UAAAA,MAAM,CAACC,QAAP,GAAkB,uCAAuCR,OAAzD;AACA;;AACJ,aAAK,GAAL;AACIO,UAAAA,MAAM,CAACC,QAAP,GAAkB,iCAAiCR,OAAnD;AACA;;AACJ,aAAK,GAAL;AACIO,UAAAA,MAAM,CAACC,QAAP,GAAkB,6CAA6CR,OAA/D;AACA;;AACJ,aAAK,GAAL;AACIO,UAAAA,MAAM,CAACC,QAAP,GAAkB,qCAAqCR,OAAvD;AACA;;AACJ,aAAK,GAAL;AACIO,UAAAA,MAAM,CAACC,QAAP,GAAkB,8BAA8BR,OAAhD;AACA;;AACJ,aAAK,IAAL;AACIO,UAAAA,MAAM,CAACC,QAAP,GAAkB,qCAAqCR,OAAvD;AACA;;AACJ,aAAK,GAAL;AACIO,UAAAA,MAAM,CAACC,QAAP,GAAkB,6CAA6CR,OAA/D;AACA;;AACJ,aAAK,GAAL;AACIO,UAAAA,MAAM,CAACC,QAAP,GAAkB,mCAAmCR,OAArD;AACA;;AACJ,aAAK,IAAL;AACIO,UAAAA,MAAM,CAACC,QAAP,GAAkB,0CAA0CR,OAA5D;AACA;;AACJ,aAAK,GAAL;AACIO,UAAAA,MAAM,CAACC,QAAP,GAAkB,kDAAkDR,OAApE;AACA;;AACJ,aAAK,GAAL;AACIO,UAAAA,MAAM,CAACC,QAAP,GAAkB,iDAAiDR,OAAnE;AACA;;AACJ,aAAK,GAAL;AACIO,UAAAA,MAAM,CAACC,QAAP,GAAkB,iDAAiDR,OAAnE;AACA;;AACJ,aAAK,IAAL;AACIO,UAAAA,MAAM,CAACC,QAAP,GAAkB,kDAAkDR,OAApE;AACA;;AACJ;AACI;AA/CR;AAiDH,KApDD,MAoDO;AACH,UAAIH,MAAM,GAAGF,IAAI,CAACG,MAAL,CAAY,CAAZ,CAAb;;AACA,cAAQD,MAAR;AACI,aAAK,GAAL;AACIU,UAAAA,MAAM,CAACC,QAAP,GAAkB,4BAAlB;AACA;;AACJ,aAAK,GAAL;AACID,UAAAA,MAAM,CAACC,QAAP,GAAkB,yBAAlB;AACA;;AACJ,aAAK,GAAL;AACID,UAAAA,MAAM,CAACC,QAAP,GAAkB,oBAAlB;AACA;;AACJ,aAAK,GAAL;AACID,UAAAA,MAAM,CAACC,QAAP,GAAkB,0BAAlB;AACA;AAZR;AAcH;AACJ,GAtED,MAsEO,IAAIC,QAAQ,CAACd,IAAD,CAAZ,EAAoB;AACvB,QAAIe,gBAAgB,CAACf,IAAD,CAApB,EACIY,MAAM,CAACC,QAAP,GAAkBb,IAAlB,CADJ,KAGIY,MAAM,CAACC,QAAP,GAAkB,aAAab,IAA/B;AACP,GALM,MAKA;AACHY,IAAAA,MAAM,CAACC,QAAP,GAAkB,qCAAqCb,IAAvD;AACH;AACF;;AACD,SAASc,QAAT,CAAkBE,GAAlB,EAAuB;AACrB,MAAIC,OAAO,GAAG,IAAIC,MAAJ,CAAW,sBAAsB;AAC3C,oDADqB,GACgC;AACrD,+BAFqB,GAEW;AAChC,mCAHqB,GAGe;AACpC,4BAJqB,GAIQ;AAC7B,sBALU,EAKY,GALZ,CAAd,CADqB,CAMW;;AAChC,SAAO,CAAC,CAACD,OAAO,CAACE,IAAR,CAAaH,GAAb,CAAT;AACD;;AACD,SAASD,gBAAT,CAA0BC,GAA1B,EAA+B;AAC7B,MAAIC,OAAO,GAAG,IAAIC,MAAJ,CAAW,uBAAX,EAAoC,GAApC,CAAd;AACA,SAAO,CAAC,CAACD,OAAO,CAACE,IAAR,CAAaH,GAAb,CAAT;AACD;;AACDI,MAAM,CAACC,SAAP,CAAiBpB,UAAjB,GAA8B,UAASK,MAAT,EAAiBgB,WAAjB,EAA8B;AAC1D,MAAIxC,MAAM,GAAG,IAAb;AACA,SAAOA,MAAM,CAACyC,KAAP,CAAajB,MAAb,EAAqBkB,IAArB,CAA0BF,WAA1B,CAAP;AACD,CAHD;;AAIA,SAAS1F,oBAAT,CAA8BgD,CAA9B,EAAiC;AAC/BtG,EAAAA,YAAY,CAAC8G,OAAb,CAAqB,aAArB,EAAoCR,CAAC,CAACE,MAAF,CAASnD,OAA7C;;AACA,MAAIiD,CAAC,CAACE,MAAF,CAASnD,OAAb,EAAsB;AACpBrD,IAAAA,YAAY,CAAC8G,OAAb,CAAqB,iBAArB,EAAwC,MAAxC;AACD,GAFD,MAEO;AACL9G,IAAAA,YAAY,CAAC8G,OAAb,CAAqB,iBAArB,EAAwC,OAAxC;AACD;;AACDnD,EAAAA,iBAAiB;AAClB;;AACD,SAASA,iBAAT,GAA6B;AAC3B9D,EAAAA,wBAAwB,CAAC,aAAD,CAAxB;AACAA,EAAAA,wBAAwB,CAAC,iBAAD,CAAxB;AACD","sourcesContent":["import React from 'react';\nimport { useState, useEffect } from 'react';\nimport ReactDOM from 'react-dom';\nimport './index.css';\n\nconst setValueFromLocalStorage = property => {\n let value = localStorage.getItem(property);\n setValue(property, value);\n};\nconst setValue = (property, value) => {\n if (value) {\n document.documentElement.style.setProperty(`--${property}`, value);\n\n const input = document.querySelector(`#${property}`);\n if (input) {\n value = value.replace('px', '');\n input.value = value;\n }\n }\n};\n\nfunction Homepage() {\n setTheme();\n \n return (\n \n \n \n
\n \n \n
\n \n \n \n
\n \n \n
\n \n \n
\n \n );\n}\n\nfunction Search() {\n return (\n \n )\n}\n\nfunction Header(props) {\n return (\n \n );\n}\n\nfunction Applications() {\n let appList = getApps();\n var items = [];\n for (var i = 0; i < appList.apps.length; i++) {\n var safe = appList.apps[i].NSFW;\n var NSFWEnabled = localStorage.getItem(\"contenttype\");\n if (safe === \"SAFE\") {\n items.push(\n \n );\n } else if (safe === \"NSFW\" && NSFWEnabled) {\n items.push(\n \n );\n } else {\n \n }\n \n }\n return (\n \n Applications
\n \n {items}\n
\n \n );\n}\n\nfunction App(props) {\n \n let classNameType = props.NSFW + \"-content\";\n let hrefUrl = \"https://\" + props.url;\n let iconName = \"mdi-\" + props.icon;\n return (\n \n );\n}\n\nfunction Bookmarks() {\n let bookmarkList = getLinks();\n var items = [];\n for (var i = 0; i < bookmarkList.bookmarks.length; i++) {\n items.push(\n \n );\n }\n return (\n \n Bookmarks
\n \n {items}\n
\n \n );\n}\n\nfunction LinkGroups(props) {\n var items = [];\n for (var i = 0; i < props.links.length; i++) {\n items.push(\n \n );\n }\n return (\n \n
{props.category}
\n {items}\n \n );\n}\n\nfunction LinkItem(props) {\n return (\n \n );\n}\n\nfunction ModalMenu() {\n var providers = getProviders();\n var items = [];\n var isChecked = localStorage.getItem(\"contenttype\");\n console.log(localStorage.getItem(\"contenttype\"));\n for (var i = 0; i < providers.providers.length; i++) {\n items.push(\n \n );\n }\n return (\n \n \n \n\n
Color themes
\n\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n\n\n
Search options
\n
\n \n \n \n | Website | \n Prefix | \n
\n {items}\n \n
\n \n\n \n
\n \n );\n}\n\nfunction HideButton(props) {\n console.log(props.checked);\n if(props.checked === \"true\") {\n console.log(\"icon should be grey\");\n return (\n \n
\n );\n } else {\n console.log(\"icon should be white\");\n return (\n \n
\n );\n }\n}\n\nfunction Provider(props) {\n return (\n \n | {props.provider.name} | \n {props.provider.prefix} | \n
\n );\n}\n\nfunction ModalInit() {\n setDisplayedItems();\n return (\n \n );\n}\n\nReactDOM.render(\n ,\n document.getElementById('root')\n);\n\n//Functions below this line are for calculating data for\n//other functions\n\nfunction date() {\n let currentDate = new Date();\n let dateOptions = {\n weekday: \"long\",\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\"\n };\n let date = currentDate.toLocaleDateString(\"en-GB\", dateOptions);\n return date;\n}\nfunction fixDigits(k) {\n if (k < 10) {\n return \"0\" + k;\n }\n else {\n return k;\n }\n}\nfunction greet() {\n let currentTime = new Date();\n let greet = Math.floor(currentTime.getHours() / 6);\n let easterEggChance = Math.floor(Math.random() * 100);\n let greetings = require('./messages.json');\n let timeBased = [];\n let easterEggs = [];\n for (var i = 0; i < greetings.messages.length; i++) {\n if (greetings.messages[i].easteregg === \"FALSE\") {\n timeBased = timeBased.concat(greetings.messages[i]);\n } else {\n easterEggs = easterEggs.concat(greetings.messages[i]);\n }\n }\n if (easterEggChance > 10) {\n return timeBased[greet].message;\n } else {\n let easterEggText = Math.floor(Math.random() * easterEggs.length);\n return easterEggs[easterEggText].message;\n }\n}\nfunction Clock() {\n const [date, setDate] = useState(new Date());\n\n function refreshClock() {\n setDate(new Date());\n }\n useEffect(() => {\n const timerId = setInterval(refreshClock, 1000);\n return function cleanup() {\n clearInterval(timerId);\n };\n }, []);\n\n var hour = date.getHours();\n var minutes = date.getMinutes();\n //var seconds = date.getSeconds();\n var midday = \"AM\";\n midday = (hour >= 12) ? \"PM\" : \"AM\";\n hour = (hour === 0) ? 12 : ((hour > 12) ? (hour - 12) : hour);\n minutes = fixDigits(minutes);\n //seconds = fixDigits(seconds);\n let time = hour + \":\" + minutes + \" \" + midday;\n\n return (\n {time}
\n\n );\n}\nfunction getApps() {\n let applications = require('./apps.json');\n return applications;\n}\nfunction getLinks() {\n let links = require('./links.json');\n return links;\n}\nfunction getProviders() {\n let providers = require('./providers.json');\n return providers;\n}\nfunction getThemes() {\n let themes = require('./themes.json');\n return themes;\n}\nfunction updateTheme(e) {\n var themes = getThemes();\n var themeName = e.target.innerHTML.toLowerCase();\n var index = themes.themes.findIndex(function(item, i){\n return item.name === themeName;\n });\n localStorage.setItem(\"image-background\", themes.themes[index].imagebackground);\n localStorage.setItem(\"color-background\", themes.themes[index].colorbackground);\n localStorage.setItem(\"color-search-background\", themes.themes[index].colorserachbackground);\n localStorage.setItem(\"color-text-pri\",themes.themes[index].colortextpri);\n localStorage.setItem(\"color-text-acc\", themes.themes[index].colortextacc);\n localStorage.setItem(\"color-border\", themes.themes[index].colorborder);\n \n //document.documentElement.style.setProperty(prop, `var(--${themeName}${prop.substring(10)})`);\n setTheme();\n}\nfunction setTheme() {\n setValueFromLocalStorage('image-background');\n setValueFromLocalStorage('color-background');\n setValueFromLocalStorage('color-search-background');\n setValueFromLocalStorage('color-text-pri');\n setValueFromLocalStorage('color-text-acc');\n setValueFromLocalStorage('color-border');\n setValueFromLocalStorage('content-display');\n}\nfunction handleKeyPress(e) {\n var sindex = 0;\n var cycle = false;\n var key = e.keyCode || e.which;\n var text = e.target.value.replaceAll(\"+\", \"%2B\");\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n if (key === 13) { // Search functions\n search(text);\n }\n if (key === 9) { // Tab Completion Functions\n e.preventDefault();\n e.stopPropagation();\n if (text[0] === ';') {\n switch (option) {\n case 't':\n var streamers = ['admiralbahroo', 'moonmoon_ow', 'witwix'];\n if (!subtext || cycle) {\n cycle = true;\n if (sindex > streamers.length - 1) sindex = 0;\n document.getElementById(\"keywords\").value = ';t ' + streamers[sindex++];\n return;\n }\n for (var streamer of streamers) {\n if (subtext === streamer.substr(0, subtext.length)) {\n document.getElementById(\"keywords\").value = ';t ' + streamer;\n return;\n }\n }\n break;\n default :\n break;\n }\n }\n }\n if(key === 32){ //Space to go to search\nupdateLabel(text);\n }\n sindex = 0;\n cycle = false;\n updateLabel(text);\n}\nfunction updateLabel(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n if (text[0] === '/') {\n// if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n document.getElementById(\"searchType\").innerHTML = \"Allmusic search\";\n break;\n case \"d\":\n document.getElementById(\"searchType\").innerHTML = \"Duck Duck Go search\";\n break;\n case \"di\":\n document.getElementById(\"searchType\").innerHTML = \"Discogs search\";\n break;\n case \"i\":\n document.getElementById(\"searchType\").innerHTML = \"IMDB search\";\n break;\n case \"m\":\n document.getElementById(\"searchType\").innerHTML = \"TheMovieDB search\";\n break;\n case \"r\":\n document.getElementById(\"searchType\").innerHTML = \"Reddit search\";\n break;\n case \"q\":\n document.getElementById(\"searchType\").innerHTML = \"Qwant search\";\n break;\n case \"so\":\n document.getElementById(\"searchType\").innerHTML = \"Soundcloud search\";\n break;\n case \"s\":\n document.getElementById(\"searchType\").innerHTML = \"Spotify search\";\n break;\n case \"tv\":\n document.getElementById(\"searchType\").innerHTML = \"TheTVDB search\";\n break;\n case \"t\":\n document.getElementById(\"searchType\").innerHTML = \"Trakt search\";\n break;\n case \"y\":\n document.getElementById(\"searchType\").innerHTML = \"YouTube search\";\n break;\n case \"w\":\n document.getElementById(\"searchType\").innerHTML = \"Wikipedia search\";\n break;\n case \"p\":\n document.getElementById(\"searchType\").innerHTML = \"Plex search\";\n break;\n case \"rt\":\n document.getElementById(\"searchType\").innerHTML = \"Rotten Tomatoes search\";\n break;\n default:\n document.getElementById(\"searchType\").innerHTML = \"Invalid search\";\n break;\n }\n}else {\n document.getElementById(\"searchType\").innerHTML = \"Google search\";\n }\n}\nfunction search(text) {\n \n \n if (text[0] === '/') {\n if (text.indexOf(' ') > -1) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n switch (option) {\n case \"am\":\n window.location = \"https://www.allmusic.com/search/all/\" + subtext;\n break;\n case \"d\":\n window.location = \"https://duckduckgo.com/?q=\" + subtext;\n break;\n case \"di\":\n window.location = \"https://www.discogs.com/search/?q=\" + subtext;\n break;\n case \"i\":\n window.location = \"https://www.imdb.com/find?q=\" + subtext;\n break;\n case \"m\":\n window.location = \"https://www.themoviedb.org/search?query=\" + subtext;\n break;\n case \"r\":\n window.location = \"https://www.reddit.com/search?q=\" + subtext;\n break;\n case \"q\":\n window.location = \"https://www.qwant.com/?q=\" + subtext;\n break;\n case \"so\":\n window.location = \"https://soundcloud.com/search?q=\" + subtext;\n break;\n case \"s\":\n window.location = \"https://open.spotify.com/search/results/\" + subtext;\n break;\n case \"t\":\n window.location = \"https://trakt.tv/search?query=\" + subtext;\n break;\n case \"tv\":\n window.location = \"https://www.thetvdb.com/search?query=\" + subtext;\n break;\n case \"y\":\n window.location = \"https://www.youtube.com/results?search_query=\" + subtext;\n break;\n case \"w\":\n window.location = \"https://en.wikipedia.org/w/index.php?search=\" + subtext;\n break;\n case \"p\":\n window.location = \"https://app.plex.tv/desktop/#!/search?query=\" + subtext;\n break;\n case \"rt\":\n window.location = \"https://www.rottentomatoes.com/search?search=\" + subtext;\n break;\n default :\n break;\n }\n } else {\n var option = text.substr(1);\n switch (option) {\n case \"d\":\n window.location = \"https://www.duckduckgo.com\";\n break;\n case \"y\":\n window.location = \"https://www.youtube.com\";\n break;\n case \"r\":\n window.location = \"https://reddit.com\";\n break;\n case \"s\":\n window.location = \"https://open.spotify.com\";\n break;\n }\n }\n } else if (validURL(text)) {\n if (containsProtocol(text))\n window.location = text;\n else\n window.location = \"https://\" + text;\n } else {\n window.location = \"https://www.google.com/search?q=\" + text;\n }\n}\nfunction validURL(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/)?' + // protocol\n '((([a-z\\\\d]([a-z\\\\d-]*[a-z\\\\d])*)\\\\.)+[a-z]{2,}|' + // domain name\n '((\\\\d{1,3}\\\\.){3}\\\\d{1,3}))' + // OR ip (v4) address\n '(\\\\:\\\\d+)?(\\\\/[-a-z\\\\d%_.~+]*)*' + // port and path\n '(\\\\?[;&a-z\\\\d%_.~+=-]*)?' + // query string\n '(\\\\#[-a-z\\\\d_]*)?$', 'i'); // fragment locator\n return !!pattern.test(str);\n}\nfunction containsProtocol(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/){1}.*', 'i');\n return !!pattern.test(str);\n}\nString.prototype.replaceAll = function(search, replacement) {\n var target = this;\n return target.split(search).join(replacement);\n};\nfunction udpateDisplayedItems(e) {\n localStorage.setItem('contenttype', e.target.checked);\n if (e.target.checked) {\n localStorage.setItem('content-display', 'none');\n } else {\n localStorage.setItem('content-display', 'block');\n }\n setDisplayedItems();\n}\nfunction setDisplayedItems() {\n setValueFromLocalStorage('contenttype');\n setValueFromLocalStorage('content-display');\n}"]},"metadata":{},"sourceType":"module"}
\ No newline at end of file
diff --git a/node_modules/.cache/babel-loader/4921cea5540c1fc06838d07a912d34ae.json b/node_modules/.cache/babel-loader/4921cea5540c1fc06838d07a912d34ae.json
new file mode 100644
index 00000000..6c70307d
--- /dev/null
+++ b/node_modules/.cache/babel-loader/4921cea5540c1fc06838d07a912d34ae.json
@@ -0,0 +1 @@
+{"ast":null,"code":"var _jsxFileName = \"/home/seanedmunds/dev/home-page/src/index.js\",\n _s = $RefreshSig$();\n\nimport React from 'react';\nimport { useState, useEffect } from 'react';\nimport ReactDOM from 'react-dom'; //import { unstable_createPortal } from 'react-dom';\n\nimport './index.css';\nimport { jsxDEV as _jsxDEV } from \"react/jsx-dev-runtime\";\n\nfunction Homepage() {\n return /*#__PURE__*/_jsxDEV(\"main\", {\n id: \"container\",\n className: \"fade\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Search, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 11,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 10,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Header, {\n date: date(),\n greet: greet()\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 14,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 13,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Applications, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 20,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 19,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Bookmarks, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 23,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 22,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(ModalMenu, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 26,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 25,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(ModalInit, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 29,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 28,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 9,\n columnNumber: 5\n }, this);\n}\n\n_c = Homepage;\n\nfunction Search() {\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"search\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"abackground\",\n children: [/*#__PURE__*/_jsxDEV(\"input\", {\n name: \"keywords\",\n value: \"test\",\n type: \"text\",\n className: \"keyword\",\n id: \"keywords\",\n size: \"50\",\n spellCheck: \"true\",\n placeholder: \"\"\n /*onFocus={this.placeholder = \"\"} onBlur={this.placeholder = ''}*/\n ,\n autoComplete: \"off\",\n autoFocus: \"true\",\n onKeyUp: handleKeyPress(Event)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 39,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n id: \"searchType\",\n className: \"Input-label\",\n children: \"Google search\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 40,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 38,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 37,\n columnNumber: 5\n }, this);\n}\n\n_c2 = Search;\n\nfunction Header(props) {\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"header\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n id: \"greeting_block\",\n children: /*#__PURE__*/_jsxDEV(\"h1\", {\n id: \"header_greet\",\n children: props.greet\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 50,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 49,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"date_block\",\n children: [/*#__PURE__*/_jsxDEV(\"h2\", {\n id: \"header_date\",\n children: props.date\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 53,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(Clock, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 54,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 52,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 48,\n columnNumber: 5\n }, this);\n}\n\n_c3 = Header;\n\nfunction Applications() {\n let appList = getApps();\n var items = [];\n\n for (var i = 0; i < appList.apps.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(App, {\n name: appList.apps[i].name,\n url: appList.apps[i].url,\n icon: appList.apps[i].icon,\n NSFW: appList.apps[i].NSFW\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 65,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"apps\",\n children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n children: \"Applications\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 76,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"apps_loop\",\n children: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 77,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 75,\n columnNumber: 5\n }, this);\n}\n\n_c4 = Applications;\n\nfunction App(props) {\n let classNameType = props.NSFW + \"-content\";\n let hrefUrl = \"https://\" + props.url;\n let iconName = \"mdi-\" + props.icon;\n return /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: hrefUrl,\n className: classNameType,\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_item\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_icon\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify icon\",\n \"data-icon\": iconName\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 93,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 92,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_text\",\n children: [/*#__PURE__*/_jsxDEV(\"span\", {\n id: \"app-name\",\n children: props.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 96,\n columnNumber: 13\n }, this), /*#__PURE__*/_jsxDEV(\"span\", {\n id: \"app-address\",\n children: props.url\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 97,\n columnNumber: 13\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 95,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 91,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 90,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 89,\n columnNumber: 5\n }, this);\n}\n\n_c5 = App;\n\nfunction Bookmarks() {\n let bookmarkList = getLinks();\n var items = [];\n\n for (var i = 0; i < bookmarkList.bookmarks.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(LinkGroups, {\n category: bookmarkList.bookmarks[i].category,\n links: bookmarkList.bookmarks[i].links\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 110,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"links\",\n children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n children: \"Bookmarks\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 119,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"links_loop\",\n children: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 120,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 118,\n columnNumber: 5\n }, this);\n}\n\n_c6 = Bookmarks;\n\nfunction LinkGroups(props) {\n var items = [];\n\n for (var i = 0; i < props.links.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(LinkItem, {\n link: props.links[i]\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 131,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"links_item\",\n children: [/*#__PURE__*/_jsxDEV(\"h4\", {\n children: props.category\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 139,\n columnNumber: 7\n }, this), items]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 138,\n columnNumber: 5\n }, this);\n}\n\n_c7 = LinkGroups;\n\nfunction LinkItem(props) {\n return /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: props.link.url,\n className: \"theme_color-border theme_text-select\",\n children: props.link.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 148,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 147,\n columnNumber: 5\n }, this);\n}\n\n_c8 = LinkItem;\n\nfunction ModalMenu() {\n var providers = getProviders();\n var items = [];\n\n for (var i = 0; i < providers.providers.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(Provider, {\n provider: providers.providers[i]\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 158,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"modal\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n children: [/*#__PURE__*/_jsxDEV(\"header\", {\n id: \"modal-header\",\n children: [/*#__PURE__*/_jsxDEV(\"h1\", {\n children: \"Options\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 168,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n href: \"#\",\n title: \"Close\",\n className: \"modal-close\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-close\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 170,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 169,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 167,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"h2\", {\n children: \"Color themes\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 174,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"modal-theme\",\n children: [/*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"blackboard\",\n className: \"theme-button theme-blackboard\",\n children: \"Blackboard\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 177,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"gazette\",\n className: \"theme-button theme-gazette\",\n children: \"Gazette\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 178,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"espresso\",\n className: \"theme-button theme-espresso\",\n children: \"Espresso\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 179,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cab\",\n className: \"theme-button theme-cab\",\n children: \"Cab\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 180,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cloud\",\n className: \"theme-button theme-cloud\",\n children: \"Cloud\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 181,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"lime\",\n className: \"theme-button theme-lime\",\n children: \"Lime\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 182,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"passion\",\n className: \"theme-button theme-passion\",\n children: \"Passion\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 183,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"blues\",\n className: \"theme-button theme-blues\",\n children: \"Blues\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 184,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"chalk\",\n className: \"theme-button theme-chalk\",\n children: \"Chalk\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 185,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"tron\",\n className: \"theme-button theme-tron\",\n children: \"Tron\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 186,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"paper\",\n className: \"theme-button theme-paper\",\n children: \"Paper\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 187,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cyberpunk\",\n className: \"theme-button theme-cyberpunk\",\n children: \"Cyberpunk\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 188,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"quadra\",\n className: \"theme-button theme-panam\",\n children: \"Quadra\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 189,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"panam\",\n className: \"theme-button theme-panam\",\n children: \"Panam\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 190,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"touch\",\n className: \"theme-button theme-touch\",\n children: \"Touch\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 191,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"peek\",\n className: \"theme-button theme-peek\",\n children: \"Peek\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 192,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 176,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"h2\", {\n children: \"Search options\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 196,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"providers\",\n children: /*#__PURE__*/_jsxDEV(\"table\", {\n children: /*#__PURE__*/_jsxDEV(\"tbody\", {\n children: [/*#__PURE__*/_jsxDEV(\"tr\", {\n children: [/*#__PURE__*/_jsxDEV(\"th\", {\n children: \"Website\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 201,\n columnNumber: 19\n }, this), /*#__PURE__*/_jsxDEV(\"th\", {\n children: \"Prefix\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 202,\n columnNumber: 19\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 200,\n columnNumber: 17\n }, this), items]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 199,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 198,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 197,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"header\", {\n id: \"modal-footer\",\n children: [/*#__PURE__*/_jsxDEV(\"a\", {\n href: \"https://github.com/jeroenpardon/\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-github-box\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 210,\n columnNumber: 54\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 210,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n href: \"https://materialdesignicons.com/\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-material-design\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 211,\n columnNumber: 54\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 211,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"sneaky\",\n children: [/*#__PURE__*/_jsxDEV(\"input\", {\n type: \"checkbox\",\n id: \"contenttype\",\n onChange: \"nsfw(this)\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 212,\n columnNumber: 35\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n for: \"contenttype\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-domino-mask\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 213,\n columnNumber: 36\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 213,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 212,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 209,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 166,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 165,\n columnNumber: 5\n }, this);\n}\n\n_c9 = ModalMenu;\n\nfunction Provider(props) {\n return /*#__PURE__*/_jsxDEV(\"tr\", {\n children: [/*#__PURE__*/_jsxDEV(\"td\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: props.provider.url,\n children: props.provider.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 223,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 223,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"td\", {\n children: props.provider.prefix\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 224,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 222,\n columnNumber: 5\n }, this);\n}\n\n_c10 = Provider;\n\nfunction ModalInit() {\n return /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"modal_init\",\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n className: \"btn\",\n href: \"#modal\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify icon\",\n \"data-icon\": \"mdi-xbox-controller-menu\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 233,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 232,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 231,\n columnNumber: 5\n }, this);\n}\n\n_c11 = ModalInit;\nReactDOM.render( /*#__PURE__*/_jsxDEV(Homepage, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 240,\n columnNumber: 3\n}, this), document.getElementById('root')); //Functions below this line are for calculating data for\n//other functions\n\nfunction date() {\n let currentDate = new Date();\n let dateOptions = {\n weekday: \"long\",\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\"\n };\n let date = currentDate.toLocaleDateString(\"en-GB\", dateOptions);\n return date;\n}\n\nfunction fixDigits(k) {\n if (k < 10) {\n return \"0\" + k;\n } else {\n return k;\n }\n}\n\nfunction greet() {\n let currentTime = new Date();\n let greet = Math.floor(currentTime.getHours() / 6);\n let easterEggChance = Math.floor(Math.random() * 100);\n\n let greetings = require('./messages.json');\n\n let timeBased = [];\n let easterEggs = [];\n\n for (var i = 0; i < greetings.messages.length; i++) {\n if (greetings.messages[i].easteregg === \"FALSE\") {\n timeBased = timeBased.concat(greetings.messages[i]);\n } else {\n easterEggs = easterEggs.concat(greetings.messages[i]);\n }\n }\n\n if (easterEggChance > 10) {\n return timeBased[greet].message;\n } else {\n let easterEggText = Math.floor(Math.random() * easterEggs.length);\n return easterEggs[easterEggText].message;\n }\n}\n\nfunction Clock() {\n _s();\n\n const [date, setDate] = useState(new Date());\n\n function refreshClock() {\n setDate(new Date());\n }\n\n useEffect(() => {\n const timerId = setInterval(refreshClock, 1000);\n return function cleanup() {\n clearInterval(timerId);\n };\n }, []);\n var hour = date.getHours();\n var minutes = date.getMinutes(); //var seconds = date.getSeconds();\n\n var midday = \"AM\";\n midday = hour >= 12 ? \"PM\" : \"AM\";\n hour = hour === 0 ? 12 : hour > 12 ? hour - 12 : hour;\n minutes = fixDigits(minutes); //seconds = fixDigits(seconds);\n\n let time = hour + \":\" + minutes + \" \" + midday;\n return /*#__PURE__*/_jsxDEV(\"h2\", {\n id: \"clock\",\n children: time\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 311,\n columnNumber: 5\n }, this);\n}\n\n_s(Clock, \"Gqi45WOZhU2c0BLYX0HoJeiR0fk=\");\n\n_c12 = Clock;\n\nfunction getApps() {\n let applications = require('./apps.json');\n\n return applications;\n}\n\nfunction getLinks() {\n let links = require('./links.json');\n\n return links;\n}\n\nfunction getProviders() {\n let providers = require('./providers.json');\n\n return providers;\n}\n\nfunction handleKeyPress(e) {\n var sindex = 0;\n var cycle = false;\n var key = e.keyCode || e.which;\n var text = e.target.value.replaceAll(\"+\", \"%2B\");\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n\n if (key == 13) {\n // Search functions\n search(text);\n }\n\n if (key == 9) {\n // Tab Completion Functions\n e.preventDefault();\n e.stopPropagation();\n\n if (text[0] === ';') {\n switch (option) {\n case 't':\n var streamers = ['admiralbahroo', 'moonmoon_ow', 'witwix'];\n\n if (!subtext || cycle) {\n cycle = true;\n if (sindex > streamers.length - 1) sindex = 0;\n document.getElementById(\"keywords\").value = ';t ' + streamers[sindex++];\n return;\n }\n\n for (var streamer of streamers) {\n if (subtext === streamer.substr(0, subtext.length)) {\n document.getElementById(\"keywords\").value = ';t ' + streamer;\n return;\n }\n }\n\n break;\n }\n }\n }\n\n if (key == 32) {\n //Space to go to search\n updateLabel(text);\n }\n\n sindex = 0;\n cycle = false;\n updateLabel(text);\n}\n\nfunction updateLabel(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n\n if (text[0] === '/') {\n // if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n document.getElementById(\"searchType\").innerHTML = \"Allmusic search\";\n break;\n\n case \"d\":\n document.getElementById(\"searchType\").innerHTML = \"Duck Duck Go search\";\n break;\n\n case \"di\":\n document.getElementById(\"searchType\").innerHTML = \"Discogs search\";\n break;\n\n case \"i\":\n document.getElementById(\"searchType\").innerHTML = \"IMDB search\";\n break;\n\n case \"m\":\n document.getElementById(\"searchType\").innerHTML = \"TheMovieDB search\";\n break;\n\n case \"r\":\n document.getElementById(\"searchType\").innerHTML = \"Reddit search\";\n break;\n\n case \"q\":\n document.getElementById(\"searchType\").innerHTML = \"Qwant search\";\n break;\n\n case \"so\":\n document.getElementById(\"searchType\").innerHTML = \"Soundcloud search\";\n break;\n\n case \"s\":\n document.getElementById(\"searchType\").innerHTML = \"Spotify search\";\n break;\n\n case \"tv\":\n document.getElementById(\"searchType\").innerHTML = \"TheTVDB search\";\n break;\n\n case \"t\":\n document.getElementById(\"searchType\").innerHTML = \"Trakt search\";\n break;\n\n case \"y\":\n document.getElementById(\"searchType\").innerHTML = \"YouTube search\";\n break;\n\n case \"w\":\n document.getElementById(\"searchType\").innerHTML = \"Wikipedia search\";\n break;\n\n case \"p\":\n document.getElementById(\"searchType\").innerHTML = \"Plex search\";\n break;\n\n case \"rt\":\n document.getElementById(\"searchType\").innerHTML = \"Rotten Tomatoes search\";\n break;\n\n default:\n document.getElementById(\"searchType\").innerHTML = \"Invalid search\";\n break;\n }\n } else {\n document.getElementById(\"searchType\").innerHTML = \"Google search\";\n }\n}\n\nfunction search(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n\n if (text[0] === '/') {\n if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n window.location = \"https://www.allmusic.com/search/all/\" + subtext;\n break;\n\n case \"d\":\n window.location = \"https://duckduckgo.com/?q=\" + subtext;\n break;\n\n case \"di\":\n window.location = \"https://www.discogs.com/search/?q=\" + subtext;\n break;\n\n case \"i\":\n window.location = \"https://www.imdb.com/find?q=\" + subtext;\n break;\n\n case \"m\":\n window.location = \"https://www.themoviedb.org/search?query=\" + subtext;\n break;\n\n case \"r\":\n window.location = \"https://www.reddit.com/search?q=\" + subtext;\n break;\n\n case \"q\":\n window.location = \"https://www.qwant.com/?q=\" + subtext;\n break;\n\n case \"so\":\n window.location = \"https://soundcloud.com/search?q=\" + subtext;\n break;\n\n case \"s\":\n window.location = \"https://open.spotify.com/search/results/\" + subtext;\n break;\n\n case \"t\":\n window.location = \"https://trakt.tv/search?query=\" + subtext;\n break;\n\n case \"tv\":\n window.location = \"https://www.thetvdb.com/search?query=\" + subtext;\n break;\n\n case \"y\":\n window.location = \"https://www.youtube.com/results?search_query=\" + subtext;\n break;\n\n case \"w\":\n window.location = \"https://en.wikipedia.org/w/index.php?search=\" + subtext;\n break;\n\n case \"p\":\n window.location = \"https://app.plex.tv/desktop/#!/search?query=\" + subtext;\n break;\n\n case \"rt\":\n window.location = \"https://www.rottentomatoes.com/search?search=\" + subtext;\n break;\n }\n } else {\n var option = text.substr(1);\n\n switch (option) {\n case \"d\":\n window.location = \"https://www.duckduckgo.com\";\n break;\n\n case \"y\":\n window.location = \"https://www.youtube.com\";\n break;\n\n case \"r\":\n window.location = \"https://reddit.com\";\n break;\n\n case \"s\":\n window.location = \"https://open.spotify.com\";\n break;\n }\n }\n } else if (validURL(text)) {\n if (containsProtocol(text)) window.location = text;else window.location = \"https://\" + text;\n } else {\n window.location = \"https://www.google.com/search?q=\" + text;\n }\n} // Source: https://stackoverflow.com/questions/5717093/check-if-a-javascript-string-is-a-url\n\n\nfunction validURL(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/)?' + // protocol\n '((([a-z\\\\d]([a-z\\\\d-]*[a-z\\\\d])*)\\\\.)+[a-z]{2,}|' + // domain name\n '((\\\\d{1,3}\\\\.){3}\\\\d{1,3}))' + // OR ip (v4) address\n '(\\\\:\\\\d+)?(\\\\/[-a-z\\\\d%_.~+]*)*' + // port and path\n '(\\\\?[;&a-z\\\\d%_.~+=-]*)?' + // query string\n '(\\\\#[-a-z\\\\d_]*)?$', 'i'); // fragment locator\n\n return !!pattern.test(str);\n}\n\nfunction containsProtocol(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/){1}.*', 'i');\n return !!pattern.test(str);\n}\n\nString.prototype.replaceAll = function (search, replacement) {\n var target = this;\n return target.split(search).join(replacement);\n};\n\nvar _c, _c2, _c3, _c4, _c5, _c6, _c7, _c8, _c9, _c10, _c11, _c12;\n\n$RefreshReg$(_c, \"Homepage\");\n$RefreshReg$(_c2, \"Search\");\n$RefreshReg$(_c3, \"Header\");\n$RefreshReg$(_c4, \"Applications\");\n$RefreshReg$(_c5, \"App\");\n$RefreshReg$(_c6, \"Bookmarks\");\n$RefreshReg$(_c7, \"LinkGroups\");\n$RefreshReg$(_c8, \"LinkItem\");\n$RefreshReg$(_c9, \"ModalMenu\");\n$RefreshReg$(_c10, \"Provider\");\n$RefreshReg$(_c11, \"ModalInit\");\n$RefreshReg$(_c12, \"Clock\");","map":{"version":3,"sources":["/home/seanedmunds/dev/home-page/src/index.js"],"names":["React","useState","useEffect","ReactDOM","Homepage","date","greet","Search","handleKeyPress","Event","Header","props","Applications","appList","getApps","items","i","apps","length","push","name","url","icon","NSFW","App","classNameType","hrefUrl","iconName","Bookmarks","bookmarkList","getLinks","bookmarks","category","links","LinkGroups","LinkItem","link","ModalMenu","providers","getProviders","Provider","provider","prefix","ModalInit","render","document","getElementById","currentDate","Date","dateOptions","weekday","year","month","day","toLocaleDateString","fixDigits","k","currentTime","Math","floor","getHours","easterEggChance","random","greetings","require","timeBased","easterEggs","messages","easteregg","concat","message","easterEggText","Clock","setDate","refreshClock","timerId","setInterval","cleanup","clearInterval","hour","minutes","getMinutes","midday","time","applications","e","sindex","cycle","key","keyCode","which","text","target","value","replaceAll","option","substr","indexOf","subtext","search","preventDefault","stopPropagation","streamers","streamer","updateLabel","innerHTML","window","location","validURL","containsProtocol","str","pattern","RegExp","test","String","prototype","replacement","split","join"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { useState, useEffect } from 'react';\nimport ReactDOM from 'react-dom';\n//import { unstable_createPortal } from 'react-dom';\nimport './index.css';\n\nfunction Homepage() {\n return (\n \n \n \n
\n \n \n
\n \n \n \n
\n \n \n
\n \n \n
\n \n );\n}\n\nfunction Search() {\n return (\n \n )\n}\n\nfunction Header(props) {\n return (\n \n );\n}\n\nfunction Applications() {\n let appList = getApps();\n var items = [];\n for (var i = 0; i < appList.apps.length; i++) {\n items.push(\n \n );\n }\n return (\n \n Applications
\n \n {items}\n
\n \n );\n}\n\nfunction App(props) {\n let classNameType = props.NSFW + \"-content\";\n let hrefUrl = \"https://\" + props.url;\n let iconName = \"mdi-\" + props.icon;\n return (\n \n );\n}\n\nfunction Bookmarks() {\n let bookmarkList = getLinks();\n var items = [];\n for (var i = 0; i < bookmarkList.bookmarks.length; i++) {\n items.push(\n \n );\n }\n return (\n \n Bookmarks
\n \n {items}\n
\n \n );\n}\n\nfunction LinkGroups(props) {\n var items = [];\n for (var i = 0; i < props.links.length; i++) {\n items.push(\n \n );\n }\n return (\n \n
{props.category}
\n {items}\n \n );\n}\n\nfunction LinkItem(props) {\n return (\n \n );\n}\n\nfunction ModalMenu() {\n var providers = getProviders();\n var items = [];\n for (var i = 0; i < providers.providers.length; i++) {\n items.push(\n \n );\n }\n return (\n \n \n \n\n
Color themes
\n\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n\n\n
Search options
\n
\n \n \n \n | Website | \n Prefix | \n
\n {items}\n \n
\n \n\n \n
\n \n );\n}\n\nfunction Provider(props) {\n return (\n \n | {props.provider.name} | \n {props.provider.prefix} | \n
\n );\n}\n\nfunction ModalInit() {\n return (\n \n );\n}\n\nReactDOM.render(\n ,\n document.getElementById('root')\n);\n\n//Functions below this line are for calculating data for\n//other functions\n\nfunction date() {\n let currentDate = new Date();\n let dateOptions = {\n weekday: \"long\",\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\"\n };\n let date = currentDate.toLocaleDateString(\"en-GB\", dateOptions);\n return date;\n}\nfunction fixDigits(k) {\n if (k < 10) {\n return \"0\" + k;\n }\n else {\n return k;\n }\n}\nfunction greet() {\n let currentTime = new Date();\n let greet = Math.floor(currentTime.getHours() / 6);\n let easterEggChance = Math.floor(Math.random() * 100);\n let greetings = require('./messages.json');\n let timeBased = [];\n let easterEggs = [];\n for (var i = 0; i < greetings.messages.length; i++) {\n if (greetings.messages[i].easteregg === \"FALSE\") {\n timeBased = timeBased.concat(greetings.messages[i]);\n } else {\n easterEggs = easterEggs.concat(greetings.messages[i]);\n }\n }\n if (easterEggChance > 10) {\n return timeBased[greet].message;\n } else {\n let easterEggText = Math.floor(Math.random() * easterEggs.length);\n return easterEggs[easterEggText].message;\n }\n}\nfunction Clock() {\n const [date, setDate] = useState(new Date());\n\n function refreshClock() {\n setDate(new Date());\n }\n useEffect(() => {\n const timerId = setInterval(refreshClock, 1000);\n return function cleanup() {\n clearInterval(timerId);\n };\n }, []);\n\n var hour = date.getHours();\n var minutes = date.getMinutes();\n //var seconds = date.getSeconds();\n var midday = \"AM\";\n midday = (hour >= 12) ? \"PM\" : \"AM\";\n hour = (hour === 0) ? 12 : ((hour > 12) ? (hour - 12) : hour);\n minutes = fixDigits(minutes);\n //seconds = fixDigits(seconds);\n let time = hour + \":\" + minutes + \" \" + midday;\n\n return (\n {time}
\n\n );\n}\nfunction getApps() {\n let applications = require('./apps.json');\n return applications;\n}\nfunction getLinks() {\n let links = require('./links.json');\n return links;\n}\nfunction getProviders() {\n let providers = require('./providers.json');\n return providers;\n}\n\nfunction handleKeyPress(e) {\n var sindex = 0;\n var cycle = false;\n var key = e.keyCode || e.which;\n var text = e.target.value.replaceAll(\"+\", \"%2B\");\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n if (key == 13) { // Search functions\n search(text);\n }\n if (key == 9) { // Tab Completion Functions\n e.preventDefault();\n e.stopPropagation();\n if (text[0] === ';') {\n switch (option) {\n case 't':\n var streamers = ['admiralbahroo', 'moonmoon_ow', 'witwix'];\n if (!subtext || cycle) {\n cycle = true;\n if (sindex > streamers.length - 1) sindex = 0;\n document.getElementById(\"keywords\").value = ';t ' + streamers[sindex++];\n return;\n }\n for (var streamer of streamers) {\n if (subtext === streamer.substr(0, subtext.length)) {\n document.getElementById(\"keywords\").value = ';t ' + streamer;\n return;\n }\n }\n break;\n }\n }\n }\n if(key == 32){ //Space to go to search\nupdateLabel(text);\n }\n sindex = 0;\n cycle = false;\n updateLabel(text);\n}\n\nfunction updateLabel(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n if (text[0] === '/') {\n// if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n document.getElementById(\"searchType\").innerHTML = \"Allmusic search\";\n break;\n case \"d\":\n document.getElementById(\"searchType\").innerHTML = \"Duck Duck Go search\";\n break;\n case \"di\":\n document.getElementById(\"searchType\").innerHTML = \"Discogs search\";\n break;\n case \"i\":\n document.getElementById(\"searchType\").innerHTML = \"IMDB search\";\n break;\n case \"m\":\n document.getElementById(\"searchType\").innerHTML = \"TheMovieDB search\";\n break;\n case \"r\":\n document.getElementById(\"searchType\").innerHTML = \"Reddit search\";\n break;\n case \"q\":\n document.getElementById(\"searchType\").innerHTML = \"Qwant search\";\n break;\n case \"so\":\n document.getElementById(\"searchType\").innerHTML = \"Soundcloud search\";\n break;\n case \"s\":\n document.getElementById(\"searchType\").innerHTML = \"Spotify search\";\n break;\n case \"tv\":\n document.getElementById(\"searchType\").innerHTML = \"TheTVDB search\";\n break;\n case \"t\":\n document.getElementById(\"searchType\").innerHTML = \"Trakt search\";\n break;\n case \"y\":\n document.getElementById(\"searchType\").innerHTML = \"YouTube search\";\n break;\n case \"w\":\n document.getElementById(\"searchType\").innerHTML = \"Wikipedia search\";\n break;\n case \"p\":\n document.getElementById(\"searchType\").innerHTML = \"Plex search\";\n break;\n case \"rt\":\n document.getElementById(\"searchType\").innerHTML = \"Rotten Tomatoes search\";\n break;\n default:\n document.getElementById(\"searchType\").innerHTML = \"Invalid search\";\n break;\n }\n}else {\n document.getElementById(\"searchType\").innerHTML = \"Google search\";\n }\n}\n\nfunction search(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n if (text[0] === '/') {\n if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n window.location = \"https://www.allmusic.com/search/all/\" + subtext;\n break;\n case \"d\":\n window.location = \"https://duckduckgo.com/?q=\" + subtext;\n break;\n case \"di\":\n window.location = \"https://www.discogs.com/search/?q=\" + subtext;\n break;\n case \"i\":\n window.location = \"https://www.imdb.com/find?q=\" + subtext;\n break;\n case \"m\":\n window.location = \"https://www.themoviedb.org/search?query=\" + subtext;\n break;\n case \"r\":\n window.location = \"https://www.reddit.com/search?q=\" + subtext;\n break;\n case \"q\":\n window.location = \"https://www.qwant.com/?q=\" + subtext;\n break;\n case \"so\":\n window.location = \"https://soundcloud.com/search?q=\" + subtext;\n break;\n case \"s\":\n window.location = \"https://open.spotify.com/search/results/\" + subtext;\n break;\n case \"t\":\n window.location = \"https://trakt.tv/search?query=\" + subtext;\n break;\n case \"tv\":\n window.location = \"https://www.thetvdb.com/search?query=\" + subtext;\n break;\n case \"y\":\n window.location = \"https://www.youtube.com/results?search_query=\" + subtext;\n break;\n case \"w\":\n window.location = \"https://en.wikipedia.org/w/index.php?search=\" + subtext;\n break;\n case \"p\":\n window.location = \"https://app.plex.tv/desktop/#!/search?query=\" + subtext;\n break;\n case \"rt\":\n window.location = \"https://www.rottentomatoes.com/search?search=\" + subtext;\n break;\n }\n } else {\n var option = text.substr(1);\n switch (option) {\n case \"d\":\n window.location = \"https://www.duckduckgo.com\";\n break;\n case \"y\":\n window.location = \"https://www.youtube.com\";\n break;\n case \"r\":\n window.location = \"https://reddit.com\";\n break;\n case \"s\":\n window.location = \"https://open.spotify.com\";\n break;\n }\n }\n } else if (validURL(text)) {\n if (containsProtocol(text))\n window.location = text;\n else\n window.location = \"https://\" + text;\n } else {\n window.location = \"https://www.google.com/search?q=\" + text;\n }\n}\n\n// Source: https://stackoverflow.com/questions/5717093/check-if-a-javascript-string-is-a-url\nfunction validURL(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/)?' + // protocol\n '((([a-z\\\\d]([a-z\\\\d-]*[a-z\\\\d])*)\\\\.)+[a-z]{2,}|' + // domain name\n '((\\\\d{1,3}\\\\.){3}\\\\d{1,3}))' + // OR ip (v4) address\n '(\\\\:\\\\d+)?(\\\\/[-a-z\\\\d%_.~+]*)*' + // port and path\n '(\\\\?[;&a-z\\\\d%_.~+=-]*)?' + // query string\n '(\\\\#[-a-z\\\\d_]*)?$', 'i'); // fragment locator\n return !!pattern.test(str);\n}\n\nfunction containsProtocol(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/){1}.*', 'i');\n return !!pattern.test(str);\n}\n\nString.prototype.replaceAll = function(search, replacement) {\n var target = this;\n return target.split(search).join(replacement);\n};"]},"metadata":{},"sourceType":"module"}
\ No newline at end of file
diff --git a/node_modules/.cache/babel-loader/4929e7614eef132283e6c7addcff5d31.json b/node_modules/.cache/babel-loader/4929e7614eef132283e6c7addcff5d31.json
new file mode 100644
index 00000000..1ebc50a8
--- /dev/null
+++ b/node_modules/.cache/babel-loader/4929e7614eef132283e6c7addcff5d31.json
@@ -0,0 +1 @@
+{"ast":null,"code":"var _jsxFileName = \"/home/seanedmunds/dev/home-page/src/index.js\",\n _s = $RefreshSig$();\n\nimport React from 'react';\nimport { useState, useEffect } from 'react';\nimport ReactDOM from 'react-dom'; //import { unstable_createPortal } from 'react-dom';\n\nimport './index.css';\nimport { jsxDEV as _jsxDEV } from \"react/jsx-dev-runtime\";\n\nfunction Homepage() {\n return /*#__PURE__*/_jsxDEV(\"main\", {\n id: \"container\",\n className: \"fade\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Search, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 11,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 10,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Header, {\n date: date(),\n greet: greet()\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 14,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 13,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Applications, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 20,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 19,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Bookmarks, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 23,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 22,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(ModalMenu, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 26,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 25,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(ModalInit, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 29,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 28,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 9,\n columnNumber: 5\n }, this);\n}\n\n_c = Homepage;\n\nfunction Search() {\n const {\n inputValue\n } = this.state;\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"search\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"abackground\",\n children: [/*#__PURE__*/_jsxDEV(\"input\", {\n name: \"keywords\",\n type: \"text\",\n className: \"keyword\",\n id: \"keywords\",\n size: \"50\",\n spellCheck: \"true\",\n placeholder: \"\"\n /*onFocus={this.placeholder = \"\"} onBlur={this.placeholder = ''}*/\n ,\n autoComplete: \"off\",\n autoFocus: \"true\",\n onKeyUp: handleKeyPress()\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 40,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n id: \"searchType\",\n className: \"Input-label\",\n children: \"Google search\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 41,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 39,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 38,\n columnNumber: 5\n }, this);\n}\n\n_c2 = Search;\n\nfunction Header(props) {\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"header\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n id: \"greeting_block\",\n children: /*#__PURE__*/_jsxDEV(\"h1\", {\n id: \"header_greet\",\n children: props.greet\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 51,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 50,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"date_block\",\n children: [/*#__PURE__*/_jsxDEV(\"h2\", {\n id: \"header_date\",\n children: props.date\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 54,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(Clock, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 55,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 53,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 49,\n columnNumber: 5\n }, this);\n}\n\n_c3 = Header;\n\nfunction Applications() {\n let appList = getApps();\n var items = [];\n\n for (var i = 0; i < appList.apps.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(App, {\n name: appList.apps[i].name,\n url: appList.apps[i].url,\n icon: appList.apps[i].icon,\n NSFW: appList.apps[i].NSFW\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 66,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"apps\",\n children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n children: \"Applications\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 77,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"apps_loop\",\n children: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 78,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 76,\n columnNumber: 5\n }, this);\n}\n\n_c4 = Applications;\n\nfunction App(props) {\n let classNameType = props.NSFW + \"-content\";\n let hrefUrl = \"https://\" + props.url;\n let iconName = \"mdi-\" + props.icon;\n return /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: hrefUrl,\n className: classNameType,\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_item\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_icon\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify icon\",\n \"data-icon\": iconName\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 94,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 93,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_text\",\n children: [/*#__PURE__*/_jsxDEV(\"span\", {\n id: \"app-name\",\n children: props.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 97,\n columnNumber: 13\n }, this), /*#__PURE__*/_jsxDEV(\"span\", {\n id: \"app-address\",\n children: props.url\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 98,\n columnNumber: 13\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 96,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 92,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 91,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 90,\n columnNumber: 5\n }, this);\n}\n\n_c5 = App;\n\nfunction Bookmarks() {\n let bookmarkList = getLinks();\n var items = [];\n\n for (var i = 0; i < bookmarkList.bookmarks.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(LinkGroups, {\n category: bookmarkList.bookmarks[i].category,\n links: bookmarkList.bookmarks[i].links\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 111,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"links\",\n children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n children: \"Bookmarks\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 120,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"links_loop\",\n children: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 121,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 119,\n columnNumber: 5\n }, this);\n}\n\n_c6 = Bookmarks;\n\nfunction LinkGroups(props) {\n var items = [];\n\n for (var i = 0; i < props.links.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(LinkItem, {\n link: props.links[i]\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 132,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"links_item\",\n children: [/*#__PURE__*/_jsxDEV(\"h4\", {\n children: props.category\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 140,\n columnNumber: 7\n }, this), items]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 139,\n columnNumber: 5\n }, this);\n}\n\n_c7 = LinkGroups;\n\nfunction LinkItem(props) {\n return /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: props.link.url,\n className: \"theme_color-border theme_text-select\",\n children: props.link.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 149,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 148,\n columnNumber: 5\n }, this);\n}\n\n_c8 = LinkItem;\n\nfunction ModalMenu() {\n var providers = getProviders();\n var items = [];\n\n for (var i = 0; i < providers.providers.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(Provider, {\n provider: providers.providers[i]\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 159,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"modal\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n children: [/*#__PURE__*/_jsxDEV(\"header\", {\n id: \"modal-header\",\n children: [/*#__PURE__*/_jsxDEV(\"h1\", {\n children: \"Options\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 169,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n href: \"#\",\n title: \"Close\",\n className: \"modal-close\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-close\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 171,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 170,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 168,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"h2\", {\n children: \"Color themes\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 175,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"modal-theme\",\n children: [/*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"blackboard\",\n className: \"theme-button theme-blackboard\",\n children: \"Blackboard\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 178,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"gazette\",\n className: \"theme-button theme-gazette\",\n children: \"Gazette\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 179,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"espresso\",\n className: \"theme-button theme-espresso\",\n children: \"Espresso\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 180,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cab\",\n className: \"theme-button theme-cab\",\n children: \"Cab\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 181,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cloud\",\n className: \"theme-button theme-cloud\",\n children: \"Cloud\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 182,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"lime\",\n className: \"theme-button theme-lime\",\n children: \"Lime\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 183,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"passion\",\n className: \"theme-button theme-passion\",\n children: \"Passion\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 184,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"blues\",\n className: \"theme-button theme-blues\",\n children: \"Blues\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 185,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"chalk\",\n className: \"theme-button theme-chalk\",\n children: \"Chalk\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 186,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"tron\",\n className: \"theme-button theme-tron\",\n children: \"Tron\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 187,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"paper\",\n className: \"theme-button theme-paper\",\n children: \"Paper\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 188,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cyberpunk\",\n className: \"theme-button theme-cyberpunk\",\n children: \"Cyberpunk\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 189,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"quadra\",\n className: \"theme-button theme-panam\",\n children: \"Quadra\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 190,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"panam\",\n className: \"theme-button theme-panam\",\n children: \"Panam\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 191,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"touch\",\n className: \"theme-button theme-touch\",\n children: \"Touch\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 192,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"peek\",\n className: \"theme-button theme-peek\",\n children: \"Peek\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 193,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 177,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"h2\", {\n children: \"Search options\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 197,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"providers\",\n children: /*#__PURE__*/_jsxDEV(\"table\", {\n children: /*#__PURE__*/_jsxDEV(\"tbody\", {\n children: [/*#__PURE__*/_jsxDEV(\"tr\", {\n children: [/*#__PURE__*/_jsxDEV(\"th\", {\n children: \"Website\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 202,\n columnNumber: 19\n }, this), /*#__PURE__*/_jsxDEV(\"th\", {\n children: \"Prefix\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 203,\n columnNumber: 19\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 201,\n columnNumber: 17\n }, this), items]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 200,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 199,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 198,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"header\", {\n id: \"modal-footer\",\n children: [/*#__PURE__*/_jsxDEV(\"a\", {\n href: \"https://github.com/jeroenpardon/\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-github-box\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 211,\n columnNumber: 54\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 211,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n href: \"https://materialdesignicons.com/\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-material-design\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 212,\n columnNumber: 54\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 212,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"sneaky\",\n children: [/*#__PURE__*/_jsxDEV(\"input\", {\n type: \"checkbox\",\n id: \"contenttype\",\n onChange: \"nsfw(this)\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 213,\n columnNumber: 35\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n for: \"contenttype\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-domino-mask\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 214,\n columnNumber: 36\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 214,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 213,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 210,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 167,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 166,\n columnNumber: 5\n }, this);\n}\n\n_c9 = ModalMenu;\n\nfunction Provider(props) {\n return /*#__PURE__*/_jsxDEV(\"tr\", {\n children: [/*#__PURE__*/_jsxDEV(\"td\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: props.provider.url,\n children: props.provider.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 224,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 224,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"td\", {\n children: props.provider.prefix\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 225,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 223,\n columnNumber: 5\n }, this);\n}\n\n_c10 = Provider;\n\nfunction ModalInit() {\n return /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"modal_init\",\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n className: \"btn\",\n href: \"#modal\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify icon\",\n \"data-icon\": \"mdi-xbox-controller-menu\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 234,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 233,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 232,\n columnNumber: 5\n }, this);\n}\n\n_c11 = ModalInit;\nReactDOM.render( /*#__PURE__*/_jsxDEV(Homepage, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 241,\n columnNumber: 3\n}, this), document.getElementById('root')); //Functions below this line are for calculating data for\n//other functions\n\nfunction date() {\n let currentDate = new Date();\n let dateOptions = {\n weekday: \"long\",\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\"\n };\n let date = currentDate.toLocaleDateString(\"en-GB\", dateOptions);\n return date;\n}\n\nfunction fixDigits(k) {\n if (k < 10) {\n return \"0\" + k;\n } else {\n return k;\n }\n}\n\nfunction greet() {\n let currentTime = new Date();\n let greet = Math.floor(currentTime.getHours() / 6);\n let easterEggChance = Math.floor(Math.random() * 100);\n\n let greetings = require('./messages.json');\n\n let timeBased = [];\n let easterEggs = [];\n\n for (var i = 0; i < greetings.messages.length; i++) {\n if (greetings.messages[i].easteregg === \"FALSE\") {\n timeBased = timeBased.concat(greetings.messages[i]);\n } else {\n easterEggs = easterEggs.concat(greetings.messages[i]);\n }\n }\n\n if (easterEggChance > 10) {\n return timeBased[greet].message;\n } else {\n let easterEggText = Math.floor(Math.random() * easterEggs.length);\n return easterEggs[easterEggText].message;\n }\n}\n\nfunction Clock() {\n _s();\n\n const [date, setDate] = useState(new Date());\n\n function refreshClock() {\n setDate(new Date());\n }\n\n useEffect(() => {\n const timerId = setInterval(refreshClock, 1000);\n return function cleanup() {\n clearInterval(timerId);\n };\n }, []);\n var hour = date.getHours();\n var minutes = date.getMinutes(); //var seconds = date.getSeconds();\n\n var midday = \"AM\";\n midday = hour >= 12 ? \"PM\" : \"AM\";\n hour = hour === 0 ? 12 : hour > 12 ? hour - 12 : hour;\n minutes = fixDigits(minutes); //seconds = fixDigits(seconds);\n\n let time = hour + \":\" + minutes + \" \" + midday;\n return /*#__PURE__*/_jsxDEV(\"h2\", {\n id: \"clock\",\n children: time\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 312,\n columnNumber: 5\n }, this);\n}\n\n_s(Clock, \"Gqi45WOZhU2c0BLYX0HoJeiR0fk=\");\n\n_c12 = Clock;\n\nfunction getApps() {\n let applications = require('./apps.json');\n\n return applications;\n}\n\nfunction getLinks() {\n let links = require('./links.json');\n\n return links;\n}\n\nfunction getProviders() {\n let providers = require('./providers.json');\n\n return providers;\n}\n\nfunction handleKeyPress(e) {\n var sindex = 0;\n var cycle = false;\n var key = e.keyCode || e.which;\n var text = document.getElementById(\"keywords\").value.replaceAll(\"+\", \"%2B\");\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n\n if (key == 13) {\n // Search functions\n search(text);\n }\n\n if (key == 9) {\n // Tab Completion Functions\n e.preventDefault();\n e.stopPropagation();\n\n if (text[0] === ';') {\n switch (option) {\n case 't':\n var streamers = ['admiralbahroo', 'moonmoon_ow', 'witwix'];\n\n if (!subtext || cycle) {\n cycle = true;\n if (sindex > streamers.length - 1) sindex = 0;\n document.getElementById(\"keywords\").value = ';t ' + streamers[sindex++];\n return;\n }\n\n for (var streamer of streamers) {\n if (subtext === streamer.substr(0, subtext.length)) {\n document.getElementById(\"keywords\").value = ';t ' + streamer;\n return;\n }\n }\n\n break;\n }\n }\n }\n\n if (key == 32) {\n //Space to go to search\n updateLabel(text);\n }\n\n sindex = 0;\n cycle = false;\n updateLabel(text);\n}\n\nfunction updateLabel(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n\n if (text[0] === '/') {\n // if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n document.getElementById(\"searchType\").innerHTML = \"Allmusic search\";\n break;\n\n case \"d\":\n document.getElementById(\"searchType\").innerHTML = \"Duck Duck Go search\";\n break;\n\n case \"di\":\n document.getElementById(\"searchType\").innerHTML = \"Discogs search\";\n break;\n\n case \"i\":\n document.getElementById(\"searchType\").innerHTML = \"IMDB search\";\n break;\n\n case \"m\":\n document.getElementById(\"searchType\").innerHTML = \"TheMovieDB search\";\n break;\n\n case \"r\":\n document.getElementById(\"searchType\").innerHTML = \"Reddit search\";\n break;\n\n case \"q\":\n document.getElementById(\"searchType\").innerHTML = \"Qwant search\";\n break;\n\n case \"so\":\n document.getElementById(\"searchType\").innerHTML = \"Soundcloud search\";\n break;\n\n case \"s\":\n document.getElementById(\"searchType\").innerHTML = \"Spotify search\";\n break;\n\n case \"tv\":\n document.getElementById(\"searchType\").innerHTML = \"TheTVDB search\";\n break;\n\n case \"t\":\n document.getElementById(\"searchType\").innerHTML = \"Trakt search\";\n break;\n\n case \"y\":\n document.getElementById(\"searchType\").innerHTML = \"YouTube search\";\n break;\n\n case \"w\":\n document.getElementById(\"searchType\").innerHTML = \"Wikipedia search\";\n break;\n\n case \"p\":\n document.getElementById(\"searchType\").innerHTML = \"Plex search\";\n break;\n\n case \"rt\":\n document.getElementById(\"searchType\").innerHTML = \"Rotten Tomatoes search\";\n break;\n\n default:\n document.getElementById(\"searchType\").innerHTML = \"Invalid search\";\n break;\n }\n } else {\n document.getElementById(\"searchType\").innerHTML = \"Google search\";\n }\n}\n\nfunction search(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n\n if (text[0] === '/') {\n if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n window.location = \"https://www.allmusic.com/search/all/\" + subtext;\n break;\n\n case \"d\":\n window.location = \"https://duckduckgo.com/?q=\" + subtext;\n break;\n\n case \"di\":\n window.location = \"https://www.discogs.com/search/?q=\" + subtext;\n break;\n\n case \"i\":\n window.location = \"https://www.imdb.com/find?q=\" + subtext;\n break;\n\n case \"m\":\n window.location = \"https://www.themoviedb.org/search?query=\" + subtext;\n break;\n\n case \"r\":\n window.location = \"https://www.reddit.com/search?q=\" + subtext;\n break;\n\n case \"q\":\n window.location = \"https://www.qwant.com/?q=\" + subtext;\n break;\n\n case \"so\":\n window.location = \"https://soundcloud.com/search?q=\" + subtext;\n break;\n\n case \"s\":\n window.location = \"https://open.spotify.com/search/results/\" + subtext;\n break;\n\n case \"t\":\n window.location = \"https://trakt.tv/search?query=\" + subtext;\n break;\n\n case \"tv\":\n window.location = \"https://www.thetvdb.com/search?query=\" + subtext;\n break;\n\n case \"y\":\n window.location = \"https://www.youtube.com/results?search_query=\" + subtext;\n break;\n\n case \"w\":\n window.location = \"https://en.wikipedia.org/w/index.php?search=\" + subtext;\n break;\n\n case \"p\":\n window.location = \"https://app.plex.tv/desktop/#!/search?query=\" + subtext;\n break;\n\n case \"rt\":\n window.location = \"https://www.rottentomatoes.com/search?search=\" + subtext;\n break;\n }\n } else {\n var option = text.substr(1);\n\n switch (option) {\n case \"d\":\n window.location = \"https://www.duckduckgo.com\";\n break;\n\n case \"y\":\n window.location = \"https://www.youtube.com\";\n break;\n\n case \"r\":\n window.location = \"https://reddit.com\";\n break;\n\n case \"s\":\n window.location = \"https://open.spotify.com\";\n break;\n }\n }\n } else if (validURL(text)) {\n if (containsProtocol(text)) window.location = text;else window.location = \"https://\" + text;\n } else {\n window.location = \"https://www.google.com/search?q=\" + text;\n }\n} // Source: https://stackoverflow.com/questions/5717093/check-if-a-javascript-string-is-a-url\n\n\nfunction validURL(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/)?' + // protocol\n '((([a-z\\\\d]([a-z\\\\d-]*[a-z\\\\d])*)\\\\.)+[a-z]{2,}|' + // domain name\n '((\\\\d{1,3}\\\\.){3}\\\\d{1,3}))' + // OR ip (v4) address\n '(\\\\:\\\\d+)?(\\\\/[-a-z\\\\d%_.~+]*)*' + // port and path\n '(\\\\?[;&a-z\\\\d%_.~+=-]*)?' + // query string\n '(\\\\#[-a-z\\\\d_]*)?$', 'i'); // fragment locator\n\n return !!pattern.test(str);\n}\n\nfunction containsProtocol(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/){1}.*', 'i');\n return !!pattern.test(str);\n}\n\nString.prototype.replaceAll = function (search, replacement) {\n var target = this;\n return target.split(search).join(replacement);\n};\n\nvar _c, _c2, _c3, _c4, _c5, _c6, _c7, _c8, _c9, _c10, _c11, _c12;\n\n$RefreshReg$(_c, \"Homepage\");\n$RefreshReg$(_c2, \"Search\");\n$RefreshReg$(_c3, \"Header\");\n$RefreshReg$(_c4, \"Applications\");\n$RefreshReg$(_c5, \"App\");\n$RefreshReg$(_c6, \"Bookmarks\");\n$RefreshReg$(_c7, \"LinkGroups\");\n$RefreshReg$(_c8, \"LinkItem\");\n$RefreshReg$(_c9, \"ModalMenu\");\n$RefreshReg$(_c10, \"Provider\");\n$RefreshReg$(_c11, \"ModalInit\");\n$RefreshReg$(_c12, \"Clock\");","map":{"version":3,"sources":["/home/seanedmunds/dev/home-page/src/index.js"],"names":["React","useState","useEffect","ReactDOM","Homepage","date","greet","Search","inputValue","state","handleKeyPress","Header","props","Applications","appList","getApps","items","i","apps","length","push","name","url","icon","NSFW","App","classNameType","hrefUrl","iconName","Bookmarks","bookmarkList","getLinks","bookmarks","category","links","LinkGroups","LinkItem","link","ModalMenu","providers","getProviders","Provider","provider","prefix","ModalInit","render","document","getElementById","currentDate","Date","dateOptions","weekday","year","month","day","toLocaleDateString","fixDigits","k","currentTime","Math","floor","getHours","easterEggChance","random","greetings","require","timeBased","easterEggs","messages","easteregg","concat","message","easterEggText","Clock","setDate","refreshClock","timerId","setInterval","cleanup","clearInterval","hour","minutes","getMinutes","midday","time","applications","e","sindex","cycle","key","keyCode","which","text","value","replaceAll","option","substr","indexOf","subtext","search","preventDefault","stopPropagation","streamers","streamer","updateLabel","innerHTML","window","location","validURL","containsProtocol","str","pattern","RegExp","test","String","prototype","replacement","target","split","join"],"mappings":";;;AAAA,OAAOA,KAAP,MAAkB,OAAlB;AACA,SAASC,QAAT,EAAmBC,SAAnB,QAAoC,OAApC;AACA,OAAOC,QAAP,MAAqB,WAArB,C,CACA;;AACA,OAAO,aAAP;;;AAEA,SAASC,QAAT,GAAoB;AAClB,sBACE;AAAM,IAAA,EAAE,EAAC,WAAT;AAAqB,IAAA,SAAS,EAAC,MAA/B;AAAA,4BACI;AAAA,6BACE,QAAC,MAAD;AAAA;AAAA;AAAA;AAAA;AADF;AAAA;AAAA;AAAA;AAAA,YADJ,eAII;AAAA,6BACE,QAAC,MAAD;AACE,QAAA,IAAI,EAAEC,IAAI,EADZ;AAEE,QAAA,KAAK,EAAEC,KAAK;AAFd;AAAA;AAAA;AAAA;AAAA;AADF;AAAA;AAAA;AAAA;AAAA,YAJJ,eAUI;AAAA,6BACE,QAAC,YAAD;AAAA;AAAA;AAAA;AAAA;AADF;AAAA;AAAA;AAAA;AAAA,YAVJ,eAaI;AAAA,6BACE,QAAC,SAAD;AAAA;AAAA;AAAA;AAAA;AADF;AAAA;AAAA;AAAA;AAAA,YAbJ,eAgBI;AAAA,6BACE,QAAC,SAAD;AAAA;AAAA;AAAA;AAAA;AADF;AAAA;AAAA;AAAA;AAAA,YAhBJ,eAmBI;AAAA,6BACE,QAAC,SAAD;AAAA;AAAA;AAAA;AAAA;AADF;AAAA;AAAA;AAAA;AAAA,YAnBJ;AAAA;AAAA;AAAA;AAAA;AAAA,UADF;AAyBD;;KA1BQF,Q;;AA4BT,SAASG,MAAT,GAAkB;AAChB,QAAM;AAACC,IAAAA;AAAD,MAAe,KAAKC,KAA1B;AACA,sBACE;AAAS,IAAA,EAAE,EAAC,QAAZ;AAAA,2BACE;AAAK,MAAA,SAAS,EAAC,aAAf;AAAA,8BACE;AAAO,QAAA,IAAI,EAAC,UAAZ;AAAuB,QAAA,IAAI,EAAC,MAA5B;AAAmC,QAAA,SAAS,EAAC,SAA7C;AAAuD,QAAA,EAAE,EAAC,UAA1D;AAAqE,QAAA,IAAI,EAAC,IAA1E;AAA+E,QAAA,UAAU,EAAC,MAA1F;AAAiG,QAAA,WAAW,EAAC;AAAG;AAAhH;AAAmL,QAAA,YAAY,EAAC,KAAhM;AAAsM,QAAA,SAAS,EAAC,MAAhN;AAAuN,QAAA,OAAO,EAAEC,cAAc;AAA9O;AAAA;AAAA;AAAA;AAAA,cADF,eAEE;AAAO,QAAA,EAAE,EAAC,YAAV;AAAuB,QAAA,SAAS,EAAC,aAAjC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,cAFF;AAAA;AAAA;AAAA;AAAA;AAAA;AADF;AAAA;AAAA;AAAA;AAAA,UADF;AAQD;;MAVQH,M;;AAYT,SAASI,MAAT,CAAgBC,KAAhB,EAAuB;AACrB,sBACE;AAAS,IAAA,EAAE,EAAC,QAAZ;AAAA,4BACE;AAAK,MAAA,EAAE,EAAC,gBAAR;AAAA,6BACE;AAAI,QAAA,EAAE,EAAC,cAAP;AAAA,kBAAuBA,KAAK,CAACN;AAA7B;AAAA;AAAA;AAAA;AAAA;AADF;AAAA;AAAA;AAAA;AAAA,YADF,eAIE;AAAK,MAAA,EAAE,EAAC,YAAR;AAAA,8BACE;AAAI,QAAA,EAAE,EAAC,aAAP;AAAA,kBAAsBM,KAAK,CAACP;AAA5B;AAAA;AAAA;AAAA;AAAA,cADF,eAEE,QAAC,KAAD;AAAA;AAAA;AAAA;AAAA,cAFF;AAAA;AAAA;AAAA;AAAA;AAAA,YAJF;AAAA;AAAA;AAAA;AAAA;AAAA,UADF;AAWD;;MAZQM,M;;AAcT,SAASE,YAAT,GAAwB;AACtB,MAAIC,OAAO,GAAGC,OAAO,EAArB;AACA,MAAIC,KAAK,GAAG,EAAZ;;AACA,OAAK,IAAIC,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGH,OAAO,CAACI,IAAR,CAAaC,MAAjC,EAAyCF,CAAC,EAA1C,EAA8C;AAC5CD,IAAAA,KAAK,CAACI,IAAN,eACE,QAAC,GAAD;AAEE,MAAA,IAAI,EAAEN,OAAO,CAACI,IAAR,CAAaD,CAAb,EAAgBI,IAFxB;AAGE,MAAA,GAAG,EAAEP,OAAO,CAACI,IAAR,CAAaD,CAAb,EAAgBK,GAHvB;AAIE,MAAA,IAAI,EAAER,OAAO,CAACI,IAAR,CAAaD,CAAb,EAAgBM,IAJxB;AAKE,MAAA,IAAI,EAAET,OAAO,CAACI,IAAR,CAAaD,CAAb,EAAgBO;AALxB,OACOP,CADP;AAAA;AAAA;AAAA;AAAA,YADF;AASD;;AACD,sBACE;AAAS,IAAA,EAAE,EAAC,MAAZ;AAAA,4BACE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,YADF,eAEE;AAAK,MAAA,EAAE,EAAC,WAAR;AAAA,gBACGD;AADH;AAAA;AAAA;AAAA;AAAA,YAFF;AAAA;AAAA;AAAA;AAAA;AAAA,UADF;AAQD;;MAtBQH,Y;;AAwBT,SAASY,GAAT,CAAab,KAAb,EAAoB;AAClB,MAAIc,aAAa,GAAGd,KAAK,CAACY,IAAN,GAAa,UAAjC;AACA,MAAIG,OAAO,GAAG,aAAaf,KAAK,CAACU,GAAjC;AACA,MAAIM,QAAQ,GAAG,SAAShB,KAAK,CAACW,IAA9B;AACA,sBACE;AAAA,2BACE;AAAG,MAAA,IAAI,EAAEI,OAAT;AAAkB,MAAA,SAAS,EAAED,aAA7B;AAAA,6BACE;AAAK,QAAA,SAAS,EAAC,WAAf;AAAA,gCACE;AAAK,UAAA,SAAS,EAAC,WAAf;AAAA,iCACE;AAAM,YAAA,SAAS,EAAC,cAAhB;AAA+B,yBAAWE;AAA1C;AAAA;AAAA;AAAA;AAAA;AADF;AAAA;AAAA;AAAA;AAAA,gBADF,eAIE;AAAK,UAAA,SAAS,EAAC,WAAf;AAAA,kCACE;AAAM,YAAA,EAAE,EAAC,UAAT;AAAA,sBAAqBhB,KAAK,CAACS;AAA3B;AAAA;AAAA;AAAA;AAAA,kBADF,eAEE;AAAM,YAAA,EAAE,EAAC,aAAT;AAAA,sBAAwBT,KAAK,CAACU;AAA9B;AAAA;AAAA;AAAA;AAAA,kBAFF;AAAA;AAAA;AAAA;AAAA;AAAA,gBAJF;AAAA;AAAA;AAAA;AAAA;AAAA;AADF;AAAA;AAAA;AAAA;AAAA;AADF;AAAA;AAAA;AAAA;AAAA,UADF;AAeD;;MAnBQG,G;;AAqBT,SAASI,SAAT,GAAqB;AACnB,MAAIC,YAAY,GAAGC,QAAQ,EAA3B;AACA,MAAIf,KAAK,GAAG,EAAZ;;AACA,OAAK,IAAIC,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGa,YAAY,CAACE,SAAb,CAAuBb,MAA3C,EAAmDF,CAAC,EAApD,EAAwD;AACtDD,IAAAA,KAAK,CAACI,IAAN,eACE,QAAC,UAAD;AAEE,MAAA,QAAQ,EAAEU,YAAY,CAACE,SAAb,CAAuBf,CAAvB,EAA0BgB,QAFtC;AAGE,MAAA,KAAK,EAAEH,YAAY,CAACE,SAAb,CAAuBf,CAAvB,EAA0BiB;AAHnC,OACOjB,CADP;AAAA;AAAA;AAAA;AAAA,YADF;AAOD;;AACD,sBACE;AAAS,IAAA,EAAE,EAAC,OAAZ;AAAA,4BACE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,YADF,eAEE;AAAK,MAAA,EAAE,EAAC,YAAR;AAAA,gBACKD;AADL;AAAA;AAAA;AAAA;AAAA,YAFF;AAAA;AAAA;AAAA;AAAA;AAAA,UADF;AAQD;;MApBQa,S;;AAsBT,SAASM,UAAT,CAAoBvB,KAApB,EAA2B;AACzB,MAAII,KAAK,GAAG,EAAZ;;AACA,OAAK,IAAIC,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGL,KAAK,CAACsB,KAAN,CAAYf,MAAhC,EAAwCF,CAAC,EAAzC,EAA6C;AAC3CD,IAAAA,KAAK,CAACI,IAAN,eACE,QAAC,QAAD;AAEE,MAAA,IAAI,EAAER,KAAK,CAACsB,KAAN,CAAYjB,CAAZ;AAFR,OACOA,CADP;AAAA;AAAA;AAAA;AAAA,YADF;AAMD;;AACD,sBACE;AAAK,IAAA,EAAE,EAAC,YAAR;AAAA,4BACE;AAAA,gBAAKL,KAAK,CAACqB;AAAX;AAAA;AAAA;AAAA;AAAA,YADF,EAEGjB,KAFH;AAAA;AAAA;AAAA;AAAA;AAAA,UADF;AAMD;;MAhBQmB,U;;AAkBT,SAASC,QAAT,CAAkBxB,KAAlB,EAAyB;AACvB,sBACE;AAAA,2BACE;AAAG,MAAA,IAAI,EAAEA,KAAK,CAACyB,IAAN,CAAWf,GAApB;AAAyB,MAAA,SAAS,EAAC,sCAAnC;AAAA,gBAA2EV,KAAK,CAACyB,IAAN,CAAWhB;AAAtF;AAAA;AAAA;AAAA;AAAA;AADF;AAAA;AAAA;AAAA;AAAA,UADF;AAKD;;MANQe,Q;;AAQT,SAASE,SAAT,GAAqB;AACnB,MAAIC,SAAS,GAAGC,YAAY,EAA5B;AACA,MAAIxB,KAAK,GAAG,EAAZ;;AACA,OAAK,IAAIC,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGsB,SAAS,CAACA,SAAV,CAAoBpB,MAAxC,EAAgDF,CAAC,EAAjD,EAAqD;AACnDD,IAAAA,KAAK,CAACI,IAAN,eACE,QAAC,QAAD;AAEE,MAAA,QAAQ,EAAEmB,SAAS,CAACA,SAAV,CAAoBtB,CAApB;AAFZ,OACOA,CADP;AAAA;AAAA;AAAA;AAAA,YADF;AAMD;;AACD,sBACE;AAAS,IAAA,EAAE,EAAC,OAAZ;AAAA,2BACE;AAAA,8BACE;AAAQ,QAAA,EAAE,EAAC,cAAX;AAAA,gCACE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,gBADF,eAEE;AAAG,UAAA,IAAI,EAAC,GAAR;AAAY,UAAA,KAAK,EAAC,OAAlB;AAA0B,UAAA,SAAS,EAAC,aAApC;AAAA,iCACE;AAAM,YAAA,SAAS,EAAC,SAAhB;AAA0B,yBAAU;AAApC;AAAA;AAAA;AAAA;AAAA;AADF;AAAA;AAAA;AAAA;AAAA,gBAFF;AAAA;AAAA;AAAA;AAAA;AAAA,cADF,eAQE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,cARF,eAUE;AAAK,QAAA,EAAE,EAAC,aAAR;AAAA,gCACE;AAAQ,wBAAW,YAAnB;AAAgC,UAAA,SAAS,EAAC,+BAA1C;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,gBADF,eAEE;AAAQ,wBAAW,SAAnB;AAA6B,UAAA,SAAS,EAAC,4BAAvC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,gBAFF,eAGE;AAAQ,wBAAW,UAAnB;AAA8B,UAAA,SAAS,EAAC,6BAAxC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,gBAHF,eAIE;AAAQ,wBAAW,KAAnB;AAAyB,UAAA,SAAS,EAAC,wBAAnC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,gBAJF,eAKE;AAAQ,wBAAW,OAAnB;AAA2B,UAAA,SAAS,EAAC,0BAArC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,gBALF,eAME;AAAQ,wBAAW,MAAnB;AAA0B,UAAA,SAAS,EAAC,yBAApC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,gBANF,eAOE;AAAQ,wBAAW,SAAnB;AAA6B,UAAA,SAAS,EAAC,4BAAvC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,gBAPF,eAQE;AAAQ,wBAAW,OAAnB;AAA2B,UAAA,SAAS,EAAC,0BAArC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,gBARF,eASE;AAAQ,wBAAW,OAAnB;AAA2B,UAAA,SAAS,EAAC,0BAArC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,gBATF,eAUE;AAAQ,wBAAW,MAAnB;AAA0B,UAAA,SAAS,EAAC,yBAApC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,gBAVF,eAWE;AAAQ,wBAAW,OAAnB;AAA2B,UAAA,SAAS,EAAC,0BAArC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,gBAXF,eAYE;AAAQ,wBAAW,WAAnB;AAA+B,UAAA,SAAS,EAAC,8BAAzC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,gBAZF,eAaE;AAAQ,wBAAW,QAAnB;AAA4B,UAAA,SAAS,EAAC,0BAAtC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,gBAbF,eAcE;AAAQ,wBAAW,OAAnB;AAA2B,UAAA,SAAS,EAAC,0BAArC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,gBAdF,eAeE;AAAQ,wBAAW,OAAnB;AAA2B,UAAA,SAAS,EAAC,0BAArC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,gBAfF,eAgBE;AAAQ,wBAAW,MAAnB;AAA0B,UAAA,SAAS,EAAC,yBAApC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,gBAhBF;AAAA;AAAA;AAAA;AAAA;AAAA,cAVF,eA8BE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,cA9BF,eA+BI;AAAS,QAAA,EAAE,EAAC,WAAZ;AAAA,+BACE;AAAA,iCACE;AAAA,oCACE;AAAA,sCACE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,sBADF,eAEE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,sBAFF;AAAA;AAAA;AAAA;AAAA;AAAA,oBADF,EAKGD,KALH;AAAA;AAAA;AAAA;AAAA;AAAA;AADF;AAAA;AAAA;AAAA;AAAA;AADF;AAAA;AAAA;AAAA;AAAA,cA/BJ,eA2CE;AAAQ,QAAA,EAAE,EAAC,cAAX;AAAA,gCACE;AAAG,UAAA,IAAI,EAAC,kCAAR;AAAA,iCAA2C;AAAM,YAAA,SAAS,EAAC,SAAhB;AAA0B,yBAAU;AAApC;AAAA;AAAA;AAAA;AAAA;AAA3C;AAAA;AAAA;AAAA;AAAA,gBADF,eAEE;AAAG,UAAA,IAAI,EAAC,kCAAR;AAAA,iCAA2C;AAAM,YAAA,SAAS,EAAC,SAAhB;AAA0B,yBAAU;AAApC;AAAA;AAAA;AAAA;AAAA;AAA3C;AAAA;AAAA;AAAA;AAAA,gBAFF,eAGE;AAAK,UAAA,SAAS,EAAC,QAAf;AAAA,kCAAwB;AAAO,YAAA,IAAI,EAAC,UAAZ;AAAuB,YAAA,EAAE,EAAC,aAA1B;AAAwC,YAAA,QAAQ,EAAC;AAAjD;AAAA;AAAA;AAAA;AAAA,kBAAxB,eACA;AAAO,YAAA,GAAG,EAAC,aAAX;AAAA,mCAAyB;AAAM,cAAA,SAAS,EAAC,SAAhB;AAA0B,2BAAU;AAApC;AAAA;AAAA;AAAA;AAAA;AAAzB;AAAA;AAAA;AAAA;AAAA,kBADA;AAAA;AAAA;AAAA;AAAA;AAAA,gBAHF;AAAA;AAAA;AAAA;AAAA;AAAA,cA3CF;AAAA;AAAA;AAAA;AAAA;AAAA;AADF;AAAA;AAAA;AAAA;AAAA,UADF;AAsDD;;MAjEQsB,S;;AAmET,SAASG,QAAT,CAAkB7B,KAAlB,EAAyB;AACvB,sBACE;AAAA,4BACE;AAAA,6BAAI;AAAG,QAAA,IAAI,EAAEA,KAAK,CAAC8B,QAAN,CAAepB,GAAxB;AAAA,kBAA8BV,KAAK,CAAC8B,QAAN,CAAerB;AAA7C;AAAA;AAAA;AAAA;AAAA;AAAJ;AAAA;AAAA;AAAA;AAAA,YADF,eAEE;AAAA,gBAAKT,KAAK,CAAC8B,QAAN,CAAeC;AAApB;AAAA;AAAA;AAAA;AAAA,YAFF;AAAA;AAAA;AAAA;AAAA;AAAA,UADF;AAMD;;OAPQF,Q;;AAST,SAASG,SAAT,GAAqB;AACnB,sBACE;AAAK,IAAA,EAAE,EAAC,YAAR;AAAA,2BACE;AAAG,MAAA,SAAS,EAAC,KAAb;AAAmB,MAAA,IAAI,EAAC,QAAxB;AAAA,6BACE;AAAM,QAAA,SAAS,EAAC,cAAhB;AAA+B,qBAAU;AAAzC;AAAA;AAAA;AAAA;AAAA;AADF;AAAA;AAAA;AAAA;AAAA;AADF;AAAA;AAAA;AAAA;AAAA,UADF;AAOD;;OARQA,S;AAUTzC,QAAQ,CAAC0C,MAAT,eACE,QAAC,QAAD;AAAA;AAAA;AAAA;AAAA,QADF,EAEEC,QAAQ,CAACC,cAAT,CAAwB,MAAxB,CAFF,E,CAKA;AACA;;AAEA,SAAS1C,IAAT,GAAgB;AACd,MAAI2C,WAAW,GAAG,IAAIC,IAAJ,EAAlB;AACA,MAAIC,WAAW,GAAG;AAChBC,IAAAA,OAAO,EAAE,MADO;AAEhBC,IAAAA,IAAI,EAAE,SAFU;AAGhBC,IAAAA,KAAK,EAAE,MAHS;AAIhBC,IAAAA,GAAG,EAAE;AAJW,GAAlB;AAMA,MAAIjD,IAAI,GAAG2C,WAAW,CAACO,kBAAZ,CAA+B,OAA/B,EAAwCL,WAAxC,CAAX;AACA,SAAO7C,IAAP;AACD;;AACD,SAASmD,SAAT,CAAmBC,CAAnB,EAAsB;AACpB,MAAIA,CAAC,GAAG,EAAR,EAAY;AACV,WAAO,MAAMA,CAAb;AACD,GAFD,MAGK;AACH,WAAOA,CAAP;AACD;AACF;;AACD,SAASnD,KAAT,GAAiB;AACf,MAAIoD,WAAW,GAAG,IAAIT,IAAJ,EAAlB;AACA,MAAI3C,KAAK,GAAGqD,IAAI,CAACC,KAAL,CAAWF,WAAW,CAACG,QAAZ,KAAyB,CAApC,CAAZ;AACA,MAAIC,eAAe,GAAGH,IAAI,CAACC,KAAL,CAAWD,IAAI,CAACI,MAAL,KAAgB,GAA3B,CAAtB;;AACA,MAAIC,SAAS,GAAGC,OAAO,CAAC,iBAAD,CAAvB;;AACA,MAAIC,SAAS,GAAG,EAAhB;AACA,MAAIC,UAAU,GAAG,EAAjB;;AACA,OAAK,IAAIlD,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG+C,SAAS,CAACI,QAAV,CAAmBjD,MAAvC,EAA+CF,CAAC,EAAhD,EAAoD;AAClD,QAAI+C,SAAS,CAACI,QAAV,CAAmBnD,CAAnB,EAAsBoD,SAAtB,KAAoC,OAAxC,EAAiD;AAC/CH,MAAAA,SAAS,GAAGA,SAAS,CAACI,MAAV,CAAiBN,SAAS,CAACI,QAAV,CAAmBnD,CAAnB,CAAjB,CAAZ;AACD,KAFD,MAEO;AACLkD,MAAAA,UAAU,GAAGA,UAAU,CAACG,MAAX,CAAkBN,SAAS,CAACI,QAAV,CAAmBnD,CAAnB,CAAlB,CAAb;AACD;AACF;;AACD,MAAI6C,eAAe,GAAG,EAAtB,EAA0B;AACxB,WAAOI,SAAS,CAAC5D,KAAD,CAAT,CAAiBiE,OAAxB;AACD,GAFD,MAEO;AACL,QAAIC,aAAa,GAAGb,IAAI,CAACC,KAAL,CAAWD,IAAI,CAACI,MAAL,KAAgBI,UAAU,CAAChD,MAAtC,CAApB;AACA,WAAOgD,UAAU,CAACK,aAAD,CAAV,CAA0BD,OAAjC;AACD;AACF;;AACD,SAASE,KAAT,GAAiB;AAAA;;AACf,QAAM,CAACpE,IAAD,EAAOqE,OAAP,IAAkBzE,QAAQ,CAAC,IAAIgD,IAAJ,EAAD,CAAhC;;AAEA,WAAS0B,YAAT,GAAwB;AACtBD,IAAAA,OAAO,CAAC,IAAIzB,IAAJ,EAAD,CAAP;AACD;;AACD/C,EAAAA,SAAS,CAAC,MAAM;AACd,UAAM0E,OAAO,GAAGC,WAAW,CAACF,YAAD,EAAe,IAAf,CAA3B;AACA,WAAO,SAASG,OAAT,GAAmB;AACxBC,MAAAA,aAAa,CAACH,OAAD,CAAb;AACD,KAFD;AAGD,GALQ,EAKN,EALM,CAAT;AAOA,MAAII,IAAI,GAAG3E,IAAI,CAACwD,QAAL,EAAX;AACA,MAAIoB,OAAO,GAAG5E,IAAI,CAAC6E,UAAL,EAAd,CAde,CAef;;AACA,MAAIC,MAAM,GAAG,IAAb;AACAA,EAAAA,MAAM,GAAIH,IAAI,IAAI,EAAT,GAAe,IAAf,GAAsB,IAA/B;AACAA,EAAAA,IAAI,GAAIA,IAAI,KAAK,CAAV,GAAe,EAAf,GAAsBA,IAAI,GAAG,EAAR,GAAeA,IAAI,GAAG,EAAtB,GAA4BA,IAAxD;AACAC,EAAAA,OAAO,GAAGzB,SAAS,CAACyB,OAAD,CAAnB,CAnBe,CAoBf;;AACA,MAAIG,IAAI,GAAGJ,IAAI,GAAG,GAAP,GAAaC,OAAb,GAAuB,GAAvB,GAA6BE,MAAxC;AAEA,sBACE;AAAI,IAAA,EAAE,EAAC,OAAP;AAAA,cAAgBC;AAAhB;AAAA;AAAA;AAAA;AAAA,UADF;AAID;;GA3BQX,K;;OAAAA,K;;AA4BT,SAAS1D,OAAT,GAAmB;AACjB,MAAIsE,YAAY,GAAGpB,OAAO,CAAC,aAAD,CAA1B;;AACA,SAAOoB,YAAP;AACD;;AACD,SAAStD,QAAT,GAAoB;AAClB,MAAIG,KAAK,GAAG+B,OAAO,CAAC,cAAD,CAAnB;;AACA,SAAO/B,KAAP;AACD;;AACD,SAASM,YAAT,GAAwB;AACtB,MAAID,SAAS,GAAG0B,OAAO,CAAC,kBAAD,CAAvB;;AACA,SAAO1B,SAAP;AACD;;AAED,SAAS7B,cAAT,CAAwB4E,CAAxB,EAA2B;AACzB,MAAIC,MAAM,GAAG,CAAb;AACA,MAAIC,KAAK,GAAG,KAAZ;AACA,MAAIC,GAAG,GAAGH,CAAC,CAACI,OAAF,IAAaJ,CAAC,CAACK,KAAzB;AACA,MAAIC,IAAI,GAAG9C,QAAQ,CAACC,cAAT,CAAwB,UAAxB,EAAoC8C,KAApC,CAA0CC,UAA1C,CAAqD,GAArD,EAA0D,KAA1D,CAAX;AACA,MAAIC,MAAM,GAAGH,IAAI,CAACI,MAAL,CAAY,CAAZ,EAAeJ,IAAI,CAACK,OAAL,CAAa,GAAb,IAAoB,CAAnC,KAAyCL,IAAI,CAACI,MAAL,CAAY,CAAZ,CAAtD;AACA,MAAIE,OAAO,GAAGN,IAAI,CAACI,MAAL,CAAY,IAAID,MAAM,CAAC5E,MAAvB,CAAd;;AACA,MAAIsE,GAAG,IAAI,EAAX,EAAe;AAAE;AACbU,IAAAA,MAAM,CAACP,IAAD,CAAN;AACH;;AACD,MAAIH,GAAG,IAAI,CAAX,EAAc;AAAE;AACZH,IAAAA,CAAC,CAACc,cAAF;AACAd,IAAAA,CAAC,CAACe,eAAF;;AACA,QAAIT,IAAI,CAAC,CAAD,CAAJ,KAAY,GAAhB,EAAqB;AACjB,cAAQG,MAAR;AACI,aAAK,GAAL;AACI,cAAIO,SAAS,GAAG,CAAC,eAAD,EAAkB,aAAlB,EAAiC,QAAjC,CAAhB;;AACA,cAAI,CAACJ,OAAD,IAAYV,KAAhB,EAAuB;AACnBA,YAAAA,KAAK,GAAG,IAAR;AACA,gBAAID,MAAM,GAAGe,SAAS,CAACnF,MAAV,GAAmB,CAAhC,EAAmCoE,MAAM,GAAG,CAAT;AACnCzC,YAAAA,QAAQ,CAACC,cAAT,CAAwB,UAAxB,EAAoC8C,KAApC,GAA4C,QAAQS,SAAS,CAACf,MAAM,EAAP,CAA7D;AACA;AACH;;AACD,eAAK,IAAIgB,QAAT,IAAqBD,SAArB,EAAgC;AAC5B,gBAAIJ,OAAO,KAAKK,QAAQ,CAACP,MAAT,CAAgB,CAAhB,EAAmBE,OAAO,CAAC/E,MAA3B,CAAhB,EAAoD;AAChD2B,cAAAA,QAAQ,CAACC,cAAT,CAAwB,UAAxB,EAAoC8C,KAApC,GAA4C,QAAQU,QAApD;AACA;AACH;AACJ;;AACD;AAfR;AAiBH;AACJ;;AACD,MAAGd,GAAG,IAAI,EAAV,EAAa;AAAE;AACjBe,IAAAA,WAAW,CAACZ,IAAD,CAAX;AACG;;AACDL,EAAAA,MAAM,GAAG,CAAT;AACAC,EAAAA,KAAK,GAAG,KAAR;AACAgB,EAAAA,WAAW,CAACZ,IAAD,CAAX;AACD;;AAED,SAASY,WAAT,CAAqBZ,IAArB,EAA2B;AACzB,MAAIG,MAAM,GAAGH,IAAI,CAACI,MAAL,CAAY,CAAZ,EAAeJ,IAAI,CAACK,OAAL,CAAa,GAAb,IAAoB,CAAnC,KAAyCL,IAAI,CAACI,MAAL,CAAY,CAAZ,CAAtD;;AACA,MAAIJ,IAAI,CAAC,CAAD,CAAJ,KAAY,GAAhB,EAAqB;AACvB;AACU,YAAQG,MAAR;AACI,WAAK,IAAL;AACIjD,QAAAA,QAAQ,CAACC,cAAT,CAAwB,YAAxB,EAAsC0D,SAAtC,GAAkD,iBAAlD;AACA;;AAChB,WAAK,GAAL;AACI3D,QAAAA,QAAQ,CAACC,cAAT,CAAwB,YAAxB,EAAsC0D,SAAtC,GAAkD,qBAAlD;AACA;;AACJ,WAAK,IAAL;AACI3D,QAAAA,QAAQ,CAACC,cAAT,CAAwB,YAAxB,EAAsC0D,SAAtC,GAAkD,gBAAlD;AACA;;AACJ,WAAK,GAAL;AACI3D,QAAAA,QAAQ,CAACC,cAAT,CAAwB,YAAxB,EAAsC0D,SAAtC,GAAkD,aAAlD;AACA;;AACJ,WAAK,GAAL;AACI3D,QAAAA,QAAQ,CAACC,cAAT,CAAwB,YAAxB,EAAsC0D,SAAtC,GAAkD,mBAAlD;AACA;;AACJ,WAAK,GAAL;AACI3D,QAAAA,QAAQ,CAACC,cAAT,CAAwB,YAAxB,EAAsC0D,SAAtC,GAAkD,eAAlD;AACA;;AACJ,WAAK,GAAL;AACI3D,QAAAA,QAAQ,CAACC,cAAT,CAAwB,YAAxB,EAAsC0D,SAAtC,GAAkD,cAAlD;AACA;;AACJ,WAAK,IAAL;AACI3D,QAAAA,QAAQ,CAACC,cAAT,CAAwB,YAAxB,EAAsC0D,SAAtC,GAAkD,mBAAlD;AACA;;AACJ,WAAK,GAAL;AACI3D,QAAAA,QAAQ,CAACC,cAAT,CAAwB,YAAxB,EAAsC0D,SAAtC,GAAkD,gBAAlD;AACA;;AACJ,WAAK,IAAL;AACI3D,QAAAA,QAAQ,CAACC,cAAT,CAAwB,YAAxB,EAAsC0D,SAAtC,GAAkD,gBAAlD;AACA;;AACJ,WAAK,GAAL;AACI3D,QAAAA,QAAQ,CAACC,cAAT,CAAwB,YAAxB,EAAsC0D,SAAtC,GAAkD,cAAlD;AACA;;AACJ,WAAK,GAAL;AACI3D,QAAAA,QAAQ,CAACC,cAAT,CAAwB,YAAxB,EAAsC0D,SAAtC,GAAkD,gBAAlD;AACA;;AACJ,WAAK,GAAL;AACI3D,QAAAA,QAAQ,CAACC,cAAT,CAAwB,YAAxB,EAAsC0D,SAAtC,GAAkD,kBAAlD;AACA;;AACJ,WAAK,GAAL;AACI3D,QAAAA,QAAQ,CAACC,cAAT,CAAwB,YAAxB,EAAsC0D,SAAtC,GAAkD,aAAlD;AACA;;AACJ,WAAK,IAAL;AACI3D,QAAAA,QAAQ,CAACC,cAAT,CAAwB,YAAxB,EAAsC0D,SAAtC,GAAkD,wBAAlD;AACA;;AACJ;AACI3D,QAAAA,QAAQ,CAACC,cAAT,CAAwB,YAAxB,EAAsC0D,SAAtC,GAAkD,gBAAlD;AACA;AAhDI;AAkDT,GApDC,MAoDI;AACJ3D,IAAAA,QAAQ,CAACC,cAAT,CAAwB,YAAxB,EAAsC0D,SAAtC,GAAkD,eAAlD;AACC;AACF;;AAED,SAASN,MAAT,CAAgBP,IAAhB,EAAsB;AACpB,MAAIG,MAAM,GAAGH,IAAI,CAACI,MAAL,CAAY,CAAZ,EAAeJ,IAAI,CAACK,OAAL,CAAa,GAAb,IAAoB,CAAnC,KAAyCL,IAAI,CAACI,MAAL,CAAY,CAAZ,CAAtD;AACA,MAAIE,OAAO,GAAGN,IAAI,CAACI,MAAL,CAAY,IAAID,MAAM,CAAC5E,MAAvB,CAAd;;AACA,MAAIyE,IAAI,CAAC,CAAD,CAAJ,KAAY,GAAhB,EAAqB;AACjB,QAAIA,IAAI,CAACK,OAAL,CAAa,GAAb,IAAoB,CAAC,CAAzB,EAA4B;AACxB,cAAQF,MAAR;AACI,aAAK,IAAL;AACIW,UAAAA,MAAM,CAACC,QAAP,GAAkB,yCAAyCT,OAA3D;AACA;;AACJ,aAAK,GAAL;AACIQ,UAAAA,MAAM,CAACC,QAAP,GAAkB,+BAA+BT,OAAjD;AACA;;AACJ,aAAK,IAAL;AACIQ,UAAAA,MAAM,CAACC,QAAP,GAAkB,uCAAuCT,OAAzD;AACA;;AACJ,aAAK,GAAL;AACIQ,UAAAA,MAAM,CAACC,QAAP,GAAkB,iCAAiCT,OAAnD;AACA;;AACJ,aAAK,GAAL;AACIQ,UAAAA,MAAM,CAACC,QAAP,GAAkB,6CAA6CT,OAA/D;AACA;;AACJ,aAAK,GAAL;AACIQ,UAAAA,MAAM,CAACC,QAAP,GAAkB,qCAAqCT,OAAvD;AACA;;AACJ,aAAK,GAAL;AACIQ,UAAAA,MAAM,CAACC,QAAP,GAAkB,8BAA8BT,OAAhD;AACA;;AACJ,aAAK,IAAL;AACIQ,UAAAA,MAAM,CAACC,QAAP,GAAkB,qCAAqCT,OAAvD;AACA;;AACJ,aAAK,GAAL;AACIQ,UAAAA,MAAM,CAACC,QAAP,GAAkB,6CAA6CT,OAA/D;AACA;;AACJ,aAAK,GAAL;AACIQ,UAAAA,MAAM,CAACC,QAAP,GAAkB,mCAAmCT,OAArD;AACA;;AACJ,aAAK,IAAL;AACIQ,UAAAA,MAAM,CAACC,QAAP,GAAkB,0CAA0CT,OAA5D;AACA;;AACJ,aAAK,GAAL;AACIQ,UAAAA,MAAM,CAACC,QAAP,GAAkB,kDAAkDT,OAApE;AACA;;AACJ,aAAK,GAAL;AACIQ,UAAAA,MAAM,CAACC,QAAP,GAAkB,iDAAiDT,OAAnE;AACA;;AACJ,aAAK,GAAL;AACIQ,UAAAA,MAAM,CAACC,QAAP,GAAkB,iDAAiDT,OAAnE;AACA;;AACJ,aAAK,IAAL;AACIQ,UAAAA,MAAM,CAACC,QAAP,GAAkB,kDAAkDT,OAApE;AACA;AA7CR;AA+CH,KAhDD,MAgDO;AACH,UAAIH,MAAM,GAAGH,IAAI,CAACI,MAAL,CAAY,CAAZ,CAAb;;AACA,cAAQD,MAAR;AACI,aAAK,GAAL;AACIW,UAAAA,MAAM,CAACC,QAAP,GAAkB,4BAAlB;AACA;;AACJ,aAAK,GAAL;AACID,UAAAA,MAAM,CAACC,QAAP,GAAkB,yBAAlB;AACA;;AACJ,aAAK,GAAL;AACID,UAAAA,MAAM,CAACC,QAAP,GAAkB,oBAAlB;AACA;;AACJ,aAAK,GAAL;AACID,UAAAA,MAAM,CAACC,QAAP,GAAkB,0BAAlB;AACA;AAZR;AAcH;AACJ,GAlED,MAkEO,IAAIC,QAAQ,CAAChB,IAAD,CAAZ,EAAoB;AACvB,QAAIiB,gBAAgB,CAACjB,IAAD,CAApB,EACIc,MAAM,CAACC,QAAP,GAAkBf,IAAlB,CADJ,KAGIc,MAAM,CAACC,QAAP,GAAkB,aAAaf,IAA/B;AACP,GALM,MAKA;AACHc,IAAAA,MAAM,CAACC,QAAP,GAAkB,qCAAqCf,IAAvD;AACH;AACF,C,CAED;;;AACA,SAASgB,QAAT,CAAkBE,GAAlB,EAAuB;AACrB,MAAIC,OAAO,GAAG,IAAIC,MAAJ,CAAW,sBAAsB;AAC3C,oDADqB,GACgC;AACrD,+BAFqB,GAEW;AAChC,mCAHqB,GAGe;AACpC,4BAJqB,GAIQ;AAC7B,sBALU,EAKY,GALZ,CAAd,CADqB,CAMW;;AAChC,SAAO,CAAC,CAACD,OAAO,CAACE,IAAR,CAAaH,GAAb,CAAT;AACD;;AAED,SAASD,gBAAT,CAA0BC,GAA1B,EAA+B;AAC7B,MAAIC,OAAO,GAAG,IAAIC,MAAJ,CAAW,uBAAX,EAAoC,GAApC,CAAd;AACA,SAAO,CAAC,CAACD,OAAO,CAACE,IAAR,CAAaH,GAAb,CAAT;AACD;;AAEDI,MAAM,CAACC,SAAP,CAAiBrB,UAAjB,GAA8B,UAASK,MAAT,EAAiBiB,WAAjB,EAA8B;AAC1D,MAAIC,MAAM,GAAG,IAAb;AACA,SAAOA,MAAM,CAACC,KAAP,CAAanB,MAAb,EAAqBoB,IAArB,CAA0BH,WAA1B,CAAP;AACD,CAHD","sourcesContent":["import React from 'react';\nimport { useState, useEffect } from 'react';\nimport ReactDOM from 'react-dom';\n//import { unstable_createPortal } from 'react-dom';\nimport './index.css';\n\nfunction Homepage() {\n return (\n \n \n \n
\n \n \n
\n \n \n \n
\n \n \n
\n \n \n
\n \n );\n}\n\nfunction Search() {\n const {inputValue} = this.state;\n return (\n \n )\n}\n\nfunction Header(props) {\n return (\n \n );\n}\n\nfunction Applications() {\n let appList = getApps();\n var items = [];\n for (var i = 0; i < appList.apps.length; i++) {\n items.push(\n \n );\n }\n return (\n \n Applications
\n \n {items}\n
\n \n );\n}\n\nfunction App(props) {\n let classNameType = props.NSFW + \"-content\";\n let hrefUrl = \"https://\" + props.url;\n let iconName = \"mdi-\" + props.icon;\n return (\n \n );\n}\n\nfunction Bookmarks() {\n let bookmarkList = getLinks();\n var items = [];\n for (var i = 0; i < bookmarkList.bookmarks.length; i++) {\n items.push(\n \n );\n }\n return (\n \n Bookmarks
\n \n {items}\n
\n \n );\n}\n\nfunction LinkGroups(props) {\n var items = [];\n for (var i = 0; i < props.links.length; i++) {\n items.push(\n \n );\n }\n return (\n \n
{props.category}
\n {items}\n \n );\n}\n\nfunction LinkItem(props) {\n return (\n \n );\n}\n\nfunction ModalMenu() {\n var providers = getProviders();\n var items = [];\n for (var i = 0; i < providers.providers.length; i++) {\n items.push(\n \n );\n }\n return (\n \n \n \n\n
Color themes
\n\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n\n\n
Search options
\n
\n \n \n \n | Website | \n Prefix | \n
\n {items}\n \n
\n \n\n \n
\n \n );\n}\n\nfunction Provider(props) {\n return (\n \n | {props.provider.name} | \n {props.provider.prefix} | \n
\n );\n}\n\nfunction ModalInit() {\n return (\n \n );\n}\n\nReactDOM.render(\n ,\n document.getElementById('root')\n);\n\n//Functions below this line are for calculating data for\n//other functions\n\nfunction date() {\n let currentDate = new Date();\n let dateOptions = {\n weekday: \"long\",\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\"\n };\n let date = currentDate.toLocaleDateString(\"en-GB\", dateOptions);\n return date;\n}\nfunction fixDigits(k) {\n if (k < 10) {\n return \"0\" + k;\n }\n else {\n return k;\n }\n}\nfunction greet() {\n let currentTime = new Date();\n let greet = Math.floor(currentTime.getHours() / 6);\n let easterEggChance = Math.floor(Math.random() * 100);\n let greetings = require('./messages.json');\n let timeBased = [];\n let easterEggs = [];\n for (var i = 0; i < greetings.messages.length; i++) {\n if (greetings.messages[i].easteregg === \"FALSE\") {\n timeBased = timeBased.concat(greetings.messages[i]);\n } else {\n easterEggs = easterEggs.concat(greetings.messages[i]);\n }\n }\n if (easterEggChance > 10) {\n return timeBased[greet].message;\n } else {\n let easterEggText = Math.floor(Math.random() * easterEggs.length);\n return easterEggs[easterEggText].message;\n }\n}\nfunction Clock() {\n const [date, setDate] = useState(new Date());\n\n function refreshClock() {\n setDate(new Date());\n }\n useEffect(() => {\n const timerId = setInterval(refreshClock, 1000);\n return function cleanup() {\n clearInterval(timerId);\n };\n }, []);\n\n var hour = date.getHours();\n var minutes = date.getMinutes();\n //var seconds = date.getSeconds();\n var midday = \"AM\";\n midday = (hour >= 12) ? \"PM\" : \"AM\";\n hour = (hour === 0) ? 12 : ((hour > 12) ? (hour - 12) : hour);\n minutes = fixDigits(minutes);\n //seconds = fixDigits(seconds);\n let time = hour + \":\" + minutes + \" \" + midday;\n\n return (\n {time}
\n\n );\n}\nfunction getApps() {\n let applications = require('./apps.json');\n return applications;\n}\nfunction getLinks() {\n let links = require('./links.json');\n return links;\n}\nfunction getProviders() {\n let providers = require('./providers.json');\n return providers;\n}\n\nfunction handleKeyPress(e) {\n var sindex = 0;\n var cycle = false;\n var key = e.keyCode || e.which;\n var text = document.getElementById(\"keywords\").value.replaceAll(\"+\", \"%2B\");\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n if (key == 13) { // Search functions\n search(text);\n }\n if (key == 9) { // Tab Completion Functions\n e.preventDefault();\n e.stopPropagation();\n if (text[0] === ';') {\n switch (option) {\n case 't':\n var streamers = ['admiralbahroo', 'moonmoon_ow', 'witwix'];\n if (!subtext || cycle) {\n cycle = true;\n if (sindex > streamers.length - 1) sindex = 0;\n document.getElementById(\"keywords\").value = ';t ' + streamers[sindex++];\n return;\n }\n for (var streamer of streamers) {\n if (subtext === streamer.substr(0, subtext.length)) {\n document.getElementById(\"keywords\").value = ';t ' + streamer;\n return;\n }\n }\n break;\n }\n }\n }\n if(key == 32){ //Space to go to search\nupdateLabel(text);\n }\n sindex = 0;\n cycle = false;\n updateLabel(text);\n}\n\nfunction updateLabel(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n if (text[0] === '/') {\n// if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n document.getElementById(\"searchType\").innerHTML = \"Allmusic search\";\n break;\n case \"d\":\n document.getElementById(\"searchType\").innerHTML = \"Duck Duck Go search\";\n break;\n case \"di\":\n document.getElementById(\"searchType\").innerHTML = \"Discogs search\";\n break;\n case \"i\":\n document.getElementById(\"searchType\").innerHTML = \"IMDB search\";\n break;\n case \"m\":\n document.getElementById(\"searchType\").innerHTML = \"TheMovieDB search\";\n break;\n case \"r\":\n document.getElementById(\"searchType\").innerHTML = \"Reddit search\";\n break;\n case \"q\":\n document.getElementById(\"searchType\").innerHTML = \"Qwant search\";\n break;\n case \"so\":\n document.getElementById(\"searchType\").innerHTML = \"Soundcloud search\";\n break;\n case \"s\":\n document.getElementById(\"searchType\").innerHTML = \"Spotify search\";\n break;\n case \"tv\":\n document.getElementById(\"searchType\").innerHTML = \"TheTVDB search\";\n break;\n case \"t\":\n document.getElementById(\"searchType\").innerHTML = \"Trakt search\";\n break;\n case \"y\":\n document.getElementById(\"searchType\").innerHTML = \"YouTube search\";\n break;\n case \"w\":\n document.getElementById(\"searchType\").innerHTML = \"Wikipedia search\";\n break;\n case \"p\":\n document.getElementById(\"searchType\").innerHTML = \"Plex search\";\n break;\n case \"rt\":\n document.getElementById(\"searchType\").innerHTML = \"Rotten Tomatoes search\";\n break;\n default:\n document.getElementById(\"searchType\").innerHTML = \"Invalid search\";\n break;\n }\n}else {\n document.getElementById(\"searchType\").innerHTML = \"Google search\";\n }\n}\n\nfunction search(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n if (text[0] === '/') {\n if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n window.location = \"https://www.allmusic.com/search/all/\" + subtext;\n break;\n case \"d\":\n window.location = \"https://duckduckgo.com/?q=\" + subtext;\n break;\n case \"di\":\n window.location = \"https://www.discogs.com/search/?q=\" + subtext;\n break;\n case \"i\":\n window.location = \"https://www.imdb.com/find?q=\" + subtext;\n break;\n case \"m\":\n window.location = \"https://www.themoviedb.org/search?query=\" + subtext;\n break;\n case \"r\":\n window.location = \"https://www.reddit.com/search?q=\" + subtext;\n break;\n case \"q\":\n window.location = \"https://www.qwant.com/?q=\" + subtext;\n break;\n case \"so\":\n window.location = \"https://soundcloud.com/search?q=\" + subtext;\n break;\n case \"s\":\n window.location = \"https://open.spotify.com/search/results/\" + subtext;\n break;\n case \"t\":\n window.location = \"https://trakt.tv/search?query=\" + subtext;\n break;\n case \"tv\":\n window.location = \"https://www.thetvdb.com/search?query=\" + subtext;\n break;\n case \"y\":\n window.location = \"https://www.youtube.com/results?search_query=\" + subtext;\n break;\n case \"w\":\n window.location = \"https://en.wikipedia.org/w/index.php?search=\" + subtext;\n break;\n case \"p\":\n window.location = \"https://app.plex.tv/desktop/#!/search?query=\" + subtext;\n break;\n case \"rt\":\n window.location = \"https://www.rottentomatoes.com/search?search=\" + subtext;\n break;\n }\n } else {\n var option = text.substr(1);\n switch (option) {\n case \"d\":\n window.location = \"https://www.duckduckgo.com\";\n break;\n case \"y\":\n window.location = \"https://www.youtube.com\";\n break;\n case \"r\":\n window.location = \"https://reddit.com\";\n break;\n case \"s\":\n window.location = \"https://open.spotify.com\";\n break;\n }\n }\n } else if (validURL(text)) {\n if (containsProtocol(text))\n window.location = text;\n else\n window.location = \"https://\" + text;\n } else {\n window.location = \"https://www.google.com/search?q=\" + text;\n }\n}\n\n// Source: https://stackoverflow.com/questions/5717093/check-if-a-javascript-string-is-a-url\nfunction validURL(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/)?' + // protocol\n '((([a-z\\\\d]([a-z\\\\d-]*[a-z\\\\d])*)\\\\.)+[a-z]{2,}|' + // domain name\n '((\\\\d{1,3}\\\\.){3}\\\\d{1,3}))' + // OR ip (v4) address\n '(\\\\:\\\\d+)?(\\\\/[-a-z\\\\d%_.~+]*)*' + // port and path\n '(\\\\?[;&a-z\\\\d%_.~+=-]*)?' + // query string\n '(\\\\#[-a-z\\\\d_]*)?$', 'i'); // fragment locator\n return !!pattern.test(str);\n}\n\nfunction containsProtocol(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/){1}.*', 'i');\n return !!pattern.test(str);\n}\n\nString.prototype.replaceAll = function(search, replacement) {\n var target = this;\n return target.split(search).join(replacement);\n};"]},"metadata":{},"sourceType":"module"}
\ No newline at end of file
diff --git a/node_modules/.cache/babel-loader/4ee3fe7969a3532b94d0ff8d8469f5a3.json b/node_modules/.cache/babel-loader/4ee3fe7969a3532b94d0ff8d8469f5a3.json
new file mode 100644
index 00000000..d0d825f3
--- /dev/null
+++ b/node_modules/.cache/babel-loader/4ee3fe7969a3532b94d0ff8d8469f5a3.json
@@ -0,0 +1 @@
+{"ast":null,"code":"var _jsxFileName = \"/home/seanedmunds/dev/home-page/src/index.js\",\n _s = $RefreshSig$();\n\nimport React from 'react';\nimport { useState, useEffect } from 'react';\nimport ReactDOM from 'react-dom';\nimport './index.css';\nimport { jsxDEV as _jsxDEV } from \"react/jsx-dev-runtime\";\n\nconst setValueFromLocalStorage = property => {\n let value = localStorage.getItem(property);\n setValue(property, value);\n};\n\nconst setValue = (property, value) => {\n if (value) {\n document.documentElement.style.setProperty(`--${property}`, value);\n const input = document.querySelector(`#${property}`);\n\n if (input) {\n value = value.replace('px', '');\n input.value = value;\n }\n }\n};\n\nfunction Homepage() {\n setTheme();\n return /*#__PURE__*/_jsxDEV(\"main\", {\n id: \"container\",\n className: \"fade\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Search, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 28,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 27,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Header, {\n date: date(),\n greet: greet()\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 31,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 30,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Applications, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 37,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 36,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Bookmarks, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 40,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 39,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(ModalMenu, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 43,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 42,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(ModalInit, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 46,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 45,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 26,\n columnNumber: 5\n }, this);\n}\n\n_c = Homepage;\n\nfunction Search() {\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"search\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"abackground\",\n children: [/*#__PURE__*/_jsxDEV(\"input\", {\n name: \"keywords\",\n type: \"text\",\n className: \"keyword\",\n id: \"keywords\",\n size: \"50\",\n spellCheck: \"true\",\n placeholder: \"\"\n /*onFocus={this.placeholder = \"\"} onBlur={this.placeholder = ''}*/\n ,\n autoComplete: \"off\",\n autoFocus: true,\n onKeyUp: handleKeyPress\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 56,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n id: \"searchType\",\n className: \"Input-label\",\n children: \"Google search\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 57,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 55,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 54,\n columnNumber: 5\n }, this);\n}\n\n_c2 = Search;\n\nfunction Header(props) {\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"header\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n id: \"greeting_block\",\n children: /*#__PURE__*/_jsxDEV(\"h1\", {\n id: \"header_greet\",\n children: props.greet\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 67,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 66,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"date_block\",\n children: [/*#__PURE__*/_jsxDEV(\"h2\", {\n id: \"header_date\",\n children: props.date\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 70,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(Clock, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 71,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 69,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 65,\n columnNumber: 5\n }, this);\n}\n\n_c3 = Header;\n\nfunction Applications() {\n let appList = getApps();\n var items = [];\n\n for (var i = 0; i < appList.apps.length; i++) {\n var safe = appList.apps[i].NSFW;\n var NSFWEnabled = localStorage.getItem(\"contenttype\");\n\n if (safe === \"SAFE\") {\n items.push( /*#__PURE__*/_jsxDEV(App, {\n name: appList.apps[i].name,\n url: appList.apps[i].url,\n icon: appList.apps[i].icon,\n NSFW: appList.apps[i].NSFW\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 85,\n columnNumber: 9\n }, this));\n } else if (safe === \"NSFW\" && NSFWEnabled) {\n items.push( /*#__PURE__*/_jsxDEV(App, {\n name: appList.apps[i].name,\n url: appList.apps[i].url,\n icon: appList.apps[i].icon,\n NSFW: appList.apps[i].NSFW\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 95,\n columnNumber: 9\n }, this));\n } else {}\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"apps\",\n children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n children: \"Applications\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 110,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"apps_loop\",\n children: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 111,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 109,\n columnNumber: 5\n }, this);\n}\n\n_c4 = Applications;\n\nfunction App(props) {\n let classNameType = props.NSFW + \"-content\";\n let hrefUrl = \"https://\" + props.url;\n let iconName = \"mdi-\" + props.icon;\n return /*#__PURE__*/_jsxDEV(\"div\", {\n className: classNameType,\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: hrefUrl,\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_item\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_icon\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify icon\",\n \"data-icon\": iconName\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 128,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 127,\n columnNumber: 13\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_text\",\n children: [/*#__PURE__*/_jsxDEV(\"span\", {\n id: \"app-name\",\n children: props.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 131,\n columnNumber: 15\n }, this), /*#__PURE__*/_jsxDEV(\"span\", {\n id: \"app-address\",\n children: props.url\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 132,\n columnNumber: 15\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 130,\n columnNumber: 13\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 126,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 125,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 124,\n columnNumber: 7\n }, this);\n}\n\n_c5 = App;\n\nfunction Bookmarks() {\n let bookmarkList = getLinks();\n var items = [];\n\n for (var i = 0; i < bookmarkList.bookmarks.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(LinkGroups, {\n category: bookmarkList.bookmarks[i].category,\n links: bookmarkList.bookmarks[i].links\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 145,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"links\",\n children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n children: \"Bookmarks\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 154,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"links_loop\",\n children: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 155,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 153,\n columnNumber: 5\n }, this);\n}\n\n_c6 = Bookmarks;\n\nfunction LinkGroups(props) {\n var items = [];\n\n for (var i = 0; i < props.links.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(LinkItem, {\n link: props.links[i]\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 166,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"links_item\",\n children: [/*#__PURE__*/_jsxDEV(\"h4\", {\n children: props.category\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 174,\n columnNumber: 7\n }, this), items]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 173,\n columnNumber: 5\n }, this);\n}\n\n_c7 = LinkGroups;\n\nfunction LinkItem(props) {\n return /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: props.link.url,\n className: \"theme_color-border theme_text-select\",\n children: props.link.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 183,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 182,\n columnNumber: 5\n }, this);\n}\n\n_c8 = LinkItem;\n\nfunction ModalMenu() {\n var providers = getProviders();\n var items = [];\n\n for (var i = 0; i < providers.providers.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(Provider, {\n provider: providers.providers[i]\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 193,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"modal\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n children: [/*#__PURE__*/_jsxDEV(\"header\", {\n id: \"modal-header\",\n children: [/*#__PURE__*/_jsxDEV(\"h1\", {\n children: \"Options\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 203,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n href: \"#\",\n title: \"Close\",\n className: \"modal-close\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-close\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 205,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 204,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 202,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"h2\", {\n children: \"Color themes\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 209,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"modal-theme\",\n children: [/*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"blackboard\",\n className: \"theme-button theme-blackboard\",\n onClick: updateTheme,\n children: \"Blackboard\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 212,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"gazette\",\n className: \"theme-button theme-gazette\",\n onClick: updateTheme,\n children: \"Gazette\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 213,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"espresso\",\n className: \"theme-button theme-espresso\",\n onClick: updateTheme,\n children: \"Espresso\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 214,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cab\",\n className: \"theme-button theme-cab\",\n onClick: updateTheme,\n children: \"Cab\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 215,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cloud\",\n className: \"theme-button theme-cloud\",\n onClick: updateTheme,\n children: \"Cloud\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 216,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"lime\",\n className: \"theme-button theme-lime\",\n onClick: updateTheme,\n children: \"Lime\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 217,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"passion\",\n className: \"theme-button theme-passion\",\n onClick: updateTheme,\n children: \"Passion\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 218,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"blues\",\n className: \"theme-button theme-blues\",\n onClick: updateTheme,\n children: \"Blues\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 219,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"chalk\",\n className: \"theme-button theme-chalk\",\n onClick: updateTheme,\n children: \"Chalk\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 220,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"tron\",\n className: \"theme-button theme-tron\",\n onClick: updateTheme,\n children: \"Tron\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 221,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"paper\",\n className: \"theme-button theme-paper\",\n onClick: updateTheme,\n children: \"Paper\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 222,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cyberpunk\",\n className: \"theme-button theme-cyberpunk\",\n onClick: updateTheme,\n children: \"Cyberpunk\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 223,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"quadra\",\n className: \"theme-button theme-panam\",\n onClick: updateTheme,\n children: \"Quadra\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 224,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"panam\",\n className: \"theme-button theme-panam\",\n onClick: updateTheme,\n children: \"Panam\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 225,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"touch\",\n className: \"theme-button theme-touch\",\n onClick: updateTheme,\n children: \"Touch\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 226,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"peek\",\n className: \"theme-button theme-peek\",\n onClick: updateTheme,\n children: \"Peek\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 227,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 211,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"h2\", {\n children: \"Search options\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 231,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"providers\",\n children: /*#__PURE__*/_jsxDEV(\"table\", {\n children: /*#__PURE__*/_jsxDEV(\"tbody\", {\n children: [/*#__PURE__*/_jsxDEV(\"tr\", {\n children: [/*#__PURE__*/_jsxDEV(\"th\", {\n children: \"Website\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 236,\n columnNumber: 19\n }, this), /*#__PURE__*/_jsxDEV(\"th\", {\n children: \"Prefix\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 237,\n columnNumber: 19\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 235,\n columnNumber: 17\n }, this), items]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 234,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 233,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 232,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"header\", {\n id: \"modal-footer\",\n children: [/*#__PURE__*/_jsxDEV(\"a\", {\n href: \"https://github.com/jeroenpardon/\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-github-box\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 245,\n columnNumber: 54\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 245,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n href: \"https://materialdesignicons.com/\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-material-design\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 246,\n columnNumber: 54\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 246,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(HideButton, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 247,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 244,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 201,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 200,\n columnNumber: 5\n }, this);\n}\n\n_c9 = ModalMenu;\n\nfunction HideButton() {\n isChecked = localStorage.getItem(\"content-type\");\n return /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"sneaky\",\n children: [/*#__PURE__*/_jsxDEV(\"input\", {\n type: \"checkbox\",\n id: \"contenttype\",\n onChange: udpateDisplayedItems\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 258,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n for: \"contenttype\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-domino-mask\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 259,\n columnNumber: 32\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 259,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 257,\n columnNumber: 5\n }, this);\n}\n\n_c10 = HideButton;\n\nfunction Provider(props) {\n return /*#__PURE__*/_jsxDEV(\"tr\", {\n children: [/*#__PURE__*/_jsxDEV(\"td\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: props.provider.url,\n children: props.provider.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 267,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 267,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"td\", {\n children: props.provider.prefix\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 268,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 266,\n columnNumber: 5\n }, this);\n}\n\n_c11 = Provider;\n\nfunction ModalInit() {\n setDisplayedItems();\n return /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"modal_init\",\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n className: \"btn\",\n href: \"#modal\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify icon\",\n \"data-icon\": \"mdi-xbox-controller-menu\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 278,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 277,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 276,\n columnNumber: 5\n }, this);\n}\n\n_c12 = ModalInit;\nReactDOM.render( /*#__PURE__*/_jsxDEV(Homepage, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 285,\n columnNumber: 3\n}, this), document.getElementById('root')); //Functions below this line are for calculating data for\n//other functions\n\nfunction date() {\n let currentDate = new Date();\n let dateOptions = {\n weekday: \"long\",\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\"\n };\n let date = currentDate.toLocaleDateString(\"en-GB\", dateOptions);\n return date;\n}\n\nfunction fixDigits(k) {\n if (k < 10) {\n return \"0\" + k;\n } else {\n return k;\n }\n}\n\nfunction greet() {\n let currentTime = new Date();\n let greet = Math.floor(currentTime.getHours() / 6);\n let easterEggChance = Math.floor(Math.random() * 100);\n\n let greetings = require('./messages.json');\n\n let timeBased = [];\n let easterEggs = [];\n\n for (var i = 0; i < greetings.messages.length; i++) {\n if (greetings.messages[i].easteregg === \"FALSE\") {\n timeBased = timeBased.concat(greetings.messages[i]);\n } else {\n easterEggs = easterEggs.concat(greetings.messages[i]);\n }\n }\n\n if (easterEggChance > 10) {\n return timeBased[greet].message;\n } else {\n let easterEggText = Math.floor(Math.random() * easterEggs.length);\n return easterEggs[easterEggText].message;\n }\n}\n\nfunction Clock() {\n _s();\n\n const [date, setDate] = useState(new Date());\n\n function refreshClock() {\n setDate(new Date());\n }\n\n useEffect(() => {\n const timerId = setInterval(refreshClock, 1000);\n return function cleanup() {\n clearInterval(timerId);\n };\n }, []);\n var hour = date.getHours();\n var minutes = date.getMinutes(); //var seconds = date.getSeconds();\n\n var midday = \"AM\";\n midday = hour >= 12 ? \"PM\" : \"AM\";\n hour = hour === 0 ? 12 : hour > 12 ? hour - 12 : hour;\n minutes = fixDigits(minutes); //seconds = fixDigits(seconds);\n\n let time = hour + \":\" + minutes + \" \" + midday;\n return /*#__PURE__*/_jsxDEV(\"h2\", {\n id: \"clock\",\n children: time\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 356,\n columnNumber: 5\n }, this);\n}\n\n_s(Clock, \"Gqi45WOZhU2c0BLYX0HoJeiR0fk=\");\n\n_c13 = Clock;\n\nfunction getApps() {\n let applications = require('./apps.json');\n\n return applications;\n}\n\nfunction getLinks() {\n let links = require('./links.json');\n\n return links;\n}\n\nfunction getProviders() {\n let providers = require('./providers.json');\n\n return providers;\n}\n\nfunction getThemes() {\n let themes = require('./themes.json');\n\n return themes;\n}\n\nfunction updateTheme(e) {\n var themes = getThemes();\n var themeName = e.target.innerHTML.toLowerCase();\n var index = themes.themes.findIndex(function (item, i) {\n return item.name === themeName;\n });\n localStorage.setItem(\"image-background\", themes.themes[index].imagebackground);\n localStorage.setItem(\"color-background\", themes.themes[index].colorbackground);\n localStorage.setItem(\"color-search-background\", themes.themes[index].colorserachbackground);\n localStorage.setItem(\"color-text-pri\", themes.themes[index].colortextpri);\n localStorage.setItem(\"color-text-acc\", themes.themes[index].colortextacc);\n localStorage.setItem(\"color-border\", themes.themes[index].colorborder); //document.documentElement.style.setProperty(prop, `var(--${themeName}${prop.substring(10)})`);\n\n setTheme();\n}\n\nfunction setTheme() {\n setValueFromLocalStorage('image-background');\n setValueFromLocalStorage('color-background');\n setValueFromLocalStorage('color-search-background');\n setValueFromLocalStorage('color-text-pri');\n setValueFromLocalStorage('color-text-acc');\n setValueFromLocalStorage('color-border');\n setValueFromLocalStorage('content-display');\n}\n\nfunction handleKeyPress(e) {\n var sindex = 0;\n var cycle = false;\n var key = e.keyCode || e.which;\n var text = e.target.value.replaceAll(\"+\", \"%2B\");\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n\n if (key == 13) {\n // Search functions\n search(text);\n }\n\n if (key == 9) {\n // Tab Completion Functions\n e.preventDefault();\n e.stopPropagation();\n\n if (text[0] === ';') {\n switch (option) {\n case 't':\n var streamers = ['admiralbahroo', 'moonmoon_ow', 'witwix'];\n\n if (!subtext || cycle) {\n cycle = true;\n if (sindex > streamers.length - 1) sindex = 0;\n document.getElementById(\"keywords\").value = ';t ' + streamers[sindex++];\n return;\n }\n\n for (var streamer of streamers) {\n if (subtext === streamer.substr(0, subtext.length)) {\n document.getElementById(\"keywords\").value = ';t ' + streamer;\n return;\n }\n }\n\n break;\n }\n }\n }\n\n if (key == 32) {\n //Space to go to search\n updateLabel(text);\n }\n\n sindex = 0;\n cycle = false;\n updateLabel(text);\n}\n\nfunction updateLabel(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n\n if (text[0] === '/') {\n // if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n document.getElementById(\"searchType\").innerHTML = \"Allmusic search\";\n break;\n\n case \"d\":\n document.getElementById(\"searchType\").innerHTML = \"Duck Duck Go search\";\n break;\n\n case \"di\":\n document.getElementById(\"searchType\").innerHTML = \"Discogs search\";\n break;\n\n case \"i\":\n document.getElementById(\"searchType\").innerHTML = \"IMDB search\";\n break;\n\n case \"m\":\n document.getElementById(\"searchType\").innerHTML = \"TheMovieDB search\";\n break;\n\n case \"r\":\n document.getElementById(\"searchType\").innerHTML = \"Reddit search\";\n break;\n\n case \"q\":\n document.getElementById(\"searchType\").innerHTML = \"Qwant search\";\n break;\n\n case \"so\":\n document.getElementById(\"searchType\").innerHTML = \"Soundcloud search\";\n break;\n\n case \"s\":\n document.getElementById(\"searchType\").innerHTML = \"Spotify search\";\n break;\n\n case \"tv\":\n document.getElementById(\"searchType\").innerHTML = \"TheTVDB search\";\n break;\n\n case \"t\":\n document.getElementById(\"searchType\").innerHTML = \"Trakt search\";\n break;\n\n case \"y\":\n document.getElementById(\"searchType\").innerHTML = \"YouTube search\";\n break;\n\n case \"w\":\n document.getElementById(\"searchType\").innerHTML = \"Wikipedia search\";\n break;\n\n case \"p\":\n document.getElementById(\"searchType\").innerHTML = \"Plex search\";\n break;\n\n case \"rt\":\n document.getElementById(\"searchType\").innerHTML = \"Rotten Tomatoes search\";\n break;\n\n default:\n document.getElementById(\"searchType\").innerHTML = \"Invalid search\";\n break;\n }\n } else {\n document.getElementById(\"searchType\").innerHTML = \"Google search\";\n }\n}\n\nfunction search(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n\n if (text[0] === '/') {\n if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n window.location = \"https://www.allmusic.com/search/all/\" + subtext;\n break;\n\n case \"d\":\n window.location = \"https://duckduckgo.com/?q=\" + subtext;\n break;\n\n case \"di\":\n window.location = \"https://www.discogs.com/search/?q=\" + subtext;\n break;\n\n case \"i\":\n window.location = \"https://www.imdb.com/find?q=\" + subtext;\n break;\n\n case \"m\":\n window.location = \"https://www.themoviedb.org/search?query=\" + subtext;\n break;\n\n case \"r\":\n window.location = \"https://www.reddit.com/search?q=\" + subtext;\n break;\n\n case \"q\":\n window.location = \"https://www.qwant.com/?q=\" + subtext;\n break;\n\n case \"so\":\n window.location = \"https://soundcloud.com/search?q=\" + subtext;\n break;\n\n case \"s\":\n window.location = \"https://open.spotify.com/search/results/\" + subtext;\n break;\n\n case \"t\":\n window.location = \"https://trakt.tv/search?query=\" + subtext;\n break;\n\n case \"tv\":\n window.location = \"https://www.thetvdb.com/search?query=\" + subtext;\n break;\n\n case \"y\":\n window.location = \"https://www.youtube.com/results?search_query=\" + subtext;\n break;\n\n case \"w\":\n window.location = \"https://en.wikipedia.org/w/index.php?search=\" + subtext;\n break;\n\n case \"p\":\n window.location = \"https://app.plex.tv/desktop/#!/search?query=\" + subtext;\n break;\n\n case \"rt\":\n window.location = \"https://www.rottentomatoes.com/search?search=\" + subtext;\n break;\n }\n } else {\n var option = text.substr(1);\n\n switch (option) {\n case \"d\":\n window.location = \"https://www.duckduckgo.com\";\n break;\n\n case \"y\":\n window.location = \"https://www.youtube.com\";\n break;\n\n case \"r\":\n window.location = \"https://reddit.com\";\n break;\n\n case \"s\":\n window.location = \"https://open.spotify.com\";\n break;\n }\n }\n } else if (validURL(text)) {\n if (containsProtocol(text)) window.location = text;else window.location = \"https://\" + text;\n } else {\n window.location = \"https://www.google.com/search?q=\" + text;\n }\n}\n\nfunction validURL(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/)?' + // protocol\n '((([a-z\\\\d]([a-z\\\\d-]*[a-z\\\\d])*)\\\\.)+[a-z]{2,}|' + // domain name\n '((\\\\d{1,3}\\\\.){3}\\\\d{1,3}))' + // OR ip (v4) address\n '(\\\\:\\\\d+)?(\\\\/[-a-z\\\\d%_.~+]*)*' + // port and path\n '(\\\\?[;&a-z\\\\d%_.~+=-]*)?' + // query string\n '(\\\\#[-a-z\\\\d_]*)?$', 'i'); // fragment locator\n\n return !!pattern.test(str);\n}\n\nfunction containsProtocol(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/){1}.*', 'i');\n return !!pattern.test(str);\n}\n\nString.prototype.replaceAll = function (search, replacement) {\n var target = this;\n return target.split(search).join(replacement);\n};\n\nfunction udpateDisplayedItems(e) {\n console.log(e);\n localStorage.setItem('contenttype', e.target.checked);\n\n if (e.target.checked) {\n localStorage.setItem('content-display', 'none');\n } else {\n localStorage.setItem('content-display', 'block');\n }\n\n setDisplayedItems();\n}\n\nfunction setDisplayedItems() {\n setValueFromLocalStorage('contenttype');\n setValueFromLocalStorage('content-display');\n}\n\nvar _c, _c2, _c3, _c4, _c5, _c6, _c7, _c8, _c9, _c10, _c11, _c12, _c13;\n\n$RefreshReg$(_c, \"Homepage\");\n$RefreshReg$(_c2, \"Search\");\n$RefreshReg$(_c3, \"Header\");\n$RefreshReg$(_c4, \"Applications\");\n$RefreshReg$(_c5, \"App\");\n$RefreshReg$(_c6, \"Bookmarks\");\n$RefreshReg$(_c7, \"LinkGroups\");\n$RefreshReg$(_c8, \"LinkItem\");\n$RefreshReg$(_c9, \"ModalMenu\");\n$RefreshReg$(_c10, \"HideButton\");\n$RefreshReg$(_c11, \"Provider\");\n$RefreshReg$(_c12, \"ModalInit\");\n$RefreshReg$(_c13, \"Clock\");","map":{"version":3,"sources":["/home/seanedmunds/dev/home-page/src/index.js"],"names":["React","useState","useEffect","ReactDOM","setValueFromLocalStorage","property","value","localStorage","getItem","setValue","document","documentElement","style","setProperty","input","querySelector","replace","Homepage","setTheme","date","greet","Search","handleKeyPress","Header","props","Applications","appList","getApps","items","i","apps","length","safe","NSFW","NSFWEnabled","push","name","url","icon","App","classNameType","hrefUrl","iconName","Bookmarks","bookmarkList","getLinks","bookmarks","category","links","LinkGroups","LinkItem","link","ModalMenu","providers","getProviders","updateTheme","HideButton","isChecked","udpateDisplayedItems","Provider","provider","prefix","ModalInit","setDisplayedItems","render","getElementById","currentDate","Date","dateOptions","weekday","year","month","day","toLocaleDateString","fixDigits","k","currentTime","Math","floor","getHours","easterEggChance","random","greetings","require","timeBased","easterEggs","messages","easteregg","concat","message","easterEggText","Clock","setDate","refreshClock","timerId","setInterval","cleanup","clearInterval","hour","minutes","getMinutes","midday","time","applications","getThemes","themes","e","themeName","target","innerHTML","toLowerCase","index","findIndex","item","setItem","imagebackground","colorbackground","colorserachbackground","colortextpri","colortextacc","colorborder","sindex","cycle","key","keyCode","which","text","replaceAll","option","substr","indexOf","subtext","search","preventDefault","stopPropagation","streamers","streamer","updateLabel","window","location","validURL","containsProtocol","str","pattern","RegExp","test","String","prototype","replacement","split","join","console","log","checked"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { useState, useEffect } from 'react';\nimport ReactDOM from 'react-dom';\nimport './index.css';\n\nconst setValueFromLocalStorage = property => {\n let value = localStorage.getItem(property);\n setValue(property, value);\n};\nconst setValue = (property, value) => {\n if (value) {\n document.documentElement.style.setProperty(`--${property}`, value);\n\n const input = document.querySelector(`#${property}`);\n if (input) {\n value = value.replace('px', '');\n input.value = value;\n }\n }\n};\n\nfunction Homepage() {\n setTheme();\n \n return (\n \n \n \n
\n \n \n
\n \n \n \n
\n \n \n
\n \n \n
\n \n );\n}\n\nfunction Search() {\n return (\n \n )\n}\n\nfunction Header(props) {\n return (\n \n );\n}\n\nfunction Applications() {\n let appList = getApps();\n var items = [];\n for (var i = 0; i < appList.apps.length; i++) {\n var safe = appList.apps[i].NSFW;\n var NSFWEnabled = localStorage.getItem(\"contenttype\");\n if (safe === \"SAFE\") {\n items.push(\n \n );\n } else if (safe === \"NSFW\" && NSFWEnabled) {\n items.push(\n \n );\n } else {\n \n }\n \n }\n return (\n \n Applications
\n \n {items}\n
\n \n );\n}\n\nfunction App(props) {\n \n let classNameType = props.NSFW + \"-content\";\n let hrefUrl = \"https://\" + props.url;\n let iconName = \"mdi-\" + props.icon;\n return (\n \n );\n}\n\nfunction Bookmarks() {\n let bookmarkList = getLinks();\n var items = [];\n for (var i = 0; i < bookmarkList.bookmarks.length; i++) {\n items.push(\n \n );\n }\n return (\n \n Bookmarks
\n \n {items}\n
\n \n );\n}\n\nfunction LinkGroups(props) {\n var items = [];\n for (var i = 0; i < props.links.length; i++) {\n items.push(\n \n );\n }\n return (\n \n
{props.category}
\n {items}\n \n );\n}\n\nfunction LinkItem(props) {\n return (\n \n );\n}\n\nfunction ModalMenu() {\n var providers = getProviders();\n var items = [];\n for (var i = 0; i < providers.providers.length; i++) {\n items.push(\n \n );\n }\n return (\n \n \n \n\n
Color themes
\n\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n\n\n
Search options
\n
\n \n \n \n | Website | \n Prefix | \n
\n {items}\n \n
\n \n\n \n
\n \n );\n}\n\nfunction HideButton() {\n isChecked = localStorage.getItem(\"content-type\");\n return(\n \n \n \n
\n );\n}\n\nfunction Provider(props) {\n return (\n \n | {props.provider.name} | \n {props.provider.prefix} | \n
\n );\n}\n\nfunction ModalInit() {\n setDisplayedItems();\n return (\n \n );\n}\n\nReactDOM.render(\n ,\n document.getElementById('root')\n);\n\n//Functions below this line are for calculating data for\n//other functions\n\nfunction date() {\n let currentDate = new Date();\n let dateOptions = {\n weekday: \"long\",\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\"\n };\n let date = currentDate.toLocaleDateString(\"en-GB\", dateOptions);\n return date;\n}\nfunction fixDigits(k) {\n if (k < 10) {\n return \"0\" + k;\n }\n else {\n return k;\n }\n}\nfunction greet() {\n let currentTime = new Date();\n let greet = Math.floor(currentTime.getHours() / 6);\n let easterEggChance = Math.floor(Math.random() * 100);\n let greetings = require('./messages.json');\n let timeBased = [];\n let easterEggs = [];\n for (var i = 0; i < greetings.messages.length; i++) {\n if (greetings.messages[i].easteregg === \"FALSE\") {\n timeBased = timeBased.concat(greetings.messages[i]);\n } else {\n easterEggs = easterEggs.concat(greetings.messages[i]);\n }\n }\n if (easterEggChance > 10) {\n return timeBased[greet].message;\n } else {\n let easterEggText = Math.floor(Math.random() * easterEggs.length);\n return easterEggs[easterEggText].message;\n }\n}\nfunction Clock() {\n const [date, setDate] = useState(new Date());\n\n function refreshClock() {\n setDate(new Date());\n }\n useEffect(() => {\n const timerId = setInterval(refreshClock, 1000);\n return function cleanup() {\n clearInterval(timerId);\n };\n }, []);\n\n var hour = date.getHours();\n var minutes = date.getMinutes();\n //var seconds = date.getSeconds();\n var midday = \"AM\";\n midday = (hour >= 12) ? \"PM\" : \"AM\";\n hour = (hour === 0) ? 12 : ((hour > 12) ? (hour - 12) : hour);\n minutes = fixDigits(minutes);\n //seconds = fixDigits(seconds);\n let time = hour + \":\" + minutes + \" \" + midday;\n\n return (\n {time}
\n\n );\n}\nfunction getApps() {\n let applications = require('./apps.json');\n return applications;\n}\nfunction getLinks() {\n let links = require('./links.json');\n return links;\n}\nfunction getProviders() {\n let providers = require('./providers.json');\n return providers;\n}\nfunction getThemes() {\n let themes = require('./themes.json');\n return themes;\n}\nfunction updateTheme(e) {\n var themes = getThemes();\n var themeName = e.target.innerHTML.toLowerCase();\n var index = themes.themes.findIndex(function(item, i){\n return item.name === themeName\n });\n localStorage.setItem(\"image-background\", themes.themes[index].imagebackground);\n localStorage.setItem(\"color-background\", themes.themes[index].colorbackground);\n localStorage.setItem(\"color-search-background\", themes.themes[index].colorserachbackground);\n localStorage.setItem(\"color-text-pri\",themes.themes[index].colortextpri);\n localStorage.setItem(\"color-text-acc\", themes.themes[index].colortextacc);\n localStorage.setItem(\"color-border\", themes.themes[index].colorborder);\n \n //document.documentElement.style.setProperty(prop, `var(--${themeName}${prop.substring(10)})`);\n setTheme();\n}\nfunction setTheme() {\n setValueFromLocalStorage('image-background');\n setValueFromLocalStorage('color-background');\n setValueFromLocalStorage('color-search-background');\n setValueFromLocalStorage('color-text-pri');\n setValueFromLocalStorage('color-text-acc');\n setValueFromLocalStorage('color-border');\n setValueFromLocalStorage('content-display');\n}\nfunction handleKeyPress(e) {\n var sindex = 0;\n var cycle = false;\n var key = e.keyCode || e.which;\n var text = e.target.value.replaceAll(\"+\", \"%2B\");\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n if (key == 13) { // Search functions\n search(text);\n }\n if (key == 9) { // Tab Completion Functions\n e.preventDefault();\n e.stopPropagation();\n if (text[0] === ';') {\n switch (option) {\n case 't':\n var streamers = ['admiralbahroo', 'moonmoon_ow', 'witwix'];\n if (!subtext || cycle) {\n cycle = true;\n if (sindex > streamers.length - 1) sindex = 0;\n document.getElementById(\"keywords\").value = ';t ' + streamers[sindex++];\n return;\n }\n for (var streamer of streamers) {\n if (subtext === streamer.substr(0, subtext.length)) {\n document.getElementById(\"keywords\").value = ';t ' + streamer;\n return;\n }\n }\n break;\n }\n }\n }\n if(key == 32){ //Space to go to search\nupdateLabel(text);\n }\n sindex = 0;\n cycle = false;\n updateLabel(text);\n}\nfunction updateLabel(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n if (text[0] === '/') {\n// if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n document.getElementById(\"searchType\").innerHTML = \"Allmusic search\";\n break;\n case \"d\":\n document.getElementById(\"searchType\").innerHTML = \"Duck Duck Go search\";\n break;\n case \"di\":\n document.getElementById(\"searchType\").innerHTML = \"Discogs search\";\n break;\n case \"i\":\n document.getElementById(\"searchType\").innerHTML = \"IMDB search\";\n break;\n case \"m\":\n document.getElementById(\"searchType\").innerHTML = \"TheMovieDB search\";\n break;\n case \"r\":\n document.getElementById(\"searchType\").innerHTML = \"Reddit search\";\n break;\n case \"q\":\n document.getElementById(\"searchType\").innerHTML = \"Qwant search\";\n break;\n case \"so\":\n document.getElementById(\"searchType\").innerHTML = \"Soundcloud search\";\n break;\n case \"s\":\n document.getElementById(\"searchType\").innerHTML = \"Spotify search\";\n break;\n case \"tv\":\n document.getElementById(\"searchType\").innerHTML = \"TheTVDB search\";\n break;\n case \"t\":\n document.getElementById(\"searchType\").innerHTML = \"Trakt search\";\n break;\n case \"y\":\n document.getElementById(\"searchType\").innerHTML = \"YouTube search\";\n break;\n case \"w\":\n document.getElementById(\"searchType\").innerHTML = \"Wikipedia search\";\n break;\n case \"p\":\n document.getElementById(\"searchType\").innerHTML = \"Plex search\";\n break;\n case \"rt\":\n document.getElementById(\"searchType\").innerHTML = \"Rotten Tomatoes search\";\n break;\n default:\n document.getElementById(\"searchType\").innerHTML = \"Invalid search\";\n break;\n }\n}else {\n document.getElementById(\"searchType\").innerHTML = \"Google search\";\n }\n}\nfunction search(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n if (text[0] === '/') {\n if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n window.location = \"https://www.allmusic.com/search/all/\" + subtext;\n break;\n case \"d\":\n window.location = \"https://duckduckgo.com/?q=\" + subtext;\n break;\n case \"di\":\n window.location = \"https://www.discogs.com/search/?q=\" + subtext;\n break;\n case \"i\":\n window.location = \"https://www.imdb.com/find?q=\" + subtext;\n break;\n case \"m\":\n window.location = \"https://www.themoviedb.org/search?query=\" + subtext;\n break;\n case \"r\":\n window.location = \"https://www.reddit.com/search?q=\" + subtext;\n break;\n case \"q\":\n window.location = \"https://www.qwant.com/?q=\" + subtext;\n break;\n case \"so\":\n window.location = \"https://soundcloud.com/search?q=\" + subtext;\n break;\n case \"s\":\n window.location = \"https://open.spotify.com/search/results/\" + subtext;\n break;\n case \"t\":\n window.location = \"https://trakt.tv/search?query=\" + subtext;\n break;\n case \"tv\":\n window.location = \"https://www.thetvdb.com/search?query=\" + subtext;\n break;\n case \"y\":\n window.location = \"https://www.youtube.com/results?search_query=\" + subtext;\n break;\n case \"w\":\n window.location = \"https://en.wikipedia.org/w/index.php?search=\" + subtext;\n break;\n case \"p\":\n window.location = \"https://app.plex.tv/desktop/#!/search?query=\" + subtext;\n break;\n case \"rt\":\n window.location = \"https://www.rottentomatoes.com/search?search=\" + subtext;\n break;\n }\n } else {\n var option = text.substr(1);\n switch (option) {\n case \"d\":\n window.location = \"https://www.duckduckgo.com\";\n break;\n case \"y\":\n window.location = \"https://www.youtube.com\";\n break;\n case \"r\":\n window.location = \"https://reddit.com\";\n break;\n case \"s\":\n window.location = \"https://open.spotify.com\";\n break;\n }\n }\n } else if (validURL(text)) {\n if (containsProtocol(text))\n window.location = text;\n else\n window.location = \"https://\" + text;\n } else {\n window.location = \"https://www.google.com/search?q=\" + text;\n }\n}\nfunction validURL(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/)?' + // protocol\n '((([a-z\\\\d]([a-z\\\\d-]*[a-z\\\\d])*)\\\\.)+[a-z]{2,}|' + // domain name\n '((\\\\d{1,3}\\\\.){3}\\\\d{1,3}))' + // OR ip (v4) address\n '(\\\\:\\\\d+)?(\\\\/[-a-z\\\\d%_.~+]*)*' + // port and path\n '(\\\\?[;&a-z\\\\d%_.~+=-]*)?' + // query string\n '(\\\\#[-a-z\\\\d_]*)?$', 'i'); // fragment locator\n return !!pattern.test(str);\n}\nfunction containsProtocol(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/){1}.*', 'i');\n return !!pattern.test(str);\n}\nString.prototype.replaceAll = function(search, replacement) {\n var target = this;\n return target.split(search).join(replacement);\n};\nfunction udpateDisplayedItems(e) {\n console.log(e);\n localStorage.setItem('contenttype', e.target.checked);\n if (e.target.checked) {\n localStorage.setItem('content-display', 'none');\n } else {\n localStorage.setItem('content-display', 'block');\n }\n setDisplayedItems();\n}\nfunction setDisplayedItems() {\n setValueFromLocalStorage('contenttype');\n setValueFromLocalStorage('content-display');\n}"]},"metadata":{},"sourceType":"module"}
\ No newline at end of file
diff --git a/node_modules/.cache/babel-loader/4f367124eacaa753a545daa8e8b119e6.json b/node_modules/.cache/babel-loader/4f367124eacaa753a545daa8e8b119e6.json
new file mode 100644
index 00000000..08773760
--- /dev/null
+++ b/node_modules/.cache/babel-loader/4f367124eacaa753a545daa8e8b119e6.json
@@ -0,0 +1 @@
+{"ast":null,"code":"var _jsxFileName = \"/home/seanedmunds/dev/home-page/src/index.js\",\n _s = $RefreshSig$();\n\nimport React from 'react';\nimport { useState, useEffect } from 'react';\nimport ReactDOM from 'react-dom';\nimport './index.css';\nimport { jsxDEV as _jsxDEV } from \"react/jsx-dev-runtime\";\n\nconst setValueFromLocalStorage = property => {\n let value = localStorage.getItem(property);\n setValue(property, value);\n};\n\nconst setValue = (property, value) => {\n if (value) {\n document.documentElement.style.setProperty(`--${property}`, value);\n const input = document.querySelector(`#${property}`);\n\n if (input) {\n value = value.replace('px', '');\n input.value = value;\n }\n }\n};\n\nfunction Homepage() {\n setTheme();\n return /*#__PURE__*/_jsxDEV(\"main\", {\n id: \"container\",\n className: \"fade\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Search, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 28,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 27,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Header, {\n date: date(),\n greet: greet()\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 31,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 30,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Applications, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 37,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 36,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Bookmarks, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 40,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 39,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(ModalMenu, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 43,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 42,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(ModalInit, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 46,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 45,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 26,\n columnNumber: 5\n }, this);\n}\n\n_c = Homepage;\n\nfunction Search() {\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"search\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"abackground\",\n children: [/*#__PURE__*/_jsxDEV(\"input\", {\n name: \"keywords\",\n type: \"text\",\n className: \"keyword\",\n id: \"keywords\",\n size: \"50\",\n spellCheck: \"true\",\n placeholder: \"\"\n /*onFocus={this.placeholder = \"\"} onBlur={this.placeholder = ''}*/\n ,\n autoComplete: \"off\",\n autoFocus: true,\n onKeyUp: handleKeyPress\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 56,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n id: \"searchType\",\n className: \"Input-label\",\n children: \"Google search\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 57,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 55,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 54,\n columnNumber: 5\n }, this);\n}\n\n_c2 = Search;\n\nfunction Header(props) {\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"header\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n id: \"greeting_block\",\n children: /*#__PURE__*/_jsxDEV(\"h1\", {\n id: \"header_greet\",\n children: props.greet\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 67,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 66,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"date_block\",\n children: [/*#__PURE__*/_jsxDEV(\"h2\", {\n id: \"header_date\",\n children: props.date\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 70,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(Clock, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 71,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 69,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 65,\n columnNumber: 5\n }, this);\n}\n\n_c3 = Header;\n\nfunction Applications() {\n let appList = getApps();\n var items = [];\n\n for (var i = 0; i < appList.apps.length; i++) {\n var safe = appList.apps[i].NSFW;\n var NSFWEnabled = localStorage.getItem(\"contenttype\");\n\n if (safe === \"SAFE\") {\n items.push( /*#__PURE__*/_jsxDEV(App, {\n name: appList.apps[i].name,\n url: appList.apps[i].url,\n icon: appList.apps[i].icon,\n NSFW: appList.apps[i].NSFW\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 85,\n columnNumber: 9\n }, this));\n } else if (safe === \"NSFW\" && NSFWEnabled) {\n items.push( /*#__PURE__*/_jsxDEV(App, {\n name: appList.apps[i].name,\n url: appList.apps[i].url,\n icon: appList.apps[i].icon,\n NSFW: appList.apps[i].NSFW\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 95,\n columnNumber: 9\n }, this));\n } else {}\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"apps\",\n children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n children: \"Applications\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 110,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"apps_loop\",\n children: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 111,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 109,\n columnNumber: 5\n }, this);\n}\n\n_c4 = Applications;\n\nfunction App(props) {\n let classNameType = props.NSFW + \"-content\";\n let hrefUrl = \"https://\" + props.url;\n let iconName = \"mdi-\" + props.icon;\n return /*#__PURE__*/_jsxDEV(\"div\", {\n className: classNameType,\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: hrefUrl,\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_item\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_icon\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify icon\",\n \"data-icon\": iconName\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 128,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 127,\n columnNumber: 13\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_text\",\n children: [/*#__PURE__*/_jsxDEV(\"span\", {\n id: \"app-name\",\n children: props.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 131,\n columnNumber: 15\n }, this), /*#__PURE__*/_jsxDEV(\"span\", {\n id: \"app-address\",\n children: props.url\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 132,\n columnNumber: 15\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 130,\n columnNumber: 13\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 126,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 125,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 124,\n columnNumber: 7\n }, this);\n}\n\n_c5 = App;\n\nfunction Bookmarks() {\n let bookmarkList = getLinks();\n var items = [];\n\n for (var i = 0; i < bookmarkList.bookmarks.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(LinkGroups, {\n category: bookmarkList.bookmarks[i].category,\n links: bookmarkList.bookmarks[i].links\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 145,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"links\",\n children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n children: \"Bookmarks\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 154,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"links_loop\",\n children: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 155,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 153,\n columnNumber: 5\n }, this);\n}\n\n_c6 = Bookmarks;\n\nfunction LinkGroups(props) {\n var items = [];\n\n for (var i = 0; i < props.links.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(LinkItem, {\n link: props.links[i]\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 166,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"links_item\",\n children: [/*#__PURE__*/_jsxDEV(\"h4\", {\n children: props.category\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 174,\n columnNumber: 7\n }, this), items]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 173,\n columnNumber: 5\n }, this);\n}\n\n_c7 = LinkGroups;\n\nfunction LinkItem(props) {\n return /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: props.link.url,\n className: \"theme_color-border theme_text-select\",\n children: props.link.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 183,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 182,\n columnNumber: 5\n }, this);\n}\n\n_c8 = LinkItem;\n\nfunction ModalMenu() {\n var providers = getProviders();\n var items = [];\n var isChecked = localStorage.getItem(\"contenttype\");\n console.log(localStorage.getItem(\"contenttype\"));\n\n for (var i = 0; i < providers.providers.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(Provider, {\n provider: providers.providers[i]\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 195,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"modal\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n children: [/*#__PURE__*/_jsxDEV(\"header\", {\n id: \"modal-header\",\n children: [/*#__PURE__*/_jsxDEV(\"h1\", {\n children: \"Options\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 205,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n href: \"#\",\n title: \"Close\",\n className: \"modal-close\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-close\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 207,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 206,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 204,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"h2\", {\n children: \"Color themes\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 211,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"modal-theme\",\n children: [/*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"blackboard\",\n className: \"theme-button theme-blackboard\",\n onClick: updateTheme,\n children: \"Blackboard\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 214,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"gazette\",\n className: \"theme-button theme-gazette\",\n onClick: updateTheme,\n children: \"Gazette\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 215,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"espresso\",\n className: \"theme-button theme-espresso\",\n onClick: updateTheme,\n children: \"Espresso\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 216,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cab\",\n className: \"theme-button theme-cab\",\n onClick: updateTheme,\n children: \"Cab\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 217,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cloud\",\n className: \"theme-button theme-cloud\",\n onClick: updateTheme,\n children: \"Cloud\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 218,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"lime\",\n className: \"theme-button theme-lime\",\n onClick: updateTheme,\n children: \"Lime\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 219,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"passion\",\n className: \"theme-button theme-passion\",\n onClick: updateTheme,\n children: \"Passion\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 220,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"blues\",\n className: \"theme-button theme-blues\",\n onClick: updateTheme,\n children: \"Blues\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 221,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"chalk\",\n className: \"theme-button theme-chalk\",\n onClick: updateTheme,\n children: \"Chalk\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 222,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"tron\",\n className: \"theme-button theme-tron\",\n onClick: updateTheme,\n children: \"Tron\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 223,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"paper\",\n className: \"theme-button theme-paper\",\n onClick: updateTheme,\n children: \"Paper\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 224,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cyberpunk\",\n className: \"theme-button theme-cyberpunk\",\n onClick: updateTheme,\n children: \"Cyberpunk\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 225,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"quadra\",\n className: \"theme-button theme-panam\",\n onClick: updateTheme,\n children: \"Quadra\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 226,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"panam\",\n className: \"theme-button theme-panam\",\n onClick: updateTheme,\n children: \"Panam\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 227,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"touch\",\n className: \"theme-button theme-touch\",\n onClick: updateTheme,\n children: \"Touch\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 228,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"peek\",\n className: \"theme-button theme-peek\",\n onClick: updateTheme,\n children: \"Peek\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 229,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 213,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"h2\", {\n children: \"Search options\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 233,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"providers\",\n children: /*#__PURE__*/_jsxDEV(\"table\", {\n children: /*#__PURE__*/_jsxDEV(\"tbody\", {\n children: [/*#__PURE__*/_jsxDEV(\"tr\", {\n children: [/*#__PURE__*/_jsxDEV(\"th\", {\n children: \"Website\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 238,\n columnNumber: 19\n }, this), /*#__PURE__*/_jsxDEV(\"th\", {\n children: \"Prefix\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 239,\n columnNumber: 19\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 237,\n columnNumber: 17\n }, this), items]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 236,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 235,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 234,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"header\", {\n id: \"modal-footer\",\n children: [/*#__PURE__*/_jsxDEV(\"a\", {\n href: \"https://github.com/jeroenpardon/\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-github-box\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 247,\n columnNumber: 54\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 247,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n href: \"https://materialdesignicons.com/\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-material-design\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 248,\n columnNumber: 54\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 248,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(HideButton, {\n checked: isChecked\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 249,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 246,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 203,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 202,\n columnNumber: 5\n }, this);\n}\n\n_c9 = ModalMenu;\n\nfunction HideButton(props) {\n console.log(props.checked);\n\n if (props.checked === \"true\") {\n console.log(\"icon should be grey\");\n return /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"sneaky\",\n children: [/*#__PURE__*/_jsxDEV(\"input\", {\n type: \"checkbox\",\n id: \"contenttype\",\n onChange: udpateDisplayedItems,\n defaultChecked: true\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 263,\n columnNumber: 31\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n for: \"contenttype\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-domino-mask\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 264,\n columnNumber: 32\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 264,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 263,\n columnNumber: 7\n }, this);\n } else {\n console.log(\"icon should be white\");\n return /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"sneaky\",\n children: [/*#__PURE__*/_jsxDEV(\"input\", {\n type: \"checkbox\",\n id: \"contenttype\",\n onChange: udpateDisplayedItems,\n defaultChecked: false\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 269,\n columnNumber: 31\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n for: \"contenttype\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-domino-mask\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 270,\n columnNumber: 32\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 270,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 269,\n columnNumber: 7\n }, this);\n }\n}\n\n_c10 = HideButton;\n\nfunction Provider(props) {\n return /*#__PURE__*/_jsxDEV(\"tr\", {\n children: [/*#__PURE__*/_jsxDEV(\"td\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: props.provider.url,\n children: props.provider.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 278,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 278,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"td\", {\n children: props.provider.prefix\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 279,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 277,\n columnNumber: 5\n }, this);\n}\n\n_c11 = Provider;\n\nfunction ModalInit() {\n setDisplayedItems();\n return /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"modal_init\",\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n className: \"btn\",\n href: \"#modal\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify icon\",\n \"data-icon\": \"mdi-xbox-controller-menu\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 289,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 288,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 287,\n columnNumber: 5\n }, this);\n}\n\n_c12 = ModalInit;\nReactDOM.render( /*#__PURE__*/_jsxDEV(Homepage, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 296,\n columnNumber: 3\n}, this), document.getElementById('root')); //Functions below this line are for calculating data for\n//other functions\n\nfunction date() {\n let currentDate = new Date();\n let dateOptions = {\n weekday: \"long\",\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\"\n };\n let date = currentDate.toLocaleDateString(\"en-GB\", dateOptions);\n return date;\n}\n\nfunction fixDigits(k) {\n if (k < 10) {\n return \"0\" + k;\n } else {\n return k;\n }\n}\n\nfunction greet() {\n let currentTime = new Date();\n let greet = Math.floor(currentTime.getHours() / 6);\n let easterEggChance = Math.floor(Math.random() * 100);\n\n let greetings = require('./messages.json');\n\n let timeBased = [];\n let easterEggs = [];\n\n for (var i = 0; i < greetings.messages.length; i++) {\n if (greetings.messages[i].easteregg === \"FALSE\") {\n timeBased = timeBased.concat(greetings.messages[i]);\n } else {\n easterEggs = easterEggs.concat(greetings.messages[i]);\n }\n }\n\n if (easterEggChance > 10) {\n return timeBased[greet].message;\n } else {\n let easterEggText = Math.floor(Math.random() * easterEggs.length);\n return easterEggs[easterEggText].message;\n }\n}\n\nfunction Clock() {\n _s();\n\n const [date, setDate] = useState(new Date());\n\n function refreshClock() {\n setDate(new Date());\n }\n\n useEffect(() => {\n const timerId = setInterval(refreshClock, 1000);\n return function cleanup() {\n clearInterval(timerId);\n };\n }, []);\n var hour = date.getHours();\n var minutes = date.getMinutes(); //var seconds = date.getSeconds();\n\n var midday = \"AM\";\n midday = hour >= 12 ? \"PM\" : \"AM\";\n hour = hour === 0 ? 12 : hour > 12 ? hour - 12 : hour;\n minutes = fixDigits(minutes); //seconds = fixDigits(seconds);\n\n let time = hour + \":\" + minutes + \" \" + midday;\n return /*#__PURE__*/_jsxDEV(\"h2\", {\n id: \"clock\",\n children: time\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 367,\n columnNumber: 5\n }, this);\n}\n\n_s(Clock, \"Gqi45WOZhU2c0BLYX0HoJeiR0fk=\");\n\n_c13 = Clock;\n\nfunction getApps() {\n let applications = require('./apps.json');\n\n return applications;\n}\n\nfunction getLinks() {\n let links = require('./links.json');\n\n return links;\n}\n\nfunction getProviders() {\n let providers = require('./providers.json');\n\n return providers;\n}\n\nfunction getThemes() {\n let themes = require('./themes.json');\n\n return themes;\n}\n\nfunction updateTheme(e) {\n var themes = getThemes();\n var themeName = e.target.innerHTML.toLowerCase();\n var index = themes.themes.findIndex(function (item, i) {\n return item.name === themeName;\n });\n localStorage.setItem(\"image-background\", themes.themes[index].imagebackground);\n localStorage.setItem(\"color-background\", themes.themes[index].colorbackground);\n localStorage.setItem(\"color-search-background\", themes.themes[index].colorserachbackground);\n localStorage.setItem(\"color-text-pri\", themes.themes[index].colortextpri);\n localStorage.setItem(\"color-text-acc\", themes.themes[index].colortextacc);\n localStorage.setItem(\"color-border\", themes.themes[index].colorborder); //document.documentElement.style.setProperty(prop, `var(--${themeName}${prop.substring(10)})`);\n\n setTheme();\n}\n\nfunction setTheme() {\n setValueFromLocalStorage('image-background');\n setValueFromLocalStorage('color-background');\n setValueFromLocalStorage('color-search-background');\n setValueFromLocalStorage('color-text-pri');\n setValueFromLocalStorage('color-text-acc');\n setValueFromLocalStorage('color-border');\n setValueFromLocalStorage('content-display');\n}\n\nfunction handleKeyPress(e) {\n var sindex = 0;\n var cycle = false;\n var key = e.keyCode || e.which;\n var text = e.target.value.replaceAll(\"+\", \"%2B\");\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n\n if (key === 13) {\n // Search functions\n search(text);\n }\n\n if (key === 9) {\n // Tab Completion Functions\n e.preventDefault();\n e.stopPropagation();\n\n if (text[0] === ';') {\n switch (option) {\n case 't':\n var streamers = ['admiralbahroo', 'moonmoon_ow', 'witwix'];\n\n if (!subtext || cycle) {\n cycle = true;\n if (sindex > streamers.length - 1) sindex = 0;\n document.getElementById(\"keywords\").value = ';t ' + streamers[sindex++];\n return;\n }\n\n for (var streamer of streamers) {\n if (subtext === streamer.substr(0, subtext.length)) {\n document.getElementById(\"keywords\").value = ';t ' + streamer;\n return;\n }\n }\n\n break;\n\n default:\n break;\n }\n }\n }\n\n if (key === 32) {\n //Space to go to search\n updateLabel(text);\n }\n\n sindex = 0;\n cycle = false;\n updateLabel(text);\n}\n\nfunction updateLabel(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n\n if (text[0] === '/') {\n // if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n document.getElementById(\"searchType\").innerHTML = \"Allmusic search\";\n break;\n\n case \"d\":\n document.getElementById(\"searchType\").innerHTML = \"Duck Duck Go search\";\n break;\n\n case \"di\":\n document.getElementById(\"searchType\").innerHTML = \"Discogs search\";\n break;\n\n case \"i\":\n document.getElementById(\"searchType\").innerHTML = \"IMDB search\";\n break;\n\n case \"m\":\n document.getElementById(\"searchType\").innerHTML = \"TheMovieDB search\";\n break;\n\n case \"r\":\n document.getElementById(\"searchType\").innerHTML = \"Reddit search\";\n break;\n\n case \"q\":\n document.getElementById(\"searchType\").innerHTML = \"Qwant search\";\n break;\n\n case \"so\":\n document.getElementById(\"searchType\").innerHTML = \"Soundcloud search\";\n break;\n\n case \"s\":\n document.getElementById(\"searchType\").innerHTML = \"Spotify search\";\n break;\n\n case \"tv\":\n document.getElementById(\"searchType\").innerHTML = \"TheTVDB search\";\n break;\n\n case \"t\":\n document.getElementById(\"searchType\").innerHTML = \"Trakt search\";\n break;\n\n case \"y\":\n document.getElementById(\"searchType\").innerHTML = \"YouTube search\";\n break;\n\n case \"w\":\n document.getElementById(\"searchType\").innerHTML = \"Wikipedia search\";\n break;\n\n case \"p\":\n document.getElementById(\"searchType\").innerHTML = \"Plex search\";\n break;\n\n case \"rt\":\n document.getElementById(\"searchType\").innerHTML = \"Rotten Tomatoes search\";\n break;\n\n default:\n document.getElementById(\"searchType\").innerHTML = \"Invalid search\";\n break;\n }\n } else {\n document.getElementById(\"searchType\").innerHTML = \"Google search\";\n }\n}\n\nfunction search(text) {\n if (text[0] === '/') {\n if (text.indexOf(' ') > -1) {\n let option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n\n switch (option) {\n case \"am\":\n window.location = \"https://www.allmusic.com/search/all/\" + subtext;\n break;\n\n case \"d\":\n window.location = \"https://duckduckgo.com/?q=\" + subtext;\n break;\n\n case \"di\":\n window.location = \"https://www.discogs.com/search/?q=\" + subtext;\n break;\n\n case \"i\":\n window.location = \"https://www.imdb.com/find?q=\" + subtext;\n break;\n\n case \"m\":\n window.location = \"https://www.themoviedb.org/search?query=\" + subtext;\n break;\n\n case \"r\":\n window.location = \"https://www.reddit.com/search?q=\" + subtext;\n break;\n\n case \"q\":\n window.location = \"https://www.qwant.com/?q=\" + subtext;\n break;\n\n case \"so\":\n window.location = \"https://soundcloud.com/search?q=\" + subtext;\n break;\n\n case \"s\":\n window.location = \"https://open.spotify.com/search/results/\" + subtext;\n break;\n\n case \"t\":\n window.location = \"https://trakt.tv/search?query=\" + subtext;\n break;\n\n case \"tv\":\n window.location = \"https://www.thetvdb.com/search?query=\" + subtext;\n break;\n\n case \"y\":\n window.location = \"https://www.youtube.com/results?search_query=\" + subtext;\n break;\n\n case \"w\":\n window.location = \"https://en.wikipedia.org/w/index.php?search=\" + subtext;\n break;\n\n case \"p\":\n window.location = \"https://app.plex.tv/desktop/#!/search?query=\" + subtext;\n break;\n\n case \"rt\":\n window.location = \"https://www.rottentomatoes.com/search?search=\" + subtext;\n break;\n\n default:\n break;\n }\n } else {\n let option = text.substr(1);\n\n switch (option) {\n case \"d\":\n window.location = \"https://www.duckduckgo.com\";\n break;\n\n case \"y\":\n window.location = \"https://www.youtube.com\";\n break;\n\n case \"r\":\n window.location = \"https://reddit.com\";\n break;\n\n case \"s\":\n window.location = \"https://open.spotify.com\";\n break;\n\n default:\n break;\n }\n }\n } else if (validURL(text)) {\n if (containsProtocol(text)) window.location = text;else window.location = \"https://\" + text;\n } else {\n window.location = \"https://www.google.com/search?q=\" + text;\n }\n}\n\nfunction validURL(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/)?' + // protocol\n '((([a-z\\\\d]([a-z\\\\d-]*[a-z\\\\d])*)\\\\.)+[a-z]{2,}|' + // domain name\n '((\\\\d{1,3}\\\\.){3}\\\\d{1,3}))' + // OR ip (v4) address\n '(\\\\:\\\\d+)?(\\\\/[-a-z\\\\d%_.~+]*)*' + // port and path\n '(\\\\?[;&a-z\\\\d%_.~+=-]*)?' + // query string\n '(\\\\#[-a-z\\\\d_]*)?$', 'i'); // fragment locator\n\n return !!pattern.test(str);\n}\n\nfunction containsProtocol(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/){1}.*', 'i');\n return !!pattern.test(str);\n}\n\nString.prototype.replaceAll = function (search, replacement) {\n var target = this;\n return target.split(search).join(replacement);\n};\n\nfunction udpateDisplayedItems(e) {\n localStorage.setItem('contenttype', e.target.checked);\n\n if (e.target.checked) {\n localStorage.setItem('content-display', 'none');\n } else {\n localStorage.setItem('content-display', 'block');\n }\n\n setDisplayedItems();\n}\n\nfunction setDisplayedItems() {\n setValueFromLocalStorage('contenttype');\n setValueFromLocalStorage('content-display');\n}\n\nvar _c, _c2, _c3, _c4, _c5, _c6, _c7, _c8, _c9, _c10, _c11, _c12, _c13;\n\n$RefreshReg$(_c, \"Homepage\");\n$RefreshReg$(_c2, \"Search\");\n$RefreshReg$(_c3, \"Header\");\n$RefreshReg$(_c4, \"Applications\");\n$RefreshReg$(_c5, \"App\");\n$RefreshReg$(_c6, \"Bookmarks\");\n$RefreshReg$(_c7, \"LinkGroups\");\n$RefreshReg$(_c8, \"LinkItem\");\n$RefreshReg$(_c9, \"ModalMenu\");\n$RefreshReg$(_c10, \"HideButton\");\n$RefreshReg$(_c11, \"Provider\");\n$RefreshReg$(_c12, \"ModalInit\");\n$RefreshReg$(_c13, \"Clock\");","map":{"version":3,"sources":["/home/seanedmunds/dev/home-page/src/index.js"],"names":["React","useState","useEffect","ReactDOM","setValueFromLocalStorage","property","value","localStorage","getItem","setValue","document","documentElement","style","setProperty","input","querySelector","replace","Homepage","setTheme","date","greet","Search","handleKeyPress","Header","props","Applications","appList","getApps","items","i","apps","length","safe","NSFW","NSFWEnabled","push","name","url","icon","App","classNameType","hrefUrl","iconName","Bookmarks","bookmarkList","getLinks","bookmarks","category","links","LinkGroups","LinkItem","link","ModalMenu","providers","getProviders","isChecked","console","log","updateTheme","HideButton","checked","udpateDisplayedItems","Provider","provider","prefix","ModalInit","setDisplayedItems","render","getElementById","currentDate","Date","dateOptions","weekday","year","month","day","toLocaleDateString","fixDigits","k","currentTime","Math","floor","getHours","easterEggChance","random","greetings","require","timeBased","easterEggs","messages","easteregg","concat","message","easterEggText","Clock","setDate","refreshClock","timerId","setInterval","cleanup","clearInterval","hour","minutes","getMinutes","midday","time","applications","getThemes","themes","e","themeName","target","innerHTML","toLowerCase","index","findIndex","item","setItem","imagebackground","colorbackground","colorserachbackground","colortextpri","colortextacc","colorborder","sindex","cycle","key","keyCode","which","text","replaceAll","option","substr","indexOf","subtext","search","preventDefault","stopPropagation","streamers","streamer","updateLabel","window","location","validURL","containsProtocol","str","pattern","RegExp","test","String","prototype","replacement","split","join"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { useState, useEffect } from 'react';\nimport ReactDOM from 'react-dom';\nimport './index.css';\n\nconst setValueFromLocalStorage = property => {\n let value = localStorage.getItem(property);\n setValue(property, value);\n};\nconst setValue = (property, value) => {\n if (value) {\n document.documentElement.style.setProperty(`--${property}`, value);\n\n const input = document.querySelector(`#${property}`);\n if (input) {\n value = value.replace('px', '');\n input.value = value;\n }\n }\n};\n\nfunction Homepage() {\n setTheme();\n \n return (\n \n \n \n
\n \n \n
\n \n \n \n
\n \n \n
\n \n \n
\n \n );\n}\n\nfunction Search() {\n return (\n \n )\n}\n\nfunction Header(props) {\n return (\n \n );\n}\n\nfunction Applications() {\n let appList = getApps();\n var items = [];\n for (var i = 0; i < appList.apps.length; i++) {\n var safe = appList.apps[i].NSFW;\n var NSFWEnabled = localStorage.getItem(\"contenttype\");\n if (safe === \"SAFE\") {\n items.push(\n \n );\n } else if (safe === \"NSFW\" && NSFWEnabled) {\n items.push(\n \n );\n } else {\n \n }\n \n }\n return (\n \n Applications
\n \n {items}\n
\n \n );\n}\n\nfunction App(props) {\n \n let classNameType = props.NSFW + \"-content\";\n let hrefUrl = \"https://\" + props.url;\n let iconName = \"mdi-\" + props.icon;\n return (\n \n );\n}\n\nfunction Bookmarks() {\n let bookmarkList = getLinks();\n var items = [];\n for (var i = 0; i < bookmarkList.bookmarks.length; i++) {\n items.push(\n \n );\n }\n return (\n \n Bookmarks
\n \n {items}\n
\n \n );\n}\n\nfunction LinkGroups(props) {\n var items = [];\n for (var i = 0; i < props.links.length; i++) {\n items.push(\n \n );\n }\n return (\n \n
{props.category}
\n {items}\n \n );\n}\n\nfunction LinkItem(props) {\n return (\n \n );\n}\n\nfunction ModalMenu() {\n var providers = getProviders();\n var items = [];\n var isChecked = localStorage.getItem(\"contenttype\");\n console.log(localStorage.getItem(\"contenttype\"));\n for (var i = 0; i < providers.providers.length; i++) {\n items.push(\n \n );\n }\n return (\n \n \n \n\n
Color themes
\n\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n\n\n
Search options
\n
\n \n \n \n | Website | \n Prefix | \n
\n {items}\n \n
\n \n\n \n
\n \n );\n}\n\nfunction HideButton(props) {\n console.log(props.checked);\n if(props.checked === \"true\") {\n console.log(\"icon should be grey\");\n return (\n \n
\n );\n } else {\n console.log(\"icon should be white\");\n return (\n \n
\n );\n }\n}\n\nfunction Provider(props) {\n return (\n \n | {props.provider.name} | \n {props.provider.prefix} | \n
\n );\n}\n\nfunction ModalInit() {\n setDisplayedItems();\n return (\n \n );\n}\n\nReactDOM.render(\n ,\n document.getElementById('root')\n);\n\n//Functions below this line are for calculating data for\n//other functions\n\nfunction date() {\n let currentDate = new Date();\n let dateOptions = {\n weekday: \"long\",\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\"\n };\n let date = currentDate.toLocaleDateString(\"en-GB\", dateOptions);\n return date;\n}\nfunction fixDigits(k) {\n if (k < 10) {\n return \"0\" + k;\n }\n else {\n return k;\n }\n}\nfunction greet() {\n let currentTime = new Date();\n let greet = Math.floor(currentTime.getHours() / 6);\n let easterEggChance = Math.floor(Math.random() * 100);\n let greetings = require('./messages.json');\n let timeBased = [];\n let easterEggs = [];\n for (var i = 0; i < greetings.messages.length; i++) {\n if (greetings.messages[i].easteregg === \"FALSE\") {\n timeBased = timeBased.concat(greetings.messages[i]);\n } else {\n easterEggs = easterEggs.concat(greetings.messages[i]);\n }\n }\n if (easterEggChance > 10) {\n return timeBased[greet].message;\n } else {\n let easterEggText = Math.floor(Math.random() * easterEggs.length);\n return easterEggs[easterEggText].message;\n }\n}\nfunction Clock() {\n const [date, setDate] = useState(new Date());\n\n function refreshClock() {\n setDate(new Date());\n }\n useEffect(() => {\n const timerId = setInterval(refreshClock, 1000);\n return function cleanup() {\n clearInterval(timerId);\n };\n }, []);\n\n var hour = date.getHours();\n var minutes = date.getMinutes();\n //var seconds = date.getSeconds();\n var midday = \"AM\";\n midday = (hour >= 12) ? \"PM\" : \"AM\";\n hour = (hour === 0) ? 12 : ((hour > 12) ? (hour - 12) : hour);\n minutes = fixDigits(minutes);\n //seconds = fixDigits(seconds);\n let time = hour + \":\" + minutes + \" \" + midday;\n\n return (\n {time}
\n\n );\n}\nfunction getApps() {\n let applications = require('./apps.json');\n return applications;\n}\nfunction getLinks() {\n let links = require('./links.json');\n return links;\n}\nfunction getProviders() {\n let providers = require('./providers.json');\n return providers;\n}\nfunction getThemes() {\n let themes = require('./themes.json');\n return themes;\n}\nfunction updateTheme(e) {\n var themes = getThemes();\n var themeName = e.target.innerHTML.toLowerCase();\n var index = themes.themes.findIndex(function(item, i){\n return item.name === themeName;\n });\n localStorage.setItem(\"image-background\", themes.themes[index].imagebackground);\n localStorage.setItem(\"color-background\", themes.themes[index].colorbackground);\n localStorage.setItem(\"color-search-background\", themes.themes[index].colorserachbackground);\n localStorage.setItem(\"color-text-pri\",themes.themes[index].colortextpri);\n localStorage.setItem(\"color-text-acc\", themes.themes[index].colortextacc);\n localStorage.setItem(\"color-border\", themes.themes[index].colorborder);\n \n //document.documentElement.style.setProperty(prop, `var(--${themeName}${prop.substring(10)})`);\n setTheme();\n}\nfunction setTheme() {\n setValueFromLocalStorage('image-background');\n setValueFromLocalStorage('color-background');\n setValueFromLocalStorage('color-search-background');\n setValueFromLocalStorage('color-text-pri');\n setValueFromLocalStorage('color-text-acc');\n setValueFromLocalStorage('color-border');\n setValueFromLocalStorage('content-display');\n}\nfunction handleKeyPress(e) {\n var sindex = 0;\n var cycle = false;\n var key = e.keyCode || e.which;\n var text = e.target.value.replaceAll(\"+\", \"%2B\");\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n if (key === 13) { // Search functions\n search(text);\n }\n if (key === 9) { // Tab Completion Functions\n e.preventDefault();\n e.stopPropagation();\n if (text[0] === ';') {\n switch (option) {\n case 't':\n var streamers = ['admiralbahroo', 'moonmoon_ow', 'witwix'];\n if (!subtext || cycle) {\n cycle = true;\n if (sindex > streamers.length - 1) sindex = 0;\n document.getElementById(\"keywords\").value = ';t ' + streamers[sindex++];\n return;\n }\n for (var streamer of streamers) {\n if (subtext === streamer.substr(0, subtext.length)) {\n document.getElementById(\"keywords\").value = ';t ' + streamer;\n return;\n }\n }\n break;\n default :\n break;\n }\n }\n }\n if(key === 32){ //Space to go to search\nupdateLabel(text);\n }\n sindex = 0;\n cycle = false;\n updateLabel(text);\n}\nfunction updateLabel(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n if (text[0] === '/') {\n// if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n document.getElementById(\"searchType\").innerHTML = \"Allmusic search\";\n break;\n case \"d\":\n document.getElementById(\"searchType\").innerHTML = \"Duck Duck Go search\";\n break;\n case \"di\":\n document.getElementById(\"searchType\").innerHTML = \"Discogs search\";\n break;\n case \"i\":\n document.getElementById(\"searchType\").innerHTML = \"IMDB search\";\n break;\n case \"m\":\n document.getElementById(\"searchType\").innerHTML = \"TheMovieDB search\";\n break;\n case \"r\":\n document.getElementById(\"searchType\").innerHTML = \"Reddit search\";\n break;\n case \"q\":\n document.getElementById(\"searchType\").innerHTML = \"Qwant search\";\n break;\n case \"so\":\n document.getElementById(\"searchType\").innerHTML = \"Soundcloud search\";\n break;\n case \"s\":\n document.getElementById(\"searchType\").innerHTML = \"Spotify search\";\n break;\n case \"tv\":\n document.getElementById(\"searchType\").innerHTML = \"TheTVDB search\";\n break;\n case \"t\":\n document.getElementById(\"searchType\").innerHTML = \"Trakt search\";\n break;\n case \"y\":\n document.getElementById(\"searchType\").innerHTML = \"YouTube search\";\n break;\n case \"w\":\n document.getElementById(\"searchType\").innerHTML = \"Wikipedia search\";\n break;\n case \"p\":\n document.getElementById(\"searchType\").innerHTML = \"Plex search\";\n break;\n case \"rt\":\n document.getElementById(\"searchType\").innerHTML = \"Rotten Tomatoes search\";\n break;\n default:\n document.getElementById(\"searchType\").innerHTML = \"Invalid search\";\n break;\n }\n}else {\n document.getElementById(\"searchType\").innerHTML = \"Google search\";\n }\n}\nfunction search(text) {\n if (text[0] === '/') {\n if (text.indexOf(' ') > -1) {\n let option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n switch (option) {\n case \"am\":\n window.location = \"https://www.allmusic.com/search/all/\" + subtext;\n break;\n case \"d\":\n window.location = \"https://duckduckgo.com/?q=\" + subtext;\n break;\n case \"di\":\n window.location = \"https://www.discogs.com/search/?q=\" + subtext;\n break;\n case \"i\":\n window.location = \"https://www.imdb.com/find?q=\" + subtext;\n break;\n case \"m\":\n window.location = \"https://www.themoviedb.org/search?query=\" + subtext;\n break;\n case \"r\":\n window.location = \"https://www.reddit.com/search?q=\" + subtext;\n break;\n case \"q\":\n window.location = \"https://www.qwant.com/?q=\" + subtext;\n break;\n case \"so\":\n window.location = \"https://soundcloud.com/search?q=\" + subtext;\n break;\n case \"s\":\n window.location = \"https://open.spotify.com/search/results/\" + subtext;\n break;\n case \"t\":\n window.location = \"https://trakt.tv/search?query=\" + subtext;\n break;\n case \"tv\":\n window.location = \"https://www.thetvdb.com/search?query=\" + subtext;\n break;\n case \"y\":\n window.location = \"https://www.youtube.com/results?search_query=\" + subtext;\n break;\n case \"w\":\n window.location = \"https://en.wikipedia.org/w/index.php?search=\" + subtext;\n break;\n case \"p\":\n window.location = \"https://app.plex.tv/desktop/#!/search?query=\" + subtext;\n break;\n case \"rt\":\n window.location = \"https://www.rottentomatoes.com/search?search=\" + subtext;\n break;\n default :\n break;\n }\n } else {\n let option = text.substr(1);\n switch (option) {\n case \"d\":\n window.location = \"https://www.duckduckgo.com\";\n break;\n case \"y\":\n window.location = \"https://www.youtube.com\";\n break;\n case \"r\":\n window.location = \"https://reddit.com\";\n break;\n case \"s\":\n window.location = \"https://open.spotify.com\";\n break;\n default :\n break;\n }\n }\n } else if (validURL(text)) {\n if (containsProtocol(text))\n window.location = text;\n else\n window.location = \"https://\" + text;\n } else {\n window.location = \"https://www.google.com/search?q=\" + text;\n }\n}\nfunction validURL(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/)?' + // protocol\n '((([a-z\\\\d]([a-z\\\\d-]*[a-z\\\\d])*)\\\\.)+[a-z]{2,}|' + // domain name\n '((\\\\d{1,3}\\\\.){3}\\\\d{1,3}))' + // OR ip (v4) address\n '(\\\\:\\\\d+)?(\\\\/[-a-z\\\\d%_.~+]*)*' + // port and path\n '(\\\\?[;&a-z\\\\d%_.~+=-]*)?' + // query string\n '(\\\\#[-a-z\\\\d_]*)?$', 'i'); // fragment locator\n return !!pattern.test(str);\n}\nfunction containsProtocol(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/){1}.*', 'i');\n return !!pattern.test(str);\n}\nString.prototype.replaceAll = function(search, replacement) {\n var target = this;\n return target.split(search).join(replacement);\n};\nfunction udpateDisplayedItems(e) {\n localStorage.setItem('contenttype', e.target.checked);\n if (e.target.checked) {\n localStorage.setItem('content-display', 'none');\n } else {\n localStorage.setItem('content-display', 'block');\n }\n setDisplayedItems();\n}\nfunction setDisplayedItems() {\n setValueFromLocalStorage('contenttype');\n setValueFromLocalStorage('content-display');\n}"]},"metadata":{},"sourceType":"module"}
\ No newline at end of file
diff --git a/node_modules/.cache/babel-loader/539539663bb15d240ad97b4396addc64.json b/node_modules/.cache/babel-loader/539539663bb15d240ad97b4396addc64.json
new file mode 100644
index 00000000..426a854d
--- /dev/null
+++ b/node_modules/.cache/babel-loader/539539663bb15d240ad97b4396addc64.json
@@ -0,0 +1 @@
+{"ast":null,"code":"var _jsxFileName = \"/home/seanedmunds/dev/home-page/src/index.js\",\n _s = $RefreshSig$();\n\nimport React from 'react';\nimport { useState, useEffect } from 'react';\nimport ReactDOM from 'react-dom'; //import { unstable_createPortal } from 'react-dom';\n\nimport './index.css';\nimport { jsxDEV as _jsxDEV } from \"react/jsx-dev-runtime\";\n\nconst setValueFromLocalStorage = property => {\n let value = localStorage.getItem(property);\n setValue(property, value);\n};\n\nconst setValue = (property, value) => {\n if (value) {\n document.documentElement.style.setProperty(`--${property}`, value);\n const input = document.querySelector(`#${property}`);\n\n if (input) {\n value = value.replace('px', '');\n input.value = value;\n }\n }\n};\n\nfunction Homepage() {\n setTheme();\n return /*#__PURE__*/_jsxDEV(\"main\", {\n id: \"container\",\n className: \"fade\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Search, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 28,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 27,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Header, {\n date: date(),\n greet: greet()\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 31,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 30,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Applications, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 37,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 36,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Bookmarks, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 40,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 39,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(ModalMenu, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 43,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 42,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(ModalInit, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 46,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 45,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 26,\n columnNumber: 5\n }, this);\n}\n\n_c = Homepage;\n\nfunction Search() {\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"search\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"abackground\",\n children: [/*#__PURE__*/_jsxDEV(\"input\", {\n name: \"keywords\",\n type: \"text\",\n className: \"keyword\",\n id: \"keywords\",\n size: \"50\",\n spellCheck: \"true\",\n placeholder: \"\"\n /*onFocus={this.placeholder = \"\"} onBlur={this.placeholder = ''}*/\n ,\n autoComplete: \"off\",\n autoFocus: true,\n onKeyUp: handleKeyPress\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 56,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n id: \"searchType\",\n className: \"Input-label\",\n children: \"Google search\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 57,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 55,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 54,\n columnNumber: 5\n }, this);\n}\n\n_c2 = Search;\n\nfunction Header(props) {\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"header\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n id: \"greeting_block\",\n children: /*#__PURE__*/_jsxDEV(\"h1\", {\n id: \"header_greet\",\n children: props.greet\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 67,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 66,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"date_block\",\n children: [/*#__PURE__*/_jsxDEV(\"h2\", {\n id: \"header_date\",\n children: props.date\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 70,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(Clock, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 71,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 69,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 65,\n columnNumber: 5\n }, this);\n}\n\n_c3 = Header;\n\nfunction Applications() {\n let appList = getApps();\n var items = [];\n\n for (var i = 0; i < appList.apps.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(App, {\n name: appList.apps[i].name,\n url: appList.apps[i].url,\n icon: appList.apps[i].icon,\n NSFW: appList.apps[i].NSFW\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 82,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"apps\",\n children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n children: \"Applications\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 93,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"apps_loop\",\n children: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 94,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 92,\n columnNumber: 5\n }, this);\n}\n\n_c4 = Applications;\n\nfunction App(props) {\n var safe = localStorage.getItem(\"contenttype\");\n console.log(safe);\n\n if (safe) {\n return /*#__PURE__*/_jsxDEV(\"div\", {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 106,\n columnNumber: 7\n }, this);\n } else {\n let classNameType = props.NSFW + \"-content\";\n let hrefUrl = \"https://\" + props.url;\n let iconName = \"mdi-\" + props.icon;\n return /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: hrefUrl,\n className: classNameType,\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_item\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_icon\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify icon\",\n \"data-icon\": iconName\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 117,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 116,\n columnNumber: 13\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_text\",\n children: [/*#__PURE__*/_jsxDEV(\"span\", {\n id: \"app-name\",\n children: props.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 120,\n columnNumber: 15\n }, this), /*#__PURE__*/_jsxDEV(\"span\", {\n id: \"app-address\",\n children: props.url\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 121,\n columnNumber: 15\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 119,\n columnNumber: 13\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 115,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 114,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 113,\n columnNumber: 7\n }, this);\n }\n}\n\n_c5 = App;\n\nfunction Bookmarks() {\n let bookmarkList = getLinks();\n var items = [];\n\n for (var i = 0; i < bookmarkList.bookmarks.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(LinkGroups, {\n category: bookmarkList.bookmarks[i].category,\n links: bookmarkList.bookmarks[i].links\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 136,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"links\",\n children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n children: \"Bookmarks\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 145,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"links_loop\",\n children: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 146,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 144,\n columnNumber: 5\n }, this);\n}\n\n_c6 = Bookmarks;\n\nfunction LinkGroups(props) {\n var items = [];\n\n for (var i = 0; i < props.links.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(LinkItem, {\n link: props.links[i]\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 157,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"links_item\",\n children: [/*#__PURE__*/_jsxDEV(\"h4\", {\n children: props.category\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 165,\n columnNumber: 7\n }, this), items]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 164,\n columnNumber: 5\n }, this);\n}\n\n_c7 = LinkGroups;\n\nfunction LinkItem(props) {\n return /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: props.link.url,\n className: \"theme_color-border theme_text-select\",\n children: props.link.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 174,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 173,\n columnNumber: 5\n }, this);\n}\n\n_c8 = LinkItem;\n\nfunction ModalMenu() {\n var providers = getProviders();\n var items = [];\n\n for (var i = 0; i < providers.providers.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(Provider, {\n provider: providers.providers[i]\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 184,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"modal\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n children: [/*#__PURE__*/_jsxDEV(\"header\", {\n id: \"modal-header\",\n children: [/*#__PURE__*/_jsxDEV(\"h1\", {\n children: \"Options\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 194,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n href: \"#\",\n title: \"Close\",\n className: \"modal-close\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-close\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 196,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 195,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 193,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"h2\", {\n children: \"Color themes\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 200,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"modal-theme\",\n children: [/*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"blackboard\",\n className: \"theme-button theme-blackboard\",\n onClick: updateTheme,\n children: \"Blackboard\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 203,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"gazette\",\n className: \"theme-button theme-gazette\",\n onClick: updateTheme,\n children: \"Gazette\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 204,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"espresso\",\n className: \"theme-button theme-espresso\",\n onClick: updateTheme,\n children: \"Espresso\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 205,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cab\",\n className: \"theme-button theme-cab\",\n onClick: updateTheme,\n children: \"Cab\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 206,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cloud\",\n className: \"theme-button theme-cloud\",\n onClick: updateTheme,\n children: \"Cloud\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 207,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"lime\",\n className: \"theme-button theme-lime\",\n onClick: updateTheme,\n children: \"Lime\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 208,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"passion\",\n className: \"theme-button theme-passion\",\n onClick: updateTheme,\n children: \"Passion\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 209,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"blues\",\n className: \"theme-button theme-blues\",\n onClick: updateTheme,\n children: \"Blues\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 210,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"chalk\",\n className: \"theme-button theme-chalk\",\n onClick: updateTheme,\n children: \"Chalk\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 211,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"tron\",\n className: \"theme-button theme-tron\",\n onClick: updateTheme,\n children: \"Tron\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 212,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"paper\",\n className: \"theme-button theme-paper\",\n onClick: updateTheme,\n children: \"Paper\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 213,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cyberpunk\",\n className: \"theme-button theme-cyberpunk\",\n onClick: updateTheme,\n children: \"Cyberpunk\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 214,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"quadra\",\n className: \"theme-button theme-panam\",\n onClick: updateTheme,\n children: \"Quadra\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 215,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"panam\",\n className: \"theme-button theme-panam\",\n onClick: updateTheme,\n children: \"Panam\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 216,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"touch\",\n className: \"theme-button theme-touch\",\n onClick: updateTheme,\n children: \"Touch\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 217,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"peek\",\n className: \"theme-button theme-peek\",\n onClick: updateTheme,\n children: \"Peek\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 218,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 202,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"h2\", {\n children: \"Search options\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 222,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"providers\",\n children: /*#__PURE__*/_jsxDEV(\"table\", {\n children: /*#__PURE__*/_jsxDEV(\"tbody\", {\n children: [/*#__PURE__*/_jsxDEV(\"tr\", {\n children: [/*#__PURE__*/_jsxDEV(\"th\", {\n children: \"Website\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 227,\n columnNumber: 19\n }, this), /*#__PURE__*/_jsxDEV(\"th\", {\n children: \"Prefix\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 228,\n columnNumber: 19\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 226,\n columnNumber: 17\n }, this), items]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 225,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 224,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 223,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"header\", {\n id: \"modal-footer\",\n children: [/*#__PURE__*/_jsxDEV(\"a\", {\n href: \"https://github.com/jeroenpardon/\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-github-box\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 236,\n columnNumber: 54\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 236,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n href: \"https://materialdesignicons.com/\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-material-design\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 237,\n columnNumber: 54\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 237,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"sneaky\",\n children: [/*#__PURE__*/_jsxDEV(\"input\", {\n type: \"checkbox\",\n id: \"contenttype\",\n onChange: udpateDisplayedItems\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 238,\n columnNumber: 35\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n for: \"contenttype\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-domino-mask\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 239,\n columnNumber: 36\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 239,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 238,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 235,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 192,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 191,\n columnNumber: 5\n }, this);\n}\n\n_c9 = ModalMenu;\n\nfunction Provider(props) {\n return /*#__PURE__*/_jsxDEV(\"tr\", {\n children: [/*#__PURE__*/_jsxDEV(\"td\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: props.provider.url,\n children: props.provider.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 249,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 249,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"td\", {\n children: props.provider.prefix\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 250,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 248,\n columnNumber: 5\n }, this);\n}\n\n_c10 = Provider;\n\nfunction ModalInit() {\n return /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"modal_init\",\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n className: \"btn\",\n href: \"#modal\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify icon\",\n \"data-icon\": \"mdi-xbox-controller-menu\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 259,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 258,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 257,\n columnNumber: 5\n }, this);\n}\n\n_c11 = ModalInit;\nReactDOM.render( /*#__PURE__*/_jsxDEV(Homepage, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 266,\n columnNumber: 3\n}, this), document.getElementById('root')); //Functions below this line are for calculating data for\n//other functions\n\nfunction date() {\n let currentDate = new Date();\n let dateOptions = {\n weekday: \"long\",\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\"\n };\n let date = currentDate.toLocaleDateString(\"en-GB\", dateOptions);\n return date;\n}\n\nfunction fixDigits(k) {\n if (k < 10) {\n return \"0\" + k;\n } else {\n return k;\n }\n}\n\nfunction greet() {\n let currentTime = new Date();\n let greet = Math.floor(currentTime.getHours() / 6);\n let easterEggChance = Math.floor(Math.random() * 100);\n\n let greetings = require('./messages.json');\n\n let timeBased = [];\n let easterEggs = [];\n\n for (var i = 0; i < greetings.messages.length; i++) {\n if (greetings.messages[i].easteregg === \"FALSE\") {\n timeBased = timeBased.concat(greetings.messages[i]);\n } else {\n easterEggs = easterEggs.concat(greetings.messages[i]);\n }\n }\n\n if (easterEggChance > 10) {\n return timeBased[greet].message;\n } else {\n let easterEggText = Math.floor(Math.random() * easterEggs.length);\n return easterEggs[easterEggText].message;\n }\n}\n\nfunction Clock() {\n _s();\n\n const [date, setDate] = useState(new Date());\n\n function refreshClock() {\n setDate(new Date());\n }\n\n useEffect(() => {\n const timerId = setInterval(refreshClock, 1000);\n return function cleanup() {\n clearInterval(timerId);\n };\n }, []);\n var hour = date.getHours();\n var minutes = date.getMinutes(); //var seconds = date.getSeconds();\n\n var midday = \"AM\";\n midday = hour >= 12 ? \"PM\" : \"AM\";\n hour = hour === 0 ? 12 : hour > 12 ? hour - 12 : hour;\n minutes = fixDigits(minutes); //seconds = fixDigits(seconds);\n\n let time = hour + \":\" + minutes + \" \" + midday;\n return /*#__PURE__*/_jsxDEV(\"h2\", {\n id: \"clock\",\n children: time\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 337,\n columnNumber: 5\n }, this);\n}\n\n_s(Clock, \"Gqi45WOZhU2c0BLYX0HoJeiR0fk=\");\n\n_c12 = Clock;\n\nfunction getApps() {\n let applications = require('./apps.json');\n\n return applications;\n}\n\nfunction getLinks() {\n let links = require('./links.json');\n\n return links;\n}\n\nfunction getProviders() {\n let providers = require('./providers.json');\n\n return providers;\n}\n\nfunction getThemes() {\n let themes = require('./themes.json');\n\n return themes;\n}\n\nfunction updateTheme(e) {\n var themes = getThemes();\n var themeName = e.target.innerHTML.toLowerCase();\n var index = themes.themes.findIndex(function (item, i) {\n return item.name === themeName;\n });\n console.log(themes.themes[index]);\n localStorage.setItem(\"image-background\", themes.themes[index].imagebackground);\n localStorage.setItem(\"color-background\", themes.themes[index].colorbackground);\n localStorage.setItem(\"color-search-background\", themes.themes[index].colorserachbackground);\n localStorage.setItem(\"color-text-pri\", themes.themes[index].colortextpri);\n localStorage.setItem(\"color-text-acc\", themes.themes[index].colortextacc);\n localStorage.setItem(\"color-border\", themes.themes[index].colorborder); //document.documentElement.style.setProperty(prop, `var(--${themeName}${prop.substring(10)})`);\n\n setTheme();\n}\n\nfunction setTheme() {\n setValueFromLocalStorage('image-background');\n setValueFromLocalStorage('color-background');\n setValueFromLocalStorage('color-search-background');\n setValueFromLocalStorage('color-text-pri');\n setValueFromLocalStorage('color-text-acc');\n setValueFromLocalStorage('color-border');\n setValueFromLocalStorage('content-display');\n}\n\nfunction handleKeyPress(e) {\n var sindex = 0;\n var cycle = false;\n var key = e.keyCode || e.which;\n var text = e.target.value.replaceAll(\"+\", \"%2B\");\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n\n if (key == 13) {\n // Search functions\n search(text);\n }\n\n if (key == 9) {\n // Tab Completion Functions\n e.preventDefault();\n e.stopPropagation();\n\n if (text[0] === ';') {\n switch (option) {\n case 't':\n var streamers = ['admiralbahroo', 'moonmoon_ow', 'witwix'];\n\n if (!subtext || cycle) {\n cycle = true;\n if (sindex > streamers.length - 1) sindex = 0;\n document.getElementById(\"keywords\").value = ';t ' + streamers[sindex++];\n return;\n }\n\n for (var streamer of streamers) {\n if (subtext === streamer.substr(0, subtext.length)) {\n document.getElementById(\"keywords\").value = ';t ' + streamer;\n return;\n }\n }\n\n break;\n }\n }\n }\n\n if (key == 32) {\n //Space to go to search\n updateLabel(text);\n }\n\n sindex = 0;\n cycle = false;\n updateLabel(text);\n}\n\nfunction updateLabel(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n\n if (text[0] === '/') {\n // if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n document.getElementById(\"searchType\").innerHTML = \"Allmusic search\";\n break;\n\n case \"d\":\n document.getElementById(\"searchType\").innerHTML = \"Duck Duck Go search\";\n break;\n\n case \"di\":\n document.getElementById(\"searchType\").innerHTML = \"Discogs search\";\n break;\n\n case \"i\":\n document.getElementById(\"searchType\").innerHTML = \"IMDB search\";\n break;\n\n case \"m\":\n document.getElementById(\"searchType\").innerHTML = \"TheMovieDB search\";\n break;\n\n case \"r\":\n document.getElementById(\"searchType\").innerHTML = \"Reddit search\";\n break;\n\n case \"q\":\n document.getElementById(\"searchType\").innerHTML = \"Qwant search\";\n break;\n\n case \"so\":\n document.getElementById(\"searchType\").innerHTML = \"Soundcloud search\";\n break;\n\n case \"s\":\n document.getElementById(\"searchType\").innerHTML = \"Spotify search\";\n break;\n\n case \"tv\":\n document.getElementById(\"searchType\").innerHTML = \"TheTVDB search\";\n break;\n\n case \"t\":\n document.getElementById(\"searchType\").innerHTML = \"Trakt search\";\n break;\n\n case \"y\":\n document.getElementById(\"searchType\").innerHTML = \"YouTube search\";\n break;\n\n case \"w\":\n document.getElementById(\"searchType\").innerHTML = \"Wikipedia search\";\n break;\n\n case \"p\":\n document.getElementById(\"searchType\").innerHTML = \"Plex search\";\n break;\n\n case \"rt\":\n document.getElementById(\"searchType\").innerHTML = \"Rotten Tomatoes search\";\n break;\n\n default:\n document.getElementById(\"searchType\").innerHTML = \"Invalid search\";\n break;\n }\n } else {\n document.getElementById(\"searchType\").innerHTML = \"Google search\";\n }\n}\n\nfunction search(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n\n if (text[0] === '/') {\n if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n window.location = \"https://www.allmusic.com/search/all/\" + subtext;\n break;\n\n case \"d\":\n window.location = \"https://duckduckgo.com/?q=\" + subtext;\n break;\n\n case \"di\":\n window.location = \"https://www.discogs.com/search/?q=\" + subtext;\n break;\n\n case \"i\":\n window.location = \"https://www.imdb.com/find?q=\" + subtext;\n break;\n\n case \"m\":\n window.location = \"https://www.themoviedb.org/search?query=\" + subtext;\n break;\n\n case \"r\":\n window.location = \"https://www.reddit.com/search?q=\" + subtext;\n break;\n\n case \"q\":\n window.location = \"https://www.qwant.com/?q=\" + subtext;\n break;\n\n case \"so\":\n window.location = \"https://soundcloud.com/search?q=\" + subtext;\n break;\n\n case \"s\":\n window.location = \"https://open.spotify.com/search/results/\" + subtext;\n break;\n\n case \"t\":\n window.location = \"https://trakt.tv/search?query=\" + subtext;\n break;\n\n case \"tv\":\n window.location = \"https://www.thetvdb.com/search?query=\" + subtext;\n break;\n\n case \"y\":\n window.location = \"https://www.youtube.com/results?search_query=\" + subtext;\n break;\n\n case \"w\":\n window.location = \"https://en.wikipedia.org/w/index.php?search=\" + subtext;\n break;\n\n case \"p\":\n window.location = \"https://app.plex.tv/desktop/#!/search?query=\" + subtext;\n break;\n\n case \"rt\":\n window.location = \"https://www.rottentomatoes.com/search?search=\" + subtext;\n break;\n }\n } else {\n var option = text.substr(1);\n\n switch (option) {\n case \"d\":\n window.location = \"https://www.duckduckgo.com\";\n break;\n\n case \"y\":\n window.location = \"https://www.youtube.com\";\n break;\n\n case \"r\":\n window.location = \"https://reddit.com\";\n break;\n\n case \"s\":\n window.location = \"https://open.spotify.com\";\n break;\n }\n }\n } else if (validURL(text)) {\n if (containsProtocol(text)) window.location = text;else window.location = \"https://\" + text;\n } else {\n window.location = \"https://www.google.com/search?q=\" + text;\n }\n} // Source: https://stackoverflow.com/questions/5717093/check-if-a-javascript-string-is-a-url\n\n\nfunction validURL(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/)?' + // protocol\n '((([a-z\\\\d]([a-z\\\\d-]*[a-z\\\\d])*)\\\\.)+[a-z]{2,}|' + // domain name\n '((\\\\d{1,3}\\\\.){3}\\\\d{1,3}))' + // OR ip (v4) address\n '(\\\\:\\\\d+)?(\\\\/[-a-z\\\\d%_.~+]*)*' + // port and path\n '(\\\\?[;&a-z\\\\d%_.~+=-]*)?' + // query string\n '(\\\\#[-a-z\\\\d_]*)?$', 'i'); // fragment locator\n\n return !!pattern.test(str);\n}\n\nfunction containsProtocol(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/){1}.*', 'i');\n return !!pattern.test(str);\n}\n\nString.prototype.replaceAll = function (search, replacement) {\n var target = this;\n return target.split(search).join(replacement);\n};\n\nfunction udpateDisplayedItems(e) {\n console.log(e.target.checked);\n localStorage.setItem('contenttype', e.target.checked);\n\n if (e.target.checked) {\n localStorage.setItem('content-display', 'none');\n } else {\n localStorage.setItem('content-display', 'block');\n }\n\n setDisplayedItems();\n}\n\nfunction setDisplayedItems() {\n setValueFromLocalStorage('contenttype');\n setValueFromLocalStorage('content-display');\n}\n\nvar _c, _c2, _c3, _c4, _c5, _c6, _c7, _c8, _c9, _c10, _c11, _c12;\n\n$RefreshReg$(_c, \"Homepage\");\n$RefreshReg$(_c2, \"Search\");\n$RefreshReg$(_c3, \"Header\");\n$RefreshReg$(_c4, \"Applications\");\n$RefreshReg$(_c5, \"App\");\n$RefreshReg$(_c6, \"Bookmarks\");\n$RefreshReg$(_c7, \"LinkGroups\");\n$RefreshReg$(_c8, \"LinkItem\");\n$RefreshReg$(_c9, \"ModalMenu\");\n$RefreshReg$(_c10, \"Provider\");\n$RefreshReg$(_c11, \"ModalInit\");\n$RefreshReg$(_c12, \"Clock\");","map":{"version":3,"sources":["/home/seanedmunds/dev/home-page/src/index.js"],"names":["React","useState","useEffect","ReactDOM","setValueFromLocalStorage","property","value","localStorage","getItem","setValue","document","documentElement","style","setProperty","input","querySelector","replace","Homepage","setTheme","date","greet","Search","handleKeyPress","Header","props","Applications","appList","getApps","items","i","apps","length","push","name","url","icon","NSFW","App","safe","console","log","classNameType","hrefUrl","iconName","Bookmarks","bookmarkList","getLinks","bookmarks","category","links","LinkGroups","LinkItem","link","ModalMenu","providers","getProviders","updateTheme","udpateDisplayedItems","Provider","provider","prefix","ModalInit","render","getElementById","currentDate","Date","dateOptions","weekday","year","month","day","toLocaleDateString","fixDigits","k","currentTime","Math","floor","getHours","easterEggChance","random","greetings","require","timeBased","easterEggs","messages","easteregg","concat","message","easterEggText","Clock","setDate","refreshClock","timerId","setInterval","cleanup","clearInterval","hour","minutes","getMinutes","midday","time","applications","getThemes","themes","e","themeName","target","innerHTML","toLowerCase","index","findIndex","item","setItem","imagebackground","colorbackground","colorserachbackground","colortextpri","colortextacc","colorborder","sindex","cycle","key","keyCode","which","text","replaceAll","option","substr","indexOf","subtext","search","preventDefault","stopPropagation","streamers","streamer","updateLabel","window","location","validURL","containsProtocol","str","pattern","RegExp","test","String","prototype","replacement","split","join","checked","setDisplayedItems"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { useState, useEffect } from 'react';\nimport ReactDOM from 'react-dom';\n//import { unstable_createPortal } from 'react-dom';\nimport './index.css';\n\nconst setValueFromLocalStorage = property => {\n let value = localStorage.getItem(property);\n setValue(property, value);\n};\nconst setValue = (property, value) => {\n if (value) {\n document.documentElement.style.setProperty(`--${property}`, value);\n\n const input = document.querySelector(`#${property}`);\n if (input) {\n value = value.replace('px', '');\n input.value = value;\n }\n }\n};\n\nfunction Homepage() {\n setTheme();\n return (\n \n \n \n
\n \n \n
\n \n \n \n
\n \n \n
\n \n \n
\n \n );\n}\n\nfunction Search() {\n return (\n \n )\n}\n\nfunction Header(props) {\n return (\n \n );\n}\n\nfunction Applications() {\n let appList = getApps();\n var items = [];\n for (var i = 0; i < appList.apps.length; i++) {\n items.push(\n \n );\n }\n return (\n \n Applications
\n \n {items}\n
\n \n );\n}\n\nfunction App(props) {\n var safe = localStorage.getItem(\"contenttype\");\n console.log(safe);\n if (safe) {\n return (\n \n );\n } else {\n let classNameType = props.NSFW + \"-content\";\n let hrefUrl = \"https://\" + props.url;\n let iconName = \"mdi-\" + props.icon;\n return (\n \n );\n }\n \n}\n\nfunction Bookmarks() {\n let bookmarkList = getLinks();\n var items = [];\n for (var i = 0; i < bookmarkList.bookmarks.length; i++) {\n items.push(\n \n );\n }\n return (\n \n Bookmarks
\n \n {items}\n
\n \n );\n}\n\nfunction LinkGroups(props) {\n var items = [];\n for (var i = 0; i < props.links.length; i++) {\n items.push(\n \n );\n }\n return (\n \n
{props.category}
\n {items}\n \n );\n}\n\nfunction LinkItem(props) {\n return (\n \n );\n}\n\nfunction ModalMenu() {\n var providers = getProviders();\n var items = [];\n for (var i = 0; i < providers.providers.length; i++) {\n items.push(\n \n );\n }\n return (\n \n \n \n\n
Color themes
\n\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n\n\n
Search options
\n
\n \n \n \n | Website | \n Prefix | \n
\n {items}\n \n
\n \n\n \n
\n \n );\n}\n\nfunction Provider(props) {\n return (\n \n | {props.provider.name} | \n {props.provider.prefix} | \n
\n );\n}\n\nfunction ModalInit() {\n return (\n \n );\n}\n\nReactDOM.render(\n ,\n document.getElementById('root')\n);\n\n//Functions below this line are for calculating data for\n//other functions\n\nfunction date() {\n let currentDate = new Date();\n let dateOptions = {\n weekday: \"long\",\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\"\n };\n let date = currentDate.toLocaleDateString(\"en-GB\", dateOptions);\n return date;\n}\nfunction fixDigits(k) {\n if (k < 10) {\n return \"0\" + k;\n }\n else {\n return k;\n }\n}\nfunction greet() {\n let currentTime = new Date();\n let greet = Math.floor(currentTime.getHours() / 6);\n let easterEggChance = Math.floor(Math.random() * 100);\n let greetings = require('./messages.json');\n let timeBased = [];\n let easterEggs = [];\n for (var i = 0; i < greetings.messages.length; i++) {\n if (greetings.messages[i].easteregg === \"FALSE\") {\n timeBased = timeBased.concat(greetings.messages[i]);\n } else {\n easterEggs = easterEggs.concat(greetings.messages[i]);\n }\n }\n if (easterEggChance > 10) {\n return timeBased[greet].message;\n } else {\n let easterEggText = Math.floor(Math.random() * easterEggs.length);\n return easterEggs[easterEggText].message;\n }\n}\nfunction Clock() {\n const [date, setDate] = useState(new Date());\n\n function refreshClock() {\n setDate(new Date());\n }\n useEffect(() => {\n const timerId = setInterval(refreshClock, 1000);\n return function cleanup() {\n clearInterval(timerId);\n };\n }, []);\n\n var hour = date.getHours();\n var minutes = date.getMinutes();\n //var seconds = date.getSeconds();\n var midday = \"AM\";\n midday = (hour >= 12) ? \"PM\" : \"AM\";\n hour = (hour === 0) ? 12 : ((hour > 12) ? (hour - 12) : hour);\n minutes = fixDigits(minutes);\n //seconds = fixDigits(seconds);\n let time = hour + \":\" + minutes + \" \" + midday;\n\n return (\n {time}
\n\n );\n}\nfunction getApps() {\n let applications = require('./apps.json');\n return applications;\n}\nfunction getLinks() {\n let links = require('./links.json');\n return links;\n}\nfunction getProviders() {\n let providers = require('./providers.json');\n return providers;\n}\nfunction getThemes() {\n let themes = require('./themes.json');\n return themes;\n}\n\nfunction updateTheme(e) {\n var themes = getThemes();\n var themeName = e.target.innerHTML.toLowerCase();\n var index = themes.themes.findIndex(function(item, i){\n return item.name === themeName\n });\n console.log(themes.themes[index]);\n localStorage.setItem(\"image-background\", themes.themes[index].imagebackground);\n localStorage.setItem(\"color-background\", themes.themes[index].colorbackground);\n localStorage.setItem(\"color-search-background\", themes.themes[index].colorserachbackground);\n localStorage.setItem(\"color-text-pri\",themes.themes[index].colortextpri);\n localStorage.setItem(\"color-text-acc\", themes.themes[index].colortextacc);\n localStorage.setItem(\"color-border\", themes.themes[index].colorborder);\n \n //document.documentElement.style.setProperty(prop, `var(--${themeName}${prop.substring(10)})`);\n setTheme();\n}\n\nfunction setTheme() {\n setValueFromLocalStorage('image-background');\n setValueFromLocalStorage('color-background');\n setValueFromLocalStorage('color-search-background');\n setValueFromLocalStorage('color-text-pri');\n setValueFromLocalStorage('color-text-acc');\n setValueFromLocalStorage('color-border');\n setValueFromLocalStorage('content-display');\n}\n\nfunction handleKeyPress(e) {\n var sindex = 0;\n var cycle = false;\n var key = e.keyCode || e.which;\n var text = e.target.value.replaceAll(\"+\", \"%2B\");\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n if (key == 13) { // Search functions\n search(text);\n }\n if (key == 9) { // Tab Completion Functions\n e.preventDefault();\n e.stopPropagation();\n if (text[0] === ';') {\n switch (option) {\n case 't':\n var streamers = ['admiralbahroo', 'moonmoon_ow', 'witwix'];\n if (!subtext || cycle) {\n cycle = true;\n if (sindex > streamers.length - 1) sindex = 0;\n document.getElementById(\"keywords\").value = ';t ' + streamers[sindex++];\n return;\n }\n for (var streamer of streamers) {\n if (subtext === streamer.substr(0, subtext.length)) {\n document.getElementById(\"keywords\").value = ';t ' + streamer;\n return;\n }\n }\n break;\n }\n }\n }\n if(key == 32){ //Space to go to search\nupdateLabel(text);\n }\n sindex = 0;\n cycle = false;\n updateLabel(text);\n}\n\nfunction updateLabel(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n if (text[0] === '/') {\n// if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n document.getElementById(\"searchType\").innerHTML = \"Allmusic search\";\n break;\n case \"d\":\n document.getElementById(\"searchType\").innerHTML = \"Duck Duck Go search\";\n break;\n case \"di\":\n document.getElementById(\"searchType\").innerHTML = \"Discogs search\";\n break;\n case \"i\":\n document.getElementById(\"searchType\").innerHTML = \"IMDB search\";\n break;\n case \"m\":\n document.getElementById(\"searchType\").innerHTML = \"TheMovieDB search\";\n break;\n case \"r\":\n document.getElementById(\"searchType\").innerHTML = \"Reddit search\";\n break;\n case \"q\":\n document.getElementById(\"searchType\").innerHTML = \"Qwant search\";\n break;\n case \"so\":\n document.getElementById(\"searchType\").innerHTML = \"Soundcloud search\";\n break;\n case \"s\":\n document.getElementById(\"searchType\").innerHTML = \"Spotify search\";\n break;\n case \"tv\":\n document.getElementById(\"searchType\").innerHTML = \"TheTVDB search\";\n break;\n case \"t\":\n document.getElementById(\"searchType\").innerHTML = \"Trakt search\";\n break;\n case \"y\":\n document.getElementById(\"searchType\").innerHTML = \"YouTube search\";\n break;\n case \"w\":\n document.getElementById(\"searchType\").innerHTML = \"Wikipedia search\";\n break;\n case \"p\":\n document.getElementById(\"searchType\").innerHTML = \"Plex search\";\n break;\n case \"rt\":\n document.getElementById(\"searchType\").innerHTML = \"Rotten Tomatoes search\";\n break;\n default:\n document.getElementById(\"searchType\").innerHTML = \"Invalid search\";\n break;\n }\n}else {\n document.getElementById(\"searchType\").innerHTML = \"Google search\";\n }\n}\n\nfunction search(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n if (text[0] === '/') {\n if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n window.location = \"https://www.allmusic.com/search/all/\" + subtext;\n break;\n case \"d\":\n window.location = \"https://duckduckgo.com/?q=\" + subtext;\n break;\n case \"di\":\n window.location = \"https://www.discogs.com/search/?q=\" + subtext;\n break;\n case \"i\":\n window.location = \"https://www.imdb.com/find?q=\" + subtext;\n break;\n case \"m\":\n window.location = \"https://www.themoviedb.org/search?query=\" + subtext;\n break;\n case \"r\":\n window.location = \"https://www.reddit.com/search?q=\" + subtext;\n break;\n case \"q\":\n window.location = \"https://www.qwant.com/?q=\" + subtext;\n break;\n case \"so\":\n window.location = \"https://soundcloud.com/search?q=\" + subtext;\n break;\n case \"s\":\n window.location = \"https://open.spotify.com/search/results/\" + subtext;\n break;\n case \"t\":\n window.location = \"https://trakt.tv/search?query=\" + subtext;\n break;\n case \"tv\":\n window.location = \"https://www.thetvdb.com/search?query=\" + subtext;\n break;\n case \"y\":\n window.location = \"https://www.youtube.com/results?search_query=\" + subtext;\n break;\n case \"w\":\n window.location = \"https://en.wikipedia.org/w/index.php?search=\" + subtext;\n break;\n case \"p\":\n window.location = \"https://app.plex.tv/desktop/#!/search?query=\" + subtext;\n break;\n case \"rt\":\n window.location = \"https://www.rottentomatoes.com/search?search=\" + subtext;\n break;\n }\n } else {\n var option = text.substr(1);\n switch (option) {\n case \"d\":\n window.location = \"https://www.duckduckgo.com\";\n break;\n case \"y\":\n window.location = \"https://www.youtube.com\";\n break;\n case \"r\":\n window.location = \"https://reddit.com\";\n break;\n case \"s\":\n window.location = \"https://open.spotify.com\";\n break;\n }\n }\n } else if (validURL(text)) {\n if (containsProtocol(text))\n window.location = text;\n else\n window.location = \"https://\" + text;\n } else {\n window.location = \"https://www.google.com/search?q=\" + text;\n }\n}\n\n// Source: https://stackoverflow.com/questions/5717093/check-if-a-javascript-string-is-a-url\nfunction validURL(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/)?' + // protocol\n '((([a-z\\\\d]([a-z\\\\d-]*[a-z\\\\d])*)\\\\.)+[a-z]{2,}|' + // domain name\n '((\\\\d{1,3}\\\\.){3}\\\\d{1,3}))' + // OR ip (v4) address\n '(\\\\:\\\\d+)?(\\\\/[-a-z\\\\d%_.~+]*)*' + // port and path\n '(\\\\?[;&a-z\\\\d%_.~+=-]*)?' + // query string\n '(\\\\#[-a-z\\\\d_]*)?$', 'i'); // fragment locator\n return !!pattern.test(str);\n}\n\nfunction containsProtocol(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/){1}.*', 'i');\n return !!pattern.test(str);\n}\n\nString.prototype.replaceAll = function(search, replacement) {\n var target = this;\n return target.split(search).join(replacement);\n};\n\nfunction udpateDisplayedItems(e) {\n console.log(e.target.checked);\n localStorage.setItem('contenttype', e.target.checked);\n if (e.target.checked) {\n localStorage.setItem('content-display', 'none');\n } else {\n localStorage.setItem('content-display', 'block');\n }\n setDisplayedItems();\n}\nfunction setDisplayedItems() {\n setValueFromLocalStorage('contenttype');\n setValueFromLocalStorage('content-display');\n}"]},"metadata":{},"sourceType":"module"}
\ No newline at end of file
diff --git a/node_modules/.cache/babel-loader/54a7bdd47b0fd82d5ade4fcd6498e7fc.json b/node_modules/.cache/babel-loader/54a7bdd47b0fd82d5ade4fcd6498e7fc.json
new file mode 100644
index 00000000..e17e7432
--- /dev/null
+++ b/node_modules/.cache/babel-loader/54a7bdd47b0fd82d5ade4fcd6498e7fc.json
@@ -0,0 +1 @@
+{"ast":null,"code":"var _jsxFileName = \"/home/seanedmunds/dev/home-page/src/index.js\",\n _s = $RefreshSig$();\n\nimport React from 'react';\nimport { useState, useEffect } from 'react';\nimport ReactDOM from 'react-dom';\nimport { unstable_createPortal } from 'react-dom';\nimport './index.css';\nimport './search.js';\nimport { jsxDEV as _jsxDEV } from \"react/jsx-dev-runtime\";\n\nfunction Homepage() {\n return /*#__PURE__*/_jsxDEV(\"main\", {\n id: \"container\",\n class: \"fade\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Search, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 12,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 11,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Header, {\n date: date(),\n greet: greet()\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 15,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 14,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Applications, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 21,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 20,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Bookmarks, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 24,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 23,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(ModalMenu, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 27,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 26,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(ModalInit, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 30,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 29,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 10,\n columnNumber: 5\n }, this);\n}\n\n_c = Homepage;\n\nfunction Search() {\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"search\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n class: \"abackground\",\n children: [/*#__PURE__*/_jsxDEV(\"input\", {\n name: \"keywords\",\n type: \"text\",\n class: \"keyword\",\n id: \"keywords\",\n size: \"50\",\n placeholder: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 40,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n id: \"searchType\",\n class: \"Input-label\",\n children: \"Google search\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 41,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 39,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 38,\n columnNumber: 5\n }, this);\n}\n\n_c2 = Search;\n\nfunction Header(props) {\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"header\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n id: \"greeting_block\",\n children: /*#__PURE__*/_jsxDEV(\"h1\", {\n id: \"header_greet\",\n children: props.greet\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 51,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 50,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"date_block\",\n children: [/*#__PURE__*/_jsxDEV(\"h2\", {\n id: \"header_date\",\n children: props.date\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 54,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(Clock, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 55,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 53,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 49,\n columnNumber: 5\n }, this);\n}\n\n_c3 = Header;\n\nfunction Applications() {\n let appList = getApps();\n var items = [];\n\n for (var i = 0; i < appList.apps.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(App, {\n name: appList.apps[i].name,\n url: appList.apps[i].url,\n icon: appList.apps[i].icon,\n NSFW: appList.apps[i].NSFW\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 66,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"apps\",\n children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n children: \"Applications\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 77,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"apps_loop\",\n children: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 78,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 76,\n columnNumber: 5\n }, this);\n}\n\n_c4 = Applications;\n\nfunction App(props) {\n let classType = props.NSFW + \"-content\";\n let hrefUrl = \"https://\" + props.url;\n let iconName = \"mdi-\" + props.icon;\n return /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: hrefUrl,\n class: classType,\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n class: \"apps_item\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n class: \"apps_icon\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n class: \"iconify icon\",\n \"data-icon\": iconName\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 94,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 93,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n class: \"apps_text\",\n children: [/*#__PURE__*/_jsxDEV(\"span\", {\n id: \"app-name\",\n children: props.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 97,\n columnNumber: 13\n }, this), /*#__PURE__*/_jsxDEV(\"span\", {\n id: \"app-address\",\n children: props.url\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 98,\n columnNumber: 13\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 96,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 92,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 91,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 90,\n columnNumber: 5\n }, this);\n}\n\n_c5 = App;\n\nfunction Bookmarks() {\n let bookmarkList = getLinks();\n var items = [];\n\n for (var i = 0; i < bookmarkList.bookmarks.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(LinkGroups, {\n category: bookmarkList.bookmarks[i].category,\n links: bookmarkList.bookmarks[i].links\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 111,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"links\",\n children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n children: \"Bookmarks\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 120,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"links_loop\",\n children: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 121,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 119,\n columnNumber: 5\n }, this);\n}\n\n_c6 = Bookmarks;\n\nfunction LinkGroups(props) {\n var items = [];\n\n for (var i = 0; i < props.links.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(LinkItem, {\n link: props.links[i]\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 132,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"links_item\",\n children: [/*#__PURE__*/_jsxDEV(\"h4\", {\n children: props.category\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 140,\n columnNumber: 7\n }, this), items]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 139,\n columnNumber: 5\n }, this);\n}\n\n_c7 = LinkGroups;\n\nfunction LinkItem(props) {\n return /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: props.link.url,\n class: \"theme_color-border theme_text-select\",\n children: props.link.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 149,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 148,\n columnNumber: 5\n }, this);\n}\n\n_c8 = LinkItem;\n\nfunction ModalMenu() {\n var providers = getProviders();\n var items = [];\n\n for (var i = 0; i < providers.providers.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(Provider, {\n provider: providers.providers[i]\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 159,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"modal\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n children: [/*#__PURE__*/_jsxDEV(\"header\", {\n id: \"modal-header\",\n children: [/*#__PURE__*/_jsxDEV(\"h1\", {\n children: \"Options\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 169,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n href: \"#\",\n title: \"Close\",\n class: \"modal-close\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n class: \"iconify\",\n \"data-icon\": \"mdi-close\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 171,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 170,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 168,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"h2\", {\n children: \"Color themes\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 175,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"modal-theme\",\n children: [/*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"blackboard\",\n class: \"theme-button theme-blackboard\",\n children: \"Blackboard\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 178,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"gazette\",\n class: \"theme-button theme-gazette\",\n children: \"Gazette\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 179,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"espresso\",\n class: \"theme-button theme-espresso\",\n children: \"Espresso\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 180,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cab\",\n class: \"theme-button theme-cab\",\n children: \"Cab\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 181,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cloud\",\n class: \"theme-button theme-cloud\",\n children: \"Cloud\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 182,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"lime\",\n class: \"theme-button theme-lime\",\n children: \"Lime\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 183,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"passion\",\n class: \"theme-button theme-passion\",\n children: \"Passion\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 184,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"blues\",\n class: \"theme-button theme-blues\",\n children: \"Blues\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 185,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"chalk\",\n class: \"theme-button theme-chalk\",\n children: \"Chalk\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 186,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"tron\",\n class: \"theme-button theme-tron\",\n children: \"Tron\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 187,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"paper\",\n class: \"theme-button theme-paper\",\n children: \"Paper\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 188,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cyberpunk\",\n class: \"theme-button theme-cyberpunk\",\n children: \"Cyberpunk\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 189,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"quadra\",\n class: \"theme-button theme-panam\",\n children: \"Quadra\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 190,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"panam\",\n class: \"theme-button theme-panam\",\n children: \"Panam\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 191,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"touch\",\n class: \"theme-button theme-touch\",\n children: \"Touch\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 192,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"peek\",\n class: \"theme-button theme-peek\",\n children: \"Peek\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 193,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 177,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"h2\", {\n children: \"Search options\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 197,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"providers\",\n children: /*#__PURE__*/_jsxDEV(\"table\", {\n children: /*#__PURE__*/_jsxDEV(\"tbody\", {\n children: [/*#__PURE__*/_jsxDEV(\"tr\", {\n children: [/*#__PURE__*/_jsxDEV(\"th\", {\n children: \"Website\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 202,\n columnNumber: 19\n }, this), /*#__PURE__*/_jsxDEV(\"th\", {\n children: \"Prefix\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 203,\n columnNumber: 19\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 201,\n columnNumber: 17\n }, this), items]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 200,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 199,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 198,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"header\", {\n id: \"modal-footer\",\n children: [/*#__PURE__*/_jsxDEV(\"a\", {\n href: \"https://github.com/jeroenpardon/\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n class: \"iconify\",\n \"data-icon\": \"mdi-github-box\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 211,\n columnNumber: 54\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 211,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n href: \"https://materialdesignicons.com/\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n class: \"iconify\",\n \"data-icon\": \"mdi-material-design\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 212,\n columnNumber: 54\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 212,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n class: \"sneaky\",\n children: [/*#__PURE__*/_jsxDEV(\"input\", {\n type: \"checkbox\",\n id: \"contenttype\",\n onChange: \"nsfw(this)\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 213,\n columnNumber: 31\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n for: \"contenttype\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n class: \"iconify\",\n \"data-icon\": \"mdi-domino-mask\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 214,\n columnNumber: 36\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 214,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 213,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 210,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 167,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 166,\n columnNumber: 5\n }, this);\n}\n\n_c9 = ModalMenu;\n\nfunction Provider(props) {\n console.log(props);\n return /*#__PURE__*/_jsxDEV(\"tr\", {\n children: [/*#__PURE__*/_jsxDEV(\"td\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: props.provider.url,\n children: props.provider.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 225,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 225,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"td\", {\n children: props.provider.prefix\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 226,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 224,\n columnNumber: 5\n }, this);\n}\n\n_c10 = Provider;\n\nfunction ModalInit() {\n return /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"modal_init\",\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n class: \"btn\",\n href: \"#modal\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n class: \"iconify icon\",\n \"data-icon\": \"mdi-xbox-controller-menu\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 235,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 234,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 233,\n columnNumber: 5\n }, this);\n}\n\n_c11 = ModalInit;\nReactDOM.render( /*#__PURE__*/_jsxDEV(Homepage, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 242,\n columnNumber: 3\n}, this), document.getElementById('root')); //Functions below this line are for calculating data for\n//other functions\n\nfunction date() {\n let currentDate = new Date();\n let dateOptions = {\n weekday: \"long\",\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\"\n };\n let date = currentDate.toLocaleDateString(\"en-GB\", dateOptions);\n return date;\n}\n\nfunction fixDigits(k) {\n if (k < 10) {\n return \"0\" + k;\n } else {\n return k;\n }\n}\n\nfunction greet() {\n let currentTime = new Date();\n let greet = Math.floor(currentTime.getHours() / 6);\n let easterEggChance = Math.floor(Math.random() * 100);\n\n let greetings = require('./messages.json');\n\n let timeBased = [];\n let easterEggs = [];\n\n for (var i = 0; i < greetings.messages.length; i++) {\n if (greetings.messages[i].easteregg == \"FALSE\") {\n timeBased = timeBased.concat(greetings.messages[i]);\n } else {\n easterEggs = easterEggs.concat(greetings.messages[i]);\n }\n }\n\n if (easterEggChance > 10) {\n return timeBased[greet].message;\n } else {\n let easterEggText = Math.floor(Math.random() * easterEggs.length);\n return easterEggs[easterEggText].message;\n }\n}\n\nfunction Clock() {\n _s();\n\n const [date, setDate] = useState(new Date());\n\n function refreshClock() {\n setDate(new Date());\n }\n\n useEffect(() => {\n const timerId = setInterval(refreshClock, 1000);\n return function cleanup() {\n clearInterval(timerId);\n };\n }, []);\n var hour = date.getHours();\n var minutes = date.getMinutes();\n var seconds = date.getSeconds();\n var midday = \"AM\";\n midday = hour >= 12 ? \"PM\" : \"AM\";\n hour = hour == 0 ? 12 : hour > 12 ? hour - 12 : hour;\n minutes = fixDigits(minutes);\n seconds = fixDigits(seconds);\n let time = hour + \":\" + minutes + \" \" + midday;\n return /*#__PURE__*/_jsxDEV(\"h2\", {\n id: \"clock\",\n children: time\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 313,\n columnNumber: 5\n }, this);\n}\n\n_s(Clock, \"Gqi45WOZhU2c0BLYX0HoJeiR0fk=\");\n\n_c12 = Clock;\n\nfunction getApps() {\n let applications = require('./apps.json');\n\n return applications;\n}\n\nfunction getLinks() {\n let links = require('./links.json');\n\n return links;\n}\n\nfunction getProviders() {\n let providers = require('./providers.json');\n\n return providers;\n}\n\nvar _c, _c2, _c3, _c4, _c5, _c6, _c7, _c8, _c9, _c10, _c11, _c12;\n\n$RefreshReg$(_c, \"Homepage\");\n$RefreshReg$(_c2, \"Search\");\n$RefreshReg$(_c3, \"Header\");\n$RefreshReg$(_c4, \"Applications\");\n$RefreshReg$(_c5, \"App\");\n$RefreshReg$(_c6, \"Bookmarks\");\n$RefreshReg$(_c7, \"LinkGroups\");\n$RefreshReg$(_c8, \"LinkItem\");\n$RefreshReg$(_c9, \"ModalMenu\");\n$RefreshReg$(_c10, \"Provider\");\n$RefreshReg$(_c11, \"ModalInit\");\n$RefreshReg$(_c12, \"Clock\");","map":{"version":3,"sources":["/home/seanedmunds/dev/home-page/src/index.js"],"names":["React","useState","useEffect","ReactDOM","unstable_createPortal","Homepage","date","greet","Search","Header","props","Applications","appList","getApps","items","i","apps","length","push","name","url","icon","NSFW","App","classType","hrefUrl","iconName","Bookmarks","bookmarkList","getLinks","bookmarks","category","links","LinkGroups","LinkItem","link","ModalMenu","providers","getProviders","Provider","console","log","provider","prefix","ModalInit","render","document","getElementById","currentDate","Date","dateOptions","weekday","year","month","day","toLocaleDateString","fixDigits","k","currentTime","Math","floor","getHours","easterEggChance","random","greetings","require","timeBased","easterEggs","messages","easteregg","concat","message","easterEggText","Clock","setDate","refreshClock","timerId","setInterval","cleanup","clearInterval","hour","minutes","getMinutes","seconds","getSeconds","midday","time","applications"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { useState, useEffect } from 'react';\nimport ReactDOM from 'react-dom';\nimport { unstable_createPortal } from 'react-dom';\nimport './index.css';\nimport './search.js'\n\nfunction Homepage() {\n return (\n \n \n \n
\n \n \n
\n \n \n \n
\n \n \n
\n \n \n
\n \n );\n}\n\nfunction Search() {\n return (\n \n )\n}\n\nfunction Header(props) {\n return (\n \n );\n}\n\nfunction Applications() {\n let appList = getApps();\n var items = [];\n for (var i = 0; i < appList.apps.length; i++) {\n items.push(\n \n );\n }\n return (\n \n Applications
\n \n {items}\n
\n \n );\n}\n\nfunction App(props) {\n let classType = props.NSFW + \"-content\";\n let hrefUrl = \"https://\" + props.url;\n let iconName = \"mdi-\" + props.icon;\n return (\n \n );\n}\n\nfunction Bookmarks() {\n let bookmarkList = getLinks();\n var items = [];\n for (var i = 0; i < bookmarkList.bookmarks.length; i++) {\n items.push(\n \n );\n }\n return (\n \n Bookmarks
\n \n {items}\n
\n \n );\n}\n\nfunction LinkGroups(props) {\n var items = [];\n for (var i = 0; i < props.links.length; i++) {\n items.push(\n \n );\n }\n return (\n \n
{props.category}
\n {items}\n \n );\n}\n\nfunction LinkItem(props) {\n return (\n \n );\n}\n\nfunction ModalMenu() {\n var providers = getProviders();\n var items = [];\n for (var i = 0; i < providers.providers.length; i++) {\n items.push(\n \n );\n }\n return (\n \n \n \n\n
Color themes
\n\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n\n\n
Search options
\n
\n \n \n \n | Website | \n Prefix | \n
\n {items}\n \n
\n \n\n \n
\n \n );\n}\n\nfunction Provider(props) {\n console.log(props);\n return (\n \n | {props.provider.name} | \n {props.provider.prefix} | \n
\n );\n}\n\nfunction ModalInit() {\n return (\n \n );\n}\n\nReactDOM.render(\n ,\n document.getElementById('root')\n);\n\n//Functions below this line are for calculating data for\n//other functions\n\nfunction date() {\n let currentDate = new Date();\n let dateOptions = {\n weekday: \"long\",\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\"\n };\n let date = currentDate.toLocaleDateString(\"en-GB\", dateOptions);\n return date;\n}\nfunction fixDigits(k) {\n if (k < 10) {\n return \"0\" + k;\n }\n else {\n return k;\n }\n}\nfunction greet() {\n let currentTime = new Date();\n let greet = Math.floor(currentTime.getHours() / 6);\n let easterEggChance = Math.floor(Math.random() * 100);\n let greetings = require('./messages.json');\n let timeBased = [];\n let easterEggs = [];\n for (var i = 0; i < greetings.messages.length; i++) {\n if (greetings.messages[i].easteregg == \"FALSE\") {\n timeBased = timeBased.concat(greetings.messages[i]);\n } else {\n easterEggs = easterEggs.concat(greetings.messages[i]);\n }\n }\n if (easterEggChance > 10) {\n return timeBased[greet].message;\n } else {\n let easterEggText = Math.floor(Math.random() * easterEggs.length);\n return easterEggs[easterEggText].message;\n }\n}\nfunction Clock() {\n const [date, setDate] = useState(new Date());\n\n function refreshClock() {\n setDate(new Date());\n }\n useEffect(() => {\n const timerId = setInterval(refreshClock, 1000);\n return function cleanup() {\n clearInterval(timerId);\n };\n }, []);\n\n var hour = date.getHours();\n var minutes = date.getMinutes();\n var seconds = date.getSeconds();\n var midday = \"AM\";\n midday = (hour >= 12) ? \"PM\" : \"AM\";\n hour = (hour == 0) ? 12 : ((hour > 12) ? (hour - 12) : hour);\n minutes = fixDigits(minutes);\n seconds = fixDigits(seconds);\n let time = hour + \":\" + minutes + \" \" + midday;\n\n return (\n {time}
\n\n );\n}\nfunction getApps() {\n let applications = require('./apps.json');\n return applications;\n}\nfunction getLinks() {\n let links = require('./links.json');\n return links;\n}\nfunction getProviders() {\n let providers = require('./providers.json');\n return providers;\n}"]},"metadata":{},"sourceType":"module"}
\ No newline at end of file
diff --git a/node_modules/.cache/babel-loader/55dfa894f45d22826a242281e4b2c2b4.json b/node_modules/.cache/babel-loader/55dfa894f45d22826a242281e4b2c2b4.json
new file mode 100644
index 00000000..251db3ba
--- /dev/null
+++ b/node_modules/.cache/babel-loader/55dfa894f45d22826a242281e4b2c2b4.json
@@ -0,0 +1 @@
+{"ast":null,"code":"var _jsxFileName = \"/home/seanedmunds/dev/home-page/src/index.js\",\n _s = $RefreshSig$();\n\nimport React from 'react';\nimport { useState, useEffect } from 'react';\nimport ReactDOM from 'react-dom';\nimport './index.css';\nimport { jsxDEV as _jsxDEV } from \"react/jsx-dev-runtime\";\n\nconst setValueFromLocalStorage = property => {\n let value = localStorage.getItem(property);\n setValue(property, value);\n};\n\nconst setValue = (property, value) => {\n if (value) {\n document.documentElement.style.setProperty(`--${property}`, value);\n const input = document.querySelector(`#${property}`);\n\n if (input) {\n value = value.replace('px', '');\n input.value = value;\n }\n }\n};\n\nfunction Homepage() {\n setTheme();\n return /*#__PURE__*/_jsxDEV(\"main\", {\n id: \"container\",\n className: \"fade\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Search, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 28,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 27,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Header, {\n date: date(),\n greet: greet()\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 31,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 30,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Applications, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 37,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 36,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Bookmarks, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 40,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 39,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(ModalMenu, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 43,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 42,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(ModalInit, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 46,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 45,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 26,\n columnNumber: 5\n }, this);\n}\n\n_c = Homepage;\n\nfunction Search() {\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"search\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"abackground\",\n children: [/*#__PURE__*/_jsxDEV(\"input\", {\n name: \"keywords\",\n type: \"text\",\n className: \"keyword\",\n id: \"keywords\",\n size: \"50\",\n spellCheck: \"true\",\n placeholder: \"\"\n /*onFocus={this.placeholder = \"\"} onBlur={this.placeholder = ''}*/\n ,\n autoComplete: \"off\",\n autoFocus: true,\n onKeyUp: handleKeyPress\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 56,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n id: \"searchType\",\n className: \"Input-label\",\n children: \"Google search\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 57,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 55,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 54,\n columnNumber: 5\n }, this);\n}\n\n_c2 = Search;\n\nfunction Header(props) {\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"header\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n id: \"greeting_block\",\n children: /*#__PURE__*/_jsxDEV(\"h1\", {\n id: \"header_greet\",\n children: props.greet\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 67,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 66,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"date_block\",\n children: [/*#__PURE__*/_jsxDEV(\"h2\", {\n id: \"header_date\",\n children: props.date\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 70,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(Clock, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 71,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 69,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 65,\n columnNumber: 5\n }, this);\n}\n\n_c3 = Header;\n\nfunction Applications() {\n let appList = getApps();\n var items = [];\n\n for (var i = 0; i < appList.apps.length; i++) {\n var safe = appList.apps[i].NSFW;\n var NSFWEnabled = localStorage.getItem(\"contenttype\");\n\n if (safe === \"SAFE\") {\n items.push( /*#__PURE__*/_jsxDEV(App, {\n name: appList.apps[i].name,\n url: appList.apps[i].url,\n icon: appList.apps[i].icon,\n NSFW: appList.apps[i].NSFW\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 85,\n columnNumber: 9\n }, this));\n } else if (safe === \"NSFW\" && NSFWEnabled) {\n items.push( /*#__PURE__*/_jsxDEV(App, {\n name: appList.apps[i].name,\n url: appList.apps[i].url,\n icon: appList.apps[i].icon,\n NSFW: appList.apps[i].NSFW\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 95,\n columnNumber: 9\n }, this));\n } else {}\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"apps\",\n children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n children: \"Applications\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 110,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"apps_loop\",\n children: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 111,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 109,\n columnNumber: 5\n }, this);\n}\n\n_c4 = Applications;\n\nfunction App(props) {\n let classNameType = props.NSFW + \"-content\";\n let hrefUrl = \"https://\" + props.url;\n let iconName = \"mdi-\" + props.icon;\n return /*#__PURE__*/_jsxDEV(\"div\", {\n className: classNameType,\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: hrefUrl,\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_item\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_icon\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify icon\",\n \"data-icon\": iconName\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 128,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 127,\n columnNumber: 13\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_text\",\n children: [/*#__PURE__*/_jsxDEV(\"span\", {\n id: \"app-name\",\n children: props.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 131,\n columnNumber: 15\n }, this), /*#__PURE__*/_jsxDEV(\"span\", {\n id: \"app-address\",\n children: props.url\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 132,\n columnNumber: 15\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 130,\n columnNumber: 13\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 126,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 125,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 124,\n columnNumber: 7\n }, this);\n}\n\n_c5 = App;\n\nfunction Bookmarks() {\n let bookmarkList = getLinks();\n var items = [];\n\n for (var i = 0; i < bookmarkList.bookmarks.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(LinkGroups, {\n category: bookmarkList.bookmarks[i].category,\n links: bookmarkList.bookmarks[i].links\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 145,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"links\",\n children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n children: \"Bookmarks\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 154,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"links_loop\",\n children: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 155,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 153,\n columnNumber: 5\n }, this);\n}\n\n_c6 = Bookmarks;\n\nfunction LinkGroups(props) {\n var items = [];\n\n for (var i = 0; i < props.links.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(LinkItem, {\n link: props.links[i]\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 166,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"links_item\",\n children: [/*#__PURE__*/_jsxDEV(\"h4\", {\n children: props.category\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 174,\n columnNumber: 7\n }, this), items]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 173,\n columnNumber: 5\n }, this);\n}\n\n_c7 = LinkGroups;\n\nfunction LinkItem(props) {\n return /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: props.link.url,\n className: \"theme_color-border theme_text-select\",\n children: props.link.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 183,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 182,\n columnNumber: 5\n }, this);\n}\n\n_c8 = LinkItem;\n\nfunction ModalMenu() {\n var providers = getProviders();\n var items = [];\n var isChecked = localStorage.getItem(\"contenttype\");\n console.log(localStorage.getItem(\"contenttype\"));\n\n for (var i = 0; i < providers.providers.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(Provider, {\n provider: providers.providers[i]\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 195,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"modal\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n children: [/*#__PURE__*/_jsxDEV(\"header\", {\n id: \"modal-header\",\n children: [/*#__PURE__*/_jsxDEV(\"h1\", {\n children: \"Options\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 205,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n href: \"#\",\n title: \"Close\",\n className: \"modal-close\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-close\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 207,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 206,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 204,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"h2\", {\n children: \"Color themes\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 211,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"modal-theme\",\n children: [/*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"blackboard\",\n className: \"theme-button theme-blackboard\",\n onClick: updateTheme,\n children: \"Blackboard\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 214,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"gazette\",\n className: \"theme-button theme-gazette\",\n onClick: updateTheme,\n children: \"Gazette\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 215,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"espresso\",\n className: \"theme-button theme-espresso\",\n onClick: updateTheme,\n children: \"Espresso\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 216,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cab\",\n className: \"theme-button theme-cab\",\n onClick: updateTheme,\n children: \"Cab\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 217,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cloud\",\n className: \"theme-button theme-cloud\",\n onClick: updateTheme,\n children: \"Cloud\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 218,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"lime\",\n className: \"theme-button theme-lime\",\n onClick: updateTheme,\n children: \"Lime\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 219,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"passion\",\n className: \"theme-button theme-passion\",\n onClick: updateTheme,\n children: \"Passion\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 220,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"blues\",\n className: \"theme-button theme-blues\",\n onClick: updateTheme,\n children: \"Blues\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 221,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"chalk\",\n className: \"theme-button theme-chalk\",\n onClick: updateTheme,\n children: \"Chalk\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 222,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"tron\",\n className: \"theme-button theme-tron\",\n onClick: updateTheme,\n children: \"Tron\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 223,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"paper\",\n className: \"theme-button theme-paper\",\n onClick: updateTheme,\n children: \"Paper\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 224,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cyberpunk\",\n className: \"theme-button theme-cyberpunk\",\n onClick: updateTheme,\n children: \"Cyberpunk\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 225,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"quadra\",\n className: \"theme-button theme-panam\",\n onClick: updateTheme,\n children: \"Quadra\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 226,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"panam\",\n className: \"theme-button theme-panam\",\n onClick: updateTheme,\n children: \"Panam\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 227,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"touch\",\n className: \"theme-button theme-touch\",\n onClick: updateTheme,\n children: \"Touch\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 228,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"peek\",\n className: \"theme-button theme-peek\",\n onClick: updateTheme,\n children: \"Peek\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 229,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 213,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"h2\", {\n children: \"Search options\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 233,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"providers\",\n children: /*#__PURE__*/_jsxDEV(\"table\", {\n children: /*#__PURE__*/_jsxDEV(\"tbody\", {\n children: [/*#__PURE__*/_jsxDEV(\"tr\", {\n children: [/*#__PURE__*/_jsxDEV(\"th\", {\n children: \"Website\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 238,\n columnNumber: 19\n }, this), /*#__PURE__*/_jsxDEV(\"th\", {\n children: \"Prefix\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 239,\n columnNumber: 19\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 237,\n columnNumber: 17\n }, this), items]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 236,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 235,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 234,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"header\", {\n id: \"modal-footer\",\n children: [/*#__PURE__*/_jsxDEV(\"a\", {\n href: \"https://github.com/jeroenpardon/\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-github-box\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 247,\n columnNumber: 54\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 247,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n href: \"https://materialdesignicons.com/\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-material-design\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 248,\n columnNumber: 54\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 248,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(HideButton, {\n checked: isChecked\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 249,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 246,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 203,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 202,\n columnNumber: 5\n }, this);\n}\n\n_c9 = ModalMenu;\n\nfunction HideButton(props) {\n console.log(props.checked);\n\n if (props.checked) {\n return /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"sneaky\",\n children: [/*#__PURE__*/_jsxDEV(\"input\", {\n type: \"checkbox\",\n id: \"contenttype\",\n onChange: udpateDisplayedItems,\n defaultChecked: true\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 262,\n columnNumber: 31\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n for: \"contenttype\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-domino-mask\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 263,\n columnNumber: 32\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 263,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 262,\n columnNumber: 7\n }, this);\n } else {\n return /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"sneaky\",\n children: [/*#__PURE__*/_jsxDEV(\"input\", {\n type: \"checkbox\",\n id: \"contenttype\",\n onChange: udpateDisplayedItems,\n defaultChecked: false\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 267,\n columnNumber: 31\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n for: \"contenttype\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-domino-mask\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 268,\n columnNumber: 32\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 268,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 267,\n columnNumber: 7\n }, this);\n }\n}\n\n_c10 = HideButton;\n\nfunction Provider(props) {\n return /*#__PURE__*/_jsxDEV(\"tr\", {\n children: [/*#__PURE__*/_jsxDEV(\"td\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: props.provider.url,\n children: props.provider.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 276,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 276,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"td\", {\n children: props.provider.prefix\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 277,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 275,\n columnNumber: 5\n }, this);\n}\n\n_c11 = Provider;\n\nfunction ModalInit() {\n setDisplayedItems();\n return /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"modal_init\",\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n className: \"btn\",\n href: \"#modal\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify icon\",\n \"data-icon\": \"mdi-xbox-controller-menu\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 287,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 286,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 285,\n columnNumber: 5\n }, this);\n}\n\n_c12 = ModalInit;\nReactDOM.render( /*#__PURE__*/_jsxDEV(Homepage, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 294,\n columnNumber: 3\n}, this), document.getElementById('root')); //Functions below this line are for calculating data for\n//other functions\n\nfunction date() {\n let currentDate = new Date();\n let dateOptions = {\n weekday: \"long\",\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\"\n };\n let date = currentDate.toLocaleDateString(\"en-GB\", dateOptions);\n return date;\n}\n\nfunction fixDigits(k) {\n if (k < 10) {\n return \"0\" + k;\n } else {\n return k;\n }\n}\n\nfunction greet() {\n let currentTime = new Date();\n let greet = Math.floor(currentTime.getHours() / 6);\n let easterEggChance = Math.floor(Math.random() * 100);\n\n let greetings = require('./messages.json');\n\n let timeBased = [];\n let easterEggs = [];\n\n for (var i = 0; i < greetings.messages.length; i++) {\n if (greetings.messages[i].easteregg === \"FALSE\") {\n timeBased = timeBased.concat(greetings.messages[i]);\n } else {\n easterEggs = easterEggs.concat(greetings.messages[i]);\n }\n }\n\n if (easterEggChance > 10) {\n return timeBased[greet].message;\n } else {\n let easterEggText = Math.floor(Math.random() * easterEggs.length);\n return easterEggs[easterEggText].message;\n }\n}\n\nfunction Clock() {\n _s();\n\n const [date, setDate] = useState(new Date());\n\n function refreshClock() {\n setDate(new Date());\n }\n\n useEffect(() => {\n const timerId = setInterval(refreshClock, 1000);\n return function cleanup() {\n clearInterval(timerId);\n };\n }, []);\n var hour = date.getHours();\n var minutes = date.getMinutes(); //var seconds = date.getSeconds();\n\n var midday = \"AM\";\n midday = hour >= 12 ? \"PM\" : \"AM\";\n hour = hour === 0 ? 12 : hour > 12 ? hour - 12 : hour;\n minutes = fixDigits(minutes); //seconds = fixDigits(seconds);\n\n let time = hour + \":\" + minutes + \" \" + midday;\n return /*#__PURE__*/_jsxDEV(\"h2\", {\n id: \"clock\",\n children: time\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 365,\n columnNumber: 5\n }, this);\n}\n\n_s(Clock, \"Gqi45WOZhU2c0BLYX0HoJeiR0fk=\");\n\n_c13 = Clock;\n\nfunction getApps() {\n let applications = require('./apps.json');\n\n return applications;\n}\n\nfunction getLinks() {\n let links = require('./links.json');\n\n return links;\n}\n\nfunction getProviders() {\n let providers = require('./providers.json');\n\n return providers;\n}\n\nfunction getThemes() {\n let themes = require('./themes.json');\n\n return themes;\n}\n\nfunction updateTheme(e) {\n var themes = getThemes();\n var themeName = e.target.innerHTML.toLowerCase();\n var index = themes.themes.findIndex(function (item, i) {\n return item.name === themeName;\n });\n localStorage.setItem(\"image-background\", themes.themes[index].imagebackground);\n localStorage.setItem(\"color-background\", themes.themes[index].colorbackground);\n localStorage.setItem(\"color-search-background\", themes.themes[index].colorserachbackground);\n localStorage.setItem(\"color-text-pri\", themes.themes[index].colortextpri);\n localStorage.setItem(\"color-text-acc\", themes.themes[index].colortextacc);\n localStorage.setItem(\"color-border\", themes.themes[index].colorborder); //document.documentElement.style.setProperty(prop, `var(--${themeName}${prop.substring(10)})`);\n\n setTheme();\n}\n\nfunction setTheme() {\n setValueFromLocalStorage('image-background');\n setValueFromLocalStorage('color-background');\n setValueFromLocalStorage('color-search-background');\n setValueFromLocalStorage('color-text-pri');\n setValueFromLocalStorage('color-text-acc');\n setValueFromLocalStorage('color-border');\n setValueFromLocalStorage('content-display');\n}\n\nfunction handleKeyPress(e) {\n var sindex = 0;\n var cycle = false;\n var key = e.keyCode || e.which;\n var text = e.target.value.replaceAll(\"+\", \"%2B\");\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n\n if (key == 13) {\n // Search functions\n search(text);\n }\n\n if (key == 9) {\n // Tab Completion Functions\n e.preventDefault();\n e.stopPropagation();\n\n if (text[0] === ';') {\n switch (option) {\n case 't':\n var streamers = ['admiralbahroo', 'moonmoon_ow', 'witwix'];\n\n if (!subtext || cycle) {\n cycle = true;\n if (sindex > streamers.length - 1) sindex = 0;\n document.getElementById(\"keywords\").value = ';t ' + streamers[sindex++];\n return;\n }\n\n for (var streamer of streamers) {\n if (subtext === streamer.substr(0, subtext.length)) {\n document.getElementById(\"keywords\").value = ';t ' + streamer;\n return;\n }\n }\n\n break;\n }\n }\n }\n\n if (key == 32) {\n //Space to go to search\n updateLabel(text);\n }\n\n sindex = 0;\n cycle = false;\n updateLabel(text);\n}\n\nfunction updateLabel(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n\n if (text[0] === '/') {\n // if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n document.getElementById(\"searchType\").innerHTML = \"Allmusic search\";\n break;\n\n case \"d\":\n document.getElementById(\"searchType\").innerHTML = \"Duck Duck Go search\";\n break;\n\n case \"di\":\n document.getElementById(\"searchType\").innerHTML = \"Discogs search\";\n break;\n\n case \"i\":\n document.getElementById(\"searchType\").innerHTML = \"IMDB search\";\n break;\n\n case \"m\":\n document.getElementById(\"searchType\").innerHTML = \"TheMovieDB search\";\n break;\n\n case \"r\":\n document.getElementById(\"searchType\").innerHTML = \"Reddit search\";\n break;\n\n case \"q\":\n document.getElementById(\"searchType\").innerHTML = \"Qwant search\";\n break;\n\n case \"so\":\n document.getElementById(\"searchType\").innerHTML = \"Soundcloud search\";\n break;\n\n case \"s\":\n document.getElementById(\"searchType\").innerHTML = \"Spotify search\";\n break;\n\n case \"tv\":\n document.getElementById(\"searchType\").innerHTML = \"TheTVDB search\";\n break;\n\n case \"t\":\n document.getElementById(\"searchType\").innerHTML = \"Trakt search\";\n break;\n\n case \"y\":\n document.getElementById(\"searchType\").innerHTML = \"YouTube search\";\n break;\n\n case \"w\":\n document.getElementById(\"searchType\").innerHTML = \"Wikipedia search\";\n break;\n\n case \"p\":\n document.getElementById(\"searchType\").innerHTML = \"Plex search\";\n break;\n\n case \"rt\":\n document.getElementById(\"searchType\").innerHTML = \"Rotten Tomatoes search\";\n break;\n\n default:\n document.getElementById(\"searchType\").innerHTML = \"Invalid search\";\n break;\n }\n } else {\n document.getElementById(\"searchType\").innerHTML = \"Google search\";\n }\n}\n\nfunction search(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n\n if (text[0] === '/') {\n if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n window.location = \"https://www.allmusic.com/search/all/\" + subtext;\n break;\n\n case \"d\":\n window.location = \"https://duckduckgo.com/?q=\" + subtext;\n break;\n\n case \"di\":\n window.location = \"https://www.discogs.com/search/?q=\" + subtext;\n break;\n\n case \"i\":\n window.location = \"https://www.imdb.com/find?q=\" + subtext;\n break;\n\n case \"m\":\n window.location = \"https://www.themoviedb.org/search?query=\" + subtext;\n break;\n\n case \"r\":\n window.location = \"https://www.reddit.com/search?q=\" + subtext;\n break;\n\n case \"q\":\n window.location = \"https://www.qwant.com/?q=\" + subtext;\n break;\n\n case \"so\":\n window.location = \"https://soundcloud.com/search?q=\" + subtext;\n break;\n\n case \"s\":\n window.location = \"https://open.spotify.com/search/results/\" + subtext;\n break;\n\n case \"t\":\n window.location = \"https://trakt.tv/search?query=\" + subtext;\n break;\n\n case \"tv\":\n window.location = \"https://www.thetvdb.com/search?query=\" + subtext;\n break;\n\n case \"y\":\n window.location = \"https://www.youtube.com/results?search_query=\" + subtext;\n break;\n\n case \"w\":\n window.location = \"https://en.wikipedia.org/w/index.php?search=\" + subtext;\n break;\n\n case \"p\":\n window.location = \"https://app.plex.tv/desktop/#!/search?query=\" + subtext;\n break;\n\n case \"rt\":\n window.location = \"https://www.rottentomatoes.com/search?search=\" + subtext;\n break;\n }\n } else {\n var option = text.substr(1);\n\n switch (option) {\n case \"d\":\n window.location = \"https://www.duckduckgo.com\";\n break;\n\n case \"y\":\n window.location = \"https://www.youtube.com\";\n break;\n\n case \"r\":\n window.location = \"https://reddit.com\";\n break;\n\n case \"s\":\n window.location = \"https://open.spotify.com\";\n break;\n }\n }\n } else if (validURL(text)) {\n if (containsProtocol(text)) window.location = text;else window.location = \"https://\" + text;\n } else {\n window.location = \"https://www.google.com/search?q=\" + text;\n }\n}\n\nfunction validURL(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/)?' + // protocol\n '((([a-z\\\\d]([a-z\\\\d-]*[a-z\\\\d])*)\\\\.)+[a-z]{2,}|' + // domain name\n '((\\\\d{1,3}\\\\.){3}\\\\d{1,3}))' + // OR ip (v4) address\n '(\\\\:\\\\d+)?(\\\\/[-a-z\\\\d%_.~+]*)*' + // port and path\n '(\\\\?[;&a-z\\\\d%_.~+=-]*)?' + // query string\n '(\\\\#[-a-z\\\\d_]*)?$', 'i'); // fragment locator\n\n return !!pattern.test(str);\n}\n\nfunction containsProtocol(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/){1}.*', 'i');\n return !!pattern.test(str);\n}\n\nString.prototype.replaceAll = function (search, replacement) {\n var target = this;\n return target.split(search).join(replacement);\n};\n\nfunction udpateDisplayedItems(e) {\n localStorage.setItem('contenttype', e.target.checked);\n\n if (e.target.checked) {\n localStorage.setItem('content-display', 'none');\n } else {\n localStorage.setItem('content-display', 'block');\n }\n\n setDisplayedItems();\n}\n\nfunction setDisplayedItems() {\n setValueFromLocalStorage('contenttype');\n setValueFromLocalStorage('content-display');\n}\n\nvar _c, _c2, _c3, _c4, _c5, _c6, _c7, _c8, _c9, _c10, _c11, _c12, _c13;\n\n$RefreshReg$(_c, \"Homepage\");\n$RefreshReg$(_c2, \"Search\");\n$RefreshReg$(_c3, \"Header\");\n$RefreshReg$(_c4, \"Applications\");\n$RefreshReg$(_c5, \"App\");\n$RefreshReg$(_c6, \"Bookmarks\");\n$RefreshReg$(_c7, \"LinkGroups\");\n$RefreshReg$(_c8, \"LinkItem\");\n$RefreshReg$(_c9, \"ModalMenu\");\n$RefreshReg$(_c10, \"HideButton\");\n$RefreshReg$(_c11, \"Provider\");\n$RefreshReg$(_c12, \"ModalInit\");\n$RefreshReg$(_c13, \"Clock\");","map":{"version":3,"sources":["/home/seanedmunds/dev/home-page/src/index.js"],"names":["React","useState","useEffect","ReactDOM","setValueFromLocalStorage","property","value","localStorage","getItem","setValue","document","documentElement","style","setProperty","input","querySelector","replace","Homepage","setTheme","date","greet","Search","handleKeyPress","Header","props","Applications","appList","getApps","items","i","apps","length","safe","NSFW","NSFWEnabled","push","name","url","icon","App","classNameType","hrefUrl","iconName","Bookmarks","bookmarkList","getLinks","bookmarks","category","links","LinkGroups","LinkItem","link","ModalMenu","providers","getProviders","isChecked","console","log","updateTheme","HideButton","checked","udpateDisplayedItems","Provider","provider","prefix","ModalInit","setDisplayedItems","render","getElementById","currentDate","Date","dateOptions","weekday","year","month","day","toLocaleDateString","fixDigits","k","currentTime","Math","floor","getHours","easterEggChance","random","greetings","require","timeBased","easterEggs","messages","easteregg","concat","message","easterEggText","Clock","setDate","refreshClock","timerId","setInterval","cleanup","clearInterval","hour","minutes","getMinutes","midday","time","applications","getThemes","themes","e","themeName","target","innerHTML","toLowerCase","index","findIndex","item","setItem","imagebackground","colorbackground","colorserachbackground","colortextpri","colortextacc","colorborder","sindex","cycle","key","keyCode","which","text","replaceAll","option","substr","indexOf","subtext","search","preventDefault","stopPropagation","streamers","streamer","updateLabel","window","location","validURL","containsProtocol","str","pattern","RegExp","test","String","prototype","replacement","split","join"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { useState, useEffect } from 'react';\nimport ReactDOM from 'react-dom';\nimport './index.css';\n\nconst setValueFromLocalStorage = property => {\n let value = localStorage.getItem(property);\n setValue(property, value);\n};\nconst setValue = (property, value) => {\n if (value) {\n document.documentElement.style.setProperty(`--${property}`, value);\n\n const input = document.querySelector(`#${property}`);\n if (input) {\n value = value.replace('px', '');\n input.value = value;\n }\n }\n};\n\nfunction Homepage() {\n setTheme();\n \n return (\n \n \n \n
\n \n \n
\n \n \n \n
\n \n \n
\n \n \n
\n \n );\n}\n\nfunction Search() {\n return (\n \n )\n}\n\nfunction Header(props) {\n return (\n \n );\n}\n\nfunction Applications() {\n let appList = getApps();\n var items = [];\n for (var i = 0; i < appList.apps.length; i++) {\n var safe = appList.apps[i].NSFW;\n var NSFWEnabled = localStorage.getItem(\"contenttype\");\n if (safe === \"SAFE\") {\n items.push(\n \n );\n } else if (safe === \"NSFW\" && NSFWEnabled) {\n items.push(\n \n );\n } else {\n \n }\n \n }\n return (\n \n Applications
\n \n {items}\n
\n \n );\n}\n\nfunction App(props) {\n \n let classNameType = props.NSFW + \"-content\";\n let hrefUrl = \"https://\" + props.url;\n let iconName = \"mdi-\" + props.icon;\n return (\n \n );\n}\n\nfunction Bookmarks() {\n let bookmarkList = getLinks();\n var items = [];\n for (var i = 0; i < bookmarkList.bookmarks.length; i++) {\n items.push(\n \n );\n }\n return (\n \n Bookmarks
\n \n {items}\n
\n \n );\n}\n\nfunction LinkGroups(props) {\n var items = [];\n for (var i = 0; i < props.links.length; i++) {\n items.push(\n \n );\n }\n return (\n \n
{props.category}
\n {items}\n \n );\n}\n\nfunction LinkItem(props) {\n return (\n \n );\n}\n\nfunction ModalMenu() {\n var providers = getProviders();\n var items = [];\n var isChecked = localStorage.getItem(\"contenttype\");\n console.log(localStorage.getItem(\"contenttype\"));\n for (var i = 0; i < providers.providers.length; i++) {\n items.push(\n \n );\n }\n return (\n \n \n \n\n
Color themes
\n\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n\n\n
Search options
\n
\n \n \n \n | Website | \n Prefix | \n
\n {items}\n \n
\n \n\n \n
\n \n );\n}\n\nfunction HideButton(props) {\n console.log(props.checked);\n if(props.checked) {\n return (\n \n
\n );\n } else {\n return (\n \n
\n );\n }\n}\n\nfunction Provider(props) {\n return (\n \n | {props.provider.name} | \n {props.provider.prefix} | \n
\n );\n}\n\nfunction ModalInit() {\n setDisplayedItems();\n return (\n \n );\n}\n\nReactDOM.render(\n ,\n document.getElementById('root')\n);\n\n//Functions below this line are for calculating data for\n//other functions\n\nfunction date() {\n let currentDate = new Date();\n let dateOptions = {\n weekday: \"long\",\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\"\n };\n let date = currentDate.toLocaleDateString(\"en-GB\", dateOptions);\n return date;\n}\nfunction fixDigits(k) {\n if (k < 10) {\n return \"0\" + k;\n }\n else {\n return k;\n }\n}\nfunction greet() {\n let currentTime = new Date();\n let greet = Math.floor(currentTime.getHours() / 6);\n let easterEggChance = Math.floor(Math.random() * 100);\n let greetings = require('./messages.json');\n let timeBased = [];\n let easterEggs = [];\n for (var i = 0; i < greetings.messages.length; i++) {\n if (greetings.messages[i].easteregg === \"FALSE\") {\n timeBased = timeBased.concat(greetings.messages[i]);\n } else {\n easterEggs = easterEggs.concat(greetings.messages[i]);\n }\n }\n if (easterEggChance > 10) {\n return timeBased[greet].message;\n } else {\n let easterEggText = Math.floor(Math.random() * easterEggs.length);\n return easterEggs[easterEggText].message;\n }\n}\nfunction Clock() {\n const [date, setDate] = useState(new Date());\n\n function refreshClock() {\n setDate(new Date());\n }\n useEffect(() => {\n const timerId = setInterval(refreshClock, 1000);\n return function cleanup() {\n clearInterval(timerId);\n };\n }, []);\n\n var hour = date.getHours();\n var minutes = date.getMinutes();\n //var seconds = date.getSeconds();\n var midday = \"AM\";\n midday = (hour >= 12) ? \"PM\" : \"AM\";\n hour = (hour === 0) ? 12 : ((hour > 12) ? (hour - 12) : hour);\n minutes = fixDigits(minutes);\n //seconds = fixDigits(seconds);\n let time = hour + \":\" + minutes + \" \" + midday;\n\n return (\n {time}
\n\n );\n}\nfunction getApps() {\n let applications = require('./apps.json');\n return applications;\n}\nfunction getLinks() {\n let links = require('./links.json');\n return links;\n}\nfunction getProviders() {\n let providers = require('./providers.json');\n return providers;\n}\nfunction getThemes() {\n let themes = require('./themes.json');\n return themes;\n}\nfunction updateTheme(e) {\n var themes = getThemes();\n var themeName = e.target.innerHTML.toLowerCase();\n var index = themes.themes.findIndex(function(item, i){\n return item.name === themeName;\n });\n localStorage.setItem(\"image-background\", themes.themes[index].imagebackground);\n localStorage.setItem(\"color-background\", themes.themes[index].colorbackground);\n localStorage.setItem(\"color-search-background\", themes.themes[index].colorserachbackground);\n localStorage.setItem(\"color-text-pri\",themes.themes[index].colortextpri);\n localStorage.setItem(\"color-text-acc\", themes.themes[index].colortextacc);\n localStorage.setItem(\"color-border\", themes.themes[index].colorborder);\n \n //document.documentElement.style.setProperty(prop, `var(--${themeName}${prop.substring(10)})`);\n setTheme();\n}\nfunction setTheme() {\n setValueFromLocalStorage('image-background');\n setValueFromLocalStorage('color-background');\n setValueFromLocalStorage('color-search-background');\n setValueFromLocalStorage('color-text-pri');\n setValueFromLocalStorage('color-text-acc');\n setValueFromLocalStorage('color-border');\n setValueFromLocalStorage('content-display');\n}\nfunction handleKeyPress(e) {\n var sindex = 0;\n var cycle = false;\n var key = e.keyCode || e.which;\n var text = e.target.value.replaceAll(\"+\", \"%2B\");\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n if (key == 13) { // Search functions\n search(text);\n }\n if (key == 9) { // Tab Completion Functions\n e.preventDefault();\n e.stopPropagation();\n if (text[0] === ';') {\n switch (option) {\n case 't':\n var streamers = ['admiralbahroo', 'moonmoon_ow', 'witwix'];\n if (!subtext || cycle) {\n cycle = true;\n if (sindex > streamers.length - 1) sindex = 0;\n document.getElementById(\"keywords\").value = ';t ' + streamers[sindex++];\n return;\n }\n for (var streamer of streamers) {\n if (subtext === streamer.substr(0, subtext.length)) {\n document.getElementById(\"keywords\").value = ';t ' + streamer;\n return;\n }\n }\n break;\n }\n }\n }\n if(key == 32){ //Space to go to search\nupdateLabel(text);\n }\n sindex = 0;\n cycle = false;\n updateLabel(text);\n}\nfunction updateLabel(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n if (text[0] === '/') {\n// if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n document.getElementById(\"searchType\").innerHTML = \"Allmusic search\";\n break;\n case \"d\":\n document.getElementById(\"searchType\").innerHTML = \"Duck Duck Go search\";\n break;\n case \"di\":\n document.getElementById(\"searchType\").innerHTML = \"Discogs search\";\n break;\n case \"i\":\n document.getElementById(\"searchType\").innerHTML = \"IMDB search\";\n break;\n case \"m\":\n document.getElementById(\"searchType\").innerHTML = \"TheMovieDB search\";\n break;\n case \"r\":\n document.getElementById(\"searchType\").innerHTML = \"Reddit search\";\n break;\n case \"q\":\n document.getElementById(\"searchType\").innerHTML = \"Qwant search\";\n break;\n case \"so\":\n document.getElementById(\"searchType\").innerHTML = \"Soundcloud search\";\n break;\n case \"s\":\n document.getElementById(\"searchType\").innerHTML = \"Spotify search\";\n break;\n case \"tv\":\n document.getElementById(\"searchType\").innerHTML = \"TheTVDB search\";\n break;\n case \"t\":\n document.getElementById(\"searchType\").innerHTML = \"Trakt search\";\n break;\n case \"y\":\n document.getElementById(\"searchType\").innerHTML = \"YouTube search\";\n break;\n case \"w\":\n document.getElementById(\"searchType\").innerHTML = \"Wikipedia search\";\n break;\n case \"p\":\n document.getElementById(\"searchType\").innerHTML = \"Plex search\";\n break;\n case \"rt\":\n document.getElementById(\"searchType\").innerHTML = \"Rotten Tomatoes search\";\n break;\n default:\n document.getElementById(\"searchType\").innerHTML = \"Invalid search\";\n break;\n }\n}else {\n document.getElementById(\"searchType\").innerHTML = \"Google search\";\n }\n}\nfunction search(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n if (text[0] === '/') {\n if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n window.location = \"https://www.allmusic.com/search/all/\" + subtext;\n break;\n case \"d\":\n window.location = \"https://duckduckgo.com/?q=\" + subtext;\n break;\n case \"di\":\n window.location = \"https://www.discogs.com/search/?q=\" + subtext;\n break;\n case \"i\":\n window.location = \"https://www.imdb.com/find?q=\" + subtext;\n break;\n case \"m\":\n window.location = \"https://www.themoviedb.org/search?query=\" + subtext;\n break;\n case \"r\":\n window.location = \"https://www.reddit.com/search?q=\" + subtext;\n break;\n case \"q\":\n window.location = \"https://www.qwant.com/?q=\" + subtext;\n break;\n case \"so\":\n window.location = \"https://soundcloud.com/search?q=\" + subtext;\n break;\n case \"s\":\n window.location = \"https://open.spotify.com/search/results/\" + subtext;\n break;\n case \"t\":\n window.location = \"https://trakt.tv/search?query=\" + subtext;\n break;\n case \"tv\":\n window.location = \"https://www.thetvdb.com/search?query=\" + subtext;\n break;\n case \"y\":\n window.location = \"https://www.youtube.com/results?search_query=\" + subtext;\n break;\n case \"w\":\n window.location = \"https://en.wikipedia.org/w/index.php?search=\" + subtext;\n break;\n case \"p\":\n window.location = \"https://app.plex.tv/desktop/#!/search?query=\" + subtext;\n break;\n case \"rt\":\n window.location = \"https://www.rottentomatoes.com/search?search=\" + subtext;\n break;\n }\n } else {\n var option = text.substr(1);\n switch (option) {\n case \"d\":\n window.location = \"https://www.duckduckgo.com\";\n break;\n case \"y\":\n window.location = \"https://www.youtube.com\";\n break;\n case \"r\":\n window.location = \"https://reddit.com\";\n break;\n case \"s\":\n window.location = \"https://open.spotify.com\";\n break;\n }\n }\n } else if (validURL(text)) {\n if (containsProtocol(text))\n window.location = text;\n else\n window.location = \"https://\" + text;\n } else {\n window.location = \"https://www.google.com/search?q=\" + text;\n }\n}\nfunction validURL(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/)?' + // protocol\n '((([a-z\\\\d]([a-z\\\\d-]*[a-z\\\\d])*)\\\\.)+[a-z]{2,}|' + // domain name\n '((\\\\d{1,3}\\\\.){3}\\\\d{1,3}))' + // OR ip (v4) address\n '(\\\\:\\\\d+)?(\\\\/[-a-z\\\\d%_.~+]*)*' + // port and path\n '(\\\\?[;&a-z\\\\d%_.~+=-]*)?' + // query string\n '(\\\\#[-a-z\\\\d_]*)?$', 'i'); // fragment locator\n return !!pattern.test(str);\n}\nfunction containsProtocol(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/){1}.*', 'i');\n return !!pattern.test(str);\n}\nString.prototype.replaceAll = function(search, replacement) {\n var target = this;\n return target.split(search).join(replacement);\n};\nfunction udpateDisplayedItems(e) {\n localStorage.setItem('contenttype', e.target.checked);\n if (e.target.checked) {\n localStorage.setItem('content-display', 'none');\n } else {\n localStorage.setItem('content-display', 'block');\n }\n setDisplayedItems();\n}\nfunction setDisplayedItems() {\n setValueFromLocalStorage('contenttype');\n setValueFromLocalStorage('content-display');\n}"]},"metadata":{},"sourceType":"module"}
\ No newline at end of file
diff --git a/node_modules/.cache/babel-loader/56e00b49c1f9ffcd7b9edea40ee2b726.json b/node_modules/.cache/babel-loader/56e00b49c1f9ffcd7b9edea40ee2b726.json
new file mode 100644
index 00000000..fb092025
--- /dev/null
+++ b/node_modules/.cache/babel-loader/56e00b49c1f9ffcd7b9edea40ee2b726.json
@@ -0,0 +1 @@
+{"ast":null,"code":"var _jsxFileName = \"/home/seanedmunds/dev/home-page/src/index.js\",\n _s = $RefreshSig$();\n\nimport React from 'react';\nimport { useState, useEffect } from 'react';\nimport ReactDOM from 'react-dom';\nimport './index.css';\nimport { jsxDEV as _jsxDEV } from \"react/jsx-dev-runtime\";\n\nconst setValueFromLocalStorage = property => {\n let value = localStorage.getItem(property);\n setValue(property, value);\n};\n\nconst setValue = (property, value) => {\n if (value) {\n document.documentElement.style.setProperty(`--${property}`, value);\n const input = document.querySelector(`#${property}`);\n\n if (input) {\n value = value.replace('px', '');\n input.value = value;\n }\n }\n};\n\nconst setBoxCheckedFromLocalStorage = property => {\n let value = localStorage.getItem(property);\n console.log(value);\n setBoxChecked(property, value);\n};\n\nconst setBoxChecked = (property, value) => {\n if (value) {\n document.getElementById(property).checked = value;\n }\n};\n\nfunction Homepage() {\n setTheme();\n return /*#__PURE__*/_jsxDEV(\"main\", {\n id: \"container\",\n className: \"fade\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Search, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 39,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 38,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Header, {\n date: date(),\n greet: greet()\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 42,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 41,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Applications, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 48,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 47,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Bookmarks, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 51,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 50,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(ModalMenu, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 54,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 53,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(ModalInit, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 57,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 56,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 37,\n columnNumber: 5\n }, this);\n}\n\n_c = Homepage;\n\nfunction Search() {\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"search\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"abackground\",\n children: [/*#__PURE__*/_jsxDEV(\"input\", {\n name: \"keywords\",\n type: \"text\",\n className: \"keyword\",\n id: \"keywords\",\n size: \"50\",\n spellCheck: \"true\",\n placeholder: \"\"\n /*onFocus={this.placeholder = \"\"} onBlur={this.placeholder = ''}*/\n ,\n autoComplete: \"off\",\n autoFocus: true,\n onKeyUp: handleKeyPress\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 67,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n id: \"searchType\",\n className: \"Input-label\",\n children: \"Google search\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 68,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 66,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 65,\n columnNumber: 5\n }, this);\n}\n\n_c2 = Search;\n\nfunction Header(props) {\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"header\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n id: \"greeting_block\",\n children: /*#__PURE__*/_jsxDEV(\"h1\", {\n id: \"header_greet\",\n children: props.greet\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 78,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 77,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"date_block\",\n children: [/*#__PURE__*/_jsxDEV(\"h2\", {\n id: \"header_date\",\n children: props.date\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 81,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(Clock, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 82,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 80,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 76,\n columnNumber: 5\n }, this);\n}\n\n_c3 = Header;\n\nfunction Applications() {\n let appList = getApps();\n var items = [];\n\n for (var i = 0; i < appList.apps.length; i++) {\n var safe = appList.apps[i].NSFW;\n var NSFWEnabled = localStorage.getItem(\"contenttype\");\n\n if (safe === \"SAFE\") {\n items.push( /*#__PURE__*/_jsxDEV(App, {\n name: appList.apps[i].name,\n url: appList.apps[i].url,\n icon: appList.apps[i].icon,\n NSFW: appList.apps[i].NSFW\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 96,\n columnNumber: 9\n }, this));\n } else if (safe === \"NSFW\" && NSFWEnabled) {\n items.push( /*#__PURE__*/_jsxDEV(App, {\n name: appList.apps[i].name,\n url: appList.apps[i].url,\n icon: appList.apps[i].icon,\n NSFW: appList.apps[i].NSFW\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 106,\n columnNumber: 9\n }, this));\n } else {}\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"apps\",\n children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n children: \"Applications\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 121,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"apps_loop\",\n children: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 122,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 120,\n columnNumber: 5\n }, this);\n}\n\n_c4 = Applications;\n\nfunction App(props) {\n let classNameType = props.NSFW + \"-content\";\n let hrefUrl = \"https://\" + props.url;\n let iconName = \"mdi-\" + props.icon;\n return /*#__PURE__*/_jsxDEV(\"div\", {\n className: classNameType,\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: hrefUrl,\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_item\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_icon\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify icon\",\n \"data-icon\": iconName\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 139,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 138,\n columnNumber: 13\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_text\",\n children: [/*#__PURE__*/_jsxDEV(\"span\", {\n id: \"app-name\",\n children: props.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 142,\n columnNumber: 15\n }, this), /*#__PURE__*/_jsxDEV(\"span\", {\n id: \"app-address\",\n children: props.url\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 143,\n columnNumber: 15\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 141,\n columnNumber: 13\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 137,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 136,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 135,\n columnNumber: 7\n }, this);\n}\n\n_c5 = App;\n\nfunction Bookmarks() {\n let bookmarkList = getLinks();\n var items = [];\n\n for (var i = 0; i < bookmarkList.bookmarks.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(LinkGroups, {\n category: bookmarkList.bookmarks[i].category,\n links: bookmarkList.bookmarks[i].links\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 156,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"links\",\n children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n children: \"Bookmarks\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 165,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"links_loop\",\n children: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 166,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 164,\n columnNumber: 5\n }, this);\n}\n\n_c6 = Bookmarks;\n\nfunction LinkGroups(props) {\n var items = [];\n\n for (var i = 0; i < props.links.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(LinkItem, {\n link: props.links[i]\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 177,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"links_item\",\n children: [/*#__PURE__*/_jsxDEV(\"h4\", {\n children: props.category\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 185,\n columnNumber: 7\n }, this), items]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 184,\n columnNumber: 5\n }, this);\n}\n\n_c7 = LinkGroups;\n\nfunction LinkItem(props) {\n return /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: props.link.url,\n className: \"theme_color-border theme_text-select\",\n children: props.link.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 194,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 193,\n columnNumber: 5\n }, this);\n}\n\n_c8 = LinkItem;\n\nfunction ModalMenu() {\n var providers = getProviders();\n var items = [];\n\n for (var i = 0; i < providers.providers.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(Provider, {\n provider: providers.providers[i]\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 204,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"modal\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n children: [/*#__PURE__*/_jsxDEV(\"header\", {\n id: \"modal-header\",\n children: [/*#__PURE__*/_jsxDEV(\"h1\", {\n children: \"Options\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 214,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n href: \"#\",\n title: \"Close\",\n className: \"modal-close\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-close\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 216,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 215,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 213,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"h2\", {\n children: \"Color themes\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 220,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"modal-theme\",\n children: [/*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"blackboard\",\n className: \"theme-button theme-blackboard\",\n onClick: updateTheme,\n children: \"Blackboard\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 223,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"gazette\",\n className: \"theme-button theme-gazette\",\n onClick: updateTheme,\n children: \"Gazette\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 224,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"espresso\",\n className: \"theme-button theme-espresso\",\n onClick: updateTheme,\n children: \"Espresso\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 225,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cab\",\n className: \"theme-button theme-cab\",\n onClick: updateTheme,\n children: \"Cab\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 226,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cloud\",\n className: \"theme-button theme-cloud\",\n onClick: updateTheme,\n children: \"Cloud\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 227,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"lime\",\n className: \"theme-button theme-lime\",\n onClick: updateTheme,\n children: \"Lime\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 228,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"passion\",\n className: \"theme-button theme-passion\",\n onClick: updateTheme,\n children: \"Passion\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 229,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"blues\",\n className: \"theme-button theme-blues\",\n onClick: updateTheme,\n children: \"Blues\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 230,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"chalk\",\n className: \"theme-button theme-chalk\",\n onClick: updateTheme,\n children: \"Chalk\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 231,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"tron\",\n className: \"theme-button theme-tron\",\n onClick: updateTheme,\n children: \"Tron\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 232,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"paper\",\n className: \"theme-button theme-paper\",\n onClick: updateTheme,\n children: \"Paper\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 233,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cyberpunk\",\n className: \"theme-button theme-cyberpunk\",\n onClick: updateTheme,\n children: \"Cyberpunk\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 234,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"quadra\",\n className: \"theme-button theme-panam\",\n onClick: updateTheme,\n children: \"Quadra\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 235,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"panam\",\n className: \"theme-button theme-panam\",\n onClick: updateTheme,\n children: \"Panam\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 236,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"touch\",\n className: \"theme-button theme-touch\",\n onClick: updateTheme,\n children: \"Touch\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 237,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"peek\",\n className: \"theme-button theme-peek\",\n onClick: updateTheme,\n children: \"Peek\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 238,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 222,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"h2\", {\n children: \"Search options\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 242,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"providers\",\n children: /*#__PURE__*/_jsxDEV(\"table\", {\n children: /*#__PURE__*/_jsxDEV(\"tbody\", {\n children: [/*#__PURE__*/_jsxDEV(\"tr\", {\n children: [/*#__PURE__*/_jsxDEV(\"th\", {\n children: \"Website\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 247,\n columnNumber: 19\n }, this), /*#__PURE__*/_jsxDEV(\"th\", {\n children: \"Prefix\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 248,\n columnNumber: 19\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 246,\n columnNumber: 17\n }, this), items]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 245,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 244,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 243,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"header\", {\n id: \"modal-footer\",\n children: [/*#__PURE__*/_jsxDEV(\"a\", {\n href: \"https://github.com/jeroenpardon/\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-github-box\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 256,\n columnNumber: 54\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 256,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n href: \"https://materialdesignicons.com/\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-material-design\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 257,\n columnNumber: 54\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 257,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(HideButton, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 258,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 255,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 212,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 211,\n columnNumber: 5\n }, this);\n}\n\n_c9 = ModalMenu;\n\nfunction HideButton() {\n return /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"sneaky\",\n children: [/*#__PURE__*/_jsxDEV(\"input\", {\n type: \"checkbox\",\n id: \"contenttype\",\n checked: setBoxCheckedFromLocalStorage('contenttype'),\n onChange: udpateDisplayedItems\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 268,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n for: \"contenttype\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-domino-mask\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 269,\n columnNumber: 32\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 269,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 267,\n columnNumber: 5\n }, this);\n}\n\n_c10 = HideButton;\n\nfunction Provider(props) {\n return /*#__PURE__*/_jsxDEV(\"tr\", {\n children: [/*#__PURE__*/_jsxDEV(\"td\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: props.provider.url,\n children: props.provider.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 277,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 277,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"td\", {\n children: props.provider.prefix\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 278,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 276,\n columnNumber: 5\n }, this);\n}\n\n_c11 = Provider;\n\nfunction ModalInit() {\n setDisplayedItems();\n return /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"modal_init\",\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n className: \"btn\",\n href: \"#modal\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify icon\",\n \"data-icon\": \"mdi-xbox-controller-menu\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 288,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 287,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 286,\n columnNumber: 5\n }, this);\n}\n\n_c12 = ModalInit;\nReactDOM.render( /*#__PURE__*/_jsxDEV(Homepage, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 295,\n columnNumber: 3\n}, this), document.getElementById('root')); //Functions below this line are for calculating data for\n//other functions\n\nfunction date() {\n let currentDate = new Date();\n let dateOptions = {\n weekday: \"long\",\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\"\n };\n let date = currentDate.toLocaleDateString(\"en-GB\", dateOptions);\n return date;\n}\n\nfunction fixDigits(k) {\n if (k < 10) {\n return \"0\" + k;\n } else {\n return k;\n }\n}\n\nfunction greet() {\n let currentTime = new Date();\n let greet = Math.floor(currentTime.getHours() / 6);\n let easterEggChance = Math.floor(Math.random() * 100);\n\n let greetings = require('./messages.json');\n\n let timeBased = [];\n let easterEggs = [];\n\n for (var i = 0; i < greetings.messages.length; i++) {\n if (greetings.messages[i].easteregg === \"FALSE\") {\n timeBased = timeBased.concat(greetings.messages[i]);\n } else {\n easterEggs = easterEggs.concat(greetings.messages[i]);\n }\n }\n\n if (easterEggChance > 10) {\n return timeBased[greet].message;\n } else {\n let easterEggText = Math.floor(Math.random() * easterEggs.length);\n return easterEggs[easterEggText].message;\n }\n}\n\nfunction Clock() {\n _s();\n\n const [date, setDate] = useState(new Date());\n\n function refreshClock() {\n setDate(new Date());\n }\n\n useEffect(() => {\n const timerId = setInterval(refreshClock, 1000);\n return function cleanup() {\n clearInterval(timerId);\n };\n }, []);\n var hour = date.getHours();\n var minutes = date.getMinutes(); //var seconds = date.getSeconds();\n\n var midday = \"AM\";\n midday = hour >= 12 ? \"PM\" : \"AM\";\n hour = hour === 0 ? 12 : hour > 12 ? hour - 12 : hour;\n minutes = fixDigits(minutes); //seconds = fixDigits(seconds);\n\n let time = hour + \":\" + minutes + \" \" + midday;\n return /*#__PURE__*/_jsxDEV(\"h2\", {\n id: \"clock\",\n children: time\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 366,\n columnNumber: 5\n }, this);\n}\n\n_s(Clock, \"Gqi45WOZhU2c0BLYX0HoJeiR0fk=\");\n\n_c13 = Clock;\n\nfunction getApps() {\n let applications = require('./apps.json');\n\n return applications;\n}\n\nfunction getLinks() {\n let links = require('./links.json');\n\n return links;\n}\n\nfunction getProviders() {\n let providers = require('./providers.json');\n\n return providers;\n}\n\nfunction getThemes() {\n let themes = require('./themes.json');\n\n return themes;\n}\n\nfunction updateTheme(e) {\n var themes = getThemes();\n var themeName = e.target.innerHTML.toLowerCase();\n var index = themes.themes.findIndex(function (item, i) {\n return item.name === themeName;\n });\n localStorage.setItem(\"image-background\", themes.themes[index].imagebackground);\n localStorage.setItem(\"color-background\", themes.themes[index].colorbackground);\n localStorage.setItem(\"color-search-background\", themes.themes[index].colorserachbackground);\n localStorage.setItem(\"color-text-pri\", themes.themes[index].colortextpri);\n localStorage.setItem(\"color-text-acc\", themes.themes[index].colortextacc);\n localStorage.setItem(\"color-border\", themes.themes[index].colorborder); //document.documentElement.style.setProperty(prop, `var(--${themeName}${prop.substring(10)})`);\n\n setTheme();\n}\n\nfunction setTheme() {\n setValueFromLocalStorage('image-background');\n setValueFromLocalStorage('color-background');\n setValueFromLocalStorage('color-search-background');\n setValueFromLocalStorage('color-text-pri');\n setValueFromLocalStorage('color-text-acc');\n setValueFromLocalStorage('color-border');\n setValueFromLocalStorage('content-display');\n}\n\nfunction handleKeyPress(e) {\n var sindex = 0;\n var cycle = false;\n var key = e.keyCode || e.which;\n var text = e.target.value.replaceAll(\"+\", \"%2B\");\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n\n if (key == 13) {\n // Search functions\n search(text);\n }\n\n if (key == 9) {\n // Tab Completion Functions\n e.preventDefault();\n e.stopPropagation();\n\n if (text[0] === ';') {\n switch (option) {\n case 't':\n var streamers = ['admiralbahroo', 'moonmoon_ow', 'witwix'];\n\n if (!subtext || cycle) {\n cycle = true;\n if (sindex > streamers.length - 1) sindex = 0;\n document.getElementById(\"keywords\").value = ';t ' + streamers[sindex++];\n return;\n }\n\n for (var streamer of streamers) {\n if (subtext === streamer.substr(0, subtext.length)) {\n document.getElementById(\"keywords\").value = ';t ' + streamer;\n return;\n }\n }\n\n break;\n }\n }\n }\n\n if (key == 32) {\n //Space to go to search\n updateLabel(text);\n }\n\n sindex = 0;\n cycle = false;\n updateLabel(text);\n}\n\nfunction updateLabel(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n\n if (text[0] === '/') {\n // if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n document.getElementById(\"searchType\").innerHTML = \"Allmusic search\";\n break;\n\n case \"d\":\n document.getElementById(\"searchType\").innerHTML = \"Duck Duck Go search\";\n break;\n\n case \"di\":\n document.getElementById(\"searchType\").innerHTML = \"Discogs search\";\n break;\n\n case \"i\":\n document.getElementById(\"searchType\").innerHTML = \"IMDB search\";\n break;\n\n case \"m\":\n document.getElementById(\"searchType\").innerHTML = \"TheMovieDB search\";\n break;\n\n case \"r\":\n document.getElementById(\"searchType\").innerHTML = \"Reddit search\";\n break;\n\n case \"q\":\n document.getElementById(\"searchType\").innerHTML = \"Qwant search\";\n break;\n\n case \"so\":\n document.getElementById(\"searchType\").innerHTML = \"Soundcloud search\";\n break;\n\n case \"s\":\n document.getElementById(\"searchType\").innerHTML = \"Spotify search\";\n break;\n\n case \"tv\":\n document.getElementById(\"searchType\").innerHTML = \"TheTVDB search\";\n break;\n\n case \"t\":\n document.getElementById(\"searchType\").innerHTML = \"Trakt search\";\n break;\n\n case \"y\":\n document.getElementById(\"searchType\").innerHTML = \"YouTube search\";\n break;\n\n case \"w\":\n document.getElementById(\"searchType\").innerHTML = \"Wikipedia search\";\n break;\n\n case \"p\":\n document.getElementById(\"searchType\").innerHTML = \"Plex search\";\n break;\n\n case \"rt\":\n document.getElementById(\"searchType\").innerHTML = \"Rotten Tomatoes search\";\n break;\n\n default:\n document.getElementById(\"searchType\").innerHTML = \"Invalid search\";\n break;\n }\n } else {\n document.getElementById(\"searchType\").innerHTML = \"Google search\";\n }\n}\n\nfunction search(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n\n if (text[0] === '/') {\n if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n window.location = \"https://www.allmusic.com/search/all/\" + subtext;\n break;\n\n case \"d\":\n window.location = \"https://duckduckgo.com/?q=\" + subtext;\n break;\n\n case \"di\":\n window.location = \"https://www.discogs.com/search/?q=\" + subtext;\n break;\n\n case \"i\":\n window.location = \"https://www.imdb.com/find?q=\" + subtext;\n break;\n\n case \"m\":\n window.location = \"https://www.themoviedb.org/search?query=\" + subtext;\n break;\n\n case \"r\":\n window.location = \"https://www.reddit.com/search?q=\" + subtext;\n break;\n\n case \"q\":\n window.location = \"https://www.qwant.com/?q=\" + subtext;\n break;\n\n case \"so\":\n window.location = \"https://soundcloud.com/search?q=\" + subtext;\n break;\n\n case \"s\":\n window.location = \"https://open.spotify.com/search/results/\" + subtext;\n break;\n\n case \"t\":\n window.location = \"https://trakt.tv/search?query=\" + subtext;\n break;\n\n case \"tv\":\n window.location = \"https://www.thetvdb.com/search?query=\" + subtext;\n break;\n\n case \"y\":\n window.location = \"https://www.youtube.com/results?search_query=\" + subtext;\n break;\n\n case \"w\":\n window.location = \"https://en.wikipedia.org/w/index.php?search=\" + subtext;\n break;\n\n case \"p\":\n window.location = \"https://app.plex.tv/desktop/#!/search?query=\" + subtext;\n break;\n\n case \"rt\":\n window.location = \"https://www.rottentomatoes.com/search?search=\" + subtext;\n break;\n }\n } else {\n var option = text.substr(1);\n\n switch (option) {\n case \"d\":\n window.location = \"https://www.duckduckgo.com\";\n break;\n\n case \"y\":\n window.location = \"https://www.youtube.com\";\n break;\n\n case \"r\":\n window.location = \"https://reddit.com\";\n break;\n\n case \"s\":\n window.location = \"https://open.spotify.com\";\n break;\n }\n }\n } else if (validURL(text)) {\n if (containsProtocol(text)) window.location = text;else window.location = \"https://\" + text;\n } else {\n window.location = \"https://www.google.com/search?q=\" + text;\n }\n}\n\nfunction validURL(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/)?' + // protocol\n '((([a-z\\\\d]([a-z\\\\d-]*[a-z\\\\d])*)\\\\.)+[a-z]{2,}|' + // domain name\n '((\\\\d{1,3}\\\\.){3}\\\\d{1,3}))' + // OR ip (v4) address\n '(\\\\:\\\\d+)?(\\\\/[-a-z\\\\d%_.~+]*)*' + // port and path\n '(\\\\?[;&a-z\\\\d%_.~+=-]*)?' + // query string\n '(\\\\#[-a-z\\\\d_]*)?$', 'i'); // fragment locator\n\n return !!pattern.test(str);\n}\n\nfunction containsProtocol(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/){1}.*', 'i');\n return !!pattern.test(str);\n}\n\nString.prototype.replaceAll = function (search, replacement) {\n var target = this;\n return target.split(search).join(replacement);\n};\n\nfunction udpateDisplayedItems(e) {\n console.log(e);\n localStorage.setItem('contenttype', e.target.checked);\n\n if (e.target.checked) {\n localStorage.setItem('content-display', 'none');\n } else {\n localStorage.setItem('content-display', 'block');\n }\n\n setDisplayedItems();\n}\n\nfunction setDisplayedItems() {\n setValueFromLocalStorage('contenttype');\n setValueFromLocalStorage('content-display');\n}\n\nvar _c, _c2, _c3, _c4, _c5, _c6, _c7, _c8, _c9, _c10, _c11, _c12, _c13;\n\n$RefreshReg$(_c, \"Homepage\");\n$RefreshReg$(_c2, \"Search\");\n$RefreshReg$(_c3, \"Header\");\n$RefreshReg$(_c4, \"Applications\");\n$RefreshReg$(_c5, \"App\");\n$RefreshReg$(_c6, \"Bookmarks\");\n$RefreshReg$(_c7, \"LinkGroups\");\n$RefreshReg$(_c8, \"LinkItem\");\n$RefreshReg$(_c9, \"ModalMenu\");\n$RefreshReg$(_c10, \"HideButton\");\n$RefreshReg$(_c11, \"Provider\");\n$RefreshReg$(_c12, \"ModalInit\");\n$RefreshReg$(_c13, \"Clock\");","map":{"version":3,"sources":["/home/seanedmunds/dev/home-page/src/index.js"],"names":["React","useState","useEffect","ReactDOM","setValueFromLocalStorage","property","value","localStorage","getItem","setValue","document","documentElement","style","setProperty","input","querySelector","replace","setBoxCheckedFromLocalStorage","console","log","setBoxChecked","getElementById","checked","Homepage","setTheme","date","greet","Search","handleKeyPress","Header","props","Applications","appList","getApps","items","i","apps","length","safe","NSFW","NSFWEnabled","push","name","url","icon","App","classNameType","hrefUrl","iconName","Bookmarks","bookmarkList","getLinks","bookmarks","category","links","LinkGroups","LinkItem","link","ModalMenu","providers","getProviders","updateTheme","HideButton","udpateDisplayedItems","Provider","provider","prefix","ModalInit","setDisplayedItems","render","currentDate","Date","dateOptions","weekday","year","month","day","toLocaleDateString","fixDigits","k","currentTime","Math","floor","getHours","easterEggChance","random","greetings","require","timeBased","easterEggs","messages","easteregg","concat","message","easterEggText","Clock","setDate","refreshClock","timerId","setInterval","cleanup","clearInterval","hour","minutes","getMinutes","midday","time","applications","getThemes","themes","e","themeName","target","innerHTML","toLowerCase","index","findIndex","item","setItem","imagebackground","colorbackground","colorserachbackground","colortextpri","colortextacc","colorborder","sindex","cycle","key","keyCode","which","text","replaceAll","option","substr","indexOf","subtext","search","preventDefault","stopPropagation","streamers","streamer","updateLabel","window","location","validURL","containsProtocol","str","pattern","RegExp","test","String","prototype","replacement","split","join"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { useState, useEffect } from 'react';\nimport ReactDOM from 'react-dom';\nimport './index.css';\n\nconst setValueFromLocalStorage = property => {\n let value = localStorage.getItem(property);\n setValue(property, value);\n};\nconst setValue = (property, value) => {\n if (value) {\n document.documentElement.style.setProperty(`--${property}`, value);\n\n const input = document.querySelector(`#${property}`);\n if (input) {\n value = value.replace('px', '');\n input.value = value;\n }\n }\n};\n\nconst setBoxCheckedFromLocalStorage = property => {\n let value = localStorage.getItem(property);\n console.log(value);\n setBoxChecked(property, value);\n};\nconst setBoxChecked = (property, value) => {\n if (value) {\n document.getElementById(property).checked = value;\n }\n}\n\nfunction Homepage() {\n setTheme();\n \n return (\n \n \n \n
\n \n \n
\n \n \n \n
\n \n \n
\n \n \n
\n \n );\n}\n\nfunction Search() {\n return (\n \n )\n}\n\nfunction Header(props) {\n return (\n \n );\n}\n\nfunction Applications() {\n let appList = getApps();\n var items = [];\n for (var i = 0; i < appList.apps.length; i++) {\n var safe = appList.apps[i].NSFW;\n var NSFWEnabled = localStorage.getItem(\"contenttype\");\n if (safe === \"SAFE\") {\n items.push(\n \n );\n } else if (safe === \"NSFW\" && NSFWEnabled) {\n items.push(\n \n );\n } else {\n \n }\n \n }\n return (\n \n Applications
\n \n {items}\n
\n \n );\n}\n\nfunction App(props) {\n \n let classNameType = props.NSFW + \"-content\";\n let hrefUrl = \"https://\" + props.url;\n let iconName = \"mdi-\" + props.icon;\n return (\n \n );\n}\n\nfunction Bookmarks() {\n let bookmarkList = getLinks();\n var items = [];\n for (var i = 0; i < bookmarkList.bookmarks.length; i++) {\n items.push(\n \n );\n }\n return (\n \n Bookmarks
\n \n {items}\n
\n \n );\n}\n\nfunction LinkGroups(props) {\n var items = [];\n for (var i = 0; i < props.links.length; i++) {\n items.push(\n \n );\n }\n return (\n \n
{props.category}
\n {items}\n \n );\n}\n\nfunction LinkItem(props) {\n return (\n \n );\n}\n\nfunction ModalMenu() {\n var providers = getProviders();\n var items = [];\n for (var i = 0; i < providers.providers.length; i++) {\n items.push(\n \n );\n }\n return (\n \n \n \n\n
Color themes
\n\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n\n\n
Search options
\n
\n \n \n \n | Website | \n Prefix | \n
\n {items}\n \n
\n \n\n \n
\n \n );\n}\n\nfunction HideButton() {\n return(\n \n \n \n
\n );\n}\n\nfunction Provider(props) {\n return (\n \n | {props.provider.name} | \n {props.provider.prefix} | \n
\n );\n}\n\nfunction ModalInit() {\n setDisplayedItems();\n return (\n \n );\n}\n\nReactDOM.render(\n ,\n document.getElementById('root')\n);\n\n//Functions below this line are for calculating data for\n//other functions\n\nfunction date() {\n let currentDate = new Date();\n let dateOptions = {\n weekday: \"long\",\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\"\n };\n let date = currentDate.toLocaleDateString(\"en-GB\", dateOptions);\n return date;\n}\nfunction fixDigits(k) {\n if (k < 10) {\n return \"0\" + k;\n }\n else {\n return k;\n }\n}\nfunction greet() {\n let currentTime = new Date();\n let greet = Math.floor(currentTime.getHours() / 6);\n let easterEggChance = Math.floor(Math.random() * 100);\n let greetings = require('./messages.json');\n let timeBased = [];\n let easterEggs = [];\n for (var i = 0; i < greetings.messages.length; i++) {\n if (greetings.messages[i].easteregg === \"FALSE\") {\n timeBased = timeBased.concat(greetings.messages[i]);\n } else {\n easterEggs = easterEggs.concat(greetings.messages[i]);\n }\n }\n if (easterEggChance > 10) {\n return timeBased[greet].message;\n } else {\n let easterEggText = Math.floor(Math.random() * easterEggs.length);\n return easterEggs[easterEggText].message;\n }\n}\nfunction Clock() {\n const [date, setDate] = useState(new Date());\n\n function refreshClock() {\n setDate(new Date());\n }\n useEffect(() => {\n const timerId = setInterval(refreshClock, 1000);\n return function cleanup() {\n clearInterval(timerId);\n };\n }, []);\n\n var hour = date.getHours();\n var minutes = date.getMinutes();\n //var seconds = date.getSeconds();\n var midday = \"AM\";\n midday = (hour >= 12) ? \"PM\" : \"AM\";\n hour = (hour === 0) ? 12 : ((hour > 12) ? (hour - 12) : hour);\n minutes = fixDigits(minutes);\n //seconds = fixDigits(seconds);\n let time = hour + \":\" + minutes + \" \" + midday;\n\n return (\n {time}
\n\n );\n}\nfunction getApps() {\n let applications = require('./apps.json');\n return applications;\n}\nfunction getLinks() {\n let links = require('./links.json');\n return links;\n}\nfunction getProviders() {\n let providers = require('./providers.json');\n return providers;\n}\nfunction getThemes() {\n let themes = require('./themes.json');\n return themes;\n}\nfunction updateTheme(e) {\n var themes = getThemes();\n var themeName = e.target.innerHTML.toLowerCase();\n var index = themes.themes.findIndex(function(item, i){\n return item.name === themeName\n });\n localStorage.setItem(\"image-background\", themes.themes[index].imagebackground);\n localStorage.setItem(\"color-background\", themes.themes[index].colorbackground);\n localStorage.setItem(\"color-search-background\", themes.themes[index].colorserachbackground);\n localStorage.setItem(\"color-text-pri\",themes.themes[index].colortextpri);\n localStorage.setItem(\"color-text-acc\", themes.themes[index].colortextacc);\n localStorage.setItem(\"color-border\", themes.themes[index].colorborder);\n \n //document.documentElement.style.setProperty(prop, `var(--${themeName}${prop.substring(10)})`);\n setTheme();\n}\nfunction setTheme() {\n setValueFromLocalStorage('image-background');\n setValueFromLocalStorage('color-background');\n setValueFromLocalStorage('color-search-background');\n setValueFromLocalStorage('color-text-pri');\n setValueFromLocalStorage('color-text-acc');\n setValueFromLocalStorage('color-border');\n setValueFromLocalStorage('content-display');\n}\nfunction handleKeyPress(e) {\n var sindex = 0;\n var cycle = false;\n var key = e.keyCode || e.which;\n var text = e.target.value.replaceAll(\"+\", \"%2B\");\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n if (key == 13) { // Search functions\n search(text);\n }\n if (key == 9) { // Tab Completion Functions\n e.preventDefault();\n e.stopPropagation();\n if (text[0] === ';') {\n switch (option) {\n case 't':\n var streamers = ['admiralbahroo', 'moonmoon_ow', 'witwix'];\n if (!subtext || cycle) {\n cycle = true;\n if (sindex > streamers.length - 1) sindex = 0;\n document.getElementById(\"keywords\").value = ';t ' + streamers[sindex++];\n return;\n }\n for (var streamer of streamers) {\n if (subtext === streamer.substr(0, subtext.length)) {\n document.getElementById(\"keywords\").value = ';t ' + streamer;\n return;\n }\n }\n break;\n }\n }\n }\n if(key == 32){ //Space to go to search\nupdateLabel(text);\n }\n sindex = 0;\n cycle = false;\n updateLabel(text);\n}\nfunction updateLabel(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n if (text[0] === '/') {\n// if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n document.getElementById(\"searchType\").innerHTML = \"Allmusic search\";\n break;\n case \"d\":\n document.getElementById(\"searchType\").innerHTML = \"Duck Duck Go search\";\n break;\n case \"di\":\n document.getElementById(\"searchType\").innerHTML = \"Discogs search\";\n break;\n case \"i\":\n document.getElementById(\"searchType\").innerHTML = \"IMDB search\";\n break;\n case \"m\":\n document.getElementById(\"searchType\").innerHTML = \"TheMovieDB search\";\n break;\n case \"r\":\n document.getElementById(\"searchType\").innerHTML = \"Reddit search\";\n break;\n case \"q\":\n document.getElementById(\"searchType\").innerHTML = \"Qwant search\";\n break;\n case \"so\":\n document.getElementById(\"searchType\").innerHTML = \"Soundcloud search\";\n break;\n case \"s\":\n document.getElementById(\"searchType\").innerHTML = \"Spotify search\";\n break;\n case \"tv\":\n document.getElementById(\"searchType\").innerHTML = \"TheTVDB search\";\n break;\n case \"t\":\n document.getElementById(\"searchType\").innerHTML = \"Trakt search\";\n break;\n case \"y\":\n document.getElementById(\"searchType\").innerHTML = \"YouTube search\";\n break;\n case \"w\":\n document.getElementById(\"searchType\").innerHTML = \"Wikipedia search\";\n break;\n case \"p\":\n document.getElementById(\"searchType\").innerHTML = \"Plex search\";\n break;\n case \"rt\":\n document.getElementById(\"searchType\").innerHTML = \"Rotten Tomatoes search\";\n break;\n default:\n document.getElementById(\"searchType\").innerHTML = \"Invalid search\";\n break;\n }\n}else {\n document.getElementById(\"searchType\").innerHTML = \"Google search\";\n }\n}\nfunction search(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n if (text[0] === '/') {\n if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n window.location = \"https://www.allmusic.com/search/all/\" + subtext;\n break;\n case \"d\":\n window.location = \"https://duckduckgo.com/?q=\" + subtext;\n break;\n case \"di\":\n window.location = \"https://www.discogs.com/search/?q=\" + subtext;\n break;\n case \"i\":\n window.location = \"https://www.imdb.com/find?q=\" + subtext;\n break;\n case \"m\":\n window.location = \"https://www.themoviedb.org/search?query=\" + subtext;\n break;\n case \"r\":\n window.location = \"https://www.reddit.com/search?q=\" + subtext;\n break;\n case \"q\":\n window.location = \"https://www.qwant.com/?q=\" + subtext;\n break;\n case \"so\":\n window.location = \"https://soundcloud.com/search?q=\" + subtext;\n break;\n case \"s\":\n window.location = \"https://open.spotify.com/search/results/\" + subtext;\n break;\n case \"t\":\n window.location = \"https://trakt.tv/search?query=\" + subtext;\n break;\n case \"tv\":\n window.location = \"https://www.thetvdb.com/search?query=\" + subtext;\n break;\n case \"y\":\n window.location = \"https://www.youtube.com/results?search_query=\" + subtext;\n break;\n case \"w\":\n window.location = \"https://en.wikipedia.org/w/index.php?search=\" + subtext;\n break;\n case \"p\":\n window.location = \"https://app.plex.tv/desktop/#!/search?query=\" + subtext;\n break;\n case \"rt\":\n window.location = \"https://www.rottentomatoes.com/search?search=\" + subtext;\n break;\n }\n } else {\n var option = text.substr(1);\n switch (option) {\n case \"d\":\n window.location = \"https://www.duckduckgo.com\";\n break;\n case \"y\":\n window.location = \"https://www.youtube.com\";\n break;\n case \"r\":\n window.location = \"https://reddit.com\";\n break;\n case \"s\":\n window.location = \"https://open.spotify.com\";\n break;\n }\n }\n } else if (validURL(text)) {\n if (containsProtocol(text))\n window.location = text;\n else\n window.location = \"https://\" + text;\n } else {\n window.location = \"https://www.google.com/search?q=\" + text;\n }\n}\nfunction validURL(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/)?' + // protocol\n '((([a-z\\\\d]([a-z\\\\d-]*[a-z\\\\d])*)\\\\.)+[a-z]{2,}|' + // domain name\n '((\\\\d{1,3}\\\\.){3}\\\\d{1,3}))' + // OR ip (v4) address\n '(\\\\:\\\\d+)?(\\\\/[-a-z\\\\d%_.~+]*)*' + // port and path\n '(\\\\?[;&a-z\\\\d%_.~+=-]*)?' + // query string\n '(\\\\#[-a-z\\\\d_]*)?$', 'i'); // fragment locator\n return !!pattern.test(str);\n}\nfunction containsProtocol(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/){1}.*', 'i');\n return !!pattern.test(str);\n}\nString.prototype.replaceAll = function(search, replacement) {\n var target = this;\n return target.split(search).join(replacement);\n};\nfunction udpateDisplayedItems(e) {\n console.log(e);\n localStorage.setItem('contenttype', e.target.checked);\n if (e.target.checked) {\n localStorage.setItem('content-display', 'none');\n } else {\n localStorage.setItem('content-display', 'block');\n }\n setDisplayedItems();\n}\nfunction setDisplayedItems() {\n setValueFromLocalStorage('contenttype');\n setValueFromLocalStorage('content-display');\n}"]},"metadata":{},"sourceType":"module"}
\ No newline at end of file
diff --git a/node_modules/.cache/babel-loader/56e5e46f7808b6ee80afec8b669a2818.json b/node_modules/.cache/babel-loader/56e5e46f7808b6ee80afec8b669a2818.json
new file mode 100644
index 00000000..8d07039a
--- /dev/null
+++ b/node_modules/.cache/babel-loader/56e5e46f7808b6ee80afec8b669a2818.json
@@ -0,0 +1 @@
+{"ast":null,"code":"var _jsxFileName = \"/home/seanedmunds/dev/home-page/src/index.js\",\n _s = $RefreshSig$();\n\nimport React from 'react';\nimport { useState, useEffect } from 'react';\nimport ReactDOM from 'react-dom'; //import { unstable_createPortal } from 'react-dom';\n\nimport './index.css';\nimport { jsxDEV as _jsxDEV } from \"react/jsx-dev-runtime\";\n\nfunction Homepage() {\n return /*#__PURE__*/_jsxDEV(\"main\", {\n id: \"container\",\n className: \"fade\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Search, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 11,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 10,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Header, {\n date: date(),\n greet: greet()\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 14,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 13,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Applications, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 20,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 19,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Bookmarks, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 23,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 22,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(ModalMenu, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 26,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 25,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(ModalInit, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 29,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 28,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 9,\n columnNumber: 5\n }, this);\n}\n\n_c = Homepage;\n\nfunction Search() {\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"search\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"abackground\",\n children: [/*#__PURE__*/_jsxDEV(\"input\", {\n name: \"keywords\",\n value: \"test\",\n type: \"text\",\n className: \"keyword\",\n id: \"keywords\",\n size: \"50\",\n spellCheck: \"true\",\n placeholder: \"\"\n /*onFocus={this.placeholder = \"\"} onBlur={this.placeholder = ''}*/\n ,\n autoComplete: \"off\",\n autoFocus: \"true\",\n onKeyUp: handleKeyPress(Event)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 39,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n id: \"searchType\",\n className: \"Input-label\",\n children: \"Google search\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 40,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 38,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 37,\n columnNumber: 5\n }, this);\n}\n\n_c2 = Search;\n\nfunction Header(props) {\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"header\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n id: \"greeting_block\",\n children: /*#__PURE__*/_jsxDEV(\"h1\", {\n id: \"header_greet\",\n children: props.greet\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 50,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 49,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"date_block\",\n children: [/*#__PURE__*/_jsxDEV(\"h2\", {\n id: \"header_date\",\n children: props.date\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 53,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(Clock, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 54,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 52,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 48,\n columnNumber: 5\n }, this);\n}\n\n_c3 = Header;\n\nfunction Applications() {\n let appList = getApps();\n var items = [];\n\n for (var i = 0; i < appList.apps.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(App, {\n name: appList.apps[i].name,\n url: appList.apps[i].url,\n icon: appList.apps[i].icon,\n NSFW: appList.apps[i].NSFW\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 65,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"apps\",\n children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n children: \"Applications\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 76,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"apps_loop\",\n children: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 77,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 75,\n columnNumber: 5\n }, this);\n}\n\n_c4 = Applications;\n\nfunction App(props) {\n let classNameType = props.NSFW + \"-content\";\n let hrefUrl = \"https://\" + props.url;\n let iconName = \"mdi-\" + props.icon;\n return /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: hrefUrl,\n className: classNameType,\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_item\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_icon\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify icon\",\n \"data-icon\": iconName\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 93,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 92,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_text\",\n children: [/*#__PURE__*/_jsxDEV(\"span\", {\n id: \"app-name\",\n children: props.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 96,\n columnNumber: 13\n }, this), /*#__PURE__*/_jsxDEV(\"span\", {\n id: \"app-address\",\n children: props.url\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 97,\n columnNumber: 13\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 95,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 91,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 90,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 89,\n columnNumber: 5\n }, this);\n}\n\n_c5 = App;\n\nfunction Bookmarks() {\n let bookmarkList = getLinks();\n var items = [];\n\n for (var i = 0; i < bookmarkList.bookmarks.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(LinkGroups, {\n category: bookmarkList.bookmarks[i].category,\n links: bookmarkList.bookmarks[i].links\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 110,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"links\",\n children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n children: \"Bookmarks\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 119,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"links_loop\",\n children: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 120,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 118,\n columnNumber: 5\n }, this);\n}\n\n_c6 = Bookmarks;\n\nfunction LinkGroups(props) {\n var items = [];\n\n for (var i = 0; i < props.links.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(LinkItem, {\n link: props.links[i]\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 131,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"links_item\",\n children: [/*#__PURE__*/_jsxDEV(\"h4\", {\n children: props.category\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 139,\n columnNumber: 7\n }, this), items]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 138,\n columnNumber: 5\n }, this);\n}\n\n_c7 = LinkGroups;\n\nfunction LinkItem(props) {\n return /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: props.link.url,\n className: \"theme_color-border theme_text-select\",\n children: props.link.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 148,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 147,\n columnNumber: 5\n }, this);\n}\n\n_c8 = LinkItem;\n\nfunction ModalMenu() {\n var providers = getProviders();\n var items = [];\n\n for (var i = 0; i < providers.providers.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(Provider, {\n provider: providers.providers[i]\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 158,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"modal\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n children: [/*#__PURE__*/_jsxDEV(\"header\", {\n id: \"modal-header\",\n children: [/*#__PURE__*/_jsxDEV(\"h1\", {\n children: \"Options\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 168,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n href: \"#\",\n title: \"Close\",\n className: \"modal-close\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-close\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 170,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 169,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 167,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"h2\", {\n children: \"Color themes\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 174,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"modal-theme\",\n children: [/*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"blackboard\",\n className: \"theme-button theme-blackboard\",\n children: \"Blackboard\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 177,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"gazette\",\n className: \"theme-button theme-gazette\",\n children: \"Gazette\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 178,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"espresso\",\n className: \"theme-button theme-espresso\",\n children: \"Espresso\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 179,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cab\",\n className: \"theme-button theme-cab\",\n children: \"Cab\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 180,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cloud\",\n className: \"theme-button theme-cloud\",\n children: \"Cloud\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 181,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"lime\",\n className: \"theme-button theme-lime\",\n children: \"Lime\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 182,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"passion\",\n className: \"theme-button theme-passion\",\n children: \"Passion\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 183,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"blues\",\n className: \"theme-button theme-blues\",\n children: \"Blues\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 184,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"chalk\",\n className: \"theme-button theme-chalk\",\n children: \"Chalk\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 185,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"tron\",\n className: \"theme-button theme-tron\",\n children: \"Tron\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 186,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"paper\",\n className: \"theme-button theme-paper\",\n children: \"Paper\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 187,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cyberpunk\",\n className: \"theme-button theme-cyberpunk\",\n children: \"Cyberpunk\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 188,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"quadra\",\n className: \"theme-button theme-panam\",\n children: \"Quadra\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 189,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"panam\",\n className: \"theme-button theme-panam\",\n children: \"Panam\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 190,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"touch\",\n className: \"theme-button theme-touch\",\n children: \"Touch\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 191,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"peek\",\n className: \"theme-button theme-peek\",\n children: \"Peek\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 192,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 176,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"h2\", {\n children: \"Search options\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 196,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"providers\",\n children: /*#__PURE__*/_jsxDEV(\"table\", {\n children: /*#__PURE__*/_jsxDEV(\"tbody\", {\n children: [/*#__PURE__*/_jsxDEV(\"tr\", {\n children: [/*#__PURE__*/_jsxDEV(\"th\", {\n children: \"Website\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 201,\n columnNumber: 19\n }, this), /*#__PURE__*/_jsxDEV(\"th\", {\n children: \"Prefix\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 202,\n columnNumber: 19\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 200,\n columnNumber: 17\n }, this), items]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 199,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 198,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 197,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"header\", {\n id: \"modal-footer\",\n children: [/*#__PURE__*/_jsxDEV(\"a\", {\n href: \"https://github.com/jeroenpardon/\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-github-box\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 210,\n columnNumber: 54\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 210,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n href: \"https://materialdesignicons.com/\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-material-design\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 211,\n columnNumber: 54\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 211,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"sneaky\",\n children: [/*#__PURE__*/_jsxDEV(\"input\", {\n type: \"checkbox\",\n id: \"contenttype\",\n onChange: \"nsfw(this)\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 212,\n columnNumber: 35\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n for: \"contenttype\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-domino-mask\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 213,\n columnNumber: 36\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 213,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 212,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 209,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 166,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 165,\n columnNumber: 5\n }, this);\n}\n\n_c9 = ModalMenu;\n\nfunction Provider(props) {\n return /*#__PURE__*/_jsxDEV(\"tr\", {\n children: [/*#__PURE__*/_jsxDEV(\"td\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: props.provider.url,\n children: props.provider.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 223,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 223,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"td\", {\n children: props.provider.prefix\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 224,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 222,\n columnNumber: 5\n }, this);\n}\n\n_c10 = Provider;\n\nfunction ModalInit() {\n return /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"modal_init\",\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n className: \"btn\",\n href: \"#modal\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify icon\",\n \"data-icon\": \"mdi-xbox-controller-menu\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 233,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 232,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 231,\n columnNumber: 5\n }, this);\n}\n\n_c11 = ModalInit;\nReactDOM.render( /*#__PURE__*/_jsxDEV(Homepage, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 240,\n columnNumber: 3\n}, this), document.getElementById('root')); //Functions below this line are for calculating data for\n//other functions\n\nfunction date() {\n let currentDate = new Date();\n let dateOptions = {\n weekday: \"long\",\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\"\n };\n let date = currentDate.toLocaleDateString(\"en-GB\", dateOptions);\n return date;\n}\n\nfunction fixDigits(k) {\n if (k < 10) {\n return \"0\" + k;\n } else {\n return k;\n }\n}\n\nfunction greet() {\n let currentTime = new Date();\n let greet = Math.floor(currentTime.getHours() / 6);\n let easterEggChance = Math.floor(Math.random() * 100);\n\n let greetings = require('./messages.json');\n\n let timeBased = [];\n let easterEggs = [];\n\n for (var i = 0; i < greetings.messages.length; i++) {\n if (greetings.messages[i].easteregg === \"FALSE\") {\n timeBased = timeBased.concat(greetings.messages[i]);\n } else {\n easterEggs = easterEggs.concat(greetings.messages[i]);\n }\n }\n\n if (easterEggChance > 10) {\n return timeBased[greet].message;\n } else {\n let easterEggText = Math.floor(Math.random() * easterEggs.length);\n return easterEggs[easterEggText].message;\n }\n}\n\nfunction Clock() {\n _s();\n\n const [date, setDate] = useState(new Date());\n\n function refreshClock() {\n setDate(new Date());\n }\n\n useEffect(() => {\n const timerId = setInterval(refreshClock, 1000);\n return function cleanup() {\n clearInterval(timerId);\n };\n }, []);\n var hour = date.getHours();\n var minutes = date.getMinutes(); //var seconds = date.getSeconds();\n\n var midday = \"AM\";\n midday = hour >= 12 ? \"PM\" : \"AM\";\n hour = hour === 0 ? 12 : hour > 12 ? hour - 12 : hour;\n minutes = fixDigits(minutes); //seconds = fixDigits(seconds);\n\n let time = hour + \":\" + minutes + \" \" + midday;\n return /*#__PURE__*/_jsxDEV(\"h2\", {\n id: \"clock\",\n children: time\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 311,\n columnNumber: 5\n }, this);\n}\n\n_s(Clock, \"Gqi45WOZhU2c0BLYX0HoJeiR0fk=\");\n\n_c12 = Clock;\n\nfunction getApps() {\n let applications = require('./apps.json');\n\n return applications;\n}\n\nfunction getLinks() {\n let links = require('./links.json');\n\n return links;\n}\n\nfunction getProviders() {\n let providers = require('./providers.json');\n\n return providers;\n}\n\nfunction handleKeyPress(e) {\n var sindex = 0;\n var cycle = false;\n var key = e.keyCode || e.which;\n var text = e.value.replaceAll(\"+\", \"%2B\");\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n\n if (key == 13) {\n // Search functions\n search(text);\n }\n\n if (key == 9) {\n // Tab Completion Functions\n e.preventDefault();\n e.stopPropagation();\n\n if (text[0] === ';') {\n switch (option) {\n case 't':\n var streamers = ['admiralbahroo', 'moonmoon_ow', 'witwix'];\n\n if (!subtext || cycle) {\n cycle = true;\n if (sindex > streamers.length - 1) sindex = 0;\n document.getElementById(\"keywords\").value = ';t ' + streamers[sindex++];\n return;\n }\n\n for (var streamer of streamers) {\n if (subtext === streamer.substr(0, subtext.length)) {\n document.getElementById(\"keywords\").value = ';t ' + streamer;\n return;\n }\n }\n\n break;\n }\n }\n }\n\n if (key == 32) {\n //Space to go to search\n updateLabel(text);\n }\n\n sindex = 0;\n cycle = false;\n updateLabel(text);\n}\n\nfunction updateLabel(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n\n if (text[0] === '/') {\n // if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n document.getElementById(\"searchType\").innerHTML = \"Allmusic search\";\n break;\n\n case \"d\":\n document.getElementById(\"searchType\").innerHTML = \"Duck Duck Go search\";\n break;\n\n case \"di\":\n document.getElementById(\"searchType\").innerHTML = \"Discogs search\";\n break;\n\n case \"i\":\n document.getElementById(\"searchType\").innerHTML = \"IMDB search\";\n break;\n\n case \"m\":\n document.getElementById(\"searchType\").innerHTML = \"TheMovieDB search\";\n break;\n\n case \"r\":\n document.getElementById(\"searchType\").innerHTML = \"Reddit search\";\n break;\n\n case \"q\":\n document.getElementById(\"searchType\").innerHTML = \"Qwant search\";\n break;\n\n case \"so\":\n document.getElementById(\"searchType\").innerHTML = \"Soundcloud search\";\n break;\n\n case \"s\":\n document.getElementById(\"searchType\").innerHTML = \"Spotify search\";\n break;\n\n case \"tv\":\n document.getElementById(\"searchType\").innerHTML = \"TheTVDB search\";\n break;\n\n case \"t\":\n document.getElementById(\"searchType\").innerHTML = \"Trakt search\";\n break;\n\n case \"y\":\n document.getElementById(\"searchType\").innerHTML = \"YouTube search\";\n break;\n\n case \"w\":\n document.getElementById(\"searchType\").innerHTML = \"Wikipedia search\";\n break;\n\n case \"p\":\n document.getElementById(\"searchType\").innerHTML = \"Plex search\";\n break;\n\n case \"rt\":\n document.getElementById(\"searchType\").innerHTML = \"Rotten Tomatoes search\";\n break;\n\n default:\n document.getElementById(\"searchType\").innerHTML = \"Invalid search\";\n break;\n }\n } else {\n document.getElementById(\"searchType\").innerHTML = \"Google search\";\n }\n}\n\nfunction search(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n\n if (text[0] === '/') {\n if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n window.location = \"https://www.allmusic.com/search/all/\" + subtext;\n break;\n\n case \"d\":\n window.location = \"https://duckduckgo.com/?q=\" + subtext;\n break;\n\n case \"di\":\n window.location = \"https://www.discogs.com/search/?q=\" + subtext;\n break;\n\n case \"i\":\n window.location = \"https://www.imdb.com/find?q=\" + subtext;\n break;\n\n case \"m\":\n window.location = \"https://www.themoviedb.org/search?query=\" + subtext;\n break;\n\n case \"r\":\n window.location = \"https://www.reddit.com/search?q=\" + subtext;\n break;\n\n case \"q\":\n window.location = \"https://www.qwant.com/?q=\" + subtext;\n break;\n\n case \"so\":\n window.location = \"https://soundcloud.com/search?q=\" + subtext;\n break;\n\n case \"s\":\n window.location = \"https://open.spotify.com/search/results/\" + subtext;\n break;\n\n case \"t\":\n window.location = \"https://trakt.tv/search?query=\" + subtext;\n break;\n\n case \"tv\":\n window.location = \"https://www.thetvdb.com/search?query=\" + subtext;\n break;\n\n case \"y\":\n window.location = \"https://www.youtube.com/results?search_query=\" + subtext;\n break;\n\n case \"w\":\n window.location = \"https://en.wikipedia.org/w/index.php?search=\" + subtext;\n break;\n\n case \"p\":\n window.location = \"https://app.plex.tv/desktop/#!/search?query=\" + subtext;\n break;\n\n case \"rt\":\n window.location = \"https://www.rottentomatoes.com/search?search=\" + subtext;\n break;\n }\n } else {\n var option = text.substr(1);\n\n switch (option) {\n case \"d\":\n window.location = \"https://www.duckduckgo.com\";\n break;\n\n case \"y\":\n window.location = \"https://www.youtube.com\";\n break;\n\n case \"r\":\n window.location = \"https://reddit.com\";\n break;\n\n case \"s\":\n window.location = \"https://open.spotify.com\";\n break;\n }\n }\n } else if (validURL(text)) {\n if (containsProtocol(text)) window.location = text;else window.location = \"https://\" + text;\n } else {\n window.location = \"https://www.google.com/search?q=\" + text;\n }\n} // Source: https://stackoverflow.com/questions/5717093/check-if-a-javascript-string-is-a-url\n\n\nfunction validURL(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/)?' + // protocol\n '((([a-z\\\\d]([a-z\\\\d-]*[a-z\\\\d])*)\\\\.)+[a-z]{2,}|' + // domain name\n '((\\\\d{1,3}\\\\.){3}\\\\d{1,3}))' + // OR ip (v4) address\n '(\\\\:\\\\d+)?(\\\\/[-a-z\\\\d%_.~+]*)*' + // port and path\n '(\\\\?[;&a-z\\\\d%_.~+=-]*)?' + // query string\n '(\\\\#[-a-z\\\\d_]*)?$', 'i'); // fragment locator\n\n return !!pattern.test(str);\n}\n\nfunction containsProtocol(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/){1}.*', 'i');\n return !!pattern.test(str);\n}\n\nString.prototype.replaceAll = function (search, replacement) {\n var target = this;\n return target.split(search).join(replacement);\n};\n\nvar _c, _c2, _c3, _c4, _c5, _c6, _c7, _c8, _c9, _c10, _c11, _c12;\n\n$RefreshReg$(_c, \"Homepage\");\n$RefreshReg$(_c2, \"Search\");\n$RefreshReg$(_c3, \"Header\");\n$RefreshReg$(_c4, \"Applications\");\n$RefreshReg$(_c5, \"App\");\n$RefreshReg$(_c6, \"Bookmarks\");\n$RefreshReg$(_c7, \"LinkGroups\");\n$RefreshReg$(_c8, \"LinkItem\");\n$RefreshReg$(_c9, \"ModalMenu\");\n$RefreshReg$(_c10, \"Provider\");\n$RefreshReg$(_c11, \"ModalInit\");\n$RefreshReg$(_c12, \"Clock\");","map":{"version":3,"sources":["/home/seanedmunds/dev/home-page/src/index.js"],"names":["React","useState","useEffect","ReactDOM","Homepage","date","greet","Search","handleKeyPress","Event","Header","props","Applications","appList","getApps","items","i","apps","length","push","name","url","icon","NSFW","App","classNameType","hrefUrl","iconName","Bookmarks","bookmarkList","getLinks","bookmarks","category","links","LinkGroups","LinkItem","link","ModalMenu","providers","getProviders","Provider","provider","prefix","ModalInit","render","document","getElementById","currentDate","Date","dateOptions","weekday","year","month","day","toLocaleDateString","fixDigits","k","currentTime","Math","floor","getHours","easterEggChance","random","greetings","require","timeBased","easterEggs","messages","easteregg","concat","message","easterEggText","Clock","setDate","refreshClock","timerId","setInterval","cleanup","clearInterval","hour","minutes","getMinutes","midday","time","applications","e","sindex","cycle","key","keyCode","which","text","value","replaceAll","option","substr","indexOf","subtext","search","preventDefault","stopPropagation","streamers","streamer","updateLabel","innerHTML","window","location","validURL","containsProtocol","str","pattern","RegExp","test","String","prototype","replacement","target","split","join"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { useState, useEffect } from 'react';\nimport ReactDOM from 'react-dom';\n//import { unstable_createPortal } from 'react-dom';\nimport './index.css';\n\nfunction Homepage() {\n return (\n \n \n \n
\n \n \n
\n \n \n \n
\n \n \n
\n \n \n
\n \n );\n}\n\nfunction Search() {\n return (\n \n )\n}\n\nfunction Header(props) {\n return (\n \n );\n}\n\nfunction Applications() {\n let appList = getApps();\n var items = [];\n for (var i = 0; i < appList.apps.length; i++) {\n items.push(\n \n );\n }\n return (\n \n Applications
\n \n {items}\n
\n \n );\n}\n\nfunction App(props) {\n let classNameType = props.NSFW + \"-content\";\n let hrefUrl = \"https://\" + props.url;\n let iconName = \"mdi-\" + props.icon;\n return (\n \n );\n}\n\nfunction Bookmarks() {\n let bookmarkList = getLinks();\n var items = [];\n for (var i = 0; i < bookmarkList.bookmarks.length; i++) {\n items.push(\n \n );\n }\n return (\n \n Bookmarks
\n \n {items}\n
\n \n );\n}\n\nfunction LinkGroups(props) {\n var items = [];\n for (var i = 0; i < props.links.length; i++) {\n items.push(\n \n );\n }\n return (\n \n
{props.category}
\n {items}\n \n );\n}\n\nfunction LinkItem(props) {\n return (\n \n );\n}\n\nfunction ModalMenu() {\n var providers = getProviders();\n var items = [];\n for (var i = 0; i < providers.providers.length; i++) {\n items.push(\n \n );\n }\n return (\n \n \n \n\n
Color themes
\n\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n\n\n
Search options
\n
\n \n \n \n | Website | \n Prefix | \n
\n {items}\n \n
\n \n\n \n
\n \n );\n}\n\nfunction Provider(props) {\n return (\n \n | {props.provider.name} | \n {props.provider.prefix} | \n
\n );\n}\n\nfunction ModalInit() {\n return (\n \n );\n}\n\nReactDOM.render(\n ,\n document.getElementById('root')\n);\n\n//Functions below this line are for calculating data for\n//other functions\n\nfunction date() {\n let currentDate = new Date();\n let dateOptions = {\n weekday: \"long\",\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\"\n };\n let date = currentDate.toLocaleDateString(\"en-GB\", dateOptions);\n return date;\n}\nfunction fixDigits(k) {\n if (k < 10) {\n return \"0\" + k;\n }\n else {\n return k;\n }\n}\nfunction greet() {\n let currentTime = new Date();\n let greet = Math.floor(currentTime.getHours() / 6);\n let easterEggChance = Math.floor(Math.random() * 100);\n let greetings = require('./messages.json');\n let timeBased = [];\n let easterEggs = [];\n for (var i = 0; i < greetings.messages.length; i++) {\n if (greetings.messages[i].easteregg === \"FALSE\") {\n timeBased = timeBased.concat(greetings.messages[i]);\n } else {\n easterEggs = easterEggs.concat(greetings.messages[i]);\n }\n }\n if (easterEggChance > 10) {\n return timeBased[greet].message;\n } else {\n let easterEggText = Math.floor(Math.random() * easterEggs.length);\n return easterEggs[easterEggText].message;\n }\n}\nfunction Clock() {\n const [date, setDate] = useState(new Date());\n\n function refreshClock() {\n setDate(new Date());\n }\n useEffect(() => {\n const timerId = setInterval(refreshClock, 1000);\n return function cleanup() {\n clearInterval(timerId);\n };\n }, []);\n\n var hour = date.getHours();\n var minutes = date.getMinutes();\n //var seconds = date.getSeconds();\n var midday = \"AM\";\n midday = (hour >= 12) ? \"PM\" : \"AM\";\n hour = (hour === 0) ? 12 : ((hour > 12) ? (hour - 12) : hour);\n minutes = fixDigits(minutes);\n //seconds = fixDigits(seconds);\n let time = hour + \":\" + minutes + \" \" + midday;\n\n return (\n {time}
\n\n );\n}\nfunction getApps() {\n let applications = require('./apps.json');\n return applications;\n}\nfunction getLinks() {\n let links = require('./links.json');\n return links;\n}\nfunction getProviders() {\n let providers = require('./providers.json');\n return providers;\n}\n\nfunction handleKeyPress(e) {\n var sindex = 0;\n var cycle = false;\n var key = e.keyCode || e.which;\n var text = e.value.replaceAll(\"+\", \"%2B\");\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n if (key == 13) { // Search functions\n search(text);\n }\n if (key == 9) { // Tab Completion Functions\n e.preventDefault();\n e.stopPropagation();\n if (text[0] === ';') {\n switch (option) {\n case 't':\n var streamers = ['admiralbahroo', 'moonmoon_ow', 'witwix'];\n if (!subtext || cycle) {\n cycle = true;\n if (sindex > streamers.length - 1) sindex = 0;\n document.getElementById(\"keywords\").value = ';t ' + streamers[sindex++];\n return;\n }\n for (var streamer of streamers) {\n if (subtext === streamer.substr(0, subtext.length)) {\n document.getElementById(\"keywords\").value = ';t ' + streamer;\n return;\n }\n }\n break;\n }\n }\n }\n if(key == 32){ //Space to go to search\nupdateLabel(text);\n }\n sindex = 0;\n cycle = false;\n updateLabel(text);\n}\n\nfunction updateLabel(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n if (text[0] === '/') {\n// if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n document.getElementById(\"searchType\").innerHTML = \"Allmusic search\";\n break;\n case \"d\":\n document.getElementById(\"searchType\").innerHTML = \"Duck Duck Go search\";\n break;\n case \"di\":\n document.getElementById(\"searchType\").innerHTML = \"Discogs search\";\n break;\n case \"i\":\n document.getElementById(\"searchType\").innerHTML = \"IMDB search\";\n break;\n case \"m\":\n document.getElementById(\"searchType\").innerHTML = \"TheMovieDB search\";\n break;\n case \"r\":\n document.getElementById(\"searchType\").innerHTML = \"Reddit search\";\n break;\n case \"q\":\n document.getElementById(\"searchType\").innerHTML = \"Qwant search\";\n break;\n case \"so\":\n document.getElementById(\"searchType\").innerHTML = \"Soundcloud search\";\n break;\n case \"s\":\n document.getElementById(\"searchType\").innerHTML = \"Spotify search\";\n break;\n case \"tv\":\n document.getElementById(\"searchType\").innerHTML = \"TheTVDB search\";\n break;\n case \"t\":\n document.getElementById(\"searchType\").innerHTML = \"Trakt search\";\n break;\n case \"y\":\n document.getElementById(\"searchType\").innerHTML = \"YouTube search\";\n break;\n case \"w\":\n document.getElementById(\"searchType\").innerHTML = \"Wikipedia search\";\n break;\n case \"p\":\n document.getElementById(\"searchType\").innerHTML = \"Plex search\";\n break;\n case \"rt\":\n document.getElementById(\"searchType\").innerHTML = \"Rotten Tomatoes search\";\n break;\n default:\n document.getElementById(\"searchType\").innerHTML = \"Invalid search\";\n break;\n }\n}else {\n document.getElementById(\"searchType\").innerHTML = \"Google search\";\n }\n}\n\nfunction search(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n if (text[0] === '/') {\n if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n window.location = \"https://www.allmusic.com/search/all/\" + subtext;\n break;\n case \"d\":\n window.location = \"https://duckduckgo.com/?q=\" + subtext;\n break;\n case \"di\":\n window.location = \"https://www.discogs.com/search/?q=\" + subtext;\n break;\n case \"i\":\n window.location = \"https://www.imdb.com/find?q=\" + subtext;\n break;\n case \"m\":\n window.location = \"https://www.themoviedb.org/search?query=\" + subtext;\n break;\n case \"r\":\n window.location = \"https://www.reddit.com/search?q=\" + subtext;\n break;\n case \"q\":\n window.location = \"https://www.qwant.com/?q=\" + subtext;\n break;\n case \"so\":\n window.location = \"https://soundcloud.com/search?q=\" + subtext;\n break;\n case \"s\":\n window.location = \"https://open.spotify.com/search/results/\" + subtext;\n break;\n case \"t\":\n window.location = \"https://trakt.tv/search?query=\" + subtext;\n break;\n case \"tv\":\n window.location = \"https://www.thetvdb.com/search?query=\" + subtext;\n break;\n case \"y\":\n window.location = \"https://www.youtube.com/results?search_query=\" + subtext;\n break;\n case \"w\":\n window.location = \"https://en.wikipedia.org/w/index.php?search=\" + subtext;\n break;\n case \"p\":\n window.location = \"https://app.plex.tv/desktop/#!/search?query=\" + subtext;\n break;\n case \"rt\":\n window.location = \"https://www.rottentomatoes.com/search?search=\" + subtext;\n break;\n }\n } else {\n var option = text.substr(1);\n switch (option) {\n case \"d\":\n window.location = \"https://www.duckduckgo.com\";\n break;\n case \"y\":\n window.location = \"https://www.youtube.com\";\n break;\n case \"r\":\n window.location = \"https://reddit.com\";\n break;\n case \"s\":\n window.location = \"https://open.spotify.com\";\n break;\n }\n }\n } else if (validURL(text)) {\n if (containsProtocol(text))\n window.location = text;\n else\n window.location = \"https://\" + text;\n } else {\n window.location = \"https://www.google.com/search?q=\" + text;\n }\n}\n\n// Source: https://stackoverflow.com/questions/5717093/check-if-a-javascript-string-is-a-url\nfunction validURL(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/)?' + // protocol\n '((([a-z\\\\d]([a-z\\\\d-]*[a-z\\\\d])*)\\\\.)+[a-z]{2,}|' + // domain name\n '((\\\\d{1,3}\\\\.){3}\\\\d{1,3}))' + // OR ip (v4) address\n '(\\\\:\\\\d+)?(\\\\/[-a-z\\\\d%_.~+]*)*' + // port and path\n '(\\\\?[;&a-z\\\\d%_.~+=-]*)?' + // query string\n '(\\\\#[-a-z\\\\d_]*)?$', 'i'); // fragment locator\n return !!pattern.test(str);\n}\n\nfunction containsProtocol(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/){1}.*', 'i');\n return !!pattern.test(str);\n}\n\nString.prototype.replaceAll = function(search, replacement) {\n var target = this;\n return target.split(search).join(replacement);\n};"]},"metadata":{},"sourceType":"module"}
\ No newline at end of file
diff --git a/node_modules/.cache/babel-loader/57cfa08b0190b174cac777d268941efa.json b/node_modules/.cache/babel-loader/57cfa08b0190b174cac777d268941efa.json
new file mode 100644
index 00000000..638a4959
--- /dev/null
+++ b/node_modules/.cache/babel-loader/57cfa08b0190b174cac777d268941efa.json
@@ -0,0 +1 @@
+{"ast":null,"code":"var _jsxFileName = \"/home/seanedmunds/dev/home-page/src/index.js\",\n _s = $RefreshSig$();\n\nimport React from 'react';\nimport { useState, useEffect } from 'react';\nimport ReactDOM from 'react-dom'; //import { unstable_createPortal } from 'react-dom';\n\nimport './index.css';\nimport { jsxDEV as _jsxDEV } from \"react/jsx-dev-runtime\";\n\nfunction Homepage() {\n return /*#__PURE__*/_jsxDEV(\"main\", {\n id: \"container\",\n className: \"fade\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Search, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 11,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 10,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Header, {\n date: date(),\n greet: greet()\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 14,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 13,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Applications, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 20,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 19,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Bookmarks, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 23,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 22,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(ModalMenu, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 26,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 25,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(ModalInit, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 29,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 28,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 9,\n columnNumber: 5\n }, this);\n}\n\n_c = Homepage;\n\nfunction Search() {\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"search\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"abackground\",\n children: [/*#__PURE__*/_jsxDEV(\"input\", {\n name: \"keywords\",\n type: \"text\",\n className: \"keyword\",\n id: \"keywords\",\n size: \"50\",\n spellCheck: \"true\",\n placeholder: \"\"\n /*onFocus={this.placeholder = \"\"} onBlur={this.placeholder = ''}*/\n ,\n autoComplete: \"off\",\n autoFocus: \"true\",\n onKeyUp: handleKeyPress(event)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 39,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n id: \"searchType\",\n className: \"Input-label\",\n children: \"Google search\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 40,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 38,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 37,\n columnNumber: 5\n }, this);\n}\n\n_c2 = Search;\n\nfunction Header(props) {\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"header\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n id: \"greeting_block\",\n children: /*#__PURE__*/_jsxDEV(\"h1\", {\n id: \"header_greet\",\n children: props.greet\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 50,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 49,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"date_block\",\n children: [/*#__PURE__*/_jsxDEV(\"h2\", {\n id: \"header_date\",\n children: props.date\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 53,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(Clock, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 54,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 52,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 48,\n columnNumber: 5\n }, this);\n}\n\n_c3 = Header;\n\nfunction Applications() {\n let appList = getApps();\n var items = [];\n\n for (var i = 0; i < appList.apps.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(App, {\n name: appList.apps[i].name,\n url: appList.apps[i].url,\n icon: appList.apps[i].icon,\n NSFW: appList.apps[i].NSFW\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 65,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"apps\",\n children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n children: \"Applications\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 76,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"apps_loop\",\n children: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 77,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 75,\n columnNumber: 5\n }, this);\n}\n\n_c4 = Applications;\n\nfunction App(props) {\n let classNameType = props.NSFW + \"-content\";\n let hrefUrl = \"https://\" + props.url;\n let iconName = \"mdi-\" + props.icon;\n return /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: hrefUrl,\n className: classNameType,\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_item\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_icon\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify icon\",\n \"data-icon\": iconName\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 93,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 92,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_text\",\n children: [/*#__PURE__*/_jsxDEV(\"span\", {\n id: \"app-name\",\n children: props.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 96,\n columnNumber: 13\n }, this), /*#__PURE__*/_jsxDEV(\"span\", {\n id: \"app-address\",\n children: props.url\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 97,\n columnNumber: 13\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 95,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 91,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 90,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 89,\n columnNumber: 5\n }, this);\n}\n\n_c5 = App;\n\nfunction Bookmarks() {\n let bookmarkList = getLinks();\n var items = [];\n\n for (var i = 0; i < bookmarkList.bookmarks.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(LinkGroups, {\n category: bookmarkList.bookmarks[i].category,\n links: bookmarkList.bookmarks[i].links\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 110,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"links\",\n children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n children: \"Bookmarks\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 119,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"links_loop\",\n children: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 120,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 118,\n columnNumber: 5\n }, this);\n}\n\n_c6 = Bookmarks;\n\nfunction LinkGroups(props) {\n var items = [];\n\n for (var i = 0; i < props.links.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(LinkItem, {\n link: props.links[i]\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 131,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"links_item\",\n children: [/*#__PURE__*/_jsxDEV(\"h4\", {\n children: props.category\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 139,\n columnNumber: 7\n }, this), items]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 138,\n columnNumber: 5\n }, this);\n}\n\n_c7 = LinkGroups;\n\nfunction LinkItem(props) {\n return /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: props.link.url,\n className: \"theme_color-border theme_text-select\",\n children: props.link.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 148,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 147,\n columnNumber: 5\n }, this);\n}\n\n_c8 = LinkItem;\n\nfunction ModalMenu() {\n var providers = getProviders();\n var items = [];\n\n for (var i = 0; i < providers.providers.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(Provider, {\n provider: providers.providers[i]\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 158,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"modal\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n children: [/*#__PURE__*/_jsxDEV(\"header\", {\n id: \"modal-header\",\n children: [/*#__PURE__*/_jsxDEV(\"h1\", {\n children: \"Options\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 168,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n href: \"#\",\n title: \"Close\",\n className: \"modal-close\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-close\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 170,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 169,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 167,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"h2\", {\n children: \"Color themes\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 174,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"modal-theme\",\n children: [/*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"blackboard\",\n className: \"theme-button theme-blackboard\",\n children: \"Blackboard\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 177,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"gazette\",\n className: \"theme-button theme-gazette\",\n children: \"Gazette\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 178,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"espresso\",\n className: \"theme-button theme-espresso\",\n children: \"Espresso\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 179,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cab\",\n className: \"theme-button theme-cab\",\n children: \"Cab\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 180,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cloud\",\n className: \"theme-button theme-cloud\",\n children: \"Cloud\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 181,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"lime\",\n className: \"theme-button theme-lime\",\n children: \"Lime\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 182,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"passion\",\n className: \"theme-button theme-passion\",\n children: \"Passion\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 183,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"blues\",\n className: \"theme-button theme-blues\",\n children: \"Blues\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 184,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"chalk\",\n className: \"theme-button theme-chalk\",\n children: \"Chalk\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 185,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"tron\",\n className: \"theme-button theme-tron\",\n children: \"Tron\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 186,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"paper\",\n className: \"theme-button theme-paper\",\n children: \"Paper\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 187,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cyberpunk\",\n className: \"theme-button theme-cyberpunk\",\n children: \"Cyberpunk\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 188,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"quadra\",\n className: \"theme-button theme-panam\",\n children: \"Quadra\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 189,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"panam\",\n className: \"theme-button theme-panam\",\n children: \"Panam\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 190,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"touch\",\n className: \"theme-button theme-touch\",\n children: \"Touch\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 191,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"peek\",\n className: \"theme-button theme-peek\",\n children: \"Peek\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 192,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 176,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"h2\", {\n children: \"Search options\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 196,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"providers\",\n children: /*#__PURE__*/_jsxDEV(\"table\", {\n children: /*#__PURE__*/_jsxDEV(\"tbody\", {\n children: [/*#__PURE__*/_jsxDEV(\"tr\", {\n children: [/*#__PURE__*/_jsxDEV(\"th\", {\n children: \"Website\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 201,\n columnNumber: 19\n }, this), /*#__PURE__*/_jsxDEV(\"th\", {\n children: \"Prefix\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 202,\n columnNumber: 19\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 200,\n columnNumber: 17\n }, this), items]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 199,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 198,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 197,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"header\", {\n id: \"modal-footer\",\n children: [/*#__PURE__*/_jsxDEV(\"a\", {\n href: \"https://github.com/jeroenpardon/\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-github-box\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 210,\n columnNumber: 54\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 210,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n href: \"https://materialdesignicons.com/\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-material-design\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 211,\n columnNumber: 54\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 211,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"sneaky\",\n children: [/*#__PURE__*/_jsxDEV(\"input\", {\n type: \"checkbox\",\n id: \"contenttype\",\n onChange: \"nsfw(this)\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 212,\n columnNumber: 35\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n for: \"contenttype\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-domino-mask\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 213,\n columnNumber: 36\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 213,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 212,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 209,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 166,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 165,\n columnNumber: 5\n }, this);\n}\n\n_c9 = ModalMenu;\n\nfunction Provider(props) {\n return /*#__PURE__*/_jsxDEV(\"tr\", {\n children: [/*#__PURE__*/_jsxDEV(\"td\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: props.provider.url,\n children: props.provider.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 223,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 223,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"td\", {\n children: props.provider.prefix\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 224,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 222,\n columnNumber: 5\n }, this);\n}\n\n_c10 = Provider;\n\nfunction ModalInit() {\n return /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"modal_init\",\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n className: \"btn\",\n href: \"#modal\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify icon\",\n \"data-icon\": \"mdi-xbox-controller-menu\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 233,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 232,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 231,\n columnNumber: 5\n }, this);\n}\n\n_c11 = ModalInit;\nReactDOM.render( /*#__PURE__*/_jsxDEV(Homepage, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 240,\n columnNumber: 3\n}, this), document.getElementById('root')); //Functions below this line are for calculating data for\n//other functions\n\nfunction date() {\n let currentDate = new Date();\n let dateOptions = {\n weekday: \"long\",\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\"\n };\n let date = currentDate.toLocaleDateString(\"en-GB\", dateOptions);\n return date;\n}\n\nfunction fixDigits(k) {\n if (k < 10) {\n return \"0\" + k;\n } else {\n return k;\n }\n}\n\nfunction greet() {\n let currentTime = new Date();\n let greet = Math.floor(currentTime.getHours() / 6);\n let easterEggChance = Math.floor(Math.random() * 100);\n\n let greetings = require('./messages.json');\n\n let timeBased = [];\n let easterEggs = [];\n\n for (var i = 0; i < greetings.messages.length; i++) {\n if (greetings.messages[i].easteregg === \"FALSE\") {\n timeBased = timeBased.concat(greetings.messages[i]);\n } else {\n easterEggs = easterEggs.concat(greetings.messages[i]);\n }\n }\n\n if (easterEggChance > 10) {\n return timeBased[greet].message;\n } else {\n let easterEggText = Math.floor(Math.random() * easterEggs.length);\n return easterEggs[easterEggText].message;\n }\n}\n\nfunction Clock() {\n _s();\n\n const [date, setDate] = useState(new Date());\n\n function refreshClock() {\n setDate(new Date());\n }\n\n useEffect(() => {\n const timerId = setInterval(refreshClock, 1000);\n return function cleanup() {\n clearInterval(timerId);\n };\n }, []);\n var hour = date.getHours();\n var minutes = date.getMinutes(); //var seconds = date.getSeconds();\n\n var midday = \"AM\";\n midday = hour >= 12 ? \"PM\" : \"AM\";\n hour = hour === 0 ? 12 : hour > 12 ? hour - 12 : hour;\n minutes = fixDigits(minutes); //seconds = fixDigits(seconds);\n\n let time = hour + \":\" + minutes + \" \" + midday;\n return /*#__PURE__*/_jsxDEV(\"h2\", {\n id: \"clock\",\n children: time\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 311,\n columnNumber: 5\n }, this);\n}\n\n_s(Clock, \"Gqi45WOZhU2c0BLYX0HoJeiR0fk=\");\n\n_c12 = Clock;\n\nfunction getApps() {\n let applications = require('./apps.json');\n\n return applications;\n}\n\nfunction getLinks() {\n let links = require('./links.json');\n\n return links;\n}\n\nfunction getProviders() {\n let providers = require('./providers.json');\n\n return providers;\n}\n\nfunction handleKeyPress(e) {\n var key = e.keyCode || e.which;\n var text = document.getElementById(\"keywords\").value.replaceAll(\"+\", \"%2B\");\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n\n if (key == 13) {\n // Search functions\n search(text);\n }\n\n if (key == 9) {\n // Tab Completion Functions\n e.preventDefault();\n e.stopPropagation();\n\n if (text[0] === ';') {\n switch (option) {\n case 't':\n var streamers = ['admiralbahroo', 'moonmoon_ow', 'witwix'];\n\n if (!subtext || cycle) {\n cycle = true;\n if (sindex > streamers.length - 1) sindex = 0;\n document.getElementById(\"keywords\").value = ';t ' + streamers[sindex++];\n return;\n }\n\n for (var streamer of streamers) {\n if (subtext === streamer.substr(0, subtext.length)) {\n document.getElementById(\"keywords\").value = ';t ' + streamer;\n return;\n }\n }\n\n break;\n }\n }\n }\n\n if (key == 32) {\n //Space to go to search\n updateLabel(text);\n }\n\n sindex = 0;\n cycle = false;\n updateLabel(text);\n}\n\nvar _c, _c2, _c3, _c4, _c5, _c6, _c7, _c8, _c9, _c10, _c11, _c12;\n\n$RefreshReg$(_c, \"Homepage\");\n$RefreshReg$(_c2, \"Search\");\n$RefreshReg$(_c3, \"Header\");\n$RefreshReg$(_c4, \"Applications\");\n$RefreshReg$(_c5, \"App\");\n$RefreshReg$(_c6, \"Bookmarks\");\n$RefreshReg$(_c7, \"LinkGroups\");\n$RefreshReg$(_c8, \"LinkItem\");\n$RefreshReg$(_c9, \"ModalMenu\");\n$RefreshReg$(_c10, \"Provider\");\n$RefreshReg$(_c11, \"ModalInit\");\n$RefreshReg$(_c12, \"Clock\");","map":{"version":3,"sources":["/home/seanedmunds/dev/home-page/src/index.js"],"names":["React","useState","useEffect","ReactDOM","Homepage","date","greet","Search","handleKeyPress","event","Header","props","Applications","appList","getApps","items","i","apps","length","push","name","url","icon","NSFW","App","classNameType","hrefUrl","iconName","Bookmarks","bookmarkList","getLinks","bookmarks","category","links","LinkGroups","LinkItem","link","ModalMenu","providers","getProviders","Provider","provider","prefix","ModalInit","render","document","getElementById","currentDate","Date","dateOptions","weekday","year","month","day","toLocaleDateString","fixDigits","k","currentTime","Math","floor","getHours","easterEggChance","random","greetings","require","timeBased","easterEggs","messages","easteregg","concat","message","easterEggText","Clock","setDate","refreshClock","timerId","setInterval","cleanup","clearInterval","hour","minutes","getMinutes","midday","time","applications","e","key","keyCode","which","text","value","replaceAll","option","substr","indexOf","subtext","search","preventDefault","stopPropagation","streamers","cycle","sindex","streamer","updateLabel"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { useState, useEffect } from 'react';\nimport ReactDOM from 'react-dom';\n//import { unstable_createPortal } from 'react-dom';\nimport './index.css';\n\nfunction Homepage() {\n return (\n \n \n \n
\n \n \n
\n \n \n \n
\n \n \n
\n \n \n
\n \n );\n}\n\nfunction Search() {\n return (\n \n )\n}\n\nfunction Header(props) {\n return (\n \n );\n}\n\nfunction Applications() {\n let appList = getApps();\n var items = [];\n for (var i = 0; i < appList.apps.length; i++) {\n items.push(\n \n );\n }\n return (\n \n Applications
\n \n {items}\n
\n \n );\n}\n\nfunction App(props) {\n let classNameType = props.NSFW + \"-content\";\n let hrefUrl = \"https://\" + props.url;\n let iconName = \"mdi-\" + props.icon;\n return (\n \n );\n}\n\nfunction Bookmarks() {\n let bookmarkList = getLinks();\n var items = [];\n for (var i = 0; i < bookmarkList.bookmarks.length; i++) {\n items.push(\n \n );\n }\n return (\n \n Bookmarks
\n \n {items}\n
\n \n );\n}\n\nfunction LinkGroups(props) {\n var items = [];\n for (var i = 0; i < props.links.length; i++) {\n items.push(\n \n );\n }\n return (\n \n
{props.category}
\n {items}\n \n );\n}\n\nfunction LinkItem(props) {\n return (\n \n );\n}\n\nfunction ModalMenu() {\n var providers = getProviders();\n var items = [];\n for (var i = 0; i < providers.providers.length; i++) {\n items.push(\n \n );\n }\n return (\n \n \n \n\n
Color themes
\n\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n\n\n
Search options
\n
\n \n \n \n | Website | \n Prefix | \n
\n {items}\n \n
\n \n\n \n
\n \n );\n}\n\nfunction Provider(props) {\n return (\n \n | {props.provider.name} | \n {props.provider.prefix} | \n
\n );\n}\n\nfunction ModalInit() {\n return (\n \n );\n}\n\nReactDOM.render(\n ,\n document.getElementById('root')\n);\n\n//Functions below this line are for calculating data for\n//other functions\n\nfunction date() {\n let currentDate = new Date();\n let dateOptions = {\n weekday: \"long\",\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\"\n };\n let date = currentDate.toLocaleDateString(\"en-GB\", dateOptions);\n return date;\n}\nfunction fixDigits(k) {\n if (k < 10) {\n return \"0\" + k;\n }\n else {\n return k;\n }\n}\nfunction greet() {\n let currentTime = new Date();\n let greet = Math.floor(currentTime.getHours() / 6);\n let easterEggChance = Math.floor(Math.random() * 100);\n let greetings = require('./messages.json');\n let timeBased = [];\n let easterEggs = [];\n for (var i = 0; i < greetings.messages.length; i++) {\n if (greetings.messages[i].easteregg === \"FALSE\") {\n timeBased = timeBased.concat(greetings.messages[i]);\n } else {\n easterEggs = easterEggs.concat(greetings.messages[i]);\n }\n }\n if (easterEggChance > 10) {\n return timeBased[greet].message;\n } else {\n let easterEggText = Math.floor(Math.random() * easterEggs.length);\n return easterEggs[easterEggText].message;\n }\n}\nfunction Clock() {\n const [date, setDate] = useState(new Date());\n\n function refreshClock() {\n setDate(new Date());\n }\n useEffect(() => {\n const timerId = setInterval(refreshClock, 1000);\n return function cleanup() {\n clearInterval(timerId);\n };\n }, []);\n\n var hour = date.getHours();\n var minutes = date.getMinutes();\n //var seconds = date.getSeconds();\n var midday = \"AM\";\n midday = (hour >= 12) ? \"PM\" : \"AM\";\n hour = (hour === 0) ? 12 : ((hour > 12) ? (hour - 12) : hour);\n minutes = fixDigits(minutes);\n //seconds = fixDigits(seconds);\n let time = hour + \":\" + minutes + \" \" + midday;\n\n return (\n {time}
\n\n );\n}\nfunction getApps() {\n let applications = require('./apps.json');\n return applications;\n}\nfunction getLinks() {\n let links = require('./links.json');\n return links;\n}\nfunction getProviders() {\n let providers = require('./providers.json');\n return providers;\n}\n\nfunction handleKeyPress(e) {\n var key = e.keyCode || e.which;\n var text = document.getElementById(\"keywords\").value.replaceAll(\"+\", \"%2B\");\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n if (key == 13) { // Search functions\n search(text);\n }\n if (key == 9) { // Tab Completion Functions\n e.preventDefault();\n e.stopPropagation();\n if (text[0] === ';') {\n switch (option) {\n case 't':\n var streamers = ['admiralbahroo', 'moonmoon_ow', 'witwix'];\n if (!subtext || cycle) {\n cycle = true;\n if (sindex > streamers.length - 1) sindex = 0;\n document.getElementById(\"keywords\").value = ';t ' + streamers[sindex++];\n return;\n }\n for (var streamer of streamers) {\n if (subtext === streamer.substr(0, subtext.length)) {\n document.getElementById(\"keywords\").value = ';t ' + streamer;\n return;\n }\n }\n break;\n }\n }\n }\n if(key == 32){ //Space to go to search\nupdateLabel(text);\n }\n sindex = 0;\n cycle = false;\n updateLabel(text);\n}"]},"metadata":{},"sourceType":"module"}
\ No newline at end of file
diff --git a/node_modules/.cache/babel-loader/59674acb1ec5f443122ffe585991eac7.json b/node_modules/.cache/babel-loader/59674acb1ec5f443122ffe585991eac7.json
new file mode 100644
index 00000000..fc95f4f8
--- /dev/null
+++ b/node_modules/.cache/babel-loader/59674acb1ec5f443122ffe585991eac7.json
@@ -0,0 +1 @@
+{"ast":null,"code":"var _jsxFileName = \"/home/seanedmunds/dev/home-page/src/index.js\",\n _s = $RefreshSig$();\n\nimport React from 'react';\nimport { useState, useEffect } from 'react';\nimport ReactDOM from 'react-dom';\nimport './index.css';\nimport { jsxDEV as _jsxDEV } from \"react/jsx-dev-runtime\";\n\nconst setValueFromLocalStorage = property => {\n let value = localStorage.getItem(property);\n setValue(property, value);\n};\n\nconst setValue = (property, value) => {\n if (value) {\n document.documentElement.style.setProperty(`--${property}`, value);\n const input = document.querySelector(`#${property}`);\n\n if (input) {\n value = value.replace('px', '');\n input.value = value;\n }\n }\n};\n\nfunction Homepage() {\n setTheme();\n return /*#__PURE__*/_jsxDEV(\"main\", {\n id: \"container\",\n className: \"fade\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Search, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 28,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 27,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Header, {\n date: date(),\n greet: greet()\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 31,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 30,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Applications, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 37,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 36,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Bookmarks, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 40,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 39,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(ModalMenu, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 43,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 42,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(ModalInit, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 46,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 45,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 26,\n columnNumber: 5\n }, this);\n}\n\n_c = Homepage;\n\nfunction Search() {\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"search\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"abackground\",\n children: [/*#__PURE__*/_jsxDEV(\"input\", {\n name: \"keywords\",\n type: \"text\",\n className: \"keyword\",\n id: \"keywords\",\n size: \"50\",\n spellCheck: \"true\",\n placeholder: \"\"\n /*onFocus={this.placeholder = \"\"} onBlur={this.placeholder = ''}*/\n ,\n autoComplete: \"off\",\n autoFocus: true,\n onKeyUp: handleKeyPress\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 56,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n id: \"searchType\",\n className: \"Input-label\",\n children: \"Google search\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 57,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 55,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 54,\n columnNumber: 5\n }, this);\n}\n\n_c2 = Search;\n\nfunction Header(props) {\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"header\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n id: \"greeting_block\",\n children: /*#__PURE__*/_jsxDEV(\"h1\", {\n id: \"header_greet\",\n children: props.greet\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 67,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 66,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"date_block\",\n children: [/*#__PURE__*/_jsxDEV(\"h2\", {\n id: \"header_date\",\n children: props.date\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 70,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(Clock, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 71,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 69,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 65,\n columnNumber: 5\n }, this);\n}\n\n_c3 = Header;\n\nfunction Applications() {\n let appList = getApps();\n var items = [];\n\n for (var i = 0; i < appList.apps.length; i++) {\n var safe = appList.apps[i].NSFW;\n var NSFWEnabled = localStorage.getItem(\"contenttype\");\n\n if (safe === \"SAFE\") {\n items.push( /*#__PURE__*/_jsxDEV(App, {\n name: appList.apps[i].name,\n url: appList.apps[i].url,\n icon: appList.apps[i].icon,\n NSFW: appList.apps[i].NSFW\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 85,\n columnNumber: 9\n }, this));\n } else if (safe === \"NSFW\" && NSFWEnabled) {\n items.push( /*#__PURE__*/_jsxDEV(App, {\n name: appList.apps[i].name,\n url: appList.apps[i].url,\n icon: appList.apps[i].icon,\n NSFW: appList.apps[i].NSFW\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 95,\n columnNumber: 9\n }, this));\n } else {}\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"apps\",\n children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n children: \"Applications\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 110,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"apps_loop\",\n children: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 111,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 109,\n columnNumber: 5\n }, this);\n}\n\n_c4 = Applications;\n\nfunction App(props) {\n let classNameType = props.NSFW + \"-content\";\n let hrefUrl = \"https://\" + props.url;\n let iconName = \"mdi-\" + props.icon;\n return /*#__PURE__*/_jsxDEV(\"div\", {\n className: classNameType,\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: hrefUrl,\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_item\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_icon\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify icon\",\n \"data-icon\": iconName\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 128,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 127,\n columnNumber: 13\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_text\",\n children: [/*#__PURE__*/_jsxDEV(\"span\", {\n id: \"app-name\",\n children: props.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 131,\n columnNumber: 15\n }, this), /*#__PURE__*/_jsxDEV(\"span\", {\n id: \"app-address\",\n children: props.url\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 132,\n columnNumber: 15\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 130,\n columnNumber: 13\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 126,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 125,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 124,\n columnNumber: 7\n }, this);\n}\n\n_c5 = App;\n\nfunction Bookmarks() {\n let bookmarkList = getLinks();\n var items = [];\n\n for (var i = 0; i < bookmarkList.bookmarks.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(LinkGroups, {\n category: bookmarkList.bookmarks[i].category,\n links: bookmarkList.bookmarks[i].links\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 145,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"links\",\n children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n children: \"Bookmarks\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 154,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"links_loop\",\n children: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 155,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 153,\n columnNumber: 5\n }, this);\n}\n\n_c6 = Bookmarks;\n\nfunction LinkGroups(props) {\n var items = [];\n\n for (var i = 0; i < props.links.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(LinkItem, {\n link: props.links[i]\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 166,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"links_item\",\n children: [/*#__PURE__*/_jsxDEV(\"h4\", {\n children: props.category\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 174,\n columnNumber: 7\n }, this), items]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 173,\n columnNumber: 5\n }, this);\n}\n\n_c7 = LinkGroups;\n\nfunction LinkItem(props) {\n return /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: props.link.url,\n className: \"theme_color-border theme_text-select\",\n children: props.link.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 183,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 182,\n columnNumber: 5\n }, this);\n}\n\n_c8 = LinkItem;\n\nfunction ModalMenu() {\n var providers = getProviders();\n var items = [];\n\n for (var i = 0; i < providers.providers.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(Provider, {\n provider: providers.providers[i]\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 193,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"modal\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n children: [/*#__PURE__*/_jsxDEV(\"header\", {\n id: \"modal-header\",\n children: [/*#__PURE__*/_jsxDEV(\"h1\", {\n children: \"Options\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 203,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n href: \"#\",\n title: \"Close\",\n className: \"modal-close\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-close\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 205,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 204,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 202,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"h2\", {\n children: \"Color themes\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 209,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"modal-theme\",\n children: [/*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"blackboard\",\n className: \"theme-button theme-blackboard\",\n onClick: updateTheme,\n children: \"Blackboard\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 212,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"gazette\",\n className: \"theme-button theme-gazette\",\n onClick: updateTheme,\n children: \"Gazette\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 213,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"espresso\",\n className: \"theme-button theme-espresso\",\n onClick: updateTheme,\n children: \"Espresso\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 214,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cab\",\n className: \"theme-button theme-cab\",\n onClick: updateTheme,\n children: \"Cab\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 215,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cloud\",\n className: \"theme-button theme-cloud\",\n onClick: updateTheme,\n children: \"Cloud\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 216,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"lime\",\n className: \"theme-button theme-lime\",\n onClick: updateTheme,\n children: \"Lime\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 217,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"passion\",\n className: \"theme-button theme-passion\",\n onClick: updateTheme,\n children: \"Passion\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 218,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"blues\",\n className: \"theme-button theme-blues\",\n onClick: updateTheme,\n children: \"Blues\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 219,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"chalk\",\n className: \"theme-button theme-chalk\",\n onClick: updateTheme,\n children: \"Chalk\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 220,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"tron\",\n className: \"theme-button theme-tron\",\n onClick: updateTheme,\n children: \"Tron\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 221,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"paper\",\n className: \"theme-button theme-paper\",\n onClick: updateTheme,\n children: \"Paper\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 222,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cyberpunk\",\n className: \"theme-button theme-cyberpunk\",\n onClick: updateTheme,\n children: \"Cyberpunk\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 223,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"quadra\",\n className: \"theme-button theme-panam\",\n onClick: updateTheme,\n children: \"Quadra\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 224,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"panam\",\n className: \"theme-button theme-panam\",\n onClick: updateTheme,\n children: \"Panam\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 225,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"touch\",\n className: \"theme-button theme-touch\",\n onClick: updateTheme,\n children: \"Touch\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 226,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"peek\",\n className: \"theme-button theme-peek\",\n onClick: updateTheme,\n children: \"Peek\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 227,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 211,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"h2\", {\n children: \"Search options\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 231,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"providers\",\n children: /*#__PURE__*/_jsxDEV(\"table\", {\n children: /*#__PURE__*/_jsxDEV(\"tbody\", {\n children: [/*#__PURE__*/_jsxDEV(\"tr\", {\n children: [/*#__PURE__*/_jsxDEV(\"th\", {\n children: \"Website\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 236,\n columnNumber: 19\n }, this), /*#__PURE__*/_jsxDEV(\"th\", {\n children: \"Prefix\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 237,\n columnNumber: 19\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 235,\n columnNumber: 17\n }, this), items]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 234,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 233,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 232,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"header\", {\n id: \"modal-footer\",\n children: [/*#__PURE__*/_jsxDEV(\"a\", {\n href: \"https://github.com/jeroenpardon/\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-github-box\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 245,\n columnNumber: 54\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 245,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n href: \"https://materialdesignicons.com/\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-material-design\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 246,\n columnNumber: 54\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 246,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(HideButton, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 247,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 244,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 201,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 200,\n columnNumber: 5\n }, this);\n}\n\n_c9 = ModalMenu;\n\nfunction HideButton() {\n var isChecked = localStorage.getItem(\"contenttype\");\n console.log(isChecked);\n return /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"sneaky\",\n children: [/*#__PURE__*/_jsxDEV(\"input\", {\n type: \"checkbox\",\n id: \"contenttype\",\n checked: isChecked,\n onChange: udpateDisplayedItems\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 259,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n for: \"contenttype\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-domino-mask\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 260,\n columnNumber: 32\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 260,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 258,\n columnNumber: 5\n }, this);\n}\n\n_c10 = HideButton;\n\nfunction Provider(props) {\n return /*#__PURE__*/_jsxDEV(\"tr\", {\n children: [/*#__PURE__*/_jsxDEV(\"td\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: props.provider.url,\n children: props.provider.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 268,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 268,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"td\", {\n children: props.provider.prefix\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 269,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 267,\n columnNumber: 5\n }, this);\n}\n\n_c11 = Provider;\n\nfunction ModalInit() {\n setDisplayedItems();\n return /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"modal_init\",\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n className: \"btn\",\n href: \"#modal\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify icon\",\n \"data-icon\": \"mdi-xbox-controller-menu\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 279,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 278,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 277,\n columnNumber: 5\n }, this);\n}\n\n_c12 = ModalInit;\nReactDOM.render( /*#__PURE__*/_jsxDEV(Homepage, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 286,\n columnNumber: 3\n}, this), document.getElementById('root')); //Functions below this line are for calculating data for\n//other functions\n\nfunction date() {\n let currentDate = new Date();\n let dateOptions = {\n weekday: \"long\",\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\"\n };\n let date = currentDate.toLocaleDateString(\"en-GB\", dateOptions);\n return date;\n}\n\nfunction fixDigits(k) {\n if (k < 10) {\n return \"0\" + k;\n } else {\n return k;\n }\n}\n\nfunction greet() {\n let currentTime = new Date();\n let greet = Math.floor(currentTime.getHours() / 6);\n let easterEggChance = Math.floor(Math.random() * 100);\n\n let greetings = require('./messages.json');\n\n let timeBased = [];\n let easterEggs = [];\n\n for (var i = 0; i < greetings.messages.length; i++) {\n if (greetings.messages[i].easteregg === \"FALSE\") {\n timeBased = timeBased.concat(greetings.messages[i]);\n } else {\n easterEggs = easterEggs.concat(greetings.messages[i]);\n }\n }\n\n if (easterEggChance > 10) {\n return timeBased[greet].message;\n } else {\n let easterEggText = Math.floor(Math.random() * easterEggs.length);\n return easterEggs[easterEggText].message;\n }\n}\n\nfunction Clock() {\n _s();\n\n const [date, setDate] = useState(new Date());\n\n function refreshClock() {\n setDate(new Date());\n }\n\n useEffect(() => {\n const timerId = setInterval(refreshClock, 1000);\n return function cleanup() {\n clearInterval(timerId);\n };\n }, []);\n var hour = date.getHours();\n var minutes = date.getMinutes(); //var seconds = date.getSeconds();\n\n var midday = \"AM\";\n midday = hour >= 12 ? \"PM\" : \"AM\";\n hour = hour === 0 ? 12 : hour > 12 ? hour - 12 : hour;\n minutes = fixDigits(minutes); //seconds = fixDigits(seconds);\n\n let time = hour + \":\" + minutes + \" \" + midday;\n return /*#__PURE__*/_jsxDEV(\"h2\", {\n id: \"clock\",\n children: time\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 357,\n columnNumber: 5\n }, this);\n}\n\n_s(Clock, \"Gqi45WOZhU2c0BLYX0HoJeiR0fk=\");\n\n_c13 = Clock;\n\nfunction getApps() {\n let applications = require('./apps.json');\n\n return applications;\n}\n\nfunction getLinks() {\n let links = require('./links.json');\n\n return links;\n}\n\nfunction getProviders() {\n let providers = require('./providers.json');\n\n return providers;\n}\n\nfunction getThemes() {\n let themes = require('./themes.json');\n\n return themes;\n}\n\nfunction updateTheme(e) {\n var themes = getThemes();\n var themeName = e.target.innerHTML.toLowerCase();\n var index = themes.themes.findIndex(function (item, i) {\n return item.name === themeName;\n });\n localStorage.setItem(\"image-background\", themes.themes[index].imagebackground);\n localStorage.setItem(\"color-background\", themes.themes[index].colorbackground);\n localStorage.setItem(\"color-search-background\", themes.themes[index].colorserachbackground);\n localStorage.setItem(\"color-text-pri\", themes.themes[index].colortextpri);\n localStorage.setItem(\"color-text-acc\", themes.themes[index].colortextacc);\n localStorage.setItem(\"color-border\", themes.themes[index].colorborder); //document.documentElement.style.setProperty(prop, `var(--${themeName}${prop.substring(10)})`);\n\n setTheme();\n}\n\nfunction setTheme() {\n setValueFromLocalStorage('image-background');\n setValueFromLocalStorage('color-background');\n setValueFromLocalStorage('color-search-background');\n setValueFromLocalStorage('color-text-pri');\n setValueFromLocalStorage('color-text-acc');\n setValueFromLocalStorage('color-border');\n setValueFromLocalStorage('content-display');\n}\n\nfunction handleKeyPress(e) {\n var sindex = 0;\n var cycle = false;\n var key = e.keyCode || e.which;\n var text = e.target.value.replaceAll(\"+\", \"%2B\");\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n\n if (key == 13) {\n // Search functions\n search(text);\n }\n\n if (key == 9) {\n // Tab Completion Functions\n e.preventDefault();\n e.stopPropagation();\n\n if (text[0] === ';') {\n switch (option) {\n case 't':\n var streamers = ['admiralbahroo', 'moonmoon_ow', 'witwix'];\n\n if (!subtext || cycle) {\n cycle = true;\n if (sindex > streamers.length - 1) sindex = 0;\n document.getElementById(\"keywords\").value = ';t ' + streamers[sindex++];\n return;\n }\n\n for (var streamer of streamers) {\n if (subtext === streamer.substr(0, subtext.length)) {\n document.getElementById(\"keywords\").value = ';t ' + streamer;\n return;\n }\n }\n\n break;\n }\n }\n }\n\n if (key == 32) {\n //Space to go to search\n updateLabel(text);\n }\n\n sindex = 0;\n cycle = false;\n updateLabel(text);\n}\n\nfunction updateLabel(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n\n if (text[0] === '/') {\n // if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n document.getElementById(\"searchType\").innerHTML = \"Allmusic search\";\n break;\n\n case \"d\":\n document.getElementById(\"searchType\").innerHTML = \"Duck Duck Go search\";\n break;\n\n case \"di\":\n document.getElementById(\"searchType\").innerHTML = \"Discogs search\";\n break;\n\n case \"i\":\n document.getElementById(\"searchType\").innerHTML = \"IMDB search\";\n break;\n\n case \"m\":\n document.getElementById(\"searchType\").innerHTML = \"TheMovieDB search\";\n break;\n\n case \"r\":\n document.getElementById(\"searchType\").innerHTML = \"Reddit search\";\n break;\n\n case \"q\":\n document.getElementById(\"searchType\").innerHTML = \"Qwant search\";\n break;\n\n case \"so\":\n document.getElementById(\"searchType\").innerHTML = \"Soundcloud search\";\n break;\n\n case \"s\":\n document.getElementById(\"searchType\").innerHTML = \"Spotify search\";\n break;\n\n case \"tv\":\n document.getElementById(\"searchType\").innerHTML = \"TheTVDB search\";\n break;\n\n case \"t\":\n document.getElementById(\"searchType\").innerHTML = \"Trakt search\";\n break;\n\n case \"y\":\n document.getElementById(\"searchType\").innerHTML = \"YouTube search\";\n break;\n\n case \"w\":\n document.getElementById(\"searchType\").innerHTML = \"Wikipedia search\";\n break;\n\n case \"p\":\n document.getElementById(\"searchType\").innerHTML = \"Plex search\";\n break;\n\n case \"rt\":\n document.getElementById(\"searchType\").innerHTML = \"Rotten Tomatoes search\";\n break;\n\n default:\n document.getElementById(\"searchType\").innerHTML = \"Invalid search\";\n break;\n }\n } else {\n document.getElementById(\"searchType\").innerHTML = \"Google search\";\n }\n}\n\nfunction search(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n\n if (text[0] === '/') {\n if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n window.location = \"https://www.allmusic.com/search/all/\" + subtext;\n break;\n\n case \"d\":\n window.location = \"https://duckduckgo.com/?q=\" + subtext;\n break;\n\n case \"di\":\n window.location = \"https://www.discogs.com/search/?q=\" + subtext;\n break;\n\n case \"i\":\n window.location = \"https://www.imdb.com/find?q=\" + subtext;\n break;\n\n case \"m\":\n window.location = \"https://www.themoviedb.org/search?query=\" + subtext;\n break;\n\n case \"r\":\n window.location = \"https://www.reddit.com/search?q=\" + subtext;\n break;\n\n case \"q\":\n window.location = \"https://www.qwant.com/?q=\" + subtext;\n break;\n\n case \"so\":\n window.location = \"https://soundcloud.com/search?q=\" + subtext;\n break;\n\n case \"s\":\n window.location = \"https://open.spotify.com/search/results/\" + subtext;\n break;\n\n case \"t\":\n window.location = \"https://trakt.tv/search?query=\" + subtext;\n break;\n\n case \"tv\":\n window.location = \"https://www.thetvdb.com/search?query=\" + subtext;\n break;\n\n case \"y\":\n window.location = \"https://www.youtube.com/results?search_query=\" + subtext;\n break;\n\n case \"w\":\n window.location = \"https://en.wikipedia.org/w/index.php?search=\" + subtext;\n break;\n\n case \"p\":\n window.location = \"https://app.plex.tv/desktop/#!/search?query=\" + subtext;\n break;\n\n case \"rt\":\n window.location = \"https://www.rottentomatoes.com/search?search=\" + subtext;\n break;\n }\n } else {\n var option = text.substr(1);\n\n switch (option) {\n case \"d\":\n window.location = \"https://www.duckduckgo.com\";\n break;\n\n case \"y\":\n window.location = \"https://www.youtube.com\";\n break;\n\n case \"r\":\n window.location = \"https://reddit.com\";\n break;\n\n case \"s\":\n window.location = \"https://open.spotify.com\";\n break;\n }\n }\n } else if (validURL(text)) {\n if (containsProtocol(text)) window.location = text;else window.location = \"https://\" + text;\n } else {\n window.location = \"https://www.google.com/search?q=\" + text;\n }\n}\n\nfunction validURL(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/)?' + // protocol\n '((([a-z\\\\d]([a-z\\\\d-]*[a-z\\\\d])*)\\\\.)+[a-z]{2,}|' + // domain name\n '((\\\\d{1,3}\\\\.){3}\\\\d{1,3}))' + // OR ip (v4) address\n '(\\\\:\\\\d+)?(\\\\/[-a-z\\\\d%_.~+]*)*' + // port and path\n '(\\\\?[;&a-z\\\\d%_.~+=-]*)?' + // query string\n '(\\\\#[-a-z\\\\d_]*)?$', 'i'); // fragment locator\n\n return !!pattern.test(str);\n}\n\nfunction containsProtocol(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/){1}.*', 'i');\n return !!pattern.test(str);\n}\n\nString.prototype.replaceAll = function (search, replacement) {\n var target = this;\n return target.split(search).join(replacement);\n};\n\nfunction udpateDisplayedItems(e) {\n localStorage.setItem('contenttype', e.target.checked);\n\n if (e.target.checked) {\n localStorage.setItem('content-display', 'none');\n } else {\n localStorage.setItem('content-display', 'block');\n }\n\n setDisplayedItems();\n}\n\nfunction setDisplayedItems() {\n setValueFromLocalStorage('contenttype');\n setValueFromLocalStorage('content-display');\n}\n\nvar _c, _c2, _c3, _c4, _c5, _c6, _c7, _c8, _c9, _c10, _c11, _c12, _c13;\n\n$RefreshReg$(_c, \"Homepage\");\n$RefreshReg$(_c2, \"Search\");\n$RefreshReg$(_c3, \"Header\");\n$RefreshReg$(_c4, \"Applications\");\n$RefreshReg$(_c5, \"App\");\n$RefreshReg$(_c6, \"Bookmarks\");\n$RefreshReg$(_c7, \"LinkGroups\");\n$RefreshReg$(_c8, \"LinkItem\");\n$RefreshReg$(_c9, \"ModalMenu\");\n$RefreshReg$(_c10, \"HideButton\");\n$RefreshReg$(_c11, \"Provider\");\n$RefreshReg$(_c12, \"ModalInit\");\n$RefreshReg$(_c13, \"Clock\");","map":{"version":3,"sources":["/home/seanedmunds/dev/home-page/src/index.js"],"names":["React","useState","useEffect","ReactDOM","setValueFromLocalStorage","property","value","localStorage","getItem","setValue","document","documentElement","style","setProperty","input","querySelector","replace","Homepage","setTheme","date","greet","Search","handleKeyPress","Header","props","Applications","appList","getApps","items","i","apps","length","safe","NSFW","NSFWEnabled","push","name","url","icon","App","classNameType","hrefUrl","iconName","Bookmarks","bookmarkList","getLinks","bookmarks","category","links","LinkGroups","LinkItem","link","ModalMenu","providers","getProviders","updateTheme","HideButton","isChecked","console","log","udpateDisplayedItems","Provider","provider","prefix","ModalInit","setDisplayedItems","render","getElementById","currentDate","Date","dateOptions","weekday","year","month","day","toLocaleDateString","fixDigits","k","currentTime","Math","floor","getHours","easterEggChance","random","greetings","require","timeBased","easterEggs","messages","easteregg","concat","message","easterEggText","Clock","setDate","refreshClock","timerId","setInterval","cleanup","clearInterval","hour","minutes","getMinutes","midday","time","applications","getThemes","themes","e","themeName","target","innerHTML","toLowerCase","index","findIndex","item","setItem","imagebackground","colorbackground","colorserachbackground","colortextpri","colortextacc","colorborder","sindex","cycle","key","keyCode","which","text","replaceAll","option","substr","indexOf","subtext","search","preventDefault","stopPropagation","streamers","streamer","updateLabel","window","location","validURL","containsProtocol","str","pattern","RegExp","test","String","prototype","replacement","split","join","checked"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { useState, useEffect } from 'react';\nimport ReactDOM from 'react-dom';\nimport './index.css';\n\nconst setValueFromLocalStorage = property => {\n let value = localStorage.getItem(property);\n setValue(property, value);\n};\nconst setValue = (property, value) => {\n if (value) {\n document.documentElement.style.setProperty(`--${property}`, value);\n\n const input = document.querySelector(`#${property}`);\n if (input) {\n value = value.replace('px', '');\n input.value = value;\n }\n }\n};\n\nfunction Homepage() {\n setTheme();\n \n return (\n \n \n \n
\n \n \n
\n \n \n \n
\n \n \n
\n \n \n
\n \n );\n}\n\nfunction Search() {\n return (\n \n )\n}\n\nfunction Header(props) {\n return (\n \n );\n}\n\nfunction Applications() {\n let appList = getApps();\n var items = [];\n for (var i = 0; i < appList.apps.length; i++) {\n var safe = appList.apps[i].NSFW;\n var NSFWEnabled = localStorage.getItem(\"contenttype\");\n if (safe === \"SAFE\") {\n items.push(\n \n );\n } else if (safe === \"NSFW\" && NSFWEnabled) {\n items.push(\n \n );\n } else {\n \n }\n \n }\n return (\n \n Applications
\n \n {items}\n
\n \n );\n}\n\nfunction App(props) {\n \n let classNameType = props.NSFW + \"-content\";\n let hrefUrl = \"https://\" + props.url;\n let iconName = \"mdi-\" + props.icon;\n return (\n \n );\n}\n\nfunction Bookmarks() {\n let bookmarkList = getLinks();\n var items = [];\n for (var i = 0; i < bookmarkList.bookmarks.length; i++) {\n items.push(\n \n );\n }\n return (\n \n Bookmarks
\n \n {items}\n
\n \n );\n}\n\nfunction LinkGroups(props) {\n var items = [];\n for (var i = 0; i < props.links.length; i++) {\n items.push(\n \n );\n }\n return (\n \n
{props.category}
\n {items}\n \n );\n}\n\nfunction LinkItem(props) {\n return (\n \n );\n}\n\nfunction ModalMenu() {\n var providers = getProviders();\n var items = [];\n for (var i = 0; i < providers.providers.length; i++) {\n items.push(\n \n );\n }\n return (\n \n \n \n\n
Color themes
\n\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n\n\n
Search options
\n
\n \n \n \n | Website | \n Prefix | \n
\n {items}\n \n
\n \n\n \n
\n \n );\n}\n\nfunction HideButton() {\n var isChecked = localStorage.getItem(\"contenttype\");\n console.log(isChecked);\n return(\n \n \n \n
\n );\n}\n\nfunction Provider(props) {\n return (\n \n | {props.provider.name} | \n {props.provider.prefix} | \n
\n );\n}\n\nfunction ModalInit() {\n setDisplayedItems();\n return (\n \n );\n}\n\nReactDOM.render(\n ,\n document.getElementById('root')\n);\n\n//Functions below this line are for calculating data for\n//other functions\n\nfunction date() {\n let currentDate = new Date();\n let dateOptions = {\n weekday: \"long\",\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\"\n };\n let date = currentDate.toLocaleDateString(\"en-GB\", dateOptions);\n return date;\n}\nfunction fixDigits(k) {\n if (k < 10) {\n return \"0\" + k;\n }\n else {\n return k;\n }\n}\nfunction greet() {\n let currentTime = new Date();\n let greet = Math.floor(currentTime.getHours() / 6);\n let easterEggChance = Math.floor(Math.random() * 100);\n let greetings = require('./messages.json');\n let timeBased = [];\n let easterEggs = [];\n for (var i = 0; i < greetings.messages.length; i++) {\n if (greetings.messages[i].easteregg === \"FALSE\") {\n timeBased = timeBased.concat(greetings.messages[i]);\n } else {\n easterEggs = easterEggs.concat(greetings.messages[i]);\n }\n }\n if (easterEggChance > 10) {\n return timeBased[greet].message;\n } else {\n let easterEggText = Math.floor(Math.random() * easterEggs.length);\n return easterEggs[easterEggText].message;\n }\n}\nfunction Clock() {\n const [date, setDate] = useState(new Date());\n\n function refreshClock() {\n setDate(new Date());\n }\n useEffect(() => {\n const timerId = setInterval(refreshClock, 1000);\n return function cleanup() {\n clearInterval(timerId);\n };\n }, []);\n\n var hour = date.getHours();\n var minutes = date.getMinutes();\n //var seconds = date.getSeconds();\n var midday = \"AM\";\n midday = (hour >= 12) ? \"PM\" : \"AM\";\n hour = (hour === 0) ? 12 : ((hour > 12) ? (hour - 12) : hour);\n minutes = fixDigits(minutes);\n //seconds = fixDigits(seconds);\n let time = hour + \":\" + minutes + \" \" + midday;\n\n return (\n {time}
\n\n );\n}\nfunction getApps() {\n let applications = require('./apps.json');\n return applications;\n}\nfunction getLinks() {\n let links = require('./links.json');\n return links;\n}\nfunction getProviders() {\n let providers = require('./providers.json');\n return providers;\n}\nfunction getThemes() {\n let themes = require('./themes.json');\n return themes;\n}\nfunction updateTheme(e) {\n var themes = getThemes();\n var themeName = e.target.innerHTML.toLowerCase();\n var index = themes.themes.findIndex(function(item, i){\n return item.name === themeName\n });\n localStorage.setItem(\"image-background\", themes.themes[index].imagebackground);\n localStorage.setItem(\"color-background\", themes.themes[index].colorbackground);\n localStorage.setItem(\"color-search-background\", themes.themes[index].colorserachbackground);\n localStorage.setItem(\"color-text-pri\",themes.themes[index].colortextpri);\n localStorage.setItem(\"color-text-acc\", themes.themes[index].colortextacc);\n localStorage.setItem(\"color-border\", themes.themes[index].colorborder);\n \n //document.documentElement.style.setProperty(prop, `var(--${themeName}${prop.substring(10)})`);\n setTheme();\n}\nfunction setTheme() {\n setValueFromLocalStorage('image-background');\n setValueFromLocalStorage('color-background');\n setValueFromLocalStorage('color-search-background');\n setValueFromLocalStorage('color-text-pri');\n setValueFromLocalStorage('color-text-acc');\n setValueFromLocalStorage('color-border');\n setValueFromLocalStorage('content-display');\n}\nfunction handleKeyPress(e) {\n var sindex = 0;\n var cycle = false;\n var key = e.keyCode || e.which;\n var text = e.target.value.replaceAll(\"+\", \"%2B\");\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n if (key == 13) { // Search functions\n search(text);\n }\n if (key == 9) { // Tab Completion Functions\n e.preventDefault();\n e.stopPropagation();\n if (text[0] === ';') {\n switch (option) {\n case 't':\n var streamers = ['admiralbahroo', 'moonmoon_ow', 'witwix'];\n if (!subtext || cycle) {\n cycle = true;\n if (sindex > streamers.length - 1) sindex = 0;\n document.getElementById(\"keywords\").value = ';t ' + streamers[sindex++];\n return;\n }\n for (var streamer of streamers) {\n if (subtext === streamer.substr(0, subtext.length)) {\n document.getElementById(\"keywords\").value = ';t ' + streamer;\n return;\n }\n }\n break;\n }\n }\n }\n if(key == 32){ //Space to go to search\nupdateLabel(text);\n }\n sindex = 0;\n cycle = false;\n updateLabel(text);\n}\nfunction updateLabel(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n if (text[0] === '/') {\n// if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n document.getElementById(\"searchType\").innerHTML = \"Allmusic search\";\n break;\n case \"d\":\n document.getElementById(\"searchType\").innerHTML = \"Duck Duck Go search\";\n break;\n case \"di\":\n document.getElementById(\"searchType\").innerHTML = \"Discogs search\";\n break;\n case \"i\":\n document.getElementById(\"searchType\").innerHTML = \"IMDB search\";\n break;\n case \"m\":\n document.getElementById(\"searchType\").innerHTML = \"TheMovieDB search\";\n break;\n case \"r\":\n document.getElementById(\"searchType\").innerHTML = \"Reddit search\";\n break;\n case \"q\":\n document.getElementById(\"searchType\").innerHTML = \"Qwant search\";\n break;\n case \"so\":\n document.getElementById(\"searchType\").innerHTML = \"Soundcloud search\";\n break;\n case \"s\":\n document.getElementById(\"searchType\").innerHTML = \"Spotify search\";\n break;\n case \"tv\":\n document.getElementById(\"searchType\").innerHTML = \"TheTVDB search\";\n break;\n case \"t\":\n document.getElementById(\"searchType\").innerHTML = \"Trakt search\";\n break;\n case \"y\":\n document.getElementById(\"searchType\").innerHTML = \"YouTube search\";\n break;\n case \"w\":\n document.getElementById(\"searchType\").innerHTML = \"Wikipedia search\";\n break;\n case \"p\":\n document.getElementById(\"searchType\").innerHTML = \"Plex search\";\n break;\n case \"rt\":\n document.getElementById(\"searchType\").innerHTML = \"Rotten Tomatoes search\";\n break;\n default:\n document.getElementById(\"searchType\").innerHTML = \"Invalid search\";\n break;\n }\n}else {\n document.getElementById(\"searchType\").innerHTML = \"Google search\";\n }\n}\nfunction search(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n if (text[0] === '/') {\n if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n window.location = \"https://www.allmusic.com/search/all/\" + subtext;\n break;\n case \"d\":\n window.location = \"https://duckduckgo.com/?q=\" + subtext;\n break;\n case \"di\":\n window.location = \"https://www.discogs.com/search/?q=\" + subtext;\n break;\n case \"i\":\n window.location = \"https://www.imdb.com/find?q=\" + subtext;\n break;\n case \"m\":\n window.location = \"https://www.themoviedb.org/search?query=\" + subtext;\n break;\n case \"r\":\n window.location = \"https://www.reddit.com/search?q=\" + subtext;\n break;\n case \"q\":\n window.location = \"https://www.qwant.com/?q=\" + subtext;\n break;\n case \"so\":\n window.location = \"https://soundcloud.com/search?q=\" + subtext;\n break;\n case \"s\":\n window.location = \"https://open.spotify.com/search/results/\" + subtext;\n break;\n case \"t\":\n window.location = \"https://trakt.tv/search?query=\" + subtext;\n break;\n case \"tv\":\n window.location = \"https://www.thetvdb.com/search?query=\" + subtext;\n break;\n case \"y\":\n window.location = \"https://www.youtube.com/results?search_query=\" + subtext;\n break;\n case \"w\":\n window.location = \"https://en.wikipedia.org/w/index.php?search=\" + subtext;\n break;\n case \"p\":\n window.location = \"https://app.plex.tv/desktop/#!/search?query=\" + subtext;\n break;\n case \"rt\":\n window.location = \"https://www.rottentomatoes.com/search?search=\" + subtext;\n break;\n }\n } else {\n var option = text.substr(1);\n switch (option) {\n case \"d\":\n window.location = \"https://www.duckduckgo.com\";\n break;\n case \"y\":\n window.location = \"https://www.youtube.com\";\n break;\n case \"r\":\n window.location = \"https://reddit.com\";\n break;\n case \"s\":\n window.location = \"https://open.spotify.com\";\n break;\n }\n }\n } else if (validURL(text)) {\n if (containsProtocol(text))\n window.location = text;\n else\n window.location = \"https://\" + text;\n } else {\n window.location = \"https://www.google.com/search?q=\" + text;\n }\n}\nfunction validURL(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/)?' + // protocol\n '((([a-z\\\\d]([a-z\\\\d-]*[a-z\\\\d])*)\\\\.)+[a-z]{2,}|' + // domain name\n '((\\\\d{1,3}\\\\.){3}\\\\d{1,3}))' + // OR ip (v4) address\n '(\\\\:\\\\d+)?(\\\\/[-a-z\\\\d%_.~+]*)*' + // port and path\n '(\\\\?[;&a-z\\\\d%_.~+=-]*)?' + // query string\n '(\\\\#[-a-z\\\\d_]*)?$', 'i'); // fragment locator\n return !!pattern.test(str);\n}\nfunction containsProtocol(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/){1}.*', 'i');\n return !!pattern.test(str);\n}\nString.prototype.replaceAll = function(search, replacement) {\n var target = this;\n return target.split(search).join(replacement);\n};\nfunction udpateDisplayedItems(e) {\n localStorage.setItem('contenttype', e.target.checked);\n if (e.target.checked) {\n localStorage.setItem('content-display', 'none');\n } else {\n localStorage.setItem('content-display', 'block');\n }\n setDisplayedItems();\n}\nfunction setDisplayedItems() {\n setValueFromLocalStorage('contenttype');\n setValueFromLocalStorage('content-display');\n}"]},"metadata":{},"sourceType":"module"}
\ No newline at end of file
diff --git a/node_modules/.cache/babel-loader/596f59a5b31034b78c46da535f42795b.json b/node_modules/.cache/babel-loader/596f59a5b31034b78c46da535f42795b.json
new file mode 100644
index 00000000..b7e334a8
--- /dev/null
+++ b/node_modules/.cache/babel-loader/596f59a5b31034b78c46da535f42795b.json
@@ -0,0 +1 @@
+{"ast":null,"code":"var _jsxFileName = \"/home/seanedmunds/dev/home-page/src/index.js\",\n _s = $RefreshSig$();\n\nimport React from 'react';\nimport { useState, useEffect } from 'react';\nimport ReactDOM from 'react-dom'; //import { unstable_createPortal } from 'react-dom';\n\nimport './index.css';\nimport './search.js';\nimport { jsxDEV as _jsxDEV } from \"react/jsx-dev-runtime\";\n\nfunction Homepage() {\n return /*#__PURE__*/_jsxDEV(\"main\", {\n id: \"container\",\n className: \"fade\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Search, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 12,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 11,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Header, {\n date: date(),\n greet: greet()\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 15,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 14,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Applications, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 21,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 20,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Bookmarks, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 24,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 23,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(ModalMenu, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 27,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 26,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(ModalInit, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 30,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 29,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 10,\n columnNumber: 5\n }, this);\n}\n\n_c = Homepage;\n\nfunction Search() {\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"search\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"abackground\",\n children: [/*#__PURE__*/_jsxDEV(\"input\", {\n name: \"keywords\",\n type: \"text\",\n className: \"keyword\",\n id: \"keywords\",\n size: \"50\",\n spellCheck: \"true\",\n placeholder: \"\",\n onFocus: this.placeholder = \"\",\n onBlur: this.placeholder = '',\n autoComplete: \"off\",\n autoFocus: \"true\",\n onKeyUp: \"handleKeyPress(event)\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 40,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n id: \"searchType\",\n className: \"Input-label\",\n children: \"Google search\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 41,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 39,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 38,\n columnNumber: 5\n }, this);\n}\n\n_c2 = Search;\n\nfunction Header(props) {\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"header\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n id: \"greeting_block\",\n children: /*#__PURE__*/_jsxDEV(\"h1\", {\n id: \"header_greet\",\n children: props.greet\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 51,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 50,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"date_block\",\n children: [/*#__PURE__*/_jsxDEV(\"h2\", {\n id: \"header_date\",\n children: props.date\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 54,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(Clock, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 55,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 53,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 49,\n columnNumber: 5\n }, this);\n}\n\n_c3 = Header;\n\nfunction Applications() {\n let appList = getApps();\n var items = [];\n\n for (var i = 0; i < appList.apps.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(App, {\n name: appList.apps[i].name,\n url: appList.apps[i].url,\n icon: appList.apps[i].icon,\n NSFW: appList.apps[i].NSFW\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 66,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"apps\",\n children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n children: \"Applications\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 77,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"apps_loop\",\n children: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 78,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 76,\n columnNumber: 5\n }, this);\n}\n\n_c4 = Applications;\n\nfunction App(props) {\n let classNameType = props.NSFW + \"-content\";\n let hrefUrl = \"https://\" + props.url;\n let iconName = \"mdi-\" + props.icon;\n return /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: hrefUrl,\n className: classNameType,\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_item\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_icon\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify icon\",\n \"data-icon\": iconName\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 94,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 93,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_text\",\n children: [/*#__PURE__*/_jsxDEV(\"span\", {\n id: \"app-name\",\n children: props.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 97,\n columnNumber: 13\n }, this), /*#__PURE__*/_jsxDEV(\"span\", {\n id: \"app-address\",\n children: props.url\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 98,\n columnNumber: 13\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 96,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 92,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 91,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 90,\n columnNumber: 5\n }, this);\n}\n\n_c5 = App;\n\nfunction Bookmarks() {\n let bookmarkList = getLinks();\n var items = [];\n\n for (var i = 0; i < bookmarkList.bookmarks.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(LinkGroups, {\n category: bookmarkList.bookmarks[i].category,\n links: bookmarkList.bookmarks[i].links\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 111,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"links\",\n children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n children: \"Bookmarks\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 120,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"links_loop\",\n children: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 121,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 119,\n columnNumber: 5\n }, this);\n}\n\n_c6 = Bookmarks;\n\nfunction LinkGroups(props) {\n var items = [];\n\n for (var i = 0; i < props.links.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(LinkItem, {\n link: props.links[i]\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 132,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"links_item\",\n children: [/*#__PURE__*/_jsxDEV(\"h4\", {\n children: props.category\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 140,\n columnNumber: 7\n }, this), items]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 139,\n columnNumber: 5\n }, this);\n}\n\n_c7 = LinkGroups;\n\nfunction LinkItem(props) {\n return /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: props.link.url,\n className: \"theme_color-border theme_text-select\",\n children: props.link.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 149,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 148,\n columnNumber: 5\n }, this);\n}\n\n_c8 = LinkItem;\n\nfunction ModalMenu() {\n var providers = getProviders();\n var items = [];\n\n for (var i = 0; i < providers.providers.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(Provider, {\n provider: providers.providers[i]\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 159,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"modal\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n children: [/*#__PURE__*/_jsxDEV(\"header\", {\n id: \"modal-header\",\n children: [/*#__PURE__*/_jsxDEV(\"h1\", {\n children: \"Options\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 169,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n href: \"#\",\n title: \"Close\",\n className: \"modal-close\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-close\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 171,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 170,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 168,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"h2\", {\n children: \"Color themes\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 175,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"modal-theme\",\n children: [/*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"blackboard\",\n className: \"theme-button theme-blackboard\",\n children: \"Blackboard\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 178,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"gazette\",\n className: \"theme-button theme-gazette\",\n children: \"Gazette\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 179,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"espresso\",\n className: \"theme-button theme-espresso\",\n children: \"Espresso\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 180,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cab\",\n className: \"theme-button theme-cab\",\n children: \"Cab\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 181,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cloud\",\n className: \"theme-button theme-cloud\",\n children: \"Cloud\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 182,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"lime\",\n className: \"theme-button theme-lime\",\n children: \"Lime\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 183,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"passion\",\n className: \"theme-button theme-passion\",\n children: \"Passion\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 184,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"blues\",\n className: \"theme-button theme-blues\",\n children: \"Blues\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 185,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"chalk\",\n className: \"theme-button theme-chalk\",\n children: \"Chalk\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 186,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"tron\",\n className: \"theme-button theme-tron\",\n children: \"Tron\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 187,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"paper\",\n className: \"theme-button theme-paper\",\n children: \"Paper\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 188,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cyberpunk\",\n className: \"theme-button theme-cyberpunk\",\n children: \"Cyberpunk\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 189,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"quadra\",\n className: \"theme-button theme-panam\",\n children: \"Quadra\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 190,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"panam\",\n className: \"theme-button theme-panam\",\n children: \"Panam\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 191,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"touch\",\n className: \"theme-button theme-touch\",\n children: \"Touch\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 192,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"peek\",\n className: \"theme-button theme-peek\",\n children: \"Peek\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 193,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 177,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"h2\", {\n children: \"Search options\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 197,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"providers\",\n children: /*#__PURE__*/_jsxDEV(\"table\", {\n children: /*#__PURE__*/_jsxDEV(\"tbody\", {\n children: [/*#__PURE__*/_jsxDEV(\"tr\", {\n children: [/*#__PURE__*/_jsxDEV(\"th\", {\n children: \"Website\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 202,\n columnNumber: 19\n }, this), /*#__PURE__*/_jsxDEV(\"th\", {\n children: \"Prefix\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 203,\n columnNumber: 19\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 201,\n columnNumber: 17\n }, this), items]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 200,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 199,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 198,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"header\", {\n id: \"modal-footer\",\n children: [/*#__PURE__*/_jsxDEV(\"a\", {\n href: \"https://github.com/jeroenpardon/\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-github-box\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 211,\n columnNumber: 54\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 211,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n href: \"https://materialdesignicons.com/\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-material-design\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 212,\n columnNumber: 54\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 212,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"sneaky\",\n children: [/*#__PURE__*/_jsxDEV(\"input\", {\n type: \"checkbox\",\n id: \"contenttype\",\n onChange: \"nsfw(this)\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 213,\n columnNumber: 35\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n for: \"contenttype\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-domino-mask\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 214,\n columnNumber: 36\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 214,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 213,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 210,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 167,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 166,\n columnNumber: 5\n }, this);\n}\n\n_c9 = ModalMenu;\n\nfunction Provider(props) {\n return /*#__PURE__*/_jsxDEV(\"tr\", {\n children: [/*#__PURE__*/_jsxDEV(\"td\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: props.provider.url,\n children: props.provider.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 224,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 224,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"td\", {\n children: props.provider.prefix\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 225,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 223,\n columnNumber: 5\n }, this);\n}\n\n_c10 = Provider;\n\nfunction ModalInit() {\n return /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"modal_init\",\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n className: \"btn\",\n href: \"#modal\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify icon\",\n \"data-icon\": \"mdi-xbox-controller-menu\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 234,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 233,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 232,\n columnNumber: 5\n }, this);\n}\n\n_c11 = ModalInit;\nReactDOM.render( /*#__PURE__*/_jsxDEV(Homepage, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 241,\n columnNumber: 3\n}, this), document.getElementById('root')); //Functions below this line are for calculating data for\n//other functions\n\nfunction date() {\n let currentDate = new Date();\n let dateOptions = {\n weekday: \"long\",\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\"\n };\n let date = currentDate.toLocaleDateString(\"en-GB\", dateOptions);\n return date;\n}\n\nfunction fixDigits(k) {\n if (k < 10) {\n return \"0\" + k;\n } else {\n return k;\n }\n}\n\nfunction greet() {\n let currentTime = new Date();\n let greet = Math.floor(currentTime.getHours() / 6);\n let easterEggChance = Math.floor(Math.random() * 100);\n\n let greetings = require('./messages.json');\n\n let timeBased = [];\n let easterEggs = [];\n\n for (var i = 0; i < greetings.messages.length; i++) {\n if (greetings.messages[i].easteregg === \"FALSE\") {\n timeBased = timeBased.concat(greetings.messages[i]);\n } else {\n easterEggs = easterEggs.concat(greetings.messages[i]);\n }\n }\n\n if (easterEggChance > 10) {\n return timeBased[greet].message;\n } else {\n let easterEggText = Math.floor(Math.random() * easterEggs.length);\n return easterEggs[easterEggText].message;\n }\n}\n\nfunction Clock() {\n _s();\n\n const [date, setDate] = useState(new Date());\n\n function refreshClock() {\n setDate(new Date());\n }\n\n useEffect(() => {\n const timerId = setInterval(refreshClock, 1000);\n return function cleanup() {\n clearInterval(timerId);\n };\n }, []);\n var hour = date.getHours();\n var minutes = date.getMinutes(); //var seconds = date.getSeconds();\n\n var midday = \"AM\";\n midday = hour >= 12 ? \"PM\" : \"AM\";\n hour = hour === 0 ? 12 : hour > 12 ? hour - 12 : hour;\n minutes = fixDigits(minutes); //seconds = fixDigits(seconds);\n\n let time = hour + \":\" + minutes + \" \" + midday;\n return /*#__PURE__*/_jsxDEV(\"h2\", {\n id: \"clock\",\n children: time\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 312,\n columnNumber: 5\n }, this);\n}\n\n_s(Clock, \"Gqi45WOZhU2c0BLYX0HoJeiR0fk=\");\n\n_c12 = Clock;\n\nfunction getApps() {\n let applications = require('./apps.json');\n\n return applications;\n}\n\nfunction getLinks() {\n let links = require('./links.json');\n\n return links;\n}\n\nfunction getProviders() {\n let providers = require('./providers.json');\n\n return providers;\n}\n\nvar _c, _c2, _c3, _c4, _c5, _c6, _c7, _c8, _c9, _c10, _c11, _c12;\n\n$RefreshReg$(_c, \"Homepage\");\n$RefreshReg$(_c2, \"Search\");\n$RefreshReg$(_c3, \"Header\");\n$RefreshReg$(_c4, \"Applications\");\n$RefreshReg$(_c5, \"App\");\n$RefreshReg$(_c6, \"Bookmarks\");\n$RefreshReg$(_c7, \"LinkGroups\");\n$RefreshReg$(_c8, \"LinkItem\");\n$RefreshReg$(_c9, \"ModalMenu\");\n$RefreshReg$(_c10, \"Provider\");\n$RefreshReg$(_c11, \"ModalInit\");\n$RefreshReg$(_c12, \"Clock\");","map":{"version":3,"sources":["/home/seanedmunds/dev/home-page/src/index.js"],"names":["React","useState","useEffect","ReactDOM","Homepage","date","greet","Search","placeholder","Header","props","Applications","appList","getApps","items","i","apps","length","push","name","url","icon","NSFW","App","classNameType","hrefUrl","iconName","Bookmarks","bookmarkList","getLinks","bookmarks","category","links","LinkGroups","LinkItem","link","ModalMenu","providers","getProviders","Provider","provider","prefix","ModalInit","render","document","getElementById","currentDate","Date","dateOptions","weekday","year","month","day","toLocaleDateString","fixDigits","k","currentTime","Math","floor","getHours","easterEggChance","random","greetings","require","timeBased","easterEggs","messages","easteregg","concat","message","easterEggText","Clock","setDate","refreshClock","timerId","setInterval","cleanup","clearInterval","hour","minutes","getMinutes","midday","time","applications"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { useState, useEffect } from 'react';\nimport ReactDOM from 'react-dom';\n//import { unstable_createPortal } from 'react-dom';\nimport './index.css';\nimport './search.js'\n\nfunction Homepage() {\n return (\n \n \n \n
\n \n \n
\n \n \n \n
\n \n \n
\n \n \n
\n \n );\n}\n\nfunction Search() {\n return (\n \n )\n}\n\nfunction Header(props) {\n return (\n \n );\n}\n\nfunction Applications() {\n let appList = getApps();\n var items = [];\n for (var i = 0; i < appList.apps.length; i++) {\n items.push(\n \n );\n }\n return (\n \n Applications
\n \n {items}\n
\n \n );\n}\n\nfunction App(props) {\n let classNameType = props.NSFW + \"-content\";\n let hrefUrl = \"https://\" + props.url;\n let iconName = \"mdi-\" + props.icon;\n return (\n \n );\n}\n\nfunction Bookmarks() {\n let bookmarkList = getLinks();\n var items = [];\n for (var i = 0; i < bookmarkList.bookmarks.length; i++) {\n items.push(\n \n );\n }\n return (\n \n Bookmarks
\n \n {items}\n
\n \n );\n}\n\nfunction LinkGroups(props) {\n var items = [];\n for (var i = 0; i < props.links.length; i++) {\n items.push(\n \n );\n }\n return (\n \n
{props.category}
\n {items}\n \n );\n}\n\nfunction LinkItem(props) {\n return (\n \n );\n}\n\nfunction ModalMenu() {\n var providers = getProviders();\n var items = [];\n for (var i = 0; i < providers.providers.length; i++) {\n items.push(\n \n );\n }\n return (\n \n \n \n\n
Color themes
\n\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n\n\n
Search options
\n
\n \n \n \n | Website | \n Prefix | \n
\n {items}\n \n
\n \n\n \n
\n \n );\n}\n\nfunction Provider(props) {\n return (\n \n | {props.provider.name} | \n {props.provider.prefix} | \n
\n );\n}\n\nfunction ModalInit() {\n return (\n \n );\n}\n\nReactDOM.render(\n ,\n document.getElementById('root')\n);\n\n//Functions below this line are for calculating data for\n//other functions\n\nfunction date() {\n let currentDate = new Date();\n let dateOptions = {\n weekday: \"long\",\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\"\n };\n let date = currentDate.toLocaleDateString(\"en-GB\", dateOptions);\n return date;\n}\nfunction fixDigits(k) {\n if (k < 10) {\n return \"0\" + k;\n }\n else {\n return k;\n }\n}\nfunction greet() {\n let currentTime = new Date();\n let greet = Math.floor(currentTime.getHours() / 6);\n let easterEggChance = Math.floor(Math.random() * 100);\n let greetings = require('./messages.json');\n let timeBased = [];\n let easterEggs = [];\n for (var i = 0; i < greetings.messages.length; i++) {\n if (greetings.messages[i].easteregg === \"FALSE\") {\n timeBased = timeBased.concat(greetings.messages[i]);\n } else {\n easterEggs = easterEggs.concat(greetings.messages[i]);\n }\n }\n if (easterEggChance > 10) {\n return timeBased[greet].message;\n } else {\n let easterEggText = Math.floor(Math.random() * easterEggs.length);\n return easterEggs[easterEggText].message;\n }\n}\nfunction Clock() {\n const [date, setDate] = useState(new Date());\n\n function refreshClock() {\n setDate(new Date());\n }\n useEffect(() => {\n const timerId = setInterval(refreshClock, 1000);\n return function cleanup() {\n clearInterval(timerId);\n };\n }, []);\n\n var hour = date.getHours();\n var minutes = date.getMinutes();\n //var seconds = date.getSeconds();\n var midday = \"AM\";\n midday = (hour >= 12) ? \"PM\" : \"AM\";\n hour = (hour === 0) ? 12 : ((hour > 12) ? (hour - 12) : hour);\n minutes = fixDigits(minutes);\n //seconds = fixDigits(seconds);\n let time = hour + \":\" + minutes + \" \" + midday;\n\n return (\n {time}
\n\n );\n}\nfunction getApps() {\n let applications = require('./apps.json');\n return applications;\n}\nfunction getLinks() {\n let links = require('./links.json');\n return links;\n}\nfunction getProviders() {\n let providers = require('./providers.json');\n return providers;\n}"]},"metadata":{},"sourceType":"module"}
\ No newline at end of file
diff --git a/node_modules/.cache/babel-loader/5acf35566b462a7033a8be042fa3c591.json b/node_modules/.cache/babel-loader/5acf35566b462a7033a8be042fa3c591.json
new file mode 100644
index 00000000..ca010dd2
--- /dev/null
+++ b/node_modules/.cache/babel-loader/5acf35566b462a7033a8be042fa3c591.json
@@ -0,0 +1 @@
+{"ast":null,"code":"var _jsxFileName = \"/home/seanedmunds/dev/home-page/src/index.js\",\n _s = $RefreshSig$();\n\nimport React from 'react';\nimport { useState, useEffect } from 'react';\nimport ReactDOM from 'react-dom'; //import { unstable_createPortal } from 'react-dom';\n\nimport './index.css';\nimport { jsxDEV as _jsxDEV } from \"react/jsx-dev-runtime\";\n\nconst setValueFromLocalStorage = property => {\n let value = localStorage.getItem(property);\n setValue(property, value);\n};\n\nconst setValue = (property, value) => {\n if (value) {\n document.documentElement.style.setProperty(`--${property}`, value);\n const input = document.querySelector(`#${property}`);\n\n if (input) {\n value = value.replace('px', '');\n input.value = value;\n }\n }\n};\n\nfunction Homepage() {\n setTheme();\n return /*#__PURE__*/_jsxDEV(\"main\", {\n id: \"container\",\n className: \"fade\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Search, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 28,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 27,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Header, {\n date: date(),\n greet: greet()\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 31,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 30,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Applications, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 37,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 36,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Bookmarks, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 40,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 39,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(ModalMenu, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 43,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 42,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(ModalInit, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 46,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 45,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 26,\n columnNumber: 5\n }, this);\n}\n\n_c = Homepage;\n\nfunction Search() {\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"search\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"abackground\",\n children: [/*#__PURE__*/_jsxDEV(\"input\", {\n name: \"keywords\",\n type: \"text\",\n className: \"keyword\",\n id: \"keywords\",\n size: \"50\",\n spellCheck: \"true\",\n placeholder: \"\"\n /*onFocus={this.placeholder = \"\"} onBlur={this.placeholder = ''}*/\n ,\n autoComplete: \"off\",\n autoFocus: true,\n onKeyUp: handleKeyPress\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 56,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n id: \"searchType\",\n className: \"Input-label\",\n children: \"Google search\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 57,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 55,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 54,\n columnNumber: 5\n }, this);\n}\n\n_c2 = Search;\n\nfunction Header(props) {\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"header\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n id: \"greeting_block\",\n children: /*#__PURE__*/_jsxDEV(\"h1\", {\n id: \"header_greet\",\n children: props.greet\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 67,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 66,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"date_block\",\n children: [/*#__PURE__*/_jsxDEV(\"h2\", {\n id: \"header_date\",\n children: props.date\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 70,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(Clock, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 71,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 69,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 65,\n columnNumber: 5\n }, this);\n}\n\n_c3 = Header;\n\nfunction Applications() {\n let appList = getApps();\n var items = [];\n\n for (var i = 0; i < appList.apps.length; i++) {\n var safe = props.NSFW;\n var NSFWEnabled = localStorage.getItem(\"contenttype\");\n console.log(safe);\n\n if (safe === \"SAFE\") {\n items.push( /*#__PURE__*/_jsxDEV(App, {\n name: appList.apps[i].name,\n url: appList.apps[i].url,\n icon: appList.apps[i].icon,\n NSFW: appList.apps[i].NSFW\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 86,\n columnNumber: 9\n }, this));\n } else if (safe === \"NSFW\" && NSFWEnabled) {\n items.push( /*#__PURE__*/_jsxDEV(App, {\n name: appList.apps[i].name,\n url: appList.apps[i].url,\n icon: appList.apps[i].icon,\n NSFW: appList.apps[i].NSFW\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 96,\n columnNumber: 9\n }, this));\n } else {\n console.log(NSFWEnabled);\n }\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"apps\",\n children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n children: \"Applications\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 111,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"apps_loop\",\n children: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 112,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 110,\n columnNumber: 5\n }, this);\n}\n\n_c4 = Applications;\n\nfunction App(props) {\n if (safe === \"NSFW\" && !NSFWEnabled) {\n return /*#__PURE__*/_jsxDEV(\"div\", {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 122,\n columnNumber: 7\n }, this);\n } else {\n let classNameType = props.NSFW + \"-content\";\n let hrefUrl = \"https://\" + props.url;\n let iconName = \"mdi-\" + props.icon;\n return /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: hrefUrl,\n className: classNameType,\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_item\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_icon\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify icon\",\n \"data-icon\": iconName\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 133,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 132,\n columnNumber: 13\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_text\",\n children: [/*#__PURE__*/_jsxDEV(\"span\", {\n id: \"app-name\",\n children: props.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 136,\n columnNumber: 15\n }, this), /*#__PURE__*/_jsxDEV(\"span\", {\n id: \"app-address\",\n children: props.url\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 137,\n columnNumber: 15\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 135,\n columnNumber: 13\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 131,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 130,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 129,\n columnNumber: 7\n }, this);\n }\n}\n\n_c5 = App;\n\nfunction Bookmarks() {\n let bookmarkList = getLinks();\n var items = [];\n\n for (var i = 0; i < bookmarkList.bookmarks.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(LinkGroups, {\n category: bookmarkList.bookmarks[i].category,\n links: bookmarkList.bookmarks[i].links\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 152,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"links\",\n children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n children: \"Bookmarks\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 161,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"links_loop\",\n children: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 162,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 160,\n columnNumber: 5\n }, this);\n}\n\n_c6 = Bookmarks;\n\nfunction LinkGroups(props) {\n var items = [];\n\n for (var i = 0; i < props.links.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(LinkItem, {\n link: props.links[i]\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 173,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"links_item\",\n children: [/*#__PURE__*/_jsxDEV(\"h4\", {\n children: props.category\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 181,\n columnNumber: 7\n }, this), items]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 180,\n columnNumber: 5\n }, this);\n}\n\n_c7 = LinkGroups;\n\nfunction LinkItem(props) {\n return /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: props.link.url,\n className: \"theme_color-border theme_text-select\",\n children: props.link.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 190,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 189,\n columnNumber: 5\n }, this);\n}\n\n_c8 = LinkItem;\n\nfunction ModalMenu() {\n var providers = getProviders();\n var items = [];\n\n for (var i = 0; i < providers.providers.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(Provider, {\n provider: providers.providers[i]\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 200,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"modal\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n children: [/*#__PURE__*/_jsxDEV(\"header\", {\n id: \"modal-header\",\n children: [/*#__PURE__*/_jsxDEV(\"h1\", {\n children: \"Options\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 210,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n href: \"#\",\n title: \"Close\",\n className: \"modal-close\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-close\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 212,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 211,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 209,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"h2\", {\n children: \"Color themes\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 216,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"modal-theme\",\n children: [/*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"blackboard\",\n className: \"theme-button theme-blackboard\",\n onClick: updateTheme,\n children: \"Blackboard\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 219,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"gazette\",\n className: \"theme-button theme-gazette\",\n onClick: updateTheme,\n children: \"Gazette\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 220,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"espresso\",\n className: \"theme-button theme-espresso\",\n onClick: updateTheme,\n children: \"Espresso\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 221,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cab\",\n className: \"theme-button theme-cab\",\n onClick: updateTheme,\n children: \"Cab\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 222,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cloud\",\n className: \"theme-button theme-cloud\",\n onClick: updateTheme,\n children: \"Cloud\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 223,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"lime\",\n className: \"theme-button theme-lime\",\n onClick: updateTheme,\n children: \"Lime\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 224,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"passion\",\n className: \"theme-button theme-passion\",\n onClick: updateTheme,\n children: \"Passion\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 225,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"blues\",\n className: \"theme-button theme-blues\",\n onClick: updateTheme,\n children: \"Blues\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 226,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"chalk\",\n className: \"theme-button theme-chalk\",\n onClick: updateTheme,\n children: \"Chalk\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 227,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"tron\",\n className: \"theme-button theme-tron\",\n onClick: updateTheme,\n children: \"Tron\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 228,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"paper\",\n className: \"theme-button theme-paper\",\n onClick: updateTheme,\n children: \"Paper\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 229,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cyberpunk\",\n className: \"theme-button theme-cyberpunk\",\n onClick: updateTheme,\n children: \"Cyberpunk\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 230,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"quadra\",\n className: \"theme-button theme-panam\",\n onClick: updateTheme,\n children: \"Quadra\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 231,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"panam\",\n className: \"theme-button theme-panam\",\n onClick: updateTheme,\n children: \"Panam\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 232,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"touch\",\n className: \"theme-button theme-touch\",\n onClick: updateTheme,\n children: \"Touch\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 233,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"peek\",\n className: \"theme-button theme-peek\",\n onClick: updateTheme,\n children: \"Peek\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 234,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 218,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"h2\", {\n children: \"Search options\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 238,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"providers\",\n children: /*#__PURE__*/_jsxDEV(\"table\", {\n children: /*#__PURE__*/_jsxDEV(\"tbody\", {\n children: [/*#__PURE__*/_jsxDEV(\"tr\", {\n children: [/*#__PURE__*/_jsxDEV(\"th\", {\n children: \"Website\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 243,\n columnNumber: 19\n }, this), /*#__PURE__*/_jsxDEV(\"th\", {\n children: \"Prefix\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 244,\n columnNumber: 19\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 242,\n columnNumber: 17\n }, this), items]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 241,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 240,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 239,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"header\", {\n id: \"modal-footer\",\n children: [/*#__PURE__*/_jsxDEV(\"a\", {\n href: \"https://github.com/jeroenpardon/\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-github-box\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 252,\n columnNumber: 54\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 252,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n href: \"https://materialdesignicons.com/\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-material-design\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 253,\n columnNumber: 54\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 253,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"sneaky\",\n children: [/*#__PURE__*/_jsxDEV(\"input\", {\n type: \"checkbox\",\n id: \"contenttype\",\n onChange: udpateDisplayedItems\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 254,\n columnNumber: 35\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n for: \"contenttype\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-domino-mask\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 255,\n columnNumber: 36\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 255,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 254,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 251,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 208,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 207,\n columnNumber: 5\n }, this);\n}\n\n_c9 = ModalMenu;\n\nfunction Provider(props) {\n return /*#__PURE__*/_jsxDEV(\"tr\", {\n children: [/*#__PURE__*/_jsxDEV(\"td\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: props.provider.url,\n children: props.provider.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 265,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 265,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"td\", {\n children: props.provider.prefix\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 266,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 264,\n columnNumber: 5\n }, this);\n}\n\n_c10 = Provider;\n\nfunction ModalInit() {\n return /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"modal_init\",\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n className: \"btn\",\n href: \"#modal\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify icon\",\n \"data-icon\": \"mdi-xbox-controller-menu\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 275,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 274,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 273,\n columnNumber: 5\n }, this);\n}\n\n_c11 = ModalInit;\nReactDOM.render( /*#__PURE__*/_jsxDEV(Homepage, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 282,\n columnNumber: 3\n}, this), document.getElementById('root')); //Functions below this line are for calculating data for\n//other functions\n\nfunction date() {\n let currentDate = new Date();\n let dateOptions = {\n weekday: \"long\",\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\"\n };\n let date = currentDate.toLocaleDateString(\"en-GB\", dateOptions);\n return date;\n}\n\nfunction fixDigits(k) {\n if (k < 10) {\n return \"0\" + k;\n } else {\n return k;\n }\n}\n\nfunction greet() {\n let currentTime = new Date();\n let greet = Math.floor(currentTime.getHours() / 6);\n let easterEggChance = Math.floor(Math.random() * 100);\n\n let greetings = require('./messages.json');\n\n let timeBased = [];\n let easterEggs = [];\n\n for (var i = 0; i < greetings.messages.length; i++) {\n if (greetings.messages[i].easteregg === \"FALSE\") {\n timeBased = timeBased.concat(greetings.messages[i]);\n } else {\n easterEggs = easterEggs.concat(greetings.messages[i]);\n }\n }\n\n if (easterEggChance > 10) {\n return timeBased[greet].message;\n } else {\n let easterEggText = Math.floor(Math.random() * easterEggs.length);\n return easterEggs[easterEggText].message;\n }\n}\n\nfunction Clock() {\n _s();\n\n const [date, setDate] = useState(new Date());\n\n function refreshClock() {\n setDate(new Date());\n }\n\n useEffect(() => {\n const timerId = setInterval(refreshClock, 1000);\n return function cleanup() {\n clearInterval(timerId);\n };\n }, []);\n var hour = date.getHours();\n var minutes = date.getMinutes(); //var seconds = date.getSeconds();\n\n var midday = \"AM\";\n midday = hour >= 12 ? \"PM\" : \"AM\";\n hour = hour === 0 ? 12 : hour > 12 ? hour - 12 : hour;\n minutes = fixDigits(minutes); //seconds = fixDigits(seconds);\n\n let time = hour + \":\" + minutes + \" \" + midday;\n return /*#__PURE__*/_jsxDEV(\"h2\", {\n id: \"clock\",\n children: time\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 353,\n columnNumber: 5\n }, this);\n}\n\n_s(Clock, \"Gqi45WOZhU2c0BLYX0HoJeiR0fk=\");\n\n_c12 = Clock;\n\nfunction getApps() {\n let applications = require('./apps.json');\n\n return applications;\n}\n\nfunction getLinks() {\n let links = require('./links.json');\n\n return links;\n}\n\nfunction getProviders() {\n let providers = require('./providers.json');\n\n return providers;\n}\n\nfunction getThemes() {\n let themes = require('./themes.json');\n\n return themes;\n}\n\nfunction updateTheme(e) {\n var themes = getThemes();\n var themeName = e.target.innerHTML.toLowerCase();\n var index = themes.themes.findIndex(function (item, i) {\n return item.name === themeName;\n });\n console.log(themes.themes[index]);\n localStorage.setItem(\"image-background\", themes.themes[index].imagebackground);\n localStorage.setItem(\"color-background\", themes.themes[index].colorbackground);\n localStorage.setItem(\"color-search-background\", themes.themes[index].colorserachbackground);\n localStorage.setItem(\"color-text-pri\", themes.themes[index].colortextpri);\n localStorage.setItem(\"color-text-acc\", themes.themes[index].colortextacc);\n localStorage.setItem(\"color-border\", themes.themes[index].colorborder); //document.documentElement.style.setProperty(prop, `var(--${themeName}${prop.substring(10)})`);\n\n setTheme();\n}\n\nfunction setTheme() {\n setValueFromLocalStorage('image-background');\n setValueFromLocalStorage('color-background');\n setValueFromLocalStorage('color-search-background');\n setValueFromLocalStorage('color-text-pri');\n setValueFromLocalStorage('color-text-acc');\n setValueFromLocalStorage('color-border');\n setValueFromLocalStorage('content-display');\n}\n\nfunction handleKeyPress(e) {\n var sindex = 0;\n var cycle = false;\n var key = e.keyCode || e.which;\n var text = e.target.value.replaceAll(\"+\", \"%2B\");\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n\n if (key == 13) {\n // Search functions\n search(text);\n }\n\n if (key == 9) {\n // Tab Completion Functions\n e.preventDefault();\n e.stopPropagation();\n\n if (text[0] === ';') {\n switch (option) {\n case 't':\n var streamers = ['admiralbahroo', 'moonmoon_ow', 'witwix'];\n\n if (!subtext || cycle) {\n cycle = true;\n if (sindex > streamers.length - 1) sindex = 0;\n document.getElementById(\"keywords\").value = ';t ' + streamers[sindex++];\n return;\n }\n\n for (var streamer of streamers) {\n if (subtext === streamer.substr(0, subtext.length)) {\n document.getElementById(\"keywords\").value = ';t ' + streamer;\n return;\n }\n }\n\n break;\n }\n }\n }\n\n if (key == 32) {\n //Space to go to search\n updateLabel(text);\n }\n\n sindex = 0;\n cycle = false;\n updateLabel(text);\n}\n\nfunction updateLabel(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n\n if (text[0] === '/') {\n // if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n document.getElementById(\"searchType\").innerHTML = \"Allmusic search\";\n break;\n\n case \"d\":\n document.getElementById(\"searchType\").innerHTML = \"Duck Duck Go search\";\n break;\n\n case \"di\":\n document.getElementById(\"searchType\").innerHTML = \"Discogs search\";\n break;\n\n case \"i\":\n document.getElementById(\"searchType\").innerHTML = \"IMDB search\";\n break;\n\n case \"m\":\n document.getElementById(\"searchType\").innerHTML = \"TheMovieDB search\";\n break;\n\n case \"r\":\n document.getElementById(\"searchType\").innerHTML = \"Reddit search\";\n break;\n\n case \"q\":\n document.getElementById(\"searchType\").innerHTML = \"Qwant search\";\n break;\n\n case \"so\":\n document.getElementById(\"searchType\").innerHTML = \"Soundcloud search\";\n break;\n\n case \"s\":\n document.getElementById(\"searchType\").innerHTML = \"Spotify search\";\n break;\n\n case \"tv\":\n document.getElementById(\"searchType\").innerHTML = \"TheTVDB search\";\n break;\n\n case \"t\":\n document.getElementById(\"searchType\").innerHTML = \"Trakt search\";\n break;\n\n case \"y\":\n document.getElementById(\"searchType\").innerHTML = \"YouTube search\";\n break;\n\n case \"w\":\n document.getElementById(\"searchType\").innerHTML = \"Wikipedia search\";\n break;\n\n case \"p\":\n document.getElementById(\"searchType\").innerHTML = \"Plex search\";\n break;\n\n case \"rt\":\n document.getElementById(\"searchType\").innerHTML = \"Rotten Tomatoes search\";\n break;\n\n default:\n document.getElementById(\"searchType\").innerHTML = \"Invalid search\";\n break;\n }\n } else {\n document.getElementById(\"searchType\").innerHTML = \"Google search\";\n }\n}\n\nfunction search(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n\n if (text[0] === '/') {\n if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n window.location = \"https://www.allmusic.com/search/all/\" + subtext;\n break;\n\n case \"d\":\n window.location = \"https://duckduckgo.com/?q=\" + subtext;\n break;\n\n case \"di\":\n window.location = \"https://www.discogs.com/search/?q=\" + subtext;\n break;\n\n case \"i\":\n window.location = \"https://www.imdb.com/find?q=\" + subtext;\n break;\n\n case \"m\":\n window.location = \"https://www.themoviedb.org/search?query=\" + subtext;\n break;\n\n case \"r\":\n window.location = \"https://www.reddit.com/search?q=\" + subtext;\n break;\n\n case \"q\":\n window.location = \"https://www.qwant.com/?q=\" + subtext;\n break;\n\n case \"so\":\n window.location = \"https://soundcloud.com/search?q=\" + subtext;\n break;\n\n case \"s\":\n window.location = \"https://open.spotify.com/search/results/\" + subtext;\n break;\n\n case \"t\":\n window.location = \"https://trakt.tv/search?query=\" + subtext;\n break;\n\n case \"tv\":\n window.location = \"https://www.thetvdb.com/search?query=\" + subtext;\n break;\n\n case \"y\":\n window.location = \"https://www.youtube.com/results?search_query=\" + subtext;\n break;\n\n case \"w\":\n window.location = \"https://en.wikipedia.org/w/index.php?search=\" + subtext;\n break;\n\n case \"p\":\n window.location = \"https://app.plex.tv/desktop/#!/search?query=\" + subtext;\n break;\n\n case \"rt\":\n window.location = \"https://www.rottentomatoes.com/search?search=\" + subtext;\n break;\n }\n } else {\n var option = text.substr(1);\n\n switch (option) {\n case \"d\":\n window.location = \"https://www.duckduckgo.com\";\n break;\n\n case \"y\":\n window.location = \"https://www.youtube.com\";\n break;\n\n case \"r\":\n window.location = \"https://reddit.com\";\n break;\n\n case \"s\":\n window.location = \"https://open.spotify.com\";\n break;\n }\n }\n } else if (validURL(text)) {\n if (containsProtocol(text)) window.location = text;else window.location = \"https://\" + text;\n } else {\n window.location = \"https://www.google.com/search?q=\" + text;\n }\n} // Source: https://stackoverflow.com/questions/5717093/check-if-a-javascript-string-is-a-url\n\n\nfunction validURL(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/)?' + // protocol\n '((([a-z\\\\d]([a-z\\\\d-]*[a-z\\\\d])*)\\\\.)+[a-z]{2,}|' + // domain name\n '((\\\\d{1,3}\\\\.){3}\\\\d{1,3}))' + // OR ip (v4) address\n '(\\\\:\\\\d+)?(\\\\/[-a-z\\\\d%_.~+]*)*' + // port and path\n '(\\\\?[;&a-z\\\\d%_.~+=-]*)?' + // query string\n '(\\\\#[-a-z\\\\d_]*)?$', 'i'); // fragment locator\n\n return !!pattern.test(str);\n}\n\nfunction containsProtocol(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/){1}.*', 'i');\n return !!pattern.test(str);\n}\n\nString.prototype.replaceAll = function (search, replacement) {\n var target = this;\n return target.split(search).join(replacement);\n};\n\nfunction udpateDisplayedItems(e) {\n localStorage.setItem('contenttype', e.target.checked);\n\n if (e.target.checked) {\n localStorage.setItem('content-display', 'none');\n } else {\n localStorage.setItem('content-display', 'block');\n }\n\n setDisplayedItems();\n}\n\nfunction setDisplayedItems() {\n setValueFromLocalStorage('contenttype');\n setValueFromLocalStorage('content-display');\n}\n\nvar _c, _c2, _c3, _c4, _c5, _c6, _c7, _c8, _c9, _c10, _c11, _c12;\n\n$RefreshReg$(_c, \"Homepage\");\n$RefreshReg$(_c2, \"Search\");\n$RefreshReg$(_c3, \"Header\");\n$RefreshReg$(_c4, \"Applications\");\n$RefreshReg$(_c5, \"App\");\n$RefreshReg$(_c6, \"Bookmarks\");\n$RefreshReg$(_c7, \"LinkGroups\");\n$RefreshReg$(_c8, \"LinkItem\");\n$RefreshReg$(_c9, \"ModalMenu\");\n$RefreshReg$(_c10, \"Provider\");\n$RefreshReg$(_c11, \"ModalInit\");\n$RefreshReg$(_c12, \"Clock\");","map":{"version":3,"sources":["/home/seanedmunds/dev/home-page/src/index.js"],"names":["React","useState","useEffect","ReactDOM","setValueFromLocalStorage","property","value","localStorage","getItem","setValue","document","documentElement","style","setProperty","input","querySelector","replace","Homepage","setTheme","date","greet","Search","handleKeyPress","Header","props","Applications","appList","getApps","items","i","apps","length","safe","NSFW","NSFWEnabled","console","log","push","name","url","icon","App","classNameType","hrefUrl","iconName","Bookmarks","bookmarkList","getLinks","bookmarks","category","links","LinkGroups","LinkItem","link","ModalMenu","providers","getProviders","updateTheme","udpateDisplayedItems","Provider","provider","prefix","ModalInit","render","getElementById","currentDate","Date","dateOptions","weekday","year","month","day","toLocaleDateString","fixDigits","k","currentTime","Math","floor","getHours","easterEggChance","random","greetings","require","timeBased","easterEggs","messages","easteregg","concat","message","easterEggText","Clock","setDate","refreshClock","timerId","setInterval","cleanup","clearInterval","hour","minutes","getMinutes","midday","time","applications","getThemes","themes","e","themeName","target","innerHTML","toLowerCase","index","findIndex","item","setItem","imagebackground","colorbackground","colorserachbackground","colortextpri","colortextacc","colorborder","sindex","cycle","key","keyCode","which","text","replaceAll","option","substr","indexOf","subtext","search","preventDefault","stopPropagation","streamers","streamer","updateLabel","window","location","validURL","containsProtocol","str","pattern","RegExp","test","String","prototype","replacement","split","join","checked","setDisplayedItems"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { useState, useEffect } from 'react';\nimport ReactDOM from 'react-dom';\n//import { unstable_createPortal } from 'react-dom';\nimport './index.css';\n\nconst setValueFromLocalStorage = property => {\n let value = localStorage.getItem(property);\n setValue(property, value);\n};\nconst setValue = (property, value) => {\n if (value) {\n document.documentElement.style.setProperty(`--${property}`, value);\n\n const input = document.querySelector(`#${property}`);\n if (input) {\n value = value.replace('px', '');\n input.value = value;\n }\n }\n};\n\nfunction Homepage() {\n setTheme();\n return (\n \n \n \n
\n \n \n
\n \n \n \n
\n \n \n
\n \n \n
\n \n );\n}\n\nfunction Search() {\n return (\n \n )\n}\n\nfunction Header(props) {\n return (\n \n );\n}\n\nfunction Applications() {\n let appList = getApps();\n var items = [];\n for (var i = 0; i < appList.apps.length; i++) {\n var safe = props.NSFW;\n var NSFWEnabled = localStorage.getItem(\"contenttype\");\n console.log(safe);\n if (safe === \"SAFE\") {\n items.push(\n \n );\n } else if (safe === \"NSFW\" && NSFWEnabled) {\n items.push(\n \n );\n } else {\n console.log(NSFWEnabled);\n }\n \n }\n return (\n \n Applications
\n \n {items}\n
\n \n );\n}\n\nfunction App(props) {\n if (safe === \"NSFW\" && !NSFWEnabled) {\n return (\n \n );\n } else {\n let classNameType = props.NSFW + \"-content\";\n let hrefUrl = \"https://\" + props.url;\n let iconName = \"mdi-\" + props.icon;\n return (\n \n );\n }\n \n}\n\nfunction Bookmarks() {\n let bookmarkList = getLinks();\n var items = [];\n for (var i = 0; i < bookmarkList.bookmarks.length; i++) {\n items.push(\n \n );\n }\n return (\n \n Bookmarks
\n \n {items}\n
\n \n );\n}\n\nfunction LinkGroups(props) {\n var items = [];\n for (var i = 0; i < props.links.length; i++) {\n items.push(\n \n );\n }\n return (\n \n
{props.category}
\n {items}\n \n );\n}\n\nfunction LinkItem(props) {\n return (\n \n );\n}\n\nfunction ModalMenu() {\n var providers = getProviders();\n var items = [];\n for (var i = 0; i < providers.providers.length; i++) {\n items.push(\n \n );\n }\n return (\n \n \n \n\n
Color themes
\n\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n\n\n
Search options
\n
\n \n \n \n | Website | \n Prefix | \n
\n {items}\n \n
\n \n\n \n
\n \n );\n}\n\nfunction Provider(props) {\n return (\n \n | {props.provider.name} | \n {props.provider.prefix} | \n
\n );\n}\n\nfunction ModalInit() {\n return (\n \n );\n}\n\nReactDOM.render(\n ,\n document.getElementById('root')\n);\n\n//Functions below this line are for calculating data for\n//other functions\n\nfunction date() {\n let currentDate = new Date();\n let dateOptions = {\n weekday: \"long\",\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\"\n };\n let date = currentDate.toLocaleDateString(\"en-GB\", dateOptions);\n return date;\n}\nfunction fixDigits(k) {\n if (k < 10) {\n return \"0\" + k;\n }\n else {\n return k;\n }\n}\nfunction greet() {\n let currentTime = new Date();\n let greet = Math.floor(currentTime.getHours() / 6);\n let easterEggChance = Math.floor(Math.random() * 100);\n let greetings = require('./messages.json');\n let timeBased = [];\n let easterEggs = [];\n for (var i = 0; i < greetings.messages.length; i++) {\n if (greetings.messages[i].easteregg === \"FALSE\") {\n timeBased = timeBased.concat(greetings.messages[i]);\n } else {\n easterEggs = easterEggs.concat(greetings.messages[i]);\n }\n }\n if (easterEggChance > 10) {\n return timeBased[greet].message;\n } else {\n let easterEggText = Math.floor(Math.random() * easterEggs.length);\n return easterEggs[easterEggText].message;\n }\n}\nfunction Clock() {\n const [date, setDate] = useState(new Date());\n\n function refreshClock() {\n setDate(new Date());\n }\n useEffect(() => {\n const timerId = setInterval(refreshClock, 1000);\n return function cleanup() {\n clearInterval(timerId);\n };\n }, []);\n\n var hour = date.getHours();\n var minutes = date.getMinutes();\n //var seconds = date.getSeconds();\n var midday = \"AM\";\n midday = (hour >= 12) ? \"PM\" : \"AM\";\n hour = (hour === 0) ? 12 : ((hour > 12) ? (hour - 12) : hour);\n minutes = fixDigits(minutes);\n //seconds = fixDigits(seconds);\n let time = hour + \":\" + minutes + \" \" + midday;\n\n return (\n {time}
\n\n );\n}\nfunction getApps() {\n let applications = require('./apps.json');\n return applications;\n}\nfunction getLinks() {\n let links = require('./links.json');\n return links;\n}\nfunction getProviders() {\n let providers = require('./providers.json');\n return providers;\n}\nfunction getThemes() {\n let themes = require('./themes.json');\n return themes;\n}\n\nfunction updateTheme(e) {\n var themes = getThemes();\n var themeName = e.target.innerHTML.toLowerCase();\n var index = themes.themes.findIndex(function(item, i){\n return item.name === themeName\n });\n console.log(themes.themes[index]);\n localStorage.setItem(\"image-background\", themes.themes[index].imagebackground);\n localStorage.setItem(\"color-background\", themes.themes[index].colorbackground);\n localStorage.setItem(\"color-search-background\", themes.themes[index].colorserachbackground);\n localStorage.setItem(\"color-text-pri\",themes.themes[index].colortextpri);\n localStorage.setItem(\"color-text-acc\", themes.themes[index].colortextacc);\n localStorage.setItem(\"color-border\", themes.themes[index].colorborder);\n \n //document.documentElement.style.setProperty(prop, `var(--${themeName}${prop.substring(10)})`);\n setTheme();\n}\n\nfunction setTheme() {\n setValueFromLocalStorage('image-background');\n setValueFromLocalStorage('color-background');\n setValueFromLocalStorage('color-search-background');\n setValueFromLocalStorage('color-text-pri');\n setValueFromLocalStorage('color-text-acc');\n setValueFromLocalStorage('color-border');\n setValueFromLocalStorage('content-display');\n}\n\nfunction handleKeyPress(e) {\n var sindex = 0;\n var cycle = false;\n var key = e.keyCode || e.which;\n var text = e.target.value.replaceAll(\"+\", \"%2B\");\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n if (key == 13) { // Search functions\n search(text);\n }\n if (key == 9) { // Tab Completion Functions\n e.preventDefault();\n e.stopPropagation();\n if (text[0] === ';') {\n switch (option) {\n case 't':\n var streamers = ['admiralbahroo', 'moonmoon_ow', 'witwix'];\n if (!subtext || cycle) {\n cycle = true;\n if (sindex > streamers.length - 1) sindex = 0;\n document.getElementById(\"keywords\").value = ';t ' + streamers[sindex++];\n return;\n }\n for (var streamer of streamers) {\n if (subtext === streamer.substr(0, subtext.length)) {\n document.getElementById(\"keywords\").value = ';t ' + streamer;\n return;\n }\n }\n break;\n }\n }\n }\n if(key == 32){ //Space to go to search\nupdateLabel(text);\n }\n sindex = 0;\n cycle = false;\n updateLabel(text);\n}\n\nfunction updateLabel(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n if (text[0] === '/') {\n// if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n document.getElementById(\"searchType\").innerHTML = \"Allmusic search\";\n break;\n case \"d\":\n document.getElementById(\"searchType\").innerHTML = \"Duck Duck Go search\";\n break;\n case \"di\":\n document.getElementById(\"searchType\").innerHTML = \"Discogs search\";\n break;\n case \"i\":\n document.getElementById(\"searchType\").innerHTML = \"IMDB search\";\n break;\n case \"m\":\n document.getElementById(\"searchType\").innerHTML = \"TheMovieDB search\";\n break;\n case \"r\":\n document.getElementById(\"searchType\").innerHTML = \"Reddit search\";\n break;\n case \"q\":\n document.getElementById(\"searchType\").innerHTML = \"Qwant search\";\n break;\n case \"so\":\n document.getElementById(\"searchType\").innerHTML = \"Soundcloud search\";\n break;\n case \"s\":\n document.getElementById(\"searchType\").innerHTML = \"Spotify search\";\n break;\n case \"tv\":\n document.getElementById(\"searchType\").innerHTML = \"TheTVDB search\";\n break;\n case \"t\":\n document.getElementById(\"searchType\").innerHTML = \"Trakt search\";\n break;\n case \"y\":\n document.getElementById(\"searchType\").innerHTML = \"YouTube search\";\n break;\n case \"w\":\n document.getElementById(\"searchType\").innerHTML = \"Wikipedia search\";\n break;\n case \"p\":\n document.getElementById(\"searchType\").innerHTML = \"Plex search\";\n break;\n case \"rt\":\n document.getElementById(\"searchType\").innerHTML = \"Rotten Tomatoes search\";\n break;\n default:\n document.getElementById(\"searchType\").innerHTML = \"Invalid search\";\n break;\n }\n}else {\n document.getElementById(\"searchType\").innerHTML = \"Google search\";\n }\n}\n\nfunction search(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n if (text[0] === '/') {\n if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n window.location = \"https://www.allmusic.com/search/all/\" + subtext;\n break;\n case \"d\":\n window.location = \"https://duckduckgo.com/?q=\" + subtext;\n break;\n case \"di\":\n window.location = \"https://www.discogs.com/search/?q=\" + subtext;\n break;\n case \"i\":\n window.location = \"https://www.imdb.com/find?q=\" + subtext;\n break;\n case \"m\":\n window.location = \"https://www.themoviedb.org/search?query=\" + subtext;\n break;\n case \"r\":\n window.location = \"https://www.reddit.com/search?q=\" + subtext;\n break;\n case \"q\":\n window.location = \"https://www.qwant.com/?q=\" + subtext;\n break;\n case \"so\":\n window.location = \"https://soundcloud.com/search?q=\" + subtext;\n break;\n case \"s\":\n window.location = \"https://open.spotify.com/search/results/\" + subtext;\n break;\n case \"t\":\n window.location = \"https://trakt.tv/search?query=\" + subtext;\n break;\n case \"tv\":\n window.location = \"https://www.thetvdb.com/search?query=\" + subtext;\n break;\n case \"y\":\n window.location = \"https://www.youtube.com/results?search_query=\" + subtext;\n break;\n case \"w\":\n window.location = \"https://en.wikipedia.org/w/index.php?search=\" + subtext;\n break;\n case \"p\":\n window.location = \"https://app.plex.tv/desktop/#!/search?query=\" + subtext;\n break;\n case \"rt\":\n window.location = \"https://www.rottentomatoes.com/search?search=\" + subtext;\n break;\n }\n } else {\n var option = text.substr(1);\n switch (option) {\n case \"d\":\n window.location = \"https://www.duckduckgo.com\";\n break;\n case \"y\":\n window.location = \"https://www.youtube.com\";\n break;\n case \"r\":\n window.location = \"https://reddit.com\";\n break;\n case \"s\":\n window.location = \"https://open.spotify.com\";\n break;\n }\n }\n } else if (validURL(text)) {\n if (containsProtocol(text))\n window.location = text;\n else\n window.location = \"https://\" + text;\n } else {\n window.location = \"https://www.google.com/search?q=\" + text;\n }\n}\n\n// Source: https://stackoverflow.com/questions/5717093/check-if-a-javascript-string-is-a-url\nfunction validURL(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/)?' + // protocol\n '((([a-z\\\\d]([a-z\\\\d-]*[a-z\\\\d])*)\\\\.)+[a-z]{2,}|' + // domain name\n '((\\\\d{1,3}\\\\.){3}\\\\d{1,3}))' + // OR ip (v4) address\n '(\\\\:\\\\d+)?(\\\\/[-a-z\\\\d%_.~+]*)*' + // port and path\n '(\\\\?[;&a-z\\\\d%_.~+=-]*)?' + // query string\n '(\\\\#[-a-z\\\\d_]*)?$', 'i'); // fragment locator\n return !!pattern.test(str);\n}\n\nfunction containsProtocol(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/){1}.*', 'i');\n return !!pattern.test(str);\n}\n\nString.prototype.replaceAll = function(search, replacement) {\n var target = this;\n return target.split(search).join(replacement);\n};\n\nfunction udpateDisplayedItems(e) {\n localStorage.setItem('contenttype', e.target.checked);\n if (e.target.checked) {\n localStorage.setItem('content-display', 'none');\n } else {\n localStorage.setItem('content-display', 'block');\n }\n setDisplayedItems();\n}\nfunction setDisplayedItems() {\n setValueFromLocalStorage('contenttype');\n setValueFromLocalStorage('content-display');\n}"]},"metadata":{},"sourceType":"module"}
\ No newline at end of file
diff --git a/node_modules/.cache/babel-loader/5b38e2910ee7056bb6100a9820f1e995.json b/node_modules/.cache/babel-loader/5b38e2910ee7056bb6100a9820f1e995.json
new file mode 100644
index 00000000..2b5e6175
--- /dev/null
+++ b/node_modules/.cache/babel-loader/5b38e2910ee7056bb6100a9820f1e995.json
@@ -0,0 +1 @@
+{"ast":null,"code":"var _jsxFileName = \"/home/seanedmunds/dev/home-page/src/index.js\",\n _s = $RefreshSig$();\n\nimport React from 'react';\nimport { useState, useEffect } from 'react';\nimport ReactDOM from 'react-dom';\nimport './index.css';\nimport { jsxDEV as _jsxDEV } from \"react/jsx-dev-runtime\";\n\nconst setValueFromLocalStorage = property => {\n let value = localStorage.getItem(property);\n setValue(property, value);\n};\n\nconst setValue = (property, value) => {\n if (value) {\n document.documentElement.style.setProperty(`--${property}`, value);\n const input = document.querySelector(`#${property}`);\n\n if (input) {\n value = value.replace('px', '');\n input.value = value;\n }\n }\n};\n\nfunction Homepage() {\n setTheme();\n return /*#__PURE__*/_jsxDEV(\"main\", {\n id: \"container\",\n className: \"fade\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Search, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 28,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 27,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Header, {\n date: date(),\n greet: greet()\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 31,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 30,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Applications, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 37,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 36,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Bookmarks, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 40,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 39,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(ModalMenu, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 43,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 42,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(ModalInit, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 46,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 45,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 26,\n columnNumber: 5\n }, this);\n}\n\n_c = Homepage;\n\nfunction Search() {\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"search\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"abackground\",\n children: [/*#__PURE__*/_jsxDEV(\"input\", {\n name: \"keywords\",\n type: \"text\",\n className: \"keyword\",\n id: \"keywords\",\n size: \"50\",\n spellCheck: \"true\",\n placeholder: \"\",\n autoComplete: \"off\",\n autoFocus: true,\n onKeyUp: handleKeyPress\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 56,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n id: \"searchType\",\n className: \"Input-label\",\n children: \"Google search\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 57,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 55,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 54,\n columnNumber: 5\n }, this);\n}\n\n_c2 = Search;\n\nfunction Header(props) {\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"header\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n id: \"greeting_block\",\n children: /*#__PURE__*/_jsxDEV(\"h1\", {\n id: \"header_greet\",\n children: props.greet\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 67,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 66,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"date_block\",\n children: [/*#__PURE__*/_jsxDEV(\"h2\", {\n id: \"header_date\",\n children: props.date\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 70,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(Clock, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 71,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 69,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 65,\n columnNumber: 5\n }, this);\n}\n\n_c3 = Header;\n\nfunction Applications() {\n let appList = getApps();\n var items = [];\n\n for (var i = 0; i < appList.apps.length; i++) {\n var safe = appList.apps[i].NSFW;\n var NSFWEnabled = localStorage.getItem(\"contenttype\");\n\n if (safe === \"SAFE\") {\n items.push( /*#__PURE__*/_jsxDEV(App, {\n name: appList.apps[i].name,\n url: appList.apps[i].url,\n icon: appList.apps[i].icon,\n NSFW: appList.apps[i].NSFW\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 85,\n columnNumber: 9\n }, this));\n } else if (safe === \"NSFW\" && NSFWEnabled) {\n items.push( /*#__PURE__*/_jsxDEV(App, {\n name: appList.apps[i].name,\n url: appList.apps[i].url,\n icon: appList.apps[i].icon,\n NSFW: appList.apps[i].NSFW\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 95,\n columnNumber: 9\n }, this));\n } else {}\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"apps\",\n children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n children: \"Applications\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 110,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"apps_loop\",\n children: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 111,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 109,\n columnNumber: 5\n }, this);\n}\n\n_c4 = Applications;\n\nfunction App(props) {\n let classNameType = props.NSFW + \"-content\";\n let hrefUrl = \"https://\" + props.url;\n let iconName = \"mdi-\" + props.icon;\n return /*#__PURE__*/_jsxDEV(\"div\", {\n className: classNameType,\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: hrefUrl,\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_item\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_icon\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify icon\",\n \"data-icon\": iconName\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 128,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 127,\n columnNumber: 13\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_text\",\n children: [/*#__PURE__*/_jsxDEV(\"span\", {\n id: \"app-name\",\n children: props.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 131,\n columnNumber: 15\n }, this), /*#__PURE__*/_jsxDEV(\"span\", {\n id: \"app-address\",\n children: props.url\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 132,\n columnNumber: 15\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 130,\n columnNumber: 13\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 126,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 125,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 124,\n columnNumber: 7\n }, this);\n}\n\n_c5 = App;\n\nfunction Bookmarks() {\n let bookmarkList = getLinks();\n var items = [];\n\n for (var i = 0; i < bookmarkList.bookmarks.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(LinkGroups, {\n category: bookmarkList.bookmarks[i].category,\n links: bookmarkList.bookmarks[i].links\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 145,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"links\",\n children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n children: \"Bookmarks\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 154,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"links_loop\",\n children: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 155,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 153,\n columnNumber: 5\n }, this);\n}\n\n_c6 = Bookmarks;\n\nfunction LinkGroups(props) {\n var items = [];\n\n for (var i = 0; i < props.links.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(LinkItem, {\n link: props.links[i]\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 166,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"links_item\",\n children: [/*#__PURE__*/_jsxDEV(\"h4\", {\n children: props.category\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 174,\n columnNumber: 7\n }, this), items]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 173,\n columnNumber: 5\n }, this);\n}\n\n_c7 = LinkGroups;\n\nfunction LinkItem(props) {\n return /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: props.link.url,\n className: \"theme_color-border theme_text-select\",\n children: props.link.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 183,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 182,\n columnNumber: 5\n }, this);\n}\n\n_c8 = LinkItem;\n\nfunction ModalMenu() {\n var providers = getProviders();\n var items = [];\n var isChecked = localStorage.getItem(\"contenttype\");\n console.log(localStorage.getItem(\"contenttype\"));\n\n for (var i = 0; i < providers.providers.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(Provider, {\n provider: providers.providers[i]\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 195,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"modal\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n children: [/*#__PURE__*/_jsxDEV(\"header\", {\n id: \"modal-header\",\n children: [/*#__PURE__*/_jsxDEV(\"h1\", {\n children: \"Options\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 205,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n href: \"#\",\n title: \"Close\",\n className: \"modal-close\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-close\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 207,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 206,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 204,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"h2\", {\n children: \"Color themes\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 211,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"modal-theme\",\n children: [/*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"blackboard\",\n className: \"theme-button theme-blackboard\",\n onClick: updateTheme,\n children: \"Blackboard\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 214,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"gazette\",\n className: \"theme-button theme-gazette\",\n onClick: updateTheme,\n children: \"Gazette\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 215,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"espresso\",\n className: \"theme-button theme-espresso\",\n onClick: updateTheme,\n children: \"Espresso\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 216,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cab\",\n className: \"theme-button theme-cab\",\n onClick: updateTheme,\n children: \"Cab\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 217,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cloud\",\n className: \"theme-button theme-cloud\",\n onClick: updateTheme,\n children: \"Cloud\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 218,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"lime\",\n className: \"theme-button theme-lime\",\n onClick: updateTheme,\n children: \"Lime\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 219,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"passion\",\n className: \"theme-button theme-passion\",\n onClick: updateTheme,\n children: \"Passion\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 220,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"blues\",\n className: \"theme-button theme-blues\",\n onClick: updateTheme,\n children: \"Blues\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 221,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"chalk\",\n className: \"theme-button theme-chalk\",\n onClick: updateTheme,\n children: \"Chalk\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 222,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"tron\",\n className: \"theme-button theme-tron\",\n onClick: updateTheme,\n children: \"Tron\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 223,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"paper\",\n className: \"theme-button theme-paper\",\n onClick: updateTheme,\n children: \"Paper\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 224,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cyberpunk\",\n className: \"theme-button theme-cyberpunk\",\n onClick: updateTheme,\n children: \"Cyberpunk\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 225,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"quadra\",\n className: \"theme-button theme-panam\",\n onClick: updateTheme,\n children: \"Quadra\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 226,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"panam\",\n className: \"theme-button theme-panam\",\n onClick: updateTheme,\n children: \"Panam\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 227,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"touch\",\n className: \"theme-button theme-touch\",\n onClick: updateTheme,\n children: \"Touch\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 228,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"peek\",\n className: \"theme-button theme-peek\",\n onClick: updateTheme,\n children: \"Peek\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 229,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 213,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"h2\", {\n children: \"Search options\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 233,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"providers\",\n children: /*#__PURE__*/_jsxDEV(\"table\", {\n children: /*#__PURE__*/_jsxDEV(\"tbody\", {\n children: [/*#__PURE__*/_jsxDEV(\"tr\", {\n children: [/*#__PURE__*/_jsxDEV(\"th\", {\n children: \"Website\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 238,\n columnNumber: 19\n }, this), /*#__PURE__*/_jsxDEV(\"th\", {\n children: \"Prefix\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 239,\n columnNumber: 19\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 237,\n columnNumber: 17\n }, this), items]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 236,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 235,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 234,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"header\", {\n id: \"modal-footer\",\n children: [/*#__PURE__*/_jsxDEV(\"a\", {\n href: \"https://github.com/jeroenpardon/\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-github-box\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 247,\n columnNumber: 54\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 247,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n href: \"https://materialdesignicons.com/\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-material-design\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 248,\n columnNumber: 54\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 248,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(HideButton, {\n checked: isChecked\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 249,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 246,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 203,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 202,\n columnNumber: 5\n }, this);\n}\n\n_c9 = ModalMenu;\n\nfunction HideButton(props) {\n console.log(props.checked);\n\n if (props.checked === \"true\") {\n console.log(\"icon should be grey\");\n return /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"sneaky\",\n children: [/*#__PURE__*/_jsxDEV(\"input\", {\n type: \"checkbox\",\n id: \"contenttype\",\n onChange: udpateDisplayedItems,\n defaultChecked: true\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 263,\n columnNumber: 31\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n for: \"contenttype\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-domino-mask\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 264,\n columnNumber: 32\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 264,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 263,\n columnNumber: 7\n }, this);\n } else {\n console.log(\"icon should be white\");\n return /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"sneaky\",\n children: [/*#__PURE__*/_jsxDEV(\"input\", {\n type: \"checkbox\",\n id: \"contenttype\",\n onChange: udpateDisplayedItems,\n defaultChecked: false\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 269,\n columnNumber: 31\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n for: \"contenttype\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-domino-mask\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 270,\n columnNumber: 32\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 270,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 269,\n columnNumber: 7\n }, this);\n }\n}\n\n_c10 = HideButton;\n\nfunction Provider(props) {\n return /*#__PURE__*/_jsxDEV(\"tr\", {\n children: [/*#__PURE__*/_jsxDEV(\"td\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: props.provider.url,\n children: props.provider.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 278,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 278,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"td\", {\n children: props.provider.prefix\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 279,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 277,\n columnNumber: 5\n }, this);\n}\n\n_c11 = Provider;\n\nfunction ModalInit() {\n setDisplayedItems();\n return /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"modal_init\",\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n className: \"btn\",\n href: \"#modal\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify icon\",\n \"data-icon\": \"mdi-xbox-controller-menu\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 289,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 288,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 287,\n columnNumber: 5\n }, this);\n}\n\n_c12 = ModalInit;\nReactDOM.render( /*#__PURE__*/_jsxDEV(Homepage, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 296,\n columnNumber: 3\n}, this), document.getElementById('root')); //Functions below this line are for calculating data for\n//other functions\n\nfunction date() {\n let currentDate = new Date();\n let dateOptions = {\n weekday: \"long\",\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\"\n };\n let date = currentDate.toLocaleDateString(\"en-GB\", dateOptions);\n return date;\n}\n\nfunction fixDigits(k) {\n if (k < 10) {\n return \"0\" + k;\n } else {\n return k;\n }\n}\n\nfunction greet() {\n let currentTime = new Date();\n let greet = Math.floor(currentTime.getHours() / 6);\n let easterEggChance = Math.floor(Math.random() * 100);\n\n let greetings = require('./messages.json');\n\n let timeBased = [];\n let easterEggs = [];\n\n for (var i = 0; i < greetings.messages.length; i++) {\n if (greetings.messages[i].easteregg === \"FALSE\") {\n timeBased = timeBased.concat(greetings.messages[i]);\n } else {\n easterEggs = easterEggs.concat(greetings.messages[i]);\n }\n }\n\n if (easterEggChance > 10) {\n return timeBased[greet].message;\n } else {\n let easterEggText = Math.floor(Math.random() * easterEggs.length);\n return easterEggs[easterEggText].message;\n }\n}\n\nfunction Clock() {\n _s();\n\n const [date, setDate] = useState(new Date());\n\n function refreshClock() {\n setDate(new Date());\n }\n\n useEffect(() => {\n const timerId = setInterval(refreshClock, 1000);\n return function cleanup() {\n clearInterval(timerId);\n };\n }, []);\n var hour = date.getHours();\n var minutes = date.getMinutes(); //var seconds = date.getSeconds();\n\n var midday = \"AM\";\n midday = hour >= 12 ? \"PM\" : \"AM\";\n hour = hour === 0 ? 12 : hour > 12 ? hour - 12 : hour;\n minutes = fixDigits(minutes); //seconds = fixDigits(seconds);\n\n let time = hour + \":\" + minutes + \" \" + midday;\n return /*#__PURE__*/_jsxDEV(\"h2\", {\n id: \"clock\",\n children: time\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 367,\n columnNumber: 5\n }, this);\n}\n\n_s(Clock, \"Gqi45WOZhU2c0BLYX0HoJeiR0fk=\");\n\n_c13 = Clock;\n\nfunction getApps() {\n let applications = require('./apps.json');\n\n return applications;\n}\n\nfunction getLinks() {\n let links = require('./links.json');\n\n return links;\n}\n\nfunction getProviders() {\n let providers = require('./providers.json');\n\n return providers;\n}\n\nfunction getThemes() {\n let themes = require('./themes.json');\n\n return themes;\n}\n\nfunction updateTheme(e) {\n var themes = getThemes();\n var themeName = e.target.innerHTML.toLowerCase();\n var index = themes.themes.findIndex(function (item, i) {\n return item.name === themeName;\n });\n localStorage.setItem(\"image-background\", themes.themes[index].imagebackground);\n localStorage.setItem(\"color-background\", themes.themes[index].colorbackground);\n localStorage.setItem(\"color-search-background\", themes.themes[index].colorserachbackground);\n localStorage.setItem(\"color-text-pri\", themes.themes[index].colortextpri);\n localStorage.setItem(\"color-text-acc\", themes.themes[index].colortextacc);\n localStorage.setItem(\"color-border\", themes.themes[index].colorborder); //document.documentElement.style.setProperty(prop, `var(--${themeName}${prop.substring(10)})`);\n\n setTheme();\n}\n\nfunction setTheme() {\n setValueFromLocalStorage('image-background');\n setValueFromLocalStorage('color-background');\n setValueFromLocalStorage('color-search-background');\n setValueFromLocalStorage('color-text-pri');\n setValueFromLocalStorage('color-text-acc');\n setValueFromLocalStorage('color-border');\n setValueFromLocalStorage('content-display');\n}\n\nfunction handleKeyPress(e) {\n var sindex = 0;\n var cycle = false;\n var key = e.keyCode || e.which;\n var text = e.target.value.replaceAll(\"+\", \"%2B\");\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n\n if (key === 13) {\n // Search functions\n search(text);\n }\n\n if (key === 9) {\n // Tab Completion Functions\n e.preventDefault();\n e.stopPropagation();\n\n if (text[0] === ';') {\n switch (option) {\n case 't':\n var streamers = ['admiralbahroo', 'moonmoon_ow', 'witwix'];\n\n if (!subtext || cycle) {\n cycle = true;\n if (sindex > streamers.length - 1) sindex = 0;\n document.getElementById(\"keywords\").value = ';t ' + streamers[sindex++];\n return;\n }\n\n for (var streamer of streamers) {\n if (subtext === streamer.substr(0, subtext.length)) {\n document.getElementById(\"keywords\").value = ';t ' + streamer;\n return;\n }\n }\n\n break;\n\n default:\n break;\n }\n }\n }\n\n if (key === 32) {\n //Space to go to search\n updateLabel(text);\n }\n\n sindex = 0;\n cycle = false;\n updateLabel(text);\n}\n\nfunction updateLabel(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n\n if (text[0] === '/') {\n // if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n document.getElementById(\"searchType\").innerHTML = \"Allmusic search\";\n break;\n\n case \"d\":\n document.getElementById(\"searchType\").innerHTML = \"Duck Duck Go search\";\n break;\n\n case \"di\":\n document.getElementById(\"searchType\").innerHTML = \"Discogs search\";\n break;\n\n case \"i\":\n document.getElementById(\"searchType\").innerHTML = \"IMDB search\";\n break;\n\n case \"m\":\n document.getElementById(\"searchType\").innerHTML = \"TheMovieDB search\";\n break;\n\n case \"r\":\n document.getElementById(\"searchType\").innerHTML = \"Reddit search\";\n break;\n\n case \"q\":\n document.getElementById(\"searchType\").innerHTML = \"Qwant search\";\n break;\n\n case \"so\":\n document.getElementById(\"searchType\").innerHTML = \"Soundcloud search\";\n break;\n\n case \"s\":\n document.getElementById(\"searchType\").innerHTML = \"Spotify search\";\n break;\n\n case \"tv\":\n document.getElementById(\"searchType\").innerHTML = \"TheTVDB search\";\n break;\n\n case \"t\":\n document.getElementById(\"searchType\").innerHTML = \"Trakt search\";\n break;\n\n case \"y\":\n document.getElementById(\"searchType\").innerHTML = \"YouTube search\";\n break;\n\n case \"w\":\n document.getElementById(\"searchType\").innerHTML = \"Wikipedia search\";\n break;\n\n case \"p\":\n document.getElementById(\"searchType\").innerHTML = \"Plex search\";\n break;\n\n case \"rt\":\n document.getElementById(\"searchType\").innerHTML = \"Rotten Tomatoes search\";\n break;\n\n default:\n document.getElementById(\"searchType\").innerHTML = \"Invalid search\";\n break;\n }\n } else {\n document.getElementById(\"searchType\").innerHTML = \"Google search\";\n }\n}\n\nfunction search(text) {\n if (text[0] === '/') {\n if (text.indexOf(' ') > -1) {\n let option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n\n switch (option) {\n case \"am\":\n window.location = \"https://www.allmusic.com/search/all/\" + subtext;\n break;\n\n case \"d\":\n window.location = \"https://duckduckgo.com/?q=\" + subtext;\n break;\n\n case \"di\":\n window.location = \"https://www.discogs.com/search/?q=\" + subtext;\n break;\n\n case \"i\":\n window.location = \"https://www.imdb.com/find?q=\" + subtext;\n break;\n\n case \"m\":\n window.location = \"https://www.themoviedb.org/search?query=\" + subtext;\n break;\n\n case \"r\":\n window.location = \"https://www.reddit.com/search?q=\" + subtext;\n break;\n\n case \"q\":\n window.location = \"https://www.qwant.com/?q=\" + subtext;\n break;\n\n case \"so\":\n window.location = \"https://soundcloud.com/search?q=\" + subtext;\n break;\n\n case \"s\":\n window.location = \"https://open.spotify.com/search/results/\" + subtext;\n break;\n\n case \"t\":\n window.location = \"https://trakt.tv/search?query=\" + subtext;\n break;\n\n case \"tv\":\n window.location = \"https://www.thetvdb.com/search?query=\" + subtext;\n break;\n\n case \"y\":\n window.location = \"https://www.youtube.com/results?search_query=\" + subtext;\n break;\n\n case \"w\":\n window.location = \"https://en.wikipedia.org/w/index.php?search=\" + subtext;\n break;\n\n case \"p\":\n window.location = \"https://app.plex.tv/desktop/#!/search?query=\" + subtext;\n break;\n\n case \"rt\":\n window.location = \"https://www.rottentomatoes.com/search?search=\" + subtext;\n break;\n\n default:\n break;\n }\n } else {\n let option = text.substr(1);\n\n switch (option) {\n case \"d\":\n window.location = \"https://www.duckduckgo.com\";\n break;\n\n case \"y\":\n window.location = \"https://www.youtube.com\";\n break;\n\n case \"r\":\n window.location = \"https://reddit.com\";\n break;\n\n case \"s\":\n window.location = \"https://open.spotify.com\";\n break;\n\n default:\n break;\n }\n }\n } else if (validURL(text)) {\n if (containsProtocol(text)) window.location = text;else window.location = \"https://\" + text;\n } else {\n window.location = \"https://www.google.com/search?q=\" + text;\n }\n}\n\nfunction validURL(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/)?' + // protocol\n '((([a-z\\\\d]([a-z\\\\d-]*[a-z\\\\d])*)\\\\.)+[a-z]{2,}|' + // domain name\n '((\\\\d{1,3}\\\\.){3}\\\\d{1,3}))' + // OR ip (v4) address\n '(\\\\:\\\\d+)?(\\\\/[-a-z\\\\d%_.~+]*)*' + // port and path\n '(\\\\?[;&a-z\\\\d%_.~+=-]*)?' + // query string\n '(\\\\#[-a-z\\\\d_]*)?$', 'i'); // fragment locator\n\n return !!pattern.test(str);\n}\n\nfunction containsProtocol(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/){1}.*', 'i');\n return !!pattern.test(str);\n}\n\nString.prototype.replaceAll = function (search, replacement) {\n var target = this;\n return target.split(search).join(replacement);\n};\n\nfunction udpateDisplayedItems(e) {\n localStorage.setItem('contenttype', e.target.checked);\n\n if (e.target.checked) {\n localStorage.setItem('content-display', 'none');\n } else {\n localStorage.setItem('content-display', 'block');\n }\n\n setDisplayedItems();\n}\n\nfunction setDisplayedItems() {\n setValueFromLocalStorage('contenttype');\n setValueFromLocalStorage('content-display');\n}\n\nvar _c, _c2, _c3, _c4, _c5, _c6, _c7, _c8, _c9, _c10, _c11, _c12, _c13;\n\n$RefreshReg$(_c, \"Homepage\");\n$RefreshReg$(_c2, \"Search\");\n$RefreshReg$(_c3, \"Header\");\n$RefreshReg$(_c4, \"Applications\");\n$RefreshReg$(_c5, \"App\");\n$RefreshReg$(_c6, \"Bookmarks\");\n$RefreshReg$(_c7, \"LinkGroups\");\n$RefreshReg$(_c8, \"LinkItem\");\n$RefreshReg$(_c9, \"ModalMenu\");\n$RefreshReg$(_c10, \"HideButton\");\n$RefreshReg$(_c11, \"Provider\");\n$RefreshReg$(_c12, \"ModalInit\");\n$RefreshReg$(_c13, \"Clock\");","map":{"version":3,"sources":["/home/seanedmunds/dev/home-page/src/index.js"],"names":["React","useState","useEffect","ReactDOM","setValueFromLocalStorage","property","value","localStorage","getItem","setValue","document","documentElement","style","setProperty","input","querySelector","replace","Homepage","setTheme","date","greet","Search","handleKeyPress","Header","props","Applications","appList","getApps","items","i","apps","length","safe","NSFW","NSFWEnabled","push","name","url","icon","App","classNameType","hrefUrl","iconName","Bookmarks","bookmarkList","getLinks","bookmarks","category","links","LinkGroups","LinkItem","link","ModalMenu","providers","getProviders","isChecked","console","log","updateTheme","HideButton","checked","udpateDisplayedItems","Provider","provider","prefix","ModalInit","setDisplayedItems","render","getElementById","currentDate","Date","dateOptions","weekday","year","month","day","toLocaleDateString","fixDigits","k","currentTime","Math","floor","getHours","easterEggChance","random","greetings","require","timeBased","easterEggs","messages","easteregg","concat","message","easterEggText","Clock","setDate","refreshClock","timerId","setInterval","cleanup","clearInterval","hour","minutes","getMinutes","midday","time","applications","getThemes","themes","e","themeName","target","innerHTML","toLowerCase","index","findIndex","item","setItem","imagebackground","colorbackground","colorserachbackground","colortextpri","colortextacc","colorborder","sindex","cycle","key","keyCode","which","text","replaceAll","option","substr","indexOf","subtext","search","preventDefault","stopPropagation","streamers","streamer","updateLabel","window","location","validURL","containsProtocol","str","pattern","RegExp","test","String","prototype","replacement","split","join"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { useState, useEffect } from 'react';\nimport ReactDOM from 'react-dom';\nimport './index.css';\n\nconst setValueFromLocalStorage = property => {\n let value = localStorage.getItem(property);\n setValue(property, value);\n};\nconst setValue = (property, value) => {\n if (value) {\n document.documentElement.style.setProperty(`--${property}`, value);\n\n const input = document.querySelector(`#${property}`);\n if (input) {\n value = value.replace('px', '');\n input.value = value;\n }\n }\n};\n\nfunction Homepage() {\n setTheme();\n \n return (\n \n \n \n
\n \n \n
\n \n \n \n
\n \n \n
\n \n \n
\n \n );\n}\n\nfunction Search() {\n return (\n \n )\n}\n\nfunction Header(props) {\n return (\n \n );\n}\n\nfunction Applications() {\n let appList = getApps();\n var items = [];\n for (var i = 0; i < appList.apps.length; i++) {\n var safe = appList.apps[i].NSFW;\n var NSFWEnabled = localStorage.getItem(\"contenttype\");\n if (safe === \"SAFE\") {\n items.push(\n \n );\n } else if (safe === \"NSFW\" && NSFWEnabled) {\n items.push(\n \n );\n } else {\n \n }\n \n }\n return (\n \n Applications
\n \n {items}\n
\n \n );\n}\n\nfunction App(props) {\n \n let classNameType = props.NSFW + \"-content\";\n let hrefUrl = \"https://\" + props.url;\n let iconName = \"mdi-\" + props.icon;\n return (\n \n );\n}\n\nfunction Bookmarks() {\n let bookmarkList = getLinks();\n var items = [];\n for (var i = 0; i < bookmarkList.bookmarks.length; i++) {\n items.push(\n \n );\n }\n return (\n \n Bookmarks
\n \n {items}\n
\n \n );\n}\n\nfunction LinkGroups(props) {\n var items = [];\n for (var i = 0; i < props.links.length; i++) {\n items.push(\n \n );\n }\n return (\n \n
{props.category}
\n {items}\n \n );\n}\n\nfunction LinkItem(props) {\n return (\n \n );\n}\n\nfunction ModalMenu() {\n var providers = getProviders();\n var items = [];\n var isChecked = localStorage.getItem(\"contenttype\");\n console.log(localStorage.getItem(\"contenttype\"));\n for (var i = 0; i < providers.providers.length; i++) {\n items.push(\n \n );\n }\n return (\n \n \n \n\n
Color themes
\n\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n\n\n
Search options
\n
\n \n \n \n | Website | \n Prefix | \n
\n {items}\n \n
\n \n\n \n
\n \n );\n}\n\nfunction HideButton(props) {\n console.log(props.checked);\n if(props.checked === \"true\") {\n console.log(\"icon should be grey\");\n return (\n \n
\n );\n } else {\n console.log(\"icon should be white\");\n return (\n \n
\n );\n }\n}\n\nfunction Provider(props) {\n return (\n \n | {props.provider.name} | \n {props.provider.prefix} | \n
\n );\n}\n\nfunction ModalInit() {\n setDisplayedItems();\n return (\n \n );\n}\n\nReactDOM.render(\n ,\n document.getElementById('root')\n);\n\n//Functions below this line are for calculating data for\n//other functions\n\nfunction date() {\n let currentDate = new Date();\n let dateOptions = {\n weekday: \"long\",\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\"\n };\n let date = currentDate.toLocaleDateString(\"en-GB\", dateOptions);\n return date;\n}\nfunction fixDigits(k) {\n if (k < 10) {\n return \"0\" + k;\n }\n else {\n return k;\n }\n}\nfunction greet() {\n let currentTime = new Date();\n let greet = Math.floor(currentTime.getHours() / 6);\n let easterEggChance = Math.floor(Math.random() * 100);\n let greetings = require('./messages.json');\n let timeBased = [];\n let easterEggs = [];\n for (var i = 0; i < greetings.messages.length; i++) {\n if (greetings.messages[i].easteregg === \"FALSE\") {\n timeBased = timeBased.concat(greetings.messages[i]);\n } else {\n easterEggs = easterEggs.concat(greetings.messages[i]);\n }\n }\n if (easterEggChance > 10) {\n return timeBased[greet].message;\n } else {\n let easterEggText = Math.floor(Math.random() * easterEggs.length);\n return easterEggs[easterEggText].message;\n }\n}\nfunction Clock() {\n const [date, setDate] = useState(new Date());\n\n function refreshClock() {\n setDate(new Date());\n }\n useEffect(() => {\n const timerId = setInterval(refreshClock, 1000);\n return function cleanup() {\n clearInterval(timerId);\n };\n }, []);\n\n var hour = date.getHours();\n var minutes = date.getMinutes();\n //var seconds = date.getSeconds();\n var midday = \"AM\";\n midday = (hour >= 12) ? \"PM\" : \"AM\";\n hour = (hour === 0) ? 12 : ((hour > 12) ? (hour - 12) : hour);\n minutes = fixDigits(minutes);\n //seconds = fixDigits(seconds);\n let time = hour + \":\" + minutes + \" \" + midday;\n\n return (\n {time}
\n\n );\n}\nfunction getApps() {\n let applications = require('./apps.json');\n return applications;\n}\nfunction getLinks() {\n let links = require('./links.json');\n return links;\n}\nfunction getProviders() {\n let providers = require('./providers.json');\n return providers;\n}\nfunction getThemes() {\n let themes = require('./themes.json');\n return themes;\n}\nfunction updateTheme(e) {\n var themes = getThemes();\n var themeName = e.target.innerHTML.toLowerCase();\n var index = themes.themes.findIndex(function(item, i){\n return item.name === themeName;\n });\n localStorage.setItem(\"image-background\", themes.themes[index].imagebackground);\n localStorage.setItem(\"color-background\", themes.themes[index].colorbackground);\n localStorage.setItem(\"color-search-background\", themes.themes[index].colorserachbackground);\n localStorage.setItem(\"color-text-pri\",themes.themes[index].colortextpri);\n localStorage.setItem(\"color-text-acc\", themes.themes[index].colortextacc);\n localStorage.setItem(\"color-border\", themes.themes[index].colorborder);\n \n //document.documentElement.style.setProperty(prop, `var(--${themeName}${prop.substring(10)})`);\n setTheme();\n}\nfunction setTheme() {\n setValueFromLocalStorage('image-background');\n setValueFromLocalStorage('color-background');\n setValueFromLocalStorage('color-search-background');\n setValueFromLocalStorage('color-text-pri');\n setValueFromLocalStorage('color-text-acc');\n setValueFromLocalStorage('color-border');\n setValueFromLocalStorage('content-display');\n}\nfunction handleKeyPress(e) {\n var sindex = 0;\n var cycle = false;\n var key = e.keyCode || e.which;\n var text = e.target.value.replaceAll(\"+\", \"%2B\");\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n if (key === 13) { // Search functions\n search(text);\n }\n if (key === 9) { // Tab Completion Functions\n e.preventDefault();\n e.stopPropagation();\n if (text[0] === ';') {\n switch (option) {\n case 't':\n var streamers = ['admiralbahroo', 'moonmoon_ow', 'witwix'];\n if (!subtext || cycle) {\n cycle = true;\n if (sindex > streamers.length - 1) sindex = 0;\n document.getElementById(\"keywords\").value = ';t ' + streamers[sindex++];\n return;\n }\n for (var streamer of streamers) {\n if (subtext === streamer.substr(0, subtext.length)) {\n document.getElementById(\"keywords\").value = ';t ' + streamer;\n return;\n }\n }\n break;\n default :\n break;\n }\n }\n }\n if(key === 32){ //Space to go to search\n updateLabel(text);\n }\n sindex = 0;\n cycle = false;\n updateLabel(text);\n}\nfunction updateLabel(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n if (text[0] === '/') {\n// if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n document.getElementById(\"searchType\").innerHTML = \"Allmusic search\";\n break;\n case \"d\":\n document.getElementById(\"searchType\").innerHTML = \"Duck Duck Go search\";\n break;\n case \"di\":\n document.getElementById(\"searchType\").innerHTML = \"Discogs search\";\n break;\n case \"i\":\n document.getElementById(\"searchType\").innerHTML = \"IMDB search\";\n break;\n case \"m\":\n document.getElementById(\"searchType\").innerHTML = \"TheMovieDB search\";\n break;\n case \"r\":\n document.getElementById(\"searchType\").innerHTML = \"Reddit search\";\n break;\n case \"q\":\n document.getElementById(\"searchType\").innerHTML = \"Qwant search\";\n break;\n case \"so\":\n document.getElementById(\"searchType\").innerHTML = \"Soundcloud search\";\n break;\n case \"s\":\n document.getElementById(\"searchType\").innerHTML = \"Spotify search\";\n break;\n case \"tv\":\n document.getElementById(\"searchType\").innerHTML = \"TheTVDB search\";\n break;\n case \"t\":\n document.getElementById(\"searchType\").innerHTML = \"Trakt search\";\n break;\n case \"y\":\n document.getElementById(\"searchType\").innerHTML = \"YouTube search\";\n break;\n case \"w\":\n document.getElementById(\"searchType\").innerHTML = \"Wikipedia search\";\n break;\n case \"p\":\n document.getElementById(\"searchType\").innerHTML = \"Plex search\";\n break;\n case \"rt\":\n document.getElementById(\"searchType\").innerHTML = \"Rotten Tomatoes search\";\n break;\n default:\n document.getElementById(\"searchType\").innerHTML = \"Invalid search\";\n break;\n }\n}else {\n document.getElementById(\"searchType\").innerHTML = \"Google search\";\n }\n}\nfunction search(text) {\n if (text[0] === '/') {\n if (text.indexOf(' ') > -1) {\n let option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n switch (option) {\n case \"am\":\n window.location = \"https://www.allmusic.com/search/all/\" + subtext;\n break;\n case \"d\":\n window.location = \"https://duckduckgo.com/?q=\" + subtext;\n break;\n case \"di\":\n window.location = \"https://www.discogs.com/search/?q=\" + subtext;\n break;\n case \"i\":\n window.location = \"https://www.imdb.com/find?q=\" + subtext;\n break;\n case \"m\":\n window.location = \"https://www.themoviedb.org/search?query=\" + subtext;\n break;\n case \"r\":\n window.location = \"https://www.reddit.com/search?q=\" + subtext;\n break;\n case \"q\":\n window.location = \"https://www.qwant.com/?q=\" + subtext;\n break;\n case \"so\":\n window.location = \"https://soundcloud.com/search?q=\" + subtext;\n break;\n case \"s\":\n window.location = \"https://open.spotify.com/search/results/\" + subtext;\n break;\n case \"t\":\n window.location = \"https://trakt.tv/search?query=\" + subtext;\n break;\n case \"tv\":\n window.location = \"https://www.thetvdb.com/search?query=\" + subtext;\n break;\n case \"y\":\n window.location = \"https://www.youtube.com/results?search_query=\" + subtext;\n break;\n case \"w\":\n window.location = \"https://en.wikipedia.org/w/index.php?search=\" + subtext;\n break;\n case \"p\":\n window.location = \"https://app.plex.tv/desktop/#!/search?query=\" + subtext;\n break;\n case \"rt\":\n window.location = \"https://www.rottentomatoes.com/search?search=\" + subtext;\n break;\n default :\n break;\n }\n } else {\n let option = text.substr(1);\n switch (option) {\n case \"d\":\n window.location = \"https://www.duckduckgo.com\";\n break;\n case \"y\":\n window.location = \"https://www.youtube.com\";\n break;\n case \"r\":\n window.location = \"https://reddit.com\";\n break;\n case \"s\":\n window.location = \"https://open.spotify.com\";\n break;\n default :\n break;\n }\n }\n } else if (validURL(text)) {\n if (containsProtocol(text))\n window.location = text;\n else\n window.location = \"https://\" + text;\n } else {\n window.location = \"https://www.google.com/search?q=\" + text;\n }\n}\nfunction validURL(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/)?' + // protocol\n '((([a-z\\\\d]([a-z\\\\d-]*[a-z\\\\d])*)\\\\.)+[a-z]{2,}|' + // domain name\n '((\\\\d{1,3}\\\\.){3}\\\\d{1,3}))' + // OR ip (v4) address\n '(\\\\:\\\\d+)?(\\\\/[-a-z\\\\d%_.~+]*)*' + // port and path\n '(\\\\?[;&a-z\\\\d%_.~+=-]*)?' + // query string\n '(\\\\#[-a-z\\\\d_]*)?$', 'i'); // fragment locator\n return !!pattern.test(str);\n}\nfunction containsProtocol(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/){1}.*', 'i');\n return !!pattern.test(str);\n}\nString.prototype.replaceAll = function(search, replacement) {\n var target = this;\n return target.split(search).join(replacement);\n};\nfunction udpateDisplayedItems(e) {\n localStorage.setItem('contenttype', e.target.checked);\n if (e.target.checked) {\n localStorage.setItem('content-display', 'none');\n } else {\n localStorage.setItem('content-display', 'block');\n }\n setDisplayedItems();\n}\nfunction setDisplayedItems() {\n setValueFromLocalStorage('contenttype');\n setValueFromLocalStorage('content-display');\n}"]},"metadata":{},"sourceType":"module"}
\ No newline at end of file
diff --git a/node_modules/.cache/babel-loader/5ba0405ddac50cf32fc766801bf752d3.json b/node_modules/.cache/babel-loader/5ba0405ddac50cf32fc766801bf752d3.json
new file mode 100644
index 00000000..af6bb2a4
--- /dev/null
+++ b/node_modules/.cache/babel-loader/5ba0405ddac50cf32fc766801bf752d3.json
@@ -0,0 +1 @@
+{"ast":null,"code":"var _jsxFileName = \"/home/seanedmunds/dev/home-page/src/index.js\",\n _s = $RefreshSig$();\n\nimport React from 'react';\nimport { useState, useEffect } from 'react';\nimport ReactDOM from 'react-dom'; //import { unstable_createPortal } from 'react-dom';\n\nimport './index.css';\nimport { jsxDEV as _jsxDEV } from \"react/jsx-dev-runtime\";\n\nfunction Homepage() {\n return /*#__PURE__*/_jsxDEV(\"main\", {\n id: \"container\",\n className: \"fade\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Search, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 11,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 10,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Header, {\n date: date(),\n greet: greet()\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 14,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 13,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Applications, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 20,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 19,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Bookmarks, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 23,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 22,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(ModalMenu, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 26,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 25,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(ModalInit, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 29,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 28,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 9,\n columnNumber: 5\n }, this);\n}\n\n_c = Homepage;\n\nfunction Search() {\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"search\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"abackground\",\n children: [/*#__PURE__*/_jsxDEV(\"input\", {\n name: \"keywords\",\n type: \"text\",\n className: \"keyword\",\n id: \"keywords\",\n size: \"50\",\n spellCheck: \"true\",\n placeholder: \"\"\n /*onFocus={this.placeholder = \"\"} onBlur={this.placeholder = ''}*/\n ,\n autoComplete: \"off\",\n autoFocus: true,\n onKeyUp: handleKeyPress\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 39,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n id: \"searchType\",\n className: \"Input-label\",\n children: \"Google search\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 40,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 38,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 37,\n columnNumber: 5\n }, this);\n}\n\n_c2 = Search;\n\nfunction Header(props) {\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"header\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n id: \"greeting_block\",\n children: /*#__PURE__*/_jsxDEV(\"h1\", {\n id: \"header_greet\",\n children: props.greet\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 50,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 49,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"date_block\",\n children: [/*#__PURE__*/_jsxDEV(\"h2\", {\n id: \"header_date\",\n children: props.date\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 53,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(Clock, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 54,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 52,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 48,\n columnNumber: 5\n }, this);\n}\n\n_c3 = Header;\n\nfunction Applications() {\n let appList = getApps();\n var items = [];\n\n for (var i = 0; i < appList.apps.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(App, {\n name: appList.apps[i].name,\n url: appList.apps[i].url,\n icon: appList.apps[i].icon,\n NSFW: appList.apps[i].NSFW\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 65,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"apps\",\n children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n children: \"Applications\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 76,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"apps_loop\",\n children: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 77,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 75,\n columnNumber: 5\n }, this);\n}\n\n_c4 = Applications;\n\nfunction App(props) {\n let classNameType = props.NSFW + \"-content\";\n let hrefUrl = \"https://\" + props.url;\n let iconName = \"mdi-\" + props.icon;\n return /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: hrefUrl,\n className: classNameType,\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_item\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_icon\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify icon\",\n \"data-icon\": iconName\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 93,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 92,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_text\",\n children: [/*#__PURE__*/_jsxDEV(\"span\", {\n id: \"app-name\",\n children: props.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 96,\n columnNumber: 13\n }, this), /*#__PURE__*/_jsxDEV(\"span\", {\n id: \"app-address\",\n children: props.url\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 97,\n columnNumber: 13\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 95,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 91,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 90,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 89,\n columnNumber: 5\n }, this);\n}\n\n_c5 = App;\n\nfunction Bookmarks() {\n let bookmarkList = getLinks();\n var items = [];\n\n for (var i = 0; i < bookmarkList.bookmarks.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(LinkGroups, {\n category: bookmarkList.bookmarks[i].category,\n links: bookmarkList.bookmarks[i].links\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 110,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"links\",\n children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n children: \"Bookmarks\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 119,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"links_loop\",\n children: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 120,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 118,\n columnNumber: 5\n }, this);\n}\n\n_c6 = Bookmarks;\n\nfunction LinkGroups(props) {\n var items = [];\n\n for (var i = 0; i < props.links.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(LinkItem, {\n link: props.links[i]\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 131,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"links_item\",\n children: [/*#__PURE__*/_jsxDEV(\"h4\", {\n children: props.category\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 139,\n columnNumber: 7\n }, this), items]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 138,\n columnNumber: 5\n }, this);\n}\n\n_c7 = LinkGroups;\n\nfunction LinkItem(props) {\n return /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: props.link.url,\n className: \"theme_color-border theme_text-select\",\n children: props.link.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 148,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 147,\n columnNumber: 5\n }, this);\n}\n\n_c8 = LinkItem;\n\nfunction ModalMenu() {\n var providers = getProviders();\n var items = [];\n\n for (var i = 0; i < providers.providers.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(Provider, {\n provider: providers.providers[i]\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 158,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"modal\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n children: [/*#__PURE__*/_jsxDEV(\"header\", {\n id: \"modal-header\",\n children: [/*#__PURE__*/_jsxDEV(\"h1\", {\n children: \"Options\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 168,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n href: \"#\",\n title: \"Close\",\n className: \"modal-close\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-close\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 170,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 169,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 167,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"h2\", {\n children: \"Color themes\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 174,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"modal-theme\",\n children: [/*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"blackboard\",\n className: \"theme-button theme-blackboard\",\n onClick: updateTheme,\n children: \"Blackboard\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 177,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"gazette\",\n className: \"theme-button theme-gazette\",\n children: \"Gazette\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 178,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"espresso\",\n className: \"theme-button theme-espresso\",\n children: \"Espresso\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 179,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cab\",\n className: \"theme-button theme-cab\",\n children: \"Cab\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 180,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cloud\",\n className: \"theme-button theme-cloud\",\n children: \"Cloud\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 181,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"lime\",\n className: \"theme-button theme-lime\",\n children: \"Lime\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 182,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"passion\",\n className: \"theme-button theme-passion\",\n children: \"Passion\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 183,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"blues\",\n className: \"theme-button theme-blues\",\n children: \"Blues\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 184,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"chalk\",\n className: \"theme-button theme-chalk\",\n children: \"Chalk\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 185,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"tron\",\n className: \"theme-button theme-tron\",\n children: \"Tron\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 186,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"paper\",\n className: \"theme-button theme-paper\",\n children: \"Paper\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 187,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cyberpunk\",\n className: \"theme-button theme-cyberpunk\",\n children: \"Cyberpunk\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 188,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"quadra\",\n className: \"theme-button theme-panam\",\n children: \"Quadra\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 189,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"panam\",\n className: \"theme-button theme-panam\",\n children: \"Panam\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 190,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"touch\",\n className: \"theme-button theme-touch\",\n children: \"Touch\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 191,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"peek\",\n className: \"theme-button theme-peek\",\n children: \"Peek\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 192,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 176,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"h2\", {\n children: \"Search options\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 196,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"providers\",\n children: /*#__PURE__*/_jsxDEV(\"table\", {\n children: /*#__PURE__*/_jsxDEV(\"tbody\", {\n children: [/*#__PURE__*/_jsxDEV(\"tr\", {\n children: [/*#__PURE__*/_jsxDEV(\"th\", {\n children: \"Website\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 201,\n columnNumber: 19\n }, this), /*#__PURE__*/_jsxDEV(\"th\", {\n children: \"Prefix\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 202,\n columnNumber: 19\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 200,\n columnNumber: 17\n }, this), items]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 199,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 198,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 197,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"header\", {\n id: \"modal-footer\",\n children: [/*#__PURE__*/_jsxDEV(\"a\", {\n href: \"https://github.com/jeroenpardon/\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-github-box\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 210,\n columnNumber: 54\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 210,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n href: \"https://materialdesignicons.com/\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-material-design\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 211,\n columnNumber: 54\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 211,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"sneaky\",\n children: [/*#__PURE__*/_jsxDEV(\"input\", {\n type: \"checkbox\",\n id: \"contenttype\",\n onChange: \"nsfw(this)\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 212,\n columnNumber: 35\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n for: \"contenttype\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-domino-mask\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 213,\n columnNumber: 36\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 213,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 212,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 209,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 166,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 165,\n columnNumber: 5\n }, this);\n}\n\n_c9 = ModalMenu;\n\nfunction Provider(props) {\n return /*#__PURE__*/_jsxDEV(\"tr\", {\n children: [/*#__PURE__*/_jsxDEV(\"td\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: props.provider.url,\n children: props.provider.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 223,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 223,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"td\", {\n children: props.provider.prefix\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 224,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 222,\n columnNumber: 5\n }, this);\n}\n\n_c10 = Provider;\n\nfunction ModalInit() {\n return /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"modal_init\",\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n className: \"btn\",\n href: \"#modal\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify icon\",\n \"data-icon\": \"mdi-xbox-controller-menu\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 233,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 232,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 231,\n columnNumber: 5\n }, this);\n}\n\n_c11 = ModalInit;\nReactDOM.render( /*#__PURE__*/_jsxDEV(Homepage, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 240,\n columnNumber: 3\n}, this), document.getElementById('root')); //Functions below this line are for calculating data for\n//other functions\n\nfunction date() {\n let currentDate = new Date();\n let dateOptions = {\n weekday: \"long\",\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\"\n };\n let date = currentDate.toLocaleDateString(\"en-GB\", dateOptions);\n return date;\n}\n\nfunction fixDigits(k) {\n if (k < 10) {\n return \"0\" + k;\n } else {\n return k;\n }\n}\n\nfunction greet() {\n let currentTime = new Date();\n let greet = Math.floor(currentTime.getHours() / 6);\n let easterEggChance = Math.floor(Math.random() * 100);\n\n let greetings = require('./messages.json');\n\n let timeBased = [];\n let easterEggs = [];\n\n for (var i = 0; i < greetings.messages.length; i++) {\n if (greetings.messages[i].easteregg === \"FALSE\") {\n timeBased = timeBased.concat(greetings.messages[i]);\n } else {\n easterEggs = easterEggs.concat(greetings.messages[i]);\n }\n }\n\n if (easterEggChance > 10) {\n return timeBased[greet].message;\n } else {\n let easterEggText = Math.floor(Math.random() * easterEggs.length);\n return easterEggs[easterEggText].message;\n }\n}\n\nfunction Clock() {\n _s();\n\n const [date, setDate] = useState(new Date());\n\n function refreshClock() {\n setDate(new Date());\n }\n\n useEffect(() => {\n const timerId = setInterval(refreshClock, 1000);\n return function cleanup() {\n clearInterval(timerId);\n };\n }, []);\n var hour = date.getHours();\n var minutes = date.getMinutes(); //var seconds = date.getSeconds();\n\n var midday = \"AM\";\n midday = hour >= 12 ? \"PM\" : \"AM\";\n hour = hour === 0 ? 12 : hour > 12 ? hour - 12 : hour;\n minutes = fixDigits(minutes); //seconds = fixDigits(seconds);\n\n let time = hour + \":\" + minutes + \" \" + midday;\n return /*#__PURE__*/_jsxDEV(\"h2\", {\n id: \"clock\",\n children: time\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 311,\n columnNumber: 5\n }, this);\n}\n\n_s(Clock, \"Gqi45WOZhU2c0BLYX0HoJeiR0fk=\");\n\n_c12 = Clock;\n\nfunction getApps() {\n let applications = require('./apps.json');\n\n return applications;\n}\n\nfunction getLinks() {\n let links = require('./links.json');\n\n return links;\n}\n\nfunction getProviders() {\n let providers = require('./providers.json');\n\n return providers;\n}\n\nfunction getThemes() {\n let themes = require('./themes.json');\n\n return themes;\n}\n\nfunction updateTheme(e) {\n var themes = getThemes();\n var themeName = e.target.innerHTML.toLowerCase();\n var index = themes.findIndex(function (item, i) {\n return item.name === themeName;\n });\n console.log(index);\n}\n\nfunction handleKeyPress(e) {\n var sindex = 0;\n var cycle = false;\n var key = e.keyCode || e.which;\n var text = e.target.value.replaceAll(\"+\", \"%2B\");\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n\n if (key == 13) {\n // Search functions\n search(text);\n }\n\n if (key == 9) {\n // Tab Completion Functions\n e.preventDefault();\n e.stopPropagation();\n\n if (text[0] === ';') {\n switch (option) {\n case 't':\n var streamers = ['admiralbahroo', 'moonmoon_ow', 'witwix'];\n\n if (!subtext || cycle) {\n cycle = true;\n if (sindex > streamers.length - 1) sindex = 0;\n document.getElementById(\"keywords\").value = ';t ' + streamers[sindex++];\n return;\n }\n\n for (var streamer of streamers) {\n if (subtext === streamer.substr(0, subtext.length)) {\n document.getElementById(\"keywords\").value = ';t ' + streamer;\n return;\n }\n }\n\n break;\n }\n }\n }\n\n if (key == 32) {\n //Space to go to search\n updateLabel(text);\n }\n\n sindex = 0;\n cycle = false;\n updateLabel(text);\n}\n\nfunction updateLabel(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n\n if (text[0] === '/') {\n // if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n document.getElementById(\"searchType\").innerHTML = \"Allmusic search\";\n break;\n\n case \"d\":\n document.getElementById(\"searchType\").innerHTML = \"Duck Duck Go search\";\n break;\n\n case \"di\":\n document.getElementById(\"searchType\").innerHTML = \"Discogs search\";\n break;\n\n case \"i\":\n document.getElementById(\"searchType\").innerHTML = \"IMDB search\";\n break;\n\n case \"m\":\n document.getElementById(\"searchType\").innerHTML = \"TheMovieDB search\";\n break;\n\n case \"r\":\n document.getElementById(\"searchType\").innerHTML = \"Reddit search\";\n break;\n\n case \"q\":\n document.getElementById(\"searchType\").innerHTML = \"Qwant search\";\n break;\n\n case \"so\":\n document.getElementById(\"searchType\").innerHTML = \"Soundcloud search\";\n break;\n\n case \"s\":\n document.getElementById(\"searchType\").innerHTML = \"Spotify search\";\n break;\n\n case \"tv\":\n document.getElementById(\"searchType\").innerHTML = \"TheTVDB search\";\n break;\n\n case \"t\":\n document.getElementById(\"searchType\").innerHTML = \"Trakt search\";\n break;\n\n case \"y\":\n document.getElementById(\"searchType\").innerHTML = \"YouTube search\";\n break;\n\n case \"w\":\n document.getElementById(\"searchType\").innerHTML = \"Wikipedia search\";\n break;\n\n case \"p\":\n document.getElementById(\"searchType\").innerHTML = \"Plex search\";\n break;\n\n case \"rt\":\n document.getElementById(\"searchType\").innerHTML = \"Rotten Tomatoes search\";\n break;\n\n default:\n document.getElementById(\"searchType\").innerHTML = \"Invalid search\";\n break;\n }\n } else {\n document.getElementById(\"searchType\").innerHTML = \"Google search\";\n }\n}\n\nfunction search(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n\n if (text[0] === '/') {\n if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n window.location = \"https://www.allmusic.com/search/all/\" + subtext;\n break;\n\n case \"d\":\n window.location = \"https://duckduckgo.com/?q=\" + subtext;\n break;\n\n case \"di\":\n window.location = \"https://www.discogs.com/search/?q=\" + subtext;\n break;\n\n case \"i\":\n window.location = \"https://www.imdb.com/find?q=\" + subtext;\n break;\n\n case \"m\":\n window.location = \"https://www.themoviedb.org/search?query=\" + subtext;\n break;\n\n case \"r\":\n window.location = \"https://www.reddit.com/search?q=\" + subtext;\n break;\n\n case \"q\":\n window.location = \"https://www.qwant.com/?q=\" + subtext;\n break;\n\n case \"so\":\n window.location = \"https://soundcloud.com/search?q=\" + subtext;\n break;\n\n case \"s\":\n window.location = \"https://open.spotify.com/search/results/\" + subtext;\n break;\n\n case \"t\":\n window.location = \"https://trakt.tv/search?query=\" + subtext;\n break;\n\n case \"tv\":\n window.location = \"https://www.thetvdb.com/search?query=\" + subtext;\n break;\n\n case \"y\":\n window.location = \"https://www.youtube.com/results?search_query=\" + subtext;\n break;\n\n case \"w\":\n window.location = \"https://en.wikipedia.org/w/index.php?search=\" + subtext;\n break;\n\n case \"p\":\n window.location = \"https://app.plex.tv/desktop/#!/search?query=\" + subtext;\n break;\n\n case \"rt\":\n window.location = \"https://www.rottentomatoes.com/search?search=\" + subtext;\n break;\n }\n } else {\n var option = text.substr(1);\n\n switch (option) {\n case \"d\":\n window.location = \"https://www.duckduckgo.com\";\n break;\n\n case \"y\":\n window.location = \"https://www.youtube.com\";\n break;\n\n case \"r\":\n window.location = \"https://reddit.com\";\n break;\n\n case \"s\":\n window.location = \"https://open.spotify.com\";\n break;\n }\n }\n } else if (validURL(text)) {\n if (containsProtocol(text)) window.location = text;else window.location = \"https://\" + text;\n } else {\n window.location = \"https://www.google.com/search?q=\" + text;\n }\n} // Source: https://stackoverflow.com/questions/5717093/check-if-a-javascript-string-is-a-url\n\n\nfunction validURL(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/)?' + // protocol\n '((([a-z\\\\d]([a-z\\\\d-]*[a-z\\\\d])*)\\\\.)+[a-z]{2,}|' + // domain name\n '((\\\\d{1,3}\\\\.){3}\\\\d{1,3}))' + // OR ip (v4) address\n '(\\\\:\\\\d+)?(\\\\/[-a-z\\\\d%_.~+]*)*' + // port and path\n '(\\\\?[;&a-z\\\\d%_.~+=-]*)?' + // query string\n '(\\\\#[-a-z\\\\d_]*)?$', 'i'); // fragment locator\n\n return !!pattern.test(str);\n}\n\nfunction containsProtocol(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/){1}.*', 'i');\n return !!pattern.test(str);\n}\n\nString.prototype.replaceAll = function (search, replacement) {\n var target = this;\n return target.split(search).join(replacement);\n};\n\nvar _c, _c2, _c3, _c4, _c5, _c6, _c7, _c8, _c9, _c10, _c11, _c12;\n\n$RefreshReg$(_c, \"Homepage\");\n$RefreshReg$(_c2, \"Search\");\n$RefreshReg$(_c3, \"Header\");\n$RefreshReg$(_c4, \"Applications\");\n$RefreshReg$(_c5, \"App\");\n$RefreshReg$(_c6, \"Bookmarks\");\n$RefreshReg$(_c7, \"LinkGroups\");\n$RefreshReg$(_c8, \"LinkItem\");\n$RefreshReg$(_c9, \"ModalMenu\");\n$RefreshReg$(_c10, \"Provider\");\n$RefreshReg$(_c11, \"ModalInit\");\n$RefreshReg$(_c12, \"Clock\");","map":{"version":3,"sources":["/home/seanedmunds/dev/home-page/src/index.js"],"names":["React","useState","useEffect","ReactDOM","Homepage","date","greet","Search","handleKeyPress","Header","props","Applications","appList","getApps","items","i","apps","length","push","name","url","icon","NSFW","App","classNameType","hrefUrl","iconName","Bookmarks","bookmarkList","getLinks","bookmarks","category","links","LinkGroups","LinkItem","link","ModalMenu","providers","getProviders","updateTheme","Provider","provider","prefix","ModalInit","render","document","getElementById","currentDate","Date","dateOptions","weekday","year","month","day","toLocaleDateString","fixDigits","k","currentTime","Math","floor","getHours","easterEggChance","random","greetings","require","timeBased","easterEggs","messages","easteregg","concat","message","easterEggText","Clock","setDate","refreshClock","timerId","setInterval","cleanup","clearInterval","hour","minutes","getMinutes","midday","time","applications","getThemes","themes","e","themeName","target","innerHTML","toLowerCase","index","findIndex","item","console","log","sindex","cycle","key","keyCode","which","text","value","replaceAll","option","substr","indexOf","subtext","search","preventDefault","stopPropagation","streamers","streamer","updateLabel","window","location","validURL","containsProtocol","str","pattern","RegExp","test","String","prototype","replacement","split","join"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { useState, useEffect } from 'react';\nimport ReactDOM from 'react-dom';\n//import { unstable_createPortal } from 'react-dom';\nimport './index.css';\n\nfunction Homepage() {\n return (\n \n \n \n
\n \n \n
\n \n \n \n
\n \n \n
\n \n \n
\n \n );\n}\n\nfunction Search() {\n return (\n \n )\n}\n\nfunction Header(props) {\n return (\n \n );\n}\n\nfunction Applications() {\n let appList = getApps();\n var items = [];\n for (var i = 0; i < appList.apps.length; i++) {\n items.push(\n \n );\n }\n return (\n \n Applications
\n \n {items}\n
\n \n );\n}\n\nfunction App(props) {\n let classNameType = props.NSFW + \"-content\";\n let hrefUrl = \"https://\" + props.url;\n let iconName = \"mdi-\" + props.icon;\n return (\n \n );\n}\n\nfunction Bookmarks() {\n let bookmarkList = getLinks();\n var items = [];\n for (var i = 0; i < bookmarkList.bookmarks.length; i++) {\n items.push(\n \n );\n }\n return (\n \n Bookmarks
\n \n {items}\n
\n \n );\n}\n\nfunction LinkGroups(props) {\n var items = [];\n for (var i = 0; i < props.links.length; i++) {\n items.push(\n \n );\n }\n return (\n \n
{props.category}
\n {items}\n \n );\n}\n\nfunction LinkItem(props) {\n return (\n \n );\n}\n\nfunction ModalMenu() {\n var providers = getProviders();\n var items = [];\n for (var i = 0; i < providers.providers.length; i++) {\n items.push(\n \n );\n }\n return (\n \n \n \n\n
Color themes
\n\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n\n\n
Search options
\n
\n \n \n \n | Website | \n Prefix | \n
\n {items}\n \n
\n \n\n \n
\n \n );\n}\n\nfunction Provider(props) {\n return (\n \n | {props.provider.name} | \n {props.provider.prefix} | \n
\n );\n}\n\nfunction ModalInit() {\n return (\n \n );\n}\n\nReactDOM.render(\n ,\n document.getElementById('root')\n);\n\n//Functions below this line are for calculating data for\n//other functions\n\nfunction date() {\n let currentDate = new Date();\n let dateOptions = {\n weekday: \"long\",\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\"\n };\n let date = currentDate.toLocaleDateString(\"en-GB\", dateOptions);\n return date;\n}\nfunction fixDigits(k) {\n if (k < 10) {\n return \"0\" + k;\n }\n else {\n return k;\n }\n}\nfunction greet() {\n let currentTime = new Date();\n let greet = Math.floor(currentTime.getHours() / 6);\n let easterEggChance = Math.floor(Math.random() * 100);\n let greetings = require('./messages.json');\n let timeBased = [];\n let easterEggs = [];\n for (var i = 0; i < greetings.messages.length; i++) {\n if (greetings.messages[i].easteregg === \"FALSE\") {\n timeBased = timeBased.concat(greetings.messages[i]);\n } else {\n easterEggs = easterEggs.concat(greetings.messages[i]);\n }\n }\n if (easterEggChance > 10) {\n return timeBased[greet].message;\n } else {\n let easterEggText = Math.floor(Math.random() * easterEggs.length);\n return easterEggs[easterEggText].message;\n }\n}\nfunction Clock() {\n const [date, setDate] = useState(new Date());\n\n function refreshClock() {\n setDate(new Date());\n }\n useEffect(() => {\n const timerId = setInterval(refreshClock, 1000);\n return function cleanup() {\n clearInterval(timerId);\n };\n }, []);\n\n var hour = date.getHours();\n var minutes = date.getMinutes();\n //var seconds = date.getSeconds();\n var midday = \"AM\";\n midday = (hour >= 12) ? \"PM\" : \"AM\";\n hour = (hour === 0) ? 12 : ((hour > 12) ? (hour - 12) : hour);\n minutes = fixDigits(minutes);\n //seconds = fixDigits(seconds);\n let time = hour + \":\" + minutes + \" \" + midday;\n\n return (\n {time}
\n\n );\n}\nfunction getApps() {\n let applications = require('./apps.json');\n return applications;\n}\nfunction getLinks() {\n let links = require('./links.json');\n return links;\n}\nfunction getProviders() {\n let providers = require('./providers.json');\n return providers;\n}\nfunction getThemes() {\n let themes = require('./themes.json');\n return themes;\n}\n\nfunction updateTheme(e) {\n var themes = getThemes();\n var themeName = e.target.innerHTML.toLowerCase();\n var index = themes.findIndex(function(item, i){\n return item.name === themeName\n });\n console.log(index);\n}\n\nfunction handleKeyPress(e) {\n var sindex = 0;\n var cycle = false;\n var key = e.keyCode || e.which;\n var text = e.target.value.replaceAll(\"+\", \"%2B\");\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n if (key == 13) { // Search functions\n search(text);\n }\n if (key == 9) { // Tab Completion Functions\n e.preventDefault();\n e.stopPropagation();\n if (text[0] === ';') {\n switch (option) {\n case 't':\n var streamers = ['admiralbahroo', 'moonmoon_ow', 'witwix'];\n if (!subtext || cycle) {\n cycle = true;\n if (sindex > streamers.length - 1) sindex = 0;\n document.getElementById(\"keywords\").value = ';t ' + streamers[sindex++];\n return;\n }\n for (var streamer of streamers) {\n if (subtext === streamer.substr(0, subtext.length)) {\n document.getElementById(\"keywords\").value = ';t ' + streamer;\n return;\n }\n }\n break;\n }\n }\n }\n if(key == 32){ //Space to go to search\nupdateLabel(text);\n }\n sindex = 0;\n cycle = false;\n updateLabel(text);\n}\n\nfunction updateLabel(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n if (text[0] === '/') {\n// if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n document.getElementById(\"searchType\").innerHTML = \"Allmusic search\";\n break;\n case \"d\":\n document.getElementById(\"searchType\").innerHTML = \"Duck Duck Go search\";\n break;\n case \"di\":\n document.getElementById(\"searchType\").innerHTML = \"Discogs search\";\n break;\n case \"i\":\n document.getElementById(\"searchType\").innerHTML = \"IMDB search\";\n break;\n case \"m\":\n document.getElementById(\"searchType\").innerHTML = \"TheMovieDB search\";\n break;\n case \"r\":\n document.getElementById(\"searchType\").innerHTML = \"Reddit search\";\n break;\n case \"q\":\n document.getElementById(\"searchType\").innerHTML = \"Qwant search\";\n break;\n case \"so\":\n document.getElementById(\"searchType\").innerHTML = \"Soundcloud search\";\n break;\n case \"s\":\n document.getElementById(\"searchType\").innerHTML = \"Spotify search\";\n break;\n case \"tv\":\n document.getElementById(\"searchType\").innerHTML = \"TheTVDB search\";\n break;\n case \"t\":\n document.getElementById(\"searchType\").innerHTML = \"Trakt search\";\n break;\n case \"y\":\n document.getElementById(\"searchType\").innerHTML = \"YouTube search\";\n break;\n case \"w\":\n document.getElementById(\"searchType\").innerHTML = \"Wikipedia search\";\n break;\n case \"p\":\n document.getElementById(\"searchType\").innerHTML = \"Plex search\";\n break;\n case \"rt\":\n document.getElementById(\"searchType\").innerHTML = \"Rotten Tomatoes search\";\n break;\n default:\n document.getElementById(\"searchType\").innerHTML = \"Invalid search\";\n break;\n }\n}else {\n document.getElementById(\"searchType\").innerHTML = \"Google search\";\n }\n}\n\nfunction search(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n if (text[0] === '/') {\n if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n window.location = \"https://www.allmusic.com/search/all/\" + subtext;\n break;\n case \"d\":\n window.location = \"https://duckduckgo.com/?q=\" + subtext;\n break;\n case \"di\":\n window.location = \"https://www.discogs.com/search/?q=\" + subtext;\n break;\n case \"i\":\n window.location = \"https://www.imdb.com/find?q=\" + subtext;\n break;\n case \"m\":\n window.location = \"https://www.themoviedb.org/search?query=\" + subtext;\n break;\n case \"r\":\n window.location = \"https://www.reddit.com/search?q=\" + subtext;\n break;\n case \"q\":\n window.location = \"https://www.qwant.com/?q=\" + subtext;\n break;\n case \"so\":\n window.location = \"https://soundcloud.com/search?q=\" + subtext;\n break;\n case \"s\":\n window.location = \"https://open.spotify.com/search/results/\" + subtext;\n break;\n case \"t\":\n window.location = \"https://trakt.tv/search?query=\" + subtext;\n break;\n case \"tv\":\n window.location = \"https://www.thetvdb.com/search?query=\" + subtext;\n break;\n case \"y\":\n window.location = \"https://www.youtube.com/results?search_query=\" + subtext;\n break;\n case \"w\":\n window.location = \"https://en.wikipedia.org/w/index.php?search=\" + subtext;\n break;\n case \"p\":\n window.location = \"https://app.plex.tv/desktop/#!/search?query=\" + subtext;\n break;\n case \"rt\":\n window.location = \"https://www.rottentomatoes.com/search?search=\" + subtext;\n break;\n }\n } else {\n var option = text.substr(1);\n switch (option) {\n case \"d\":\n window.location = \"https://www.duckduckgo.com\";\n break;\n case \"y\":\n window.location = \"https://www.youtube.com\";\n break;\n case \"r\":\n window.location = \"https://reddit.com\";\n break;\n case \"s\":\n window.location = \"https://open.spotify.com\";\n break;\n }\n }\n } else if (validURL(text)) {\n if (containsProtocol(text))\n window.location = text;\n else\n window.location = \"https://\" + text;\n } else {\n window.location = \"https://www.google.com/search?q=\" + text;\n }\n}\n\n// Source: https://stackoverflow.com/questions/5717093/check-if-a-javascript-string-is-a-url\nfunction validURL(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/)?' + // protocol\n '((([a-z\\\\d]([a-z\\\\d-]*[a-z\\\\d])*)\\\\.)+[a-z]{2,}|' + // domain name\n '((\\\\d{1,3}\\\\.){3}\\\\d{1,3}))' + // OR ip (v4) address\n '(\\\\:\\\\d+)?(\\\\/[-a-z\\\\d%_.~+]*)*' + // port and path\n '(\\\\?[;&a-z\\\\d%_.~+=-]*)?' + // query string\n '(\\\\#[-a-z\\\\d_]*)?$', 'i'); // fragment locator\n return !!pattern.test(str);\n}\n\nfunction containsProtocol(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/){1}.*', 'i');\n return !!pattern.test(str);\n}\n\nString.prototype.replaceAll = function(search, replacement) {\n var target = this;\n return target.split(search).join(replacement);\n};"]},"metadata":{},"sourceType":"module"}
\ No newline at end of file
diff --git a/node_modules/.cache/babel-loader/5c3e6f1f28da01d7bb705e0f8c637373.json b/node_modules/.cache/babel-loader/5c3e6f1f28da01d7bb705e0f8c637373.json
new file mode 100644
index 00000000..c606932f
--- /dev/null
+++ b/node_modules/.cache/babel-loader/5c3e6f1f28da01d7bb705e0f8c637373.json
@@ -0,0 +1 @@
+{"ast":null,"code":"var _jsxFileName = \"/home/seanedmunds/dev/home-page/src/index.js\",\n _s = $RefreshSig$();\n\nimport React from 'react';\nimport { useState, useEffect } from 'react';\nimport ReactDOM from 'react-dom';\nimport './index.css';\nimport { jsxDEV as _jsxDEV } from \"react/jsx-dev-runtime\";\n\nconst setValueFromLocalStorage = property => {\n let value = localStorage.getItem(property);\n setValue(property, value);\n};\n\nconst setValue = (property, value) => {\n if (value) {\n document.documentElement.style.setProperty(`--${property}`, value);\n const input = document.querySelector(`#${property}`);\n\n if (input) {\n value = value.replace('px', '');\n input.value = value;\n }\n }\n};\n\nfunction Homepage() {\n setTheme();\n return /*#__PURE__*/_jsxDEV(\"main\", {\n id: \"container\",\n className: \"fade\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Search, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 28,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 27,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Header, {\n date: date(),\n greet: greet()\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 31,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 30,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Applications, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 37,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 36,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Bookmarks, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 40,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 39,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(ModalMenu, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 43,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 42,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(ModalInit, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 46,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 45,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 26,\n columnNumber: 5\n }, this);\n}\n\n_c = Homepage;\n\nfunction Search() {\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"search\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"abackground\",\n children: [/*#__PURE__*/_jsxDEV(\"input\", {\n name: \"keywords\",\n type: \"text\",\n className: \"keyword\",\n id: \"keywords\",\n size: \"50\",\n spellCheck: \"true\",\n placeholder: \"\"\n /*onFocus={this.placeholder = \"\"} onBlur={this.placeholder = ''}*/\n ,\n autoComplete: \"off\",\n autoFocus: true,\n onKeyUp: handleKeyPress\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 56,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n id: \"searchType\",\n className: \"Input-label\",\n children: \"Google search\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 57,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 55,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 54,\n columnNumber: 5\n }, this);\n}\n\n_c2 = Search;\n\nfunction Header(props) {\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"header\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n id: \"greeting_block\",\n children: /*#__PURE__*/_jsxDEV(\"h1\", {\n id: \"header_greet\",\n children: props.greet\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 67,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 66,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"date_block\",\n children: [/*#__PURE__*/_jsxDEV(\"h2\", {\n id: \"header_date\",\n children: props.date\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 70,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(Clock, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 71,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 69,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 65,\n columnNumber: 5\n }, this);\n}\n\n_c3 = Header;\n\nfunction Applications() {\n let appList = getApps();\n var items = [];\n\n for (var i = 0; i < appList.apps.length; i++) {\n var safe = appList.apps[i].NSFW;\n var NSFWEnabled = localStorage.getItem(\"contenttype\");\n\n if (safe === \"SAFE\") {\n items.push( /*#__PURE__*/_jsxDEV(App, {\n name: appList.apps[i].name,\n url: appList.apps[i].url,\n icon: appList.apps[i].icon,\n NSFW: appList.apps[i].NSFW\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 85,\n columnNumber: 9\n }, this));\n } else if (safe === \"NSFW\" && NSFWEnabled) {\n items.push( /*#__PURE__*/_jsxDEV(App, {\n name: appList.apps[i].name,\n url: appList.apps[i].url,\n icon: appList.apps[i].icon,\n NSFW: appList.apps[i].NSFW\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 95,\n columnNumber: 9\n }, this));\n } else {}\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"apps\",\n children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n children: \"Applications\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 110,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"apps_loop\",\n children: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 111,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 109,\n columnNumber: 5\n }, this);\n}\n\n_c4 = Applications;\n\nfunction App(props) {\n let classNameType = props.NSFW + \"-content\";\n let hrefUrl = \"https://\" + props.url;\n let iconName = \"mdi-\" + props.icon;\n return /*#__PURE__*/_jsxDEV(\"div\", {\n className: classNameType,\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: hrefUrl,\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_item\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_icon\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify icon\",\n \"data-icon\": iconName\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 128,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 127,\n columnNumber: 13\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_text\",\n children: [/*#__PURE__*/_jsxDEV(\"span\", {\n id: \"app-name\",\n children: props.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 131,\n columnNumber: 15\n }, this), /*#__PURE__*/_jsxDEV(\"span\", {\n id: \"app-address\",\n children: props.url\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 132,\n columnNumber: 15\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 130,\n columnNumber: 13\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 126,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 125,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 124,\n columnNumber: 7\n }, this);\n}\n\n_c5 = App;\n\nfunction Bookmarks() {\n let bookmarkList = getLinks();\n var items = [];\n\n for (var i = 0; i < bookmarkList.bookmarks.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(LinkGroups, {\n category: bookmarkList.bookmarks[i].category,\n links: bookmarkList.bookmarks[i].links\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 145,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"links\",\n children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n children: \"Bookmarks\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 154,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"links_loop\",\n children: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 155,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 153,\n columnNumber: 5\n }, this);\n}\n\n_c6 = Bookmarks;\n\nfunction LinkGroups(props) {\n var items = [];\n\n for (var i = 0; i < props.links.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(LinkItem, {\n link: props.links[i]\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 166,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"links_item\",\n children: [/*#__PURE__*/_jsxDEV(\"h4\", {\n children: props.category\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 174,\n columnNumber: 7\n }, this), items]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 173,\n columnNumber: 5\n }, this);\n}\n\n_c7 = LinkGroups;\n\nfunction LinkItem(props) {\n return /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: props.link.url,\n className: \"theme_color-border theme_text-select\",\n children: props.link.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 183,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 182,\n columnNumber: 5\n }, this);\n}\n\n_c8 = LinkItem;\n\nfunction ModalMenu() {\n var providers = getProviders();\n var items = [];\n var isChecked = localStorage.getItem(\"contenttype\");\n console.log(localStorage.getItem(\"contenttype\"));\n\n for (var i = 0; i < providers.providers.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(Provider, {\n provider: providers.providers[i]\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 195,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"modal\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n children: [/*#__PURE__*/_jsxDEV(\"header\", {\n id: \"modal-header\",\n children: [/*#__PURE__*/_jsxDEV(\"h1\", {\n children: \"Options\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 205,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n href: \"#\",\n title: \"Close\",\n className: \"modal-close\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-close\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 207,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 206,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 204,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"h2\", {\n children: \"Color themes\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 211,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"modal-theme\",\n children: [/*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"blackboard\",\n className: \"theme-button theme-blackboard\",\n onClick: updateTheme,\n children: \"Blackboard\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 214,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"gazette\",\n className: \"theme-button theme-gazette\",\n onClick: updateTheme,\n children: \"Gazette\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 215,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"espresso\",\n className: \"theme-button theme-espresso\",\n onClick: updateTheme,\n children: \"Espresso\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 216,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cab\",\n className: \"theme-button theme-cab\",\n onClick: updateTheme,\n children: \"Cab\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 217,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cloud\",\n className: \"theme-button theme-cloud\",\n onClick: updateTheme,\n children: \"Cloud\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 218,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"lime\",\n className: \"theme-button theme-lime\",\n onClick: updateTheme,\n children: \"Lime\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 219,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"passion\",\n className: \"theme-button theme-passion\",\n onClick: updateTheme,\n children: \"Passion\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 220,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"blues\",\n className: \"theme-button theme-blues\",\n onClick: updateTheme,\n children: \"Blues\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 221,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"chalk\",\n className: \"theme-button theme-chalk\",\n onClick: updateTheme,\n children: \"Chalk\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 222,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"tron\",\n className: \"theme-button theme-tron\",\n onClick: updateTheme,\n children: \"Tron\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 223,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"paper\",\n className: \"theme-button theme-paper\",\n onClick: updateTheme,\n children: \"Paper\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 224,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cyberpunk\",\n className: \"theme-button theme-cyberpunk\",\n onClick: updateTheme,\n children: \"Cyberpunk\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 225,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"quadra\",\n className: \"theme-button theme-panam\",\n onClick: updateTheme,\n children: \"Quadra\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 226,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"panam\",\n className: \"theme-button theme-panam\",\n onClick: updateTheme,\n children: \"Panam\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 227,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"touch\",\n className: \"theme-button theme-touch\",\n onClick: updateTheme,\n children: \"Touch\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 228,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"peek\",\n className: \"theme-button theme-peek\",\n onClick: updateTheme,\n children: \"Peek\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 229,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 213,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"h2\", {\n children: \"Search options\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 233,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"providers\",\n children: /*#__PURE__*/_jsxDEV(\"table\", {\n children: /*#__PURE__*/_jsxDEV(\"tbody\", {\n children: [/*#__PURE__*/_jsxDEV(\"tr\", {\n children: [/*#__PURE__*/_jsxDEV(\"th\", {\n children: \"Website\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 238,\n columnNumber: 19\n }, this), /*#__PURE__*/_jsxDEV(\"th\", {\n children: \"Prefix\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 239,\n columnNumber: 19\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 237,\n columnNumber: 17\n }, this), items]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 236,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 235,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 234,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"header\", {\n id: \"modal-footer\",\n children: [/*#__PURE__*/_jsxDEV(\"a\", {\n href: \"https://github.com/jeroenpardon/\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-github-box\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 247,\n columnNumber: 54\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 247,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n href: \"https://materialdesignicons.com/\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-material-design\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 248,\n columnNumber: 54\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 248,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(HideButton, {\n checked: isChecked\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 249,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 246,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 203,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 202,\n columnNumber: 5\n }, this);\n}\n\n_c9 = ModalMenu;\n\nfunction HideButton(props) {\n console.log(props.checked);\n\n if (props.checked) {\n return /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"sneaky\",\n children: [/*#__PURE__*/_jsxDEV(\"script\", {\n children: \"console.log(\\\"icon should be grey\\\");\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 263,\n columnNumber: 31\n }, this), /*#__PURE__*/_jsxDEV(\"input\", {\n type: \"checkbox\",\n id: \"contenttype\",\n onChange: udpateDisplayedItems,\n defaultChecked: true\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 263,\n columnNumber: 83\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n for: \"contenttype\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-domino-mask\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 264,\n columnNumber: 32\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 264,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 263,\n columnNumber: 7\n }, this);\n } else {\n return /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"sneaky\",\n children: [/*#__PURE__*/_jsxDEV(\"input\", {\n type: \"checkbox\",\n id: \"contenttype\",\n onChange: udpateDisplayedItems,\n defaultChecked: false\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 268,\n columnNumber: 31\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n for: \"contenttype\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-domino-mask\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 269,\n columnNumber: 32\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 269,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 268,\n columnNumber: 7\n }, this);\n }\n}\n\n_c10 = HideButton;\n\nfunction Provider(props) {\n return /*#__PURE__*/_jsxDEV(\"tr\", {\n children: [/*#__PURE__*/_jsxDEV(\"td\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: props.provider.url,\n children: props.provider.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 277,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 277,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"td\", {\n children: props.provider.prefix\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 278,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 276,\n columnNumber: 5\n }, this);\n}\n\n_c11 = Provider;\n\nfunction ModalInit() {\n setDisplayedItems();\n return /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"modal_init\",\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n className: \"btn\",\n href: \"#modal\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify icon\",\n \"data-icon\": \"mdi-xbox-controller-menu\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 288,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 287,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 286,\n columnNumber: 5\n }, this);\n}\n\n_c12 = ModalInit;\nReactDOM.render( /*#__PURE__*/_jsxDEV(Homepage, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 295,\n columnNumber: 3\n}, this), document.getElementById('root')); //Functions below this line are for calculating data for\n//other functions\n\nfunction date() {\n let currentDate = new Date();\n let dateOptions = {\n weekday: \"long\",\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\"\n };\n let date = currentDate.toLocaleDateString(\"en-GB\", dateOptions);\n return date;\n}\n\nfunction fixDigits(k) {\n if (k < 10) {\n return \"0\" + k;\n } else {\n return k;\n }\n}\n\nfunction greet() {\n let currentTime = new Date();\n let greet = Math.floor(currentTime.getHours() / 6);\n let easterEggChance = Math.floor(Math.random() * 100);\n\n let greetings = require('./messages.json');\n\n let timeBased = [];\n let easterEggs = [];\n\n for (var i = 0; i < greetings.messages.length; i++) {\n if (greetings.messages[i].easteregg === \"FALSE\") {\n timeBased = timeBased.concat(greetings.messages[i]);\n } else {\n easterEggs = easterEggs.concat(greetings.messages[i]);\n }\n }\n\n if (easterEggChance > 10) {\n return timeBased[greet].message;\n } else {\n let easterEggText = Math.floor(Math.random() * easterEggs.length);\n return easterEggs[easterEggText].message;\n }\n}\n\nfunction Clock() {\n _s();\n\n const [date, setDate] = useState(new Date());\n\n function refreshClock() {\n setDate(new Date());\n }\n\n useEffect(() => {\n const timerId = setInterval(refreshClock, 1000);\n return function cleanup() {\n clearInterval(timerId);\n };\n }, []);\n var hour = date.getHours();\n var minutes = date.getMinutes(); //var seconds = date.getSeconds();\n\n var midday = \"AM\";\n midday = hour >= 12 ? \"PM\" : \"AM\";\n hour = hour === 0 ? 12 : hour > 12 ? hour - 12 : hour;\n minutes = fixDigits(minutes); //seconds = fixDigits(seconds);\n\n let time = hour + \":\" + minutes + \" \" + midday;\n return /*#__PURE__*/_jsxDEV(\"h2\", {\n id: \"clock\",\n children: time\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 366,\n columnNumber: 5\n }, this);\n}\n\n_s(Clock, \"Gqi45WOZhU2c0BLYX0HoJeiR0fk=\");\n\n_c13 = Clock;\n\nfunction getApps() {\n let applications = require('./apps.json');\n\n return applications;\n}\n\nfunction getLinks() {\n let links = require('./links.json');\n\n return links;\n}\n\nfunction getProviders() {\n let providers = require('./providers.json');\n\n return providers;\n}\n\nfunction getThemes() {\n let themes = require('./themes.json');\n\n return themes;\n}\n\nfunction updateTheme(e) {\n var themes = getThemes();\n var themeName = e.target.innerHTML.toLowerCase();\n var index = themes.themes.findIndex(function (item, i) {\n return item.name === themeName;\n });\n localStorage.setItem(\"image-background\", themes.themes[index].imagebackground);\n localStorage.setItem(\"color-background\", themes.themes[index].colorbackground);\n localStorage.setItem(\"color-search-background\", themes.themes[index].colorserachbackground);\n localStorage.setItem(\"color-text-pri\", themes.themes[index].colortextpri);\n localStorage.setItem(\"color-text-acc\", themes.themes[index].colortextacc);\n localStorage.setItem(\"color-border\", themes.themes[index].colorborder); //document.documentElement.style.setProperty(prop, `var(--${themeName}${prop.substring(10)})`);\n\n setTheme();\n}\n\nfunction setTheme() {\n setValueFromLocalStorage('image-background');\n setValueFromLocalStorage('color-background');\n setValueFromLocalStorage('color-search-background');\n setValueFromLocalStorage('color-text-pri');\n setValueFromLocalStorage('color-text-acc');\n setValueFromLocalStorage('color-border');\n setValueFromLocalStorage('content-display');\n}\n\nfunction handleKeyPress(e) {\n var sindex = 0;\n var cycle = false;\n var key = e.keyCode || e.which;\n var text = e.target.value.replaceAll(\"+\", \"%2B\");\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n\n if (key == 13) {\n // Search functions\n search(text);\n }\n\n if (key == 9) {\n // Tab Completion Functions\n e.preventDefault();\n e.stopPropagation();\n\n if (text[0] === ';') {\n switch (option) {\n case 't':\n var streamers = ['admiralbahroo', 'moonmoon_ow', 'witwix'];\n\n if (!subtext || cycle) {\n cycle = true;\n if (sindex > streamers.length - 1) sindex = 0;\n document.getElementById(\"keywords\").value = ';t ' + streamers[sindex++];\n return;\n }\n\n for (var streamer of streamers) {\n if (subtext === streamer.substr(0, subtext.length)) {\n document.getElementById(\"keywords\").value = ';t ' + streamer;\n return;\n }\n }\n\n break;\n }\n }\n }\n\n if (key == 32) {\n //Space to go to search\n updateLabel(text);\n }\n\n sindex = 0;\n cycle = false;\n updateLabel(text);\n}\n\nfunction updateLabel(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n\n if (text[0] === '/') {\n // if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n document.getElementById(\"searchType\").innerHTML = \"Allmusic search\";\n break;\n\n case \"d\":\n document.getElementById(\"searchType\").innerHTML = \"Duck Duck Go search\";\n break;\n\n case \"di\":\n document.getElementById(\"searchType\").innerHTML = \"Discogs search\";\n break;\n\n case \"i\":\n document.getElementById(\"searchType\").innerHTML = \"IMDB search\";\n break;\n\n case \"m\":\n document.getElementById(\"searchType\").innerHTML = \"TheMovieDB search\";\n break;\n\n case \"r\":\n document.getElementById(\"searchType\").innerHTML = \"Reddit search\";\n break;\n\n case \"q\":\n document.getElementById(\"searchType\").innerHTML = \"Qwant search\";\n break;\n\n case \"so\":\n document.getElementById(\"searchType\").innerHTML = \"Soundcloud search\";\n break;\n\n case \"s\":\n document.getElementById(\"searchType\").innerHTML = \"Spotify search\";\n break;\n\n case \"tv\":\n document.getElementById(\"searchType\").innerHTML = \"TheTVDB search\";\n break;\n\n case \"t\":\n document.getElementById(\"searchType\").innerHTML = \"Trakt search\";\n break;\n\n case \"y\":\n document.getElementById(\"searchType\").innerHTML = \"YouTube search\";\n break;\n\n case \"w\":\n document.getElementById(\"searchType\").innerHTML = \"Wikipedia search\";\n break;\n\n case \"p\":\n document.getElementById(\"searchType\").innerHTML = \"Plex search\";\n break;\n\n case \"rt\":\n document.getElementById(\"searchType\").innerHTML = \"Rotten Tomatoes search\";\n break;\n\n default:\n document.getElementById(\"searchType\").innerHTML = \"Invalid search\";\n break;\n }\n } else {\n document.getElementById(\"searchType\").innerHTML = \"Google search\";\n }\n}\n\nfunction search(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n\n if (text[0] === '/') {\n if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n window.location = \"https://www.allmusic.com/search/all/\" + subtext;\n break;\n\n case \"d\":\n window.location = \"https://duckduckgo.com/?q=\" + subtext;\n break;\n\n case \"di\":\n window.location = \"https://www.discogs.com/search/?q=\" + subtext;\n break;\n\n case \"i\":\n window.location = \"https://www.imdb.com/find?q=\" + subtext;\n break;\n\n case \"m\":\n window.location = \"https://www.themoviedb.org/search?query=\" + subtext;\n break;\n\n case \"r\":\n window.location = \"https://www.reddit.com/search?q=\" + subtext;\n break;\n\n case \"q\":\n window.location = \"https://www.qwant.com/?q=\" + subtext;\n break;\n\n case \"so\":\n window.location = \"https://soundcloud.com/search?q=\" + subtext;\n break;\n\n case \"s\":\n window.location = \"https://open.spotify.com/search/results/\" + subtext;\n break;\n\n case \"t\":\n window.location = \"https://trakt.tv/search?query=\" + subtext;\n break;\n\n case \"tv\":\n window.location = \"https://www.thetvdb.com/search?query=\" + subtext;\n break;\n\n case \"y\":\n window.location = \"https://www.youtube.com/results?search_query=\" + subtext;\n break;\n\n case \"w\":\n window.location = \"https://en.wikipedia.org/w/index.php?search=\" + subtext;\n break;\n\n case \"p\":\n window.location = \"https://app.plex.tv/desktop/#!/search?query=\" + subtext;\n break;\n\n case \"rt\":\n window.location = \"https://www.rottentomatoes.com/search?search=\" + subtext;\n break;\n }\n } else {\n var option = text.substr(1);\n\n switch (option) {\n case \"d\":\n window.location = \"https://www.duckduckgo.com\";\n break;\n\n case \"y\":\n window.location = \"https://www.youtube.com\";\n break;\n\n case \"r\":\n window.location = \"https://reddit.com\";\n break;\n\n case \"s\":\n window.location = \"https://open.spotify.com\";\n break;\n }\n }\n } else if (validURL(text)) {\n if (containsProtocol(text)) window.location = text;else window.location = \"https://\" + text;\n } else {\n window.location = \"https://www.google.com/search?q=\" + text;\n }\n}\n\nfunction validURL(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/)?' + // protocol\n '((([a-z\\\\d]([a-z\\\\d-]*[a-z\\\\d])*)\\\\.)+[a-z]{2,}|' + // domain name\n '((\\\\d{1,3}\\\\.){3}\\\\d{1,3}))' + // OR ip (v4) address\n '(\\\\:\\\\d+)?(\\\\/[-a-z\\\\d%_.~+]*)*' + // port and path\n '(\\\\?[;&a-z\\\\d%_.~+=-]*)?' + // query string\n '(\\\\#[-a-z\\\\d_]*)?$', 'i'); // fragment locator\n\n return !!pattern.test(str);\n}\n\nfunction containsProtocol(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/){1}.*', 'i');\n return !!pattern.test(str);\n}\n\nString.prototype.replaceAll = function (search, replacement) {\n var target = this;\n return target.split(search).join(replacement);\n};\n\nfunction udpateDisplayedItems(e) {\n localStorage.setItem('contenttype', e.target.checked);\n\n if (e.target.checked) {\n localStorage.setItem('content-display', 'none');\n } else {\n localStorage.setItem('content-display', 'block');\n }\n\n setDisplayedItems();\n}\n\nfunction setDisplayedItems() {\n setValueFromLocalStorage('contenttype');\n setValueFromLocalStorage('content-display');\n}\n\nvar _c, _c2, _c3, _c4, _c5, _c6, _c7, _c8, _c9, _c10, _c11, _c12, _c13;\n\n$RefreshReg$(_c, \"Homepage\");\n$RefreshReg$(_c2, \"Search\");\n$RefreshReg$(_c3, \"Header\");\n$RefreshReg$(_c4, \"Applications\");\n$RefreshReg$(_c5, \"App\");\n$RefreshReg$(_c6, \"Bookmarks\");\n$RefreshReg$(_c7, \"LinkGroups\");\n$RefreshReg$(_c8, \"LinkItem\");\n$RefreshReg$(_c9, \"ModalMenu\");\n$RefreshReg$(_c10, \"HideButton\");\n$RefreshReg$(_c11, \"Provider\");\n$RefreshReg$(_c12, \"ModalInit\");\n$RefreshReg$(_c13, \"Clock\");","map":{"version":3,"sources":["/home/seanedmunds/dev/home-page/src/index.js"],"names":["React","useState","useEffect","ReactDOM","setValueFromLocalStorage","property","value","localStorage","getItem","setValue","document","documentElement","style","setProperty","input","querySelector","replace","Homepage","setTheme","date","greet","Search","handleKeyPress","Header","props","Applications","appList","getApps","items","i","apps","length","safe","NSFW","NSFWEnabled","push","name","url","icon","App","classNameType","hrefUrl","iconName","Bookmarks","bookmarkList","getLinks","bookmarks","category","links","LinkGroups","LinkItem","link","ModalMenu","providers","getProviders","isChecked","console","log","updateTheme","HideButton","checked","udpateDisplayedItems","Provider","provider","prefix","ModalInit","setDisplayedItems","render","getElementById","currentDate","Date","dateOptions","weekday","year","month","day","toLocaleDateString","fixDigits","k","currentTime","Math","floor","getHours","easterEggChance","random","greetings","require","timeBased","easterEggs","messages","easteregg","concat","message","easterEggText","Clock","setDate","refreshClock","timerId","setInterval","cleanup","clearInterval","hour","minutes","getMinutes","midday","time","applications","getThemes","themes","e","themeName","target","innerHTML","toLowerCase","index","findIndex","item","setItem","imagebackground","colorbackground","colorserachbackground","colortextpri","colortextacc","colorborder","sindex","cycle","key","keyCode","which","text","replaceAll","option","substr","indexOf","subtext","search","preventDefault","stopPropagation","streamers","streamer","updateLabel","window","location","validURL","containsProtocol","str","pattern","RegExp","test","String","prototype","replacement","split","join"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { useState, useEffect } from 'react';\nimport ReactDOM from 'react-dom';\nimport './index.css';\n\nconst setValueFromLocalStorage = property => {\n let value = localStorage.getItem(property);\n setValue(property, value);\n};\nconst setValue = (property, value) => {\n if (value) {\n document.documentElement.style.setProperty(`--${property}`, value);\n\n const input = document.querySelector(`#${property}`);\n if (input) {\n value = value.replace('px', '');\n input.value = value;\n }\n }\n};\n\nfunction Homepage() {\n setTheme();\n \n return (\n \n \n \n
\n \n \n
\n \n \n \n
\n \n \n
\n \n \n
\n \n );\n}\n\nfunction Search() {\n return (\n \n )\n}\n\nfunction Header(props) {\n return (\n \n );\n}\n\nfunction Applications() {\n let appList = getApps();\n var items = [];\n for (var i = 0; i < appList.apps.length; i++) {\n var safe = appList.apps[i].NSFW;\n var NSFWEnabled = localStorage.getItem(\"contenttype\");\n if (safe === \"SAFE\") {\n items.push(\n \n );\n } else if (safe === \"NSFW\" && NSFWEnabled) {\n items.push(\n \n );\n } else {\n \n }\n \n }\n return (\n \n Applications
\n \n {items}\n
\n \n );\n}\n\nfunction App(props) {\n \n let classNameType = props.NSFW + \"-content\";\n let hrefUrl = \"https://\" + props.url;\n let iconName = \"mdi-\" + props.icon;\n return (\n \n );\n}\n\nfunction Bookmarks() {\n let bookmarkList = getLinks();\n var items = [];\n for (var i = 0; i < bookmarkList.bookmarks.length; i++) {\n items.push(\n \n );\n }\n return (\n \n Bookmarks
\n \n {items}\n
\n \n );\n}\n\nfunction LinkGroups(props) {\n var items = [];\n for (var i = 0; i < props.links.length; i++) {\n items.push(\n \n );\n }\n return (\n \n
{props.category}
\n {items}\n \n );\n}\n\nfunction LinkItem(props) {\n return (\n \n );\n}\n\nfunction ModalMenu() {\n var providers = getProviders();\n var items = [];\n var isChecked = localStorage.getItem(\"contenttype\");\n console.log(localStorage.getItem(\"contenttype\"));\n for (var i = 0; i < providers.providers.length; i++) {\n items.push(\n \n );\n }\n return (\n \n \n \n\n
Color themes
\n\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n\n\n
Search options
\n
\n \n \n \n | Website | \n Prefix | \n
\n {items}\n \n
\n \n\n \n
\n \n );\n}\n\nfunction HideButton(props) {\n console.log(props.checked);\n if(props.checked) {\n return (\n \n \n
\n );\n } else {\n return (\n \n
\n );\n }\n}\n\nfunction Provider(props) {\n return (\n \n | {props.provider.name} | \n {props.provider.prefix} | \n
\n );\n}\n\nfunction ModalInit() {\n setDisplayedItems();\n return (\n \n );\n}\n\nReactDOM.render(\n ,\n document.getElementById('root')\n);\n\n//Functions below this line are for calculating data for\n//other functions\n\nfunction date() {\n let currentDate = new Date();\n let dateOptions = {\n weekday: \"long\",\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\"\n };\n let date = currentDate.toLocaleDateString(\"en-GB\", dateOptions);\n return date;\n}\nfunction fixDigits(k) {\n if (k < 10) {\n return \"0\" + k;\n }\n else {\n return k;\n }\n}\nfunction greet() {\n let currentTime = new Date();\n let greet = Math.floor(currentTime.getHours() / 6);\n let easterEggChance = Math.floor(Math.random() * 100);\n let greetings = require('./messages.json');\n let timeBased = [];\n let easterEggs = [];\n for (var i = 0; i < greetings.messages.length; i++) {\n if (greetings.messages[i].easteregg === \"FALSE\") {\n timeBased = timeBased.concat(greetings.messages[i]);\n } else {\n easterEggs = easterEggs.concat(greetings.messages[i]);\n }\n }\n if (easterEggChance > 10) {\n return timeBased[greet].message;\n } else {\n let easterEggText = Math.floor(Math.random() * easterEggs.length);\n return easterEggs[easterEggText].message;\n }\n}\nfunction Clock() {\n const [date, setDate] = useState(new Date());\n\n function refreshClock() {\n setDate(new Date());\n }\n useEffect(() => {\n const timerId = setInterval(refreshClock, 1000);\n return function cleanup() {\n clearInterval(timerId);\n };\n }, []);\n\n var hour = date.getHours();\n var minutes = date.getMinutes();\n //var seconds = date.getSeconds();\n var midday = \"AM\";\n midday = (hour >= 12) ? \"PM\" : \"AM\";\n hour = (hour === 0) ? 12 : ((hour > 12) ? (hour - 12) : hour);\n minutes = fixDigits(minutes);\n //seconds = fixDigits(seconds);\n let time = hour + \":\" + minutes + \" \" + midday;\n\n return (\n {time}
\n\n );\n}\nfunction getApps() {\n let applications = require('./apps.json');\n return applications;\n}\nfunction getLinks() {\n let links = require('./links.json');\n return links;\n}\nfunction getProviders() {\n let providers = require('./providers.json');\n return providers;\n}\nfunction getThemes() {\n let themes = require('./themes.json');\n return themes;\n}\nfunction updateTheme(e) {\n var themes = getThemes();\n var themeName = e.target.innerHTML.toLowerCase();\n var index = themes.themes.findIndex(function(item, i){\n return item.name === themeName;\n });\n localStorage.setItem(\"image-background\", themes.themes[index].imagebackground);\n localStorage.setItem(\"color-background\", themes.themes[index].colorbackground);\n localStorage.setItem(\"color-search-background\", themes.themes[index].colorserachbackground);\n localStorage.setItem(\"color-text-pri\",themes.themes[index].colortextpri);\n localStorage.setItem(\"color-text-acc\", themes.themes[index].colortextacc);\n localStorage.setItem(\"color-border\", themes.themes[index].colorborder);\n \n //document.documentElement.style.setProperty(prop, `var(--${themeName}${prop.substring(10)})`);\n setTheme();\n}\nfunction setTheme() {\n setValueFromLocalStorage('image-background');\n setValueFromLocalStorage('color-background');\n setValueFromLocalStorage('color-search-background');\n setValueFromLocalStorage('color-text-pri');\n setValueFromLocalStorage('color-text-acc');\n setValueFromLocalStorage('color-border');\n setValueFromLocalStorage('content-display');\n}\nfunction handleKeyPress(e) {\n var sindex = 0;\n var cycle = false;\n var key = e.keyCode || e.which;\n var text = e.target.value.replaceAll(\"+\", \"%2B\");\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n if (key == 13) { // Search functions\n search(text);\n }\n if (key == 9) { // Tab Completion Functions\n e.preventDefault();\n e.stopPropagation();\n if (text[0] === ';') {\n switch (option) {\n case 't':\n var streamers = ['admiralbahroo', 'moonmoon_ow', 'witwix'];\n if (!subtext || cycle) {\n cycle = true;\n if (sindex > streamers.length - 1) sindex = 0;\n document.getElementById(\"keywords\").value = ';t ' + streamers[sindex++];\n return;\n }\n for (var streamer of streamers) {\n if (subtext === streamer.substr(0, subtext.length)) {\n document.getElementById(\"keywords\").value = ';t ' + streamer;\n return;\n }\n }\n break;\n }\n }\n }\n if(key == 32){ //Space to go to search\nupdateLabel(text);\n }\n sindex = 0;\n cycle = false;\n updateLabel(text);\n}\nfunction updateLabel(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n if (text[0] === '/') {\n// if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n document.getElementById(\"searchType\").innerHTML = \"Allmusic search\";\n break;\n case \"d\":\n document.getElementById(\"searchType\").innerHTML = \"Duck Duck Go search\";\n break;\n case \"di\":\n document.getElementById(\"searchType\").innerHTML = \"Discogs search\";\n break;\n case \"i\":\n document.getElementById(\"searchType\").innerHTML = \"IMDB search\";\n break;\n case \"m\":\n document.getElementById(\"searchType\").innerHTML = \"TheMovieDB search\";\n break;\n case \"r\":\n document.getElementById(\"searchType\").innerHTML = \"Reddit search\";\n break;\n case \"q\":\n document.getElementById(\"searchType\").innerHTML = \"Qwant search\";\n break;\n case \"so\":\n document.getElementById(\"searchType\").innerHTML = \"Soundcloud search\";\n break;\n case \"s\":\n document.getElementById(\"searchType\").innerHTML = \"Spotify search\";\n break;\n case \"tv\":\n document.getElementById(\"searchType\").innerHTML = \"TheTVDB search\";\n break;\n case \"t\":\n document.getElementById(\"searchType\").innerHTML = \"Trakt search\";\n break;\n case \"y\":\n document.getElementById(\"searchType\").innerHTML = \"YouTube search\";\n break;\n case \"w\":\n document.getElementById(\"searchType\").innerHTML = \"Wikipedia search\";\n break;\n case \"p\":\n document.getElementById(\"searchType\").innerHTML = \"Plex search\";\n break;\n case \"rt\":\n document.getElementById(\"searchType\").innerHTML = \"Rotten Tomatoes search\";\n break;\n default:\n document.getElementById(\"searchType\").innerHTML = \"Invalid search\";\n break;\n }\n}else {\n document.getElementById(\"searchType\").innerHTML = \"Google search\";\n }\n}\nfunction search(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n if (text[0] === '/') {\n if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n window.location = \"https://www.allmusic.com/search/all/\" + subtext;\n break;\n case \"d\":\n window.location = \"https://duckduckgo.com/?q=\" + subtext;\n break;\n case \"di\":\n window.location = \"https://www.discogs.com/search/?q=\" + subtext;\n break;\n case \"i\":\n window.location = \"https://www.imdb.com/find?q=\" + subtext;\n break;\n case \"m\":\n window.location = \"https://www.themoviedb.org/search?query=\" + subtext;\n break;\n case \"r\":\n window.location = \"https://www.reddit.com/search?q=\" + subtext;\n break;\n case \"q\":\n window.location = \"https://www.qwant.com/?q=\" + subtext;\n break;\n case \"so\":\n window.location = \"https://soundcloud.com/search?q=\" + subtext;\n break;\n case \"s\":\n window.location = \"https://open.spotify.com/search/results/\" + subtext;\n break;\n case \"t\":\n window.location = \"https://trakt.tv/search?query=\" + subtext;\n break;\n case \"tv\":\n window.location = \"https://www.thetvdb.com/search?query=\" + subtext;\n break;\n case \"y\":\n window.location = \"https://www.youtube.com/results?search_query=\" + subtext;\n break;\n case \"w\":\n window.location = \"https://en.wikipedia.org/w/index.php?search=\" + subtext;\n break;\n case \"p\":\n window.location = \"https://app.plex.tv/desktop/#!/search?query=\" + subtext;\n break;\n case \"rt\":\n window.location = \"https://www.rottentomatoes.com/search?search=\" + subtext;\n break;\n }\n } else {\n var option = text.substr(1);\n switch (option) {\n case \"d\":\n window.location = \"https://www.duckduckgo.com\";\n break;\n case \"y\":\n window.location = \"https://www.youtube.com\";\n break;\n case \"r\":\n window.location = \"https://reddit.com\";\n break;\n case \"s\":\n window.location = \"https://open.spotify.com\";\n break;\n }\n }\n } else if (validURL(text)) {\n if (containsProtocol(text))\n window.location = text;\n else\n window.location = \"https://\" + text;\n } else {\n window.location = \"https://www.google.com/search?q=\" + text;\n }\n}\nfunction validURL(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/)?' + // protocol\n '((([a-z\\\\d]([a-z\\\\d-]*[a-z\\\\d])*)\\\\.)+[a-z]{2,}|' + // domain name\n '((\\\\d{1,3}\\\\.){3}\\\\d{1,3}))' + // OR ip (v4) address\n '(\\\\:\\\\d+)?(\\\\/[-a-z\\\\d%_.~+]*)*' + // port and path\n '(\\\\?[;&a-z\\\\d%_.~+=-]*)?' + // query string\n '(\\\\#[-a-z\\\\d_]*)?$', 'i'); // fragment locator\n return !!pattern.test(str);\n}\nfunction containsProtocol(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/){1}.*', 'i');\n return !!pattern.test(str);\n}\nString.prototype.replaceAll = function(search, replacement) {\n var target = this;\n return target.split(search).join(replacement);\n};\nfunction udpateDisplayedItems(e) {\n localStorage.setItem('contenttype', e.target.checked);\n if (e.target.checked) {\n localStorage.setItem('content-display', 'none');\n } else {\n localStorage.setItem('content-display', 'block');\n }\n setDisplayedItems();\n}\nfunction setDisplayedItems() {\n setValueFromLocalStorage('contenttype');\n setValueFromLocalStorage('content-display');\n}"]},"metadata":{},"sourceType":"module"}
\ No newline at end of file
diff --git a/node_modules/.cache/babel-loader/5c9b9f8914c467c6819ae4d48e8013de.json b/node_modules/.cache/babel-loader/5c9b9f8914c467c6819ae4d48e8013de.json
new file mode 100644
index 00000000..8d56a5bb
--- /dev/null
+++ b/node_modules/.cache/babel-loader/5c9b9f8914c467c6819ae4d48e8013de.json
@@ -0,0 +1 @@
+{"ast":null,"code":"var _jsxFileName = \"/home/seanedmunds/dev/home-page/src/index.js\",\n _s = $RefreshSig$();\n\nimport React from 'react';\nimport { useState, useEffect } from 'react';\nimport ReactDOM from 'react-dom'; //import { unstable_createPortal } from 'react-dom';\n\nimport './index.css';\nimport { jsxDEV as _jsxDEV } from \"react/jsx-dev-runtime\";\n\nfunction Homepage() {\n return /*#__PURE__*/_jsxDEV(\"main\", {\n id: \"container\",\n className: \"fade\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Search, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 11,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 10,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Header, {\n date: date(),\n greet: greet()\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 14,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 13,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Applications, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 20,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 19,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Bookmarks, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 23,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 22,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(ModalMenu, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 26,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 25,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(ModalInit, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 29,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 28,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 9,\n columnNumber: 5\n }, this);\n}\n\n_c = Homepage;\n\nfunction Search() {\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"search\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"abackground\",\n children: [/*#__PURE__*/_jsxDEV(\"input\", {\n name: \"keywords\",\n type: \"text\",\n className: \"keyword\",\n id: \"keywords\",\n size: \"50\",\n spellCheck: \"true\",\n placeholder: \"\"\n /*onFocus={this.placeholder = \"\"} onBlur={this.placeholder = ''}*/\n ,\n autoComplete: \"off\",\n autoFocus: true,\n onKeyUp: handleKeyPress\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 39,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n id: \"searchType\",\n className: \"Input-label\",\n children: \"Google search\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 40,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 38,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 37,\n columnNumber: 5\n }, this);\n}\n\n_c2 = Search;\n\nfunction Header(props) {\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"header\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n id: \"greeting_block\",\n children: /*#__PURE__*/_jsxDEV(\"h1\", {\n id: \"header_greet\",\n children: props.greet\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 50,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 49,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"date_block\",\n children: [/*#__PURE__*/_jsxDEV(\"h2\", {\n id: \"header_date\",\n children: props.date\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 53,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(Clock, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 54,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 52,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 48,\n columnNumber: 5\n }, this);\n}\n\n_c3 = Header;\n\nfunction Applications() {\n let appList = getApps();\n var items = [];\n\n for (var i = 0; i < appList.apps.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(App, {\n name: appList.apps[i].name,\n url: appList.apps[i].url,\n icon: appList.apps[i].icon,\n NSFW: appList.apps[i].NSFW\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 65,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"apps\",\n children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n children: \"Applications\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 76,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"apps_loop\",\n children: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 77,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 75,\n columnNumber: 5\n }, this);\n}\n\n_c4 = Applications;\n\nfunction App(props) {\n let classNameType = props.NSFW + \"-content\";\n let hrefUrl = \"https://\" + props.url;\n let iconName = \"mdi-\" + props.icon;\n return /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: hrefUrl,\n className: classNameType,\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_item\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_icon\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify icon\",\n \"data-icon\": iconName\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 93,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 92,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_text\",\n children: [/*#__PURE__*/_jsxDEV(\"span\", {\n id: \"app-name\",\n children: props.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 96,\n columnNumber: 13\n }, this), /*#__PURE__*/_jsxDEV(\"span\", {\n id: \"app-address\",\n children: props.url\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 97,\n columnNumber: 13\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 95,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 91,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 90,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 89,\n columnNumber: 5\n }, this);\n}\n\n_c5 = App;\n\nfunction Bookmarks() {\n let bookmarkList = getLinks();\n var items = [];\n\n for (var i = 0; i < bookmarkList.bookmarks.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(LinkGroups, {\n category: bookmarkList.bookmarks[i].category,\n links: bookmarkList.bookmarks[i].links\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 110,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"links\",\n children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n children: \"Bookmarks\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 119,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"links_loop\",\n children: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 120,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 118,\n columnNumber: 5\n }, this);\n}\n\n_c6 = Bookmarks;\n\nfunction LinkGroups(props) {\n var items = [];\n\n for (var i = 0; i < props.links.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(LinkItem, {\n link: props.links[i]\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 131,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"links_item\",\n children: [/*#__PURE__*/_jsxDEV(\"h4\", {\n children: props.category\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 139,\n columnNumber: 7\n }, this), items]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 138,\n columnNumber: 5\n }, this);\n}\n\n_c7 = LinkGroups;\n\nfunction LinkItem(props) {\n return /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: props.link.url,\n className: \"theme_color-border theme_text-select\",\n children: props.link.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 148,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 147,\n columnNumber: 5\n }, this);\n}\n\n_c8 = LinkItem;\n\nfunction ModalMenu() {\n var providers = getProviders();\n var items = [];\n\n for (var i = 0; i < providers.providers.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(Provider, {\n provider: providers.providers[i]\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 158,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"modal\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n children: [/*#__PURE__*/_jsxDEV(\"header\", {\n id: \"modal-header\",\n children: [/*#__PURE__*/_jsxDEV(\"h1\", {\n children: \"Options\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 168,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n href: \"#\",\n title: \"Close\",\n className: \"modal-close\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-close\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 170,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 169,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 167,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"h2\", {\n children: \"Color themes\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 174,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"modal-theme\",\n children: [/*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"blackboard\",\n className: \"theme-button theme-blackboard\",\n onClick: updateTheme,\n children: \"Blackboard\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 177,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"gazette\",\n className: \"theme-button theme-gazette\",\n children: \"Gazette\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 178,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"espresso\",\n className: \"theme-button theme-espresso\",\n children: \"Espresso\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 179,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cab\",\n className: \"theme-button theme-cab\",\n children: \"Cab\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 180,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cloud\",\n className: \"theme-button theme-cloud\",\n children: \"Cloud\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 181,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"lime\",\n className: \"theme-button theme-lime\",\n children: \"Lime\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 182,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"passion\",\n className: \"theme-button theme-passion\",\n children: \"Passion\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 183,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"blues\",\n className: \"theme-button theme-blues\",\n children: \"Blues\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 184,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"chalk\",\n className: \"theme-button theme-chalk\",\n children: \"Chalk\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 185,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"tron\",\n className: \"theme-button theme-tron\",\n children: \"Tron\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 186,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"paper\",\n className: \"theme-button theme-paper\",\n children: \"Paper\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 187,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cyberpunk\",\n className: \"theme-button theme-cyberpunk\",\n children: \"Cyberpunk\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 188,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"quadra\",\n className: \"theme-button theme-panam\",\n children: \"Quadra\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 189,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"panam\",\n className: \"theme-button theme-panam\",\n children: \"Panam\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 190,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"touch\",\n className: \"theme-button theme-touch\",\n children: \"Touch\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 191,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"peek\",\n className: \"theme-button theme-peek\",\n children: \"Peek\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 192,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 176,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"h2\", {\n children: \"Search options\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 196,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"providers\",\n children: /*#__PURE__*/_jsxDEV(\"table\", {\n children: /*#__PURE__*/_jsxDEV(\"tbody\", {\n children: [/*#__PURE__*/_jsxDEV(\"tr\", {\n children: [/*#__PURE__*/_jsxDEV(\"th\", {\n children: \"Website\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 201,\n columnNumber: 19\n }, this), /*#__PURE__*/_jsxDEV(\"th\", {\n children: \"Prefix\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 202,\n columnNumber: 19\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 200,\n columnNumber: 17\n }, this), items]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 199,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 198,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 197,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"header\", {\n id: \"modal-footer\",\n children: [/*#__PURE__*/_jsxDEV(\"a\", {\n href: \"https://github.com/jeroenpardon/\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-github-box\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 210,\n columnNumber: 54\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 210,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n href: \"https://materialdesignicons.com/\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-material-design\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 211,\n columnNumber: 54\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 211,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"sneaky\",\n children: [/*#__PURE__*/_jsxDEV(\"input\", {\n type: \"checkbox\",\n id: \"contenttype\",\n onChange: \"nsfw(this)\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 212,\n columnNumber: 35\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n for: \"contenttype\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-domino-mask\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 213,\n columnNumber: 36\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 213,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 212,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 209,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 166,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 165,\n columnNumber: 5\n }, this);\n}\n\n_c9 = ModalMenu;\n\nfunction Provider(props) {\n return /*#__PURE__*/_jsxDEV(\"tr\", {\n children: [/*#__PURE__*/_jsxDEV(\"td\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: props.provider.url,\n children: props.provider.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 223,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 223,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"td\", {\n children: props.provider.prefix\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 224,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 222,\n columnNumber: 5\n }, this);\n}\n\n_c10 = Provider;\n\nfunction ModalInit() {\n return /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"modal_init\",\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n className: \"btn\",\n href: \"#modal\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify icon\",\n \"data-icon\": \"mdi-xbox-controller-menu\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 233,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 232,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 231,\n columnNumber: 5\n }, this);\n}\n\n_c11 = ModalInit;\nReactDOM.render( /*#__PURE__*/_jsxDEV(Homepage, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 240,\n columnNumber: 3\n}, this), document.getElementById('root')); //Functions below this line are for calculating data for\n//other functions\n\nfunction date() {\n let currentDate = new Date();\n let dateOptions = {\n weekday: \"long\",\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\"\n };\n let date = currentDate.toLocaleDateString(\"en-GB\", dateOptions);\n return date;\n}\n\nfunction fixDigits(k) {\n if (k < 10) {\n return \"0\" + k;\n } else {\n return k;\n }\n}\n\nfunction greet() {\n let currentTime = new Date();\n let greet = Math.floor(currentTime.getHours() / 6);\n let easterEggChance = Math.floor(Math.random() * 100);\n\n let greetings = require('./messages.json');\n\n let timeBased = [];\n let easterEggs = [];\n\n for (var i = 0; i < greetings.messages.length; i++) {\n if (greetings.messages[i].easteregg === \"FALSE\") {\n timeBased = timeBased.concat(greetings.messages[i]);\n } else {\n easterEggs = easterEggs.concat(greetings.messages[i]);\n }\n }\n\n if (easterEggChance > 10) {\n return timeBased[greet].message;\n } else {\n let easterEggText = Math.floor(Math.random() * easterEggs.length);\n return easterEggs[easterEggText].message;\n }\n}\n\nfunction Clock() {\n _s();\n\n const [date, setDate] = useState(new Date());\n\n function refreshClock() {\n setDate(new Date());\n }\n\n useEffect(() => {\n const timerId = setInterval(refreshClock, 1000);\n return function cleanup() {\n clearInterval(timerId);\n };\n }, []);\n var hour = date.getHours();\n var minutes = date.getMinutes(); //var seconds = date.getSeconds();\n\n var midday = \"AM\";\n midday = hour >= 12 ? \"PM\" : \"AM\";\n hour = hour === 0 ? 12 : hour > 12 ? hour - 12 : hour;\n minutes = fixDigits(minutes); //seconds = fixDigits(seconds);\n\n let time = hour + \":\" + minutes + \" \" + midday;\n return /*#__PURE__*/_jsxDEV(\"h2\", {\n id: \"clock\",\n children: time\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 311,\n columnNumber: 5\n }, this);\n}\n\n_s(Clock, \"Gqi45WOZhU2c0BLYX0HoJeiR0fk=\");\n\n_c12 = Clock;\n\nfunction getApps() {\n let applications = require('./apps.json');\n\n return applications;\n}\n\nfunction getLinks() {\n let links = require('./links.json');\n\n return links;\n}\n\nfunction getProviders() {\n let providers = require('./providers.json');\n\n return providers;\n}\n\nfunction getThemes() {\n let themes = require('./themes.json');\n\n return themes;\n}\n\nfunction updateTheme(e) {\n var themes = getThemes();\n var themeName = e.target.innerHTML.toLowerCase();\n var index = themes.findIndex(function (item, i) {\n return item.name === themeName;\n });\n}\n\nfunction handleKeyPress(e) {\n var sindex = 0;\n var cycle = false;\n var key = e.keyCode || e.which;\n var text = e.target.value.replaceAll(\"+\", \"%2B\");\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n\n if (key == 13) {\n // Search functions\n search(text);\n }\n\n if (key == 9) {\n // Tab Completion Functions\n e.preventDefault();\n e.stopPropagation();\n\n if (text[0] === ';') {\n switch (option) {\n case 't':\n var streamers = ['admiralbahroo', 'moonmoon_ow', 'witwix'];\n\n if (!subtext || cycle) {\n cycle = true;\n if (sindex > streamers.length - 1) sindex = 0;\n document.getElementById(\"keywords\").value = ';t ' + streamers[sindex++];\n return;\n }\n\n for (var streamer of streamers) {\n if (subtext === streamer.substr(0, subtext.length)) {\n document.getElementById(\"keywords\").value = ';t ' + streamer;\n return;\n }\n }\n\n break;\n }\n }\n }\n\n if (key == 32) {\n //Space to go to search\n updateLabel(text);\n }\n\n sindex = 0;\n cycle = false;\n updateLabel(text);\n}\n\nfunction updateLabel(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n\n if (text[0] === '/') {\n // if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n document.getElementById(\"searchType\").innerHTML = \"Allmusic search\";\n break;\n\n case \"d\":\n document.getElementById(\"searchType\").innerHTML = \"Duck Duck Go search\";\n break;\n\n case \"di\":\n document.getElementById(\"searchType\").innerHTML = \"Discogs search\";\n break;\n\n case \"i\":\n document.getElementById(\"searchType\").innerHTML = \"IMDB search\";\n break;\n\n case \"m\":\n document.getElementById(\"searchType\").innerHTML = \"TheMovieDB search\";\n break;\n\n case \"r\":\n document.getElementById(\"searchType\").innerHTML = \"Reddit search\";\n break;\n\n case \"q\":\n document.getElementById(\"searchType\").innerHTML = \"Qwant search\";\n break;\n\n case \"so\":\n document.getElementById(\"searchType\").innerHTML = \"Soundcloud search\";\n break;\n\n case \"s\":\n document.getElementById(\"searchType\").innerHTML = \"Spotify search\";\n break;\n\n case \"tv\":\n document.getElementById(\"searchType\").innerHTML = \"TheTVDB search\";\n break;\n\n case \"t\":\n document.getElementById(\"searchType\").innerHTML = \"Trakt search\";\n break;\n\n case \"y\":\n document.getElementById(\"searchType\").innerHTML = \"YouTube search\";\n break;\n\n case \"w\":\n document.getElementById(\"searchType\").innerHTML = \"Wikipedia search\";\n break;\n\n case \"p\":\n document.getElementById(\"searchType\").innerHTML = \"Plex search\";\n break;\n\n case \"rt\":\n document.getElementById(\"searchType\").innerHTML = \"Rotten Tomatoes search\";\n break;\n\n default:\n document.getElementById(\"searchType\").innerHTML = \"Invalid search\";\n break;\n }\n } else {\n document.getElementById(\"searchType\").innerHTML = \"Google search\";\n }\n}\n\nfunction search(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n\n if (text[0] === '/') {\n if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n window.location = \"https://www.allmusic.com/search/all/\" + subtext;\n break;\n\n case \"d\":\n window.location = \"https://duckduckgo.com/?q=\" + subtext;\n break;\n\n case \"di\":\n window.location = \"https://www.discogs.com/search/?q=\" + subtext;\n break;\n\n case \"i\":\n window.location = \"https://www.imdb.com/find?q=\" + subtext;\n break;\n\n case \"m\":\n window.location = \"https://www.themoviedb.org/search?query=\" + subtext;\n break;\n\n case \"r\":\n window.location = \"https://www.reddit.com/search?q=\" + subtext;\n break;\n\n case \"q\":\n window.location = \"https://www.qwant.com/?q=\" + subtext;\n break;\n\n case \"so\":\n window.location = \"https://soundcloud.com/search?q=\" + subtext;\n break;\n\n case \"s\":\n window.location = \"https://open.spotify.com/search/results/\" + subtext;\n break;\n\n case \"t\":\n window.location = \"https://trakt.tv/search?query=\" + subtext;\n break;\n\n case \"tv\":\n window.location = \"https://www.thetvdb.com/search?query=\" + subtext;\n break;\n\n case \"y\":\n window.location = \"https://www.youtube.com/results?search_query=\" + subtext;\n break;\n\n case \"w\":\n window.location = \"https://en.wikipedia.org/w/index.php?search=\" + subtext;\n break;\n\n case \"p\":\n window.location = \"https://app.plex.tv/desktop/#!/search?query=\" + subtext;\n break;\n\n case \"rt\":\n window.location = \"https://www.rottentomatoes.com/search?search=\" + subtext;\n break;\n }\n } else {\n var option = text.substr(1);\n\n switch (option) {\n case \"d\":\n window.location = \"https://www.duckduckgo.com\";\n break;\n\n case \"y\":\n window.location = \"https://www.youtube.com\";\n break;\n\n case \"r\":\n window.location = \"https://reddit.com\";\n break;\n\n case \"s\":\n window.location = \"https://open.spotify.com\";\n break;\n }\n }\n } else if (validURL(text)) {\n if (containsProtocol(text)) window.location = text;else window.location = \"https://\" + text;\n } else {\n window.location = \"https://www.google.com/search?q=\" + text;\n }\n} // Source: https://stackoverflow.com/questions/5717093/check-if-a-javascript-string-is-a-url\n\n\nfunction validURL(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/)?' + // protocol\n '((([a-z\\\\d]([a-z\\\\d-]*[a-z\\\\d])*)\\\\.)+[a-z]{2,}|' + // domain name\n '((\\\\d{1,3}\\\\.){3}\\\\d{1,3}))' + // OR ip (v4) address\n '(\\\\:\\\\d+)?(\\\\/[-a-z\\\\d%_.~+]*)*' + // port and path\n '(\\\\?[;&a-z\\\\d%_.~+=-]*)?' + // query string\n '(\\\\#[-a-z\\\\d_]*)?$', 'i'); // fragment locator\n\n return !!pattern.test(str);\n}\n\nfunction containsProtocol(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/){1}.*', 'i');\n return !!pattern.test(str);\n}\n\nString.prototype.replaceAll = function (search, replacement) {\n var target = this;\n return target.split(search).join(replacement);\n};\n\nvar _c, _c2, _c3, _c4, _c5, _c6, _c7, _c8, _c9, _c10, _c11, _c12;\n\n$RefreshReg$(_c, \"Homepage\");\n$RefreshReg$(_c2, \"Search\");\n$RefreshReg$(_c3, \"Header\");\n$RefreshReg$(_c4, \"Applications\");\n$RefreshReg$(_c5, \"App\");\n$RefreshReg$(_c6, \"Bookmarks\");\n$RefreshReg$(_c7, \"LinkGroups\");\n$RefreshReg$(_c8, \"LinkItem\");\n$RefreshReg$(_c9, \"ModalMenu\");\n$RefreshReg$(_c10, \"Provider\");\n$RefreshReg$(_c11, \"ModalInit\");\n$RefreshReg$(_c12, \"Clock\");","map":{"version":3,"sources":["/home/seanedmunds/dev/home-page/src/index.js"],"names":["React","useState","useEffect","ReactDOM","Homepage","date","greet","Search","handleKeyPress","Header","props","Applications","appList","getApps","items","i","apps","length","push","name","url","icon","NSFW","App","classNameType","hrefUrl","iconName","Bookmarks","bookmarkList","getLinks","bookmarks","category","links","LinkGroups","LinkItem","link","ModalMenu","providers","getProviders","updateTheme","Provider","provider","prefix","ModalInit","render","document","getElementById","currentDate","Date","dateOptions","weekday","year","month","day","toLocaleDateString","fixDigits","k","currentTime","Math","floor","getHours","easterEggChance","random","greetings","require","timeBased","easterEggs","messages","easteregg","concat","message","easterEggText","Clock","setDate","refreshClock","timerId","setInterval","cleanup","clearInterval","hour","minutes","getMinutes","midday","time","applications","getThemes","themes","e","themeName","target","innerHTML","toLowerCase","index","findIndex","item","sindex","cycle","key","keyCode","which","text","value","replaceAll","option","substr","indexOf","subtext","search","preventDefault","stopPropagation","streamers","streamer","updateLabel","window","location","validURL","containsProtocol","str","pattern","RegExp","test","String","prototype","replacement","split","join"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { useState, useEffect } from 'react';\nimport ReactDOM from 'react-dom';\n//import { unstable_createPortal } from 'react-dom';\nimport './index.css';\n\nfunction Homepage() {\n return (\n \n \n \n
\n \n \n
\n \n \n \n
\n \n \n
\n \n \n
\n \n );\n}\n\nfunction Search() {\n return (\n \n )\n}\n\nfunction Header(props) {\n return (\n \n );\n}\n\nfunction Applications() {\n let appList = getApps();\n var items = [];\n for (var i = 0; i < appList.apps.length; i++) {\n items.push(\n \n );\n }\n return (\n \n Applications
\n \n {items}\n
\n \n );\n}\n\nfunction App(props) {\n let classNameType = props.NSFW + \"-content\";\n let hrefUrl = \"https://\" + props.url;\n let iconName = \"mdi-\" + props.icon;\n return (\n \n );\n}\n\nfunction Bookmarks() {\n let bookmarkList = getLinks();\n var items = [];\n for (var i = 0; i < bookmarkList.bookmarks.length; i++) {\n items.push(\n \n );\n }\n return (\n \n Bookmarks
\n \n {items}\n
\n \n );\n}\n\nfunction LinkGroups(props) {\n var items = [];\n for (var i = 0; i < props.links.length; i++) {\n items.push(\n \n );\n }\n return (\n \n
{props.category}
\n {items}\n \n );\n}\n\nfunction LinkItem(props) {\n return (\n \n );\n}\n\nfunction ModalMenu() {\n var providers = getProviders();\n var items = [];\n for (var i = 0; i < providers.providers.length; i++) {\n items.push(\n \n );\n }\n return (\n \n \n \n\n
Color themes
\n\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n\n\n
Search options
\n
\n \n \n \n | Website | \n Prefix | \n
\n {items}\n \n
\n \n\n \n
\n \n );\n}\n\nfunction Provider(props) {\n return (\n \n | {props.provider.name} | \n {props.provider.prefix} | \n
\n );\n}\n\nfunction ModalInit() {\n return (\n \n );\n}\n\nReactDOM.render(\n ,\n document.getElementById('root')\n);\n\n//Functions below this line are for calculating data for\n//other functions\n\nfunction date() {\n let currentDate = new Date();\n let dateOptions = {\n weekday: \"long\",\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\"\n };\n let date = currentDate.toLocaleDateString(\"en-GB\", dateOptions);\n return date;\n}\nfunction fixDigits(k) {\n if (k < 10) {\n return \"0\" + k;\n }\n else {\n return k;\n }\n}\nfunction greet() {\n let currentTime = new Date();\n let greet = Math.floor(currentTime.getHours() / 6);\n let easterEggChance = Math.floor(Math.random() * 100);\n let greetings = require('./messages.json');\n let timeBased = [];\n let easterEggs = [];\n for (var i = 0; i < greetings.messages.length; i++) {\n if (greetings.messages[i].easteregg === \"FALSE\") {\n timeBased = timeBased.concat(greetings.messages[i]);\n } else {\n easterEggs = easterEggs.concat(greetings.messages[i]);\n }\n }\n if (easterEggChance > 10) {\n return timeBased[greet].message;\n } else {\n let easterEggText = Math.floor(Math.random() * easterEggs.length);\n return easterEggs[easterEggText].message;\n }\n}\nfunction Clock() {\n const [date, setDate] = useState(new Date());\n\n function refreshClock() {\n setDate(new Date());\n }\n useEffect(() => {\n const timerId = setInterval(refreshClock, 1000);\n return function cleanup() {\n clearInterval(timerId);\n };\n }, []);\n\n var hour = date.getHours();\n var minutes = date.getMinutes();\n //var seconds = date.getSeconds();\n var midday = \"AM\";\n midday = (hour >= 12) ? \"PM\" : \"AM\";\n hour = (hour === 0) ? 12 : ((hour > 12) ? (hour - 12) : hour);\n minutes = fixDigits(minutes);\n //seconds = fixDigits(seconds);\n let time = hour + \":\" + minutes + \" \" + midday;\n\n return (\n {time}
\n\n );\n}\nfunction getApps() {\n let applications = require('./apps.json');\n return applications;\n}\nfunction getLinks() {\n let links = require('./links.json');\n return links;\n}\nfunction getProviders() {\n let providers = require('./providers.json');\n return providers;\n}\nfunction getThemes() {\n let themes = require('./themes.json');\n return themes;\n}\n\nfunction updateTheme(e) {\n var themes = getThemes();\n var themeName = e.target.innerHTML.toLowerCase();\n var index = themes.findIndex(function(item, i){\n return item.name === themeName\n });\n}\n\nfunction handleKeyPress(e) {\n var sindex = 0;\n var cycle = false;\n var key = e.keyCode || e.which;\n var text = e.target.value.replaceAll(\"+\", \"%2B\");\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n if (key == 13) { // Search functions\n search(text);\n }\n if (key == 9) { // Tab Completion Functions\n e.preventDefault();\n e.stopPropagation();\n if (text[0] === ';') {\n switch (option) {\n case 't':\n var streamers = ['admiralbahroo', 'moonmoon_ow', 'witwix'];\n if (!subtext || cycle) {\n cycle = true;\n if (sindex > streamers.length - 1) sindex = 0;\n document.getElementById(\"keywords\").value = ';t ' + streamers[sindex++];\n return;\n }\n for (var streamer of streamers) {\n if (subtext === streamer.substr(0, subtext.length)) {\n document.getElementById(\"keywords\").value = ';t ' + streamer;\n return;\n }\n }\n break;\n }\n }\n }\n if(key == 32){ //Space to go to search\nupdateLabel(text);\n }\n sindex = 0;\n cycle = false;\n updateLabel(text);\n}\n\nfunction updateLabel(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n if (text[0] === '/') {\n// if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n document.getElementById(\"searchType\").innerHTML = \"Allmusic search\";\n break;\n case \"d\":\n document.getElementById(\"searchType\").innerHTML = \"Duck Duck Go search\";\n break;\n case \"di\":\n document.getElementById(\"searchType\").innerHTML = \"Discogs search\";\n break;\n case \"i\":\n document.getElementById(\"searchType\").innerHTML = \"IMDB search\";\n break;\n case \"m\":\n document.getElementById(\"searchType\").innerHTML = \"TheMovieDB search\";\n break;\n case \"r\":\n document.getElementById(\"searchType\").innerHTML = \"Reddit search\";\n break;\n case \"q\":\n document.getElementById(\"searchType\").innerHTML = \"Qwant search\";\n break;\n case \"so\":\n document.getElementById(\"searchType\").innerHTML = \"Soundcloud search\";\n break;\n case \"s\":\n document.getElementById(\"searchType\").innerHTML = \"Spotify search\";\n break;\n case \"tv\":\n document.getElementById(\"searchType\").innerHTML = \"TheTVDB search\";\n break;\n case \"t\":\n document.getElementById(\"searchType\").innerHTML = \"Trakt search\";\n break;\n case \"y\":\n document.getElementById(\"searchType\").innerHTML = \"YouTube search\";\n break;\n case \"w\":\n document.getElementById(\"searchType\").innerHTML = \"Wikipedia search\";\n break;\n case \"p\":\n document.getElementById(\"searchType\").innerHTML = \"Plex search\";\n break;\n case \"rt\":\n document.getElementById(\"searchType\").innerHTML = \"Rotten Tomatoes search\";\n break;\n default:\n document.getElementById(\"searchType\").innerHTML = \"Invalid search\";\n break;\n }\n}else {\n document.getElementById(\"searchType\").innerHTML = \"Google search\";\n }\n}\n\nfunction search(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n if (text[0] === '/') {\n if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n window.location = \"https://www.allmusic.com/search/all/\" + subtext;\n break;\n case \"d\":\n window.location = \"https://duckduckgo.com/?q=\" + subtext;\n break;\n case \"di\":\n window.location = \"https://www.discogs.com/search/?q=\" + subtext;\n break;\n case \"i\":\n window.location = \"https://www.imdb.com/find?q=\" + subtext;\n break;\n case \"m\":\n window.location = \"https://www.themoviedb.org/search?query=\" + subtext;\n break;\n case \"r\":\n window.location = \"https://www.reddit.com/search?q=\" + subtext;\n break;\n case \"q\":\n window.location = \"https://www.qwant.com/?q=\" + subtext;\n break;\n case \"so\":\n window.location = \"https://soundcloud.com/search?q=\" + subtext;\n break;\n case \"s\":\n window.location = \"https://open.spotify.com/search/results/\" + subtext;\n break;\n case \"t\":\n window.location = \"https://trakt.tv/search?query=\" + subtext;\n break;\n case \"tv\":\n window.location = \"https://www.thetvdb.com/search?query=\" + subtext;\n break;\n case \"y\":\n window.location = \"https://www.youtube.com/results?search_query=\" + subtext;\n break;\n case \"w\":\n window.location = \"https://en.wikipedia.org/w/index.php?search=\" + subtext;\n break;\n case \"p\":\n window.location = \"https://app.plex.tv/desktop/#!/search?query=\" + subtext;\n break;\n case \"rt\":\n window.location = \"https://www.rottentomatoes.com/search?search=\" + subtext;\n break;\n }\n } else {\n var option = text.substr(1);\n switch (option) {\n case \"d\":\n window.location = \"https://www.duckduckgo.com\";\n break;\n case \"y\":\n window.location = \"https://www.youtube.com\";\n break;\n case \"r\":\n window.location = \"https://reddit.com\";\n break;\n case \"s\":\n window.location = \"https://open.spotify.com\";\n break;\n }\n }\n } else if (validURL(text)) {\n if (containsProtocol(text))\n window.location = text;\n else\n window.location = \"https://\" + text;\n } else {\n window.location = \"https://www.google.com/search?q=\" + text;\n }\n}\n\n// Source: https://stackoverflow.com/questions/5717093/check-if-a-javascript-string-is-a-url\nfunction validURL(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/)?' + // protocol\n '((([a-z\\\\d]([a-z\\\\d-]*[a-z\\\\d])*)\\\\.)+[a-z]{2,}|' + // domain name\n '((\\\\d{1,3}\\\\.){3}\\\\d{1,3}))' + // OR ip (v4) address\n '(\\\\:\\\\d+)?(\\\\/[-a-z\\\\d%_.~+]*)*' + // port and path\n '(\\\\?[;&a-z\\\\d%_.~+=-]*)?' + // query string\n '(\\\\#[-a-z\\\\d_]*)?$', 'i'); // fragment locator\n return !!pattern.test(str);\n}\n\nfunction containsProtocol(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/){1}.*', 'i');\n return !!pattern.test(str);\n}\n\nString.prototype.replaceAll = function(search, replacement) {\n var target = this;\n return target.split(search).join(replacement);\n};"]},"metadata":{},"sourceType":"module"}
\ No newline at end of file
diff --git a/node_modules/.cache/babel-loader/5cac95f954cde9e6c4212efdd9399ce4.json b/node_modules/.cache/babel-loader/5cac95f954cde9e6c4212efdd9399ce4.json
new file mode 100644
index 00000000..485e9289
--- /dev/null
+++ b/node_modules/.cache/babel-loader/5cac95f954cde9e6c4212efdd9399ce4.json
@@ -0,0 +1 @@
+{"ast":null,"code":"var _jsxFileName = \"/home/seanedmunds/dev/home-page/src/index.js\",\n _s = $RefreshSig$();\n\nimport React from 'react';\nimport { useState, useEffect } from 'react';\nimport ReactDOM from 'react-dom'; //import { unstable_createPortal } from 'react-dom';\n\nimport './index.css';\nimport { jsxDEV as _jsxDEV } from \"react/jsx-dev-runtime\";\n\nfunction Homepage() {\n return /*#__PURE__*/_jsxDEV(\"main\", {\n id: \"container\",\n className: \"fade\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Search, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 11,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 10,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Header, {\n date: date(),\n greet: greet()\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 14,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 13,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Applications, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 20,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 19,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Bookmarks, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 23,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 22,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(ModalMenu, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 26,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 25,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(ModalInit, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 29,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 28,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 9,\n columnNumber: 5\n }, this);\n}\n\n_c = Homepage;\n\nfunction Search() {\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"search\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"abackground\",\n children: [/*#__PURE__*/_jsxDEV(\"input\", {\n name: \"keywords\",\n type: \"text\",\n className: \"keyword\",\n id: \"keywords\",\n size: \"50\",\n spellCheck: \"true\",\n placeholder: \"\"\n /*onFocus={this.placeholder = \"\"} onBlur={this.placeholder = ''}*/\n ,\n autoComplete: \"off\",\n autoFocus: true,\n onKeyUp: handleKeyPress\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 39,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n id: \"searchType\",\n className: \"Input-label\",\n children: \"Google search\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 40,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 38,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 37,\n columnNumber: 5\n }, this);\n}\n\n_c2 = Search;\n\nfunction Header(props) {\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"header\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n id: \"greeting_block\",\n children: /*#__PURE__*/_jsxDEV(\"h1\", {\n id: \"header_greet\",\n children: props.greet\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 50,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 49,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"date_block\",\n children: [/*#__PURE__*/_jsxDEV(\"h2\", {\n id: \"header_date\",\n children: props.date\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 53,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(Clock, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 54,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 52,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 48,\n columnNumber: 5\n }, this);\n}\n\n_c3 = Header;\n\nfunction Applications() {\n let appList = getApps();\n var items = [];\n\n for (var i = 0; i < appList.apps.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(App, {\n name: appList.apps[i].name,\n url: appList.apps[i].url,\n icon: appList.apps[i].icon,\n NSFW: appList.apps[i].NSFW\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 65,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"apps\",\n children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n children: \"Applications\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 76,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"apps_loop\",\n children: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 77,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 75,\n columnNumber: 5\n }, this);\n}\n\n_c4 = Applications;\n\nfunction App(props) {\n let classNameType = props.NSFW + \"-content\";\n let hrefUrl = \"https://\" + props.url;\n let iconName = \"mdi-\" + props.icon;\n return /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: hrefUrl,\n className: classNameType,\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_item\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_icon\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify icon\",\n \"data-icon\": iconName\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 93,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 92,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_text\",\n children: [/*#__PURE__*/_jsxDEV(\"span\", {\n id: \"app-name\",\n children: props.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 96,\n columnNumber: 13\n }, this), /*#__PURE__*/_jsxDEV(\"span\", {\n id: \"app-address\",\n children: props.url\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 97,\n columnNumber: 13\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 95,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 91,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 90,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 89,\n columnNumber: 5\n }, this);\n}\n\n_c5 = App;\n\nfunction Bookmarks() {\n let bookmarkList = getLinks();\n var items = [];\n\n for (var i = 0; i < bookmarkList.bookmarks.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(LinkGroups, {\n category: bookmarkList.bookmarks[i].category,\n links: bookmarkList.bookmarks[i].links\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 110,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"links\",\n children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n children: \"Bookmarks\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 119,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"links_loop\",\n children: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 120,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 118,\n columnNumber: 5\n }, this);\n}\n\n_c6 = Bookmarks;\n\nfunction LinkGroups(props) {\n var items = [];\n\n for (var i = 0; i < props.links.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(LinkItem, {\n link: props.links[i]\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 131,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"links_item\",\n children: [/*#__PURE__*/_jsxDEV(\"h4\", {\n children: props.category\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 139,\n columnNumber: 7\n }, this), items]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 138,\n columnNumber: 5\n }, this);\n}\n\n_c7 = LinkGroups;\n\nfunction LinkItem(props) {\n return /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: props.link.url,\n className: \"theme_color-border theme_text-select\",\n children: props.link.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 148,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 147,\n columnNumber: 5\n }, this);\n}\n\n_c8 = LinkItem;\n\nfunction ModalMenu() {\n var providers = getProviders();\n var items = [];\n\n for (var i = 0; i < providers.providers.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(Provider, {\n provider: providers.providers[i]\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 158,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"modal\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n children: [/*#__PURE__*/_jsxDEV(\"header\", {\n id: \"modal-header\",\n children: [/*#__PURE__*/_jsxDEV(\"h1\", {\n children: \"Options\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 168,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n href: \"#\",\n title: \"Close\",\n className: \"modal-close\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-close\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 170,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 169,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 167,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"h2\", {\n children: \"Color themes\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 174,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"modal-theme\",\n children: [/*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"blackboard\",\n className: \"theme-button theme-blackboard\",\n onClick: updateTheme,\n children: \"Blackboard\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 177,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"gazette\",\n className: \"theme-button theme-gazette\",\n children: \"Gazette\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 178,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"espresso\",\n className: \"theme-button theme-espresso\",\n children: \"Espresso\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 179,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cab\",\n className: \"theme-button theme-cab\",\n children: \"Cab\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 180,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cloud\",\n className: \"theme-button theme-cloud\",\n children: \"Cloud\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 181,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"lime\",\n className: \"theme-button theme-lime\",\n children: \"Lime\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 182,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"passion\",\n className: \"theme-button theme-passion\",\n children: \"Passion\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 183,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"blues\",\n className: \"theme-button theme-blues\",\n children: \"Blues\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 184,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"chalk\",\n className: \"theme-button theme-chalk\",\n children: \"Chalk\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 185,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"tron\",\n className: \"theme-button theme-tron\",\n children: \"Tron\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 186,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"paper\",\n className: \"theme-button theme-paper\",\n children: \"Paper\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 187,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cyberpunk\",\n className: \"theme-button theme-cyberpunk\",\n children: \"Cyberpunk\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 188,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"quadra\",\n className: \"theme-button theme-panam\",\n children: \"Quadra\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 189,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"panam\",\n className: \"theme-button theme-panam\",\n children: \"Panam\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 190,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"touch\",\n className: \"theme-button theme-touch\",\n children: \"Touch\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 191,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"peek\",\n className: \"theme-button theme-peek\",\n children: \"Peek\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 192,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 176,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"h2\", {\n children: \"Search options\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 196,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"providers\",\n children: /*#__PURE__*/_jsxDEV(\"table\", {\n children: /*#__PURE__*/_jsxDEV(\"tbody\", {\n children: [/*#__PURE__*/_jsxDEV(\"tr\", {\n children: [/*#__PURE__*/_jsxDEV(\"th\", {\n children: \"Website\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 201,\n columnNumber: 19\n }, this), /*#__PURE__*/_jsxDEV(\"th\", {\n children: \"Prefix\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 202,\n columnNumber: 19\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 200,\n columnNumber: 17\n }, this), items]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 199,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 198,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 197,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"header\", {\n id: \"modal-footer\",\n children: [/*#__PURE__*/_jsxDEV(\"a\", {\n href: \"https://github.com/jeroenpardon/\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-github-box\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 210,\n columnNumber: 54\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 210,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n href: \"https://materialdesignicons.com/\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-material-design\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 211,\n columnNumber: 54\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 211,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"sneaky\",\n children: [/*#__PURE__*/_jsxDEV(\"input\", {\n type: \"checkbox\",\n id: \"contenttype\",\n onChange: \"nsfw(this)\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 212,\n columnNumber: 35\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n for: \"contenttype\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-domino-mask\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 213,\n columnNumber: 36\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 213,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 212,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 209,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 166,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 165,\n columnNumber: 5\n }, this);\n}\n\n_c9 = ModalMenu;\n\nfunction Provider(props) {\n return /*#__PURE__*/_jsxDEV(\"tr\", {\n children: [/*#__PURE__*/_jsxDEV(\"td\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: props.provider.url,\n children: props.provider.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 223,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 223,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"td\", {\n children: props.provider.prefix\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 224,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 222,\n columnNumber: 5\n }, this);\n}\n\n_c10 = Provider;\n\nfunction ModalInit() {\n return /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"modal_init\",\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n className: \"btn\",\n href: \"#modal\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify icon\",\n \"data-icon\": \"mdi-xbox-controller-menu\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 233,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 232,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 231,\n columnNumber: 5\n }, this);\n}\n\n_c11 = ModalInit;\nReactDOM.render( /*#__PURE__*/_jsxDEV(Homepage, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 240,\n columnNumber: 3\n}, this), document.getElementById('root')); //Functions below this line are for calculating data for\n//other functions\n\nfunction date() {\n let currentDate = new Date();\n let dateOptions = {\n weekday: \"long\",\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\"\n };\n let date = currentDate.toLocaleDateString(\"en-GB\", dateOptions);\n return date;\n}\n\nfunction fixDigits(k) {\n if (k < 10) {\n return \"0\" + k;\n } else {\n return k;\n }\n}\n\nfunction greet() {\n let currentTime = new Date();\n let greet = Math.floor(currentTime.getHours() / 6);\n let easterEggChance = Math.floor(Math.random() * 100);\n\n let greetings = require('./messages.json');\n\n let timeBased = [];\n let easterEggs = [];\n\n for (var i = 0; i < greetings.messages.length; i++) {\n if (greetings.messages[i].easteregg === \"FALSE\") {\n timeBased = timeBased.concat(greetings.messages[i]);\n } else {\n easterEggs = easterEggs.concat(greetings.messages[i]);\n }\n }\n\n if (easterEggChance > 10) {\n return timeBased[greet].message;\n } else {\n let easterEggText = Math.floor(Math.random() * easterEggs.length);\n return easterEggs[easterEggText].message;\n }\n}\n\nfunction Clock() {\n _s();\n\n const [date, setDate] = useState(new Date());\n\n function refreshClock() {\n setDate(new Date());\n }\n\n useEffect(() => {\n const timerId = setInterval(refreshClock, 1000);\n return function cleanup() {\n clearInterval(timerId);\n };\n }, []);\n var hour = date.getHours();\n var minutes = date.getMinutes(); //var seconds = date.getSeconds();\n\n var midday = \"AM\";\n midday = hour >= 12 ? \"PM\" : \"AM\";\n hour = hour === 0 ? 12 : hour > 12 ? hour - 12 : hour;\n minutes = fixDigits(minutes); //seconds = fixDigits(seconds);\n\n let time = hour + \":\" + minutes + \" \" + midday;\n return /*#__PURE__*/_jsxDEV(\"h2\", {\n id: \"clock\",\n children: time\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 311,\n columnNumber: 5\n }, this);\n}\n\n_s(Clock, \"Gqi45WOZhU2c0BLYX0HoJeiR0fk=\");\n\n_c12 = Clock;\n\nfunction getApps() {\n let applications = require('./apps.json');\n\n return applications;\n}\n\nfunction getLinks() {\n let links = require('./links.json');\n\n return links;\n}\n\nfunction getProviders() {\n let providers = require('./providers.json');\n\n return providers;\n}\n\nfunction getThemes() {\n let themes = require('./themes.json');\n\n return themes;\n}\n\nfunction updateTheme(e) {\n var themes = getThemes().themes;\n console.log(e.target.innerHTML);\n}\n\nfunction handleKeyPress(e) {\n var sindex = 0;\n var cycle = false;\n var key = e.keyCode || e.which;\n var text = e.target.value.replaceAll(\"+\", \"%2B\");\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n\n if (key == 13) {\n // Search functions\n search(text);\n }\n\n if (key == 9) {\n // Tab Completion Functions\n e.preventDefault();\n e.stopPropagation();\n\n if (text[0] === ';') {\n switch (option) {\n case 't':\n var streamers = ['admiralbahroo', 'moonmoon_ow', 'witwix'];\n\n if (!subtext || cycle) {\n cycle = true;\n if (sindex > streamers.length - 1) sindex = 0;\n document.getElementById(\"keywords\").value = ';t ' + streamers[sindex++];\n return;\n }\n\n for (var streamer of streamers) {\n if (subtext === streamer.substr(0, subtext.length)) {\n document.getElementById(\"keywords\").value = ';t ' + streamer;\n return;\n }\n }\n\n break;\n }\n }\n }\n\n if (key == 32) {\n //Space to go to search\n updateLabel(text);\n }\n\n sindex = 0;\n cycle = false;\n updateLabel(text);\n}\n\nfunction updateLabel(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n\n if (text[0] === '/') {\n // if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n document.getElementById(\"searchType\").innerHTML = \"Allmusic search\";\n break;\n\n case \"d\":\n document.getElementById(\"searchType\").innerHTML = \"Duck Duck Go search\";\n break;\n\n case \"di\":\n document.getElementById(\"searchType\").innerHTML = \"Discogs search\";\n break;\n\n case \"i\":\n document.getElementById(\"searchType\").innerHTML = \"IMDB search\";\n break;\n\n case \"m\":\n document.getElementById(\"searchType\").innerHTML = \"TheMovieDB search\";\n break;\n\n case \"r\":\n document.getElementById(\"searchType\").innerHTML = \"Reddit search\";\n break;\n\n case \"q\":\n document.getElementById(\"searchType\").innerHTML = \"Qwant search\";\n break;\n\n case \"so\":\n document.getElementById(\"searchType\").innerHTML = \"Soundcloud search\";\n break;\n\n case \"s\":\n document.getElementById(\"searchType\").innerHTML = \"Spotify search\";\n break;\n\n case \"tv\":\n document.getElementById(\"searchType\").innerHTML = \"TheTVDB search\";\n break;\n\n case \"t\":\n document.getElementById(\"searchType\").innerHTML = \"Trakt search\";\n break;\n\n case \"y\":\n document.getElementById(\"searchType\").innerHTML = \"YouTube search\";\n break;\n\n case \"w\":\n document.getElementById(\"searchType\").innerHTML = \"Wikipedia search\";\n break;\n\n case \"p\":\n document.getElementById(\"searchType\").innerHTML = \"Plex search\";\n break;\n\n case \"rt\":\n document.getElementById(\"searchType\").innerHTML = \"Rotten Tomatoes search\";\n break;\n\n default:\n document.getElementById(\"searchType\").innerHTML = \"Invalid search\";\n break;\n }\n } else {\n document.getElementById(\"searchType\").innerHTML = \"Google search\";\n }\n}\n\nfunction search(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n\n if (text[0] === '/') {\n if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n window.location = \"https://www.allmusic.com/search/all/\" + subtext;\n break;\n\n case \"d\":\n window.location = \"https://duckduckgo.com/?q=\" + subtext;\n break;\n\n case \"di\":\n window.location = \"https://www.discogs.com/search/?q=\" + subtext;\n break;\n\n case \"i\":\n window.location = \"https://www.imdb.com/find?q=\" + subtext;\n break;\n\n case \"m\":\n window.location = \"https://www.themoviedb.org/search?query=\" + subtext;\n break;\n\n case \"r\":\n window.location = \"https://www.reddit.com/search?q=\" + subtext;\n break;\n\n case \"q\":\n window.location = \"https://www.qwant.com/?q=\" + subtext;\n break;\n\n case \"so\":\n window.location = \"https://soundcloud.com/search?q=\" + subtext;\n break;\n\n case \"s\":\n window.location = \"https://open.spotify.com/search/results/\" + subtext;\n break;\n\n case \"t\":\n window.location = \"https://trakt.tv/search?query=\" + subtext;\n break;\n\n case \"tv\":\n window.location = \"https://www.thetvdb.com/search?query=\" + subtext;\n break;\n\n case \"y\":\n window.location = \"https://www.youtube.com/results?search_query=\" + subtext;\n break;\n\n case \"w\":\n window.location = \"https://en.wikipedia.org/w/index.php?search=\" + subtext;\n break;\n\n case \"p\":\n window.location = \"https://app.plex.tv/desktop/#!/search?query=\" + subtext;\n break;\n\n case \"rt\":\n window.location = \"https://www.rottentomatoes.com/search?search=\" + subtext;\n break;\n }\n } else {\n var option = text.substr(1);\n\n switch (option) {\n case \"d\":\n window.location = \"https://www.duckduckgo.com\";\n break;\n\n case \"y\":\n window.location = \"https://www.youtube.com\";\n break;\n\n case \"r\":\n window.location = \"https://reddit.com\";\n break;\n\n case \"s\":\n window.location = \"https://open.spotify.com\";\n break;\n }\n }\n } else if (validURL(text)) {\n if (containsProtocol(text)) window.location = text;else window.location = \"https://\" + text;\n } else {\n window.location = \"https://www.google.com/search?q=\" + text;\n }\n} // Source: https://stackoverflow.com/questions/5717093/check-if-a-javascript-string-is-a-url\n\n\nfunction validURL(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/)?' + // protocol\n '((([a-z\\\\d]([a-z\\\\d-]*[a-z\\\\d])*)\\\\.)+[a-z]{2,}|' + // domain name\n '((\\\\d{1,3}\\\\.){3}\\\\d{1,3}))' + // OR ip (v4) address\n '(\\\\:\\\\d+)?(\\\\/[-a-z\\\\d%_.~+]*)*' + // port and path\n '(\\\\?[;&a-z\\\\d%_.~+=-]*)?' + // query string\n '(\\\\#[-a-z\\\\d_]*)?$', 'i'); // fragment locator\n\n return !!pattern.test(str);\n}\n\nfunction containsProtocol(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/){1}.*', 'i');\n return !!pattern.test(str);\n}\n\nString.prototype.replaceAll = function (search, replacement) {\n var target = this;\n return target.split(search).join(replacement);\n};\n\nvar _c, _c2, _c3, _c4, _c5, _c6, _c7, _c8, _c9, _c10, _c11, _c12;\n\n$RefreshReg$(_c, \"Homepage\");\n$RefreshReg$(_c2, \"Search\");\n$RefreshReg$(_c3, \"Header\");\n$RefreshReg$(_c4, \"Applications\");\n$RefreshReg$(_c5, \"App\");\n$RefreshReg$(_c6, \"Bookmarks\");\n$RefreshReg$(_c7, \"LinkGroups\");\n$RefreshReg$(_c8, \"LinkItem\");\n$RefreshReg$(_c9, \"ModalMenu\");\n$RefreshReg$(_c10, \"Provider\");\n$RefreshReg$(_c11, \"ModalInit\");\n$RefreshReg$(_c12, \"Clock\");","map":{"version":3,"sources":["/home/seanedmunds/dev/home-page/src/index.js"],"names":["React","useState","useEffect","ReactDOM","Homepage","date","greet","Search","handleKeyPress","Header","props","Applications","appList","getApps","items","i","apps","length","push","name","url","icon","NSFW","App","classNameType","hrefUrl","iconName","Bookmarks","bookmarkList","getLinks","bookmarks","category","links","LinkGroups","LinkItem","link","ModalMenu","providers","getProviders","updateTheme","Provider","provider","prefix","ModalInit","render","document","getElementById","currentDate","Date","dateOptions","weekday","year","month","day","toLocaleDateString","fixDigits","k","currentTime","Math","floor","getHours","easterEggChance","random","greetings","require","timeBased","easterEggs","messages","easteregg","concat","message","easterEggText","Clock","setDate","refreshClock","timerId","setInterval","cleanup","clearInterval","hour","minutes","getMinutes","midday","time","applications","getThemes","themes","e","console","log","target","innerHTML","sindex","cycle","key","keyCode","which","text","value","replaceAll","option","substr","indexOf","subtext","search","preventDefault","stopPropagation","streamers","streamer","updateLabel","window","location","validURL","containsProtocol","str","pattern","RegExp","test","String","prototype","replacement","split","join"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { useState, useEffect } from 'react';\nimport ReactDOM from 'react-dom';\n//import { unstable_createPortal } from 'react-dom';\nimport './index.css';\n\nfunction Homepage() {\n return (\n \n \n \n
\n \n \n
\n \n \n \n
\n \n \n
\n \n \n
\n \n );\n}\n\nfunction Search() {\n return (\n \n )\n}\n\nfunction Header(props) {\n return (\n \n );\n}\n\nfunction Applications() {\n let appList = getApps();\n var items = [];\n for (var i = 0; i < appList.apps.length; i++) {\n items.push(\n \n );\n }\n return (\n \n Applications
\n \n {items}\n
\n \n );\n}\n\nfunction App(props) {\n let classNameType = props.NSFW + \"-content\";\n let hrefUrl = \"https://\" + props.url;\n let iconName = \"mdi-\" + props.icon;\n return (\n \n );\n}\n\nfunction Bookmarks() {\n let bookmarkList = getLinks();\n var items = [];\n for (var i = 0; i < bookmarkList.bookmarks.length; i++) {\n items.push(\n \n );\n }\n return (\n \n Bookmarks
\n \n {items}\n
\n \n );\n}\n\nfunction LinkGroups(props) {\n var items = [];\n for (var i = 0; i < props.links.length; i++) {\n items.push(\n \n );\n }\n return (\n \n
{props.category}
\n {items}\n \n );\n}\n\nfunction LinkItem(props) {\n return (\n \n );\n}\n\nfunction ModalMenu() {\n var providers = getProviders();\n var items = [];\n for (var i = 0; i < providers.providers.length; i++) {\n items.push(\n \n );\n }\n return (\n \n \n \n\n
Color themes
\n\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n\n\n
Search options
\n
\n \n \n \n | Website | \n Prefix | \n
\n {items}\n \n
\n \n\n \n
\n \n );\n}\n\nfunction Provider(props) {\n return (\n \n | {props.provider.name} | \n {props.provider.prefix} | \n
\n );\n}\n\nfunction ModalInit() {\n return (\n \n );\n}\n\nReactDOM.render(\n ,\n document.getElementById('root')\n);\n\n//Functions below this line are for calculating data for\n//other functions\n\nfunction date() {\n let currentDate = new Date();\n let dateOptions = {\n weekday: \"long\",\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\"\n };\n let date = currentDate.toLocaleDateString(\"en-GB\", dateOptions);\n return date;\n}\nfunction fixDigits(k) {\n if (k < 10) {\n return \"0\" + k;\n }\n else {\n return k;\n }\n}\nfunction greet() {\n let currentTime = new Date();\n let greet = Math.floor(currentTime.getHours() / 6);\n let easterEggChance = Math.floor(Math.random() * 100);\n let greetings = require('./messages.json');\n let timeBased = [];\n let easterEggs = [];\n for (var i = 0; i < greetings.messages.length; i++) {\n if (greetings.messages[i].easteregg === \"FALSE\") {\n timeBased = timeBased.concat(greetings.messages[i]);\n } else {\n easterEggs = easterEggs.concat(greetings.messages[i]);\n }\n }\n if (easterEggChance > 10) {\n return timeBased[greet].message;\n } else {\n let easterEggText = Math.floor(Math.random() * easterEggs.length);\n return easterEggs[easterEggText].message;\n }\n}\nfunction Clock() {\n const [date, setDate] = useState(new Date());\n\n function refreshClock() {\n setDate(new Date());\n }\n useEffect(() => {\n const timerId = setInterval(refreshClock, 1000);\n return function cleanup() {\n clearInterval(timerId);\n };\n }, []);\n\n var hour = date.getHours();\n var minutes = date.getMinutes();\n //var seconds = date.getSeconds();\n var midday = \"AM\";\n midday = (hour >= 12) ? \"PM\" : \"AM\";\n hour = (hour === 0) ? 12 : ((hour > 12) ? (hour - 12) : hour);\n minutes = fixDigits(minutes);\n //seconds = fixDigits(seconds);\n let time = hour + \":\" + minutes + \" \" + midday;\n\n return (\n {time}
\n\n );\n}\nfunction getApps() {\n let applications = require('./apps.json');\n return applications;\n}\nfunction getLinks() {\n let links = require('./links.json');\n return links;\n}\nfunction getProviders() {\n let providers = require('./providers.json');\n return providers;\n}\nfunction getThemes() {\n let themes = require('./themes.json');\n return themes;\n}\n\nfunction updateTheme(e) {\n var themes = getThemes().themes;\n console.log(e.target.innerHTML);\n}\n\nfunction handleKeyPress(e) {\n var sindex = 0;\n var cycle = false;\n var key = e.keyCode || e.which;\n var text = e.target.value.replaceAll(\"+\", \"%2B\");\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n if (key == 13) { // Search functions\n search(text);\n }\n if (key == 9) { // Tab Completion Functions\n e.preventDefault();\n e.stopPropagation();\n if (text[0] === ';') {\n switch (option) {\n case 't':\n var streamers = ['admiralbahroo', 'moonmoon_ow', 'witwix'];\n if (!subtext || cycle) {\n cycle = true;\n if (sindex > streamers.length - 1) sindex = 0;\n document.getElementById(\"keywords\").value = ';t ' + streamers[sindex++];\n return;\n }\n for (var streamer of streamers) {\n if (subtext === streamer.substr(0, subtext.length)) {\n document.getElementById(\"keywords\").value = ';t ' + streamer;\n return;\n }\n }\n break;\n }\n }\n }\n if(key == 32){ //Space to go to search\nupdateLabel(text);\n }\n sindex = 0;\n cycle = false;\n updateLabel(text);\n}\n\nfunction updateLabel(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n if (text[0] === '/') {\n// if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n document.getElementById(\"searchType\").innerHTML = \"Allmusic search\";\n break;\n case \"d\":\n document.getElementById(\"searchType\").innerHTML = \"Duck Duck Go search\";\n break;\n case \"di\":\n document.getElementById(\"searchType\").innerHTML = \"Discogs search\";\n break;\n case \"i\":\n document.getElementById(\"searchType\").innerHTML = \"IMDB search\";\n break;\n case \"m\":\n document.getElementById(\"searchType\").innerHTML = \"TheMovieDB search\";\n break;\n case \"r\":\n document.getElementById(\"searchType\").innerHTML = \"Reddit search\";\n break;\n case \"q\":\n document.getElementById(\"searchType\").innerHTML = \"Qwant search\";\n break;\n case \"so\":\n document.getElementById(\"searchType\").innerHTML = \"Soundcloud search\";\n break;\n case \"s\":\n document.getElementById(\"searchType\").innerHTML = \"Spotify search\";\n break;\n case \"tv\":\n document.getElementById(\"searchType\").innerHTML = \"TheTVDB search\";\n break;\n case \"t\":\n document.getElementById(\"searchType\").innerHTML = \"Trakt search\";\n break;\n case \"y\":\n document.getElementById(\"searchType\").innerHTML = \"YouTube search\";\n break;\n case \"w\":\n document.getElementById(\"searchType\").innerHTML = \"Wikipedia search\";\n break;\n case \"p\":\n document.getElementById(\"searchType\").innerHTML = \"Plex search\";\n break;\n case \"rt\":\n document.getElementById(\"searchType\").innerHTML = \"Rotten Tomatoes search\";\n break;\n default:\n document.getElementById(\"searchType\").innerHTML = \"Invalid search\";\n break;\n }\n}else {\n document.getElementById(\"searchType\").innerHTML = \"Google search\";\n }\n}\n\nfunction search(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n if (text[0] === '/') {\n if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n window.location = \"https://www.allmusic.com/search/all/\" + subtext;\n break;\n case \"d\":\n window.location = \"https://duckduckgo.com/?q=\" + subtext;\n break;\n case \"di\":\n window.location = \"https://www.discogs.com/search/?q=\" + subtext;\n break;\n case \"i\":\n window.location = \"https://www.imdb.com/find?q=\" + subtext;\n break;\n case \"m\":\n window.location = \"https://www.themoviedb.org/search?query=\" + subtext;\n break;\n case \"r\":\n window.location = \"https://www.reddit.com/search?q=\" + subtext;\n break;\n case \"q\":\n window.location = \"https://www.qwant.com/?q=\" + subtext;\n break;\n case \"so\":\n window.location = \"https://soundcloud.com/search?q=\" + subtext;\n break;\n case \"s\":\n window.location = \"https://open.spotify.com/search/results/\" + subtext;\n break;\n case \"t\":\n window.location = \"https://trakt.tv/search?query=\" + subtext;\n break;\n case \"tv\":\n window.location = \"https://www.thetvdb.com/search?query=\" + subtext;\n break;\n case \"y\":\n window.location = \"https://www.youtube.com/results?search_query=\" + subtext;\n break;\n case \"w\":\n window.location = \"https://en.wikipedia.org/w/index.php?search=\" + subtext;\n break;\n case \"p\":\n window.location = \"https://app.plex.tv/desktop/#!/search?query=\" + subtext;\n break;\n case \"rt\":\n window.location = \"https://www.rottentomatoes.com/search?search=\" + subtext;\n break;\n }\n } else {\n var option = text.substr(1);\n switch (option) {\n case \"d\":\n window.location = \"https://www.duckduckgo.com\";\n break;\n case \"y\":\n window.location = \"https://www.youtube.com\";\n break;\n case \"r\":\n window.location = \"https://reddit.com\";\n break;\n case \"s\":\n window.location = \"https://open.spotify.com\";\n break;\n }\n }\n } else if (validURL(text)) {\n if (containsProtocol(text))\n window.location = text;\n else\n window.location = \"https://\" + text;\n } else {\n window.location = \"https://www.google.com/search?q=\" + text;\n }\n}\n\n// Source: https://stackoverflow.com/questions/5717093/check-if-a-javascript-string-is-a-url\nfunction validURL(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/)?' + // protocol\n '((([a-z\\\\d]([a-z\\\\d-]*[a-z\\\\d])*)\\\\.)+[a-z]{2,}|' + // domain name\n '((\\\\d{1,3}\\\\.){3}\\\\d{1,3}))' + // OR ip (v4) address\n '(\\\\:\\\\d+)?(\\\\/[-a-z\\\\d%_.~+]*)*' + // port and path\n '(\\\\?[;&a-z\\\\d%_.~+=-]*)?' + // query string\n '(\\\\#[-a-z\\\\d_]*)?$', 'i'); // fragment locator\n return !!pattern.test(str);\n}\n\nfunction containsProtocol(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/){1}.*', 'i');\n return !!pattern.test(str);\n}\n\nString.prototype.replaceAll = function(search, replacement) {\n var target = this;\n return target.split(search).join(replacement);\n};"]},"metadata":{},"sourceType":"module"}
\ No newline at end of file
diff --git a/node_modules/.cache/babel-loader/5d532107209cd8409b18010da6a3fd55.json b/node_modules/.cache/babel-loader/5d532107209cd8409b18010da6a3fd55.json
new file mode 100644
index 00000000..c90b102d
--- /dev/null
+++ b/node_modules/.cache/babel-loader/5d532107209cd8409b18010da6a3fd55.json
@@ -0,0 +1 @@
+{"ast":null,"code":"var _jsxFileName = \"/home/seanedmunds/dev/home-page/src/index.js\",\n _s = $RefreshSig$();\n\nimport React from 'react';\nimport { useState, useEffect } from 'react';\nimport ReactDOM from 'react-dom'; //import { unstable_createPortal } from 'react-dom';\n\nimport './index.css';\nimport { jsxDEV as _jsxDEV } from \"react/jsx-dev-runtime\";\n\nfunction Homepage() {\n return /*#__PURE__*/_jsxDEV(\"main\", {\n id: \"container\",\n className: \"fade\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Search, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 11,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 10,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Header, {\n date: date(),\n greet: greet()\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 14,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 13,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Applications, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 20,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 19,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Bookmarks, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 23,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 22,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(ModalMenu, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 26,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 25,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(ModalInit, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 29,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 28,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 9,\n columnNumber: 5\n }, this);\n}\n\n_c = Homepage;\n\nfunction Search() {\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"search\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"abackground\",\n children: [/*#__PURE__*/_jsxDEV(\"input\", {\n name: \"keywords\",\n type: \"text\",\n className: \"keyword\",\n id: \"keywords\",\n size: \"50\",\n spellCheck: \"true\",\n placeholder: \"\"\n /*onFocus={this.placeholder = \"\"} onBlur={this.placeholder = ''}*/\n ,\n autoComplete: \"off\",\n autoFocus: \"true\",\n onKeyUp: handleKeyPress(event)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 39,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n id: \"searchType\",\n className: \"Input-label\",\n children: \"Google search\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 40,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 38,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 37,\n columnNumber: 5\n }, this);\n}\n\n_c2 = Search;\n\nfunction Header(props) {\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"header\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n id: \"greeting_block\",\n children: /*#__PURE__*/_jsxDEV(\"h1\", {\n id: \"header_greet\",\n children: props.greet\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 50,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 49,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"date_block\",\n children: [/*#__PURE__*/_jsxDEV(\"h2\", {\n id: \"header_date\",\n children: props.date\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 53,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(Clock, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 54,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 52,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 48,\n columnNumber: 5\n }, this);\n}\n\n_c3 = Header;\n\nfunction Applications() {\n let appList = getApps();\n var items = [];\n\n for (var i = 0; i < appList.apps.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(App, {\n name: appList.apps[i].name,\n url: appList.apps[i].url,\n icon: appList.apps[i].icon,\n NSFW: appList.apps[i].NSFW\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 65,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"apps\",\n children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n children: \"Applications\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 76,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"apps_loop\",\n children: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 77,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 75,\n columnNumber: 5\n }, this);\n}\n\n_c4 = Applications;\n\nfunction App(props) {\n let classNameType = props.NSFW + \"-content\";\n let hrefUrl = \"https://\" + props.url;\n let iconName = \"mdi-\" + props.icon;\n return /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: hrefUrl,\n className: classNameType,\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_item\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_icon\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify icon\",\n \"data-icon\": iconName\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 93,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 92,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_text\",\n children: [/*#__PURE__*/_jsxDEV(\"span\", {\n id: \"app-name\",\n children: props.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 96,\n columnNumber: 13\n }, this), /*#__PURE__*/_jsxDEV(\"span\", {\n id: \"app-address\",\n children: props.url\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 97,\n columnNumber: 13\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 95,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 91,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 90,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 89,\n columnNumber: 5\n }, this);\n}\n\n_c5 = App;\n\nfunction Bookmarks() {\n let bookmarkList = getLinks();\n var items = [];\n\n for (var i = 0; i < bookmarkList.bookmarks.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(LinkGroups, {\n category: bookmarkList.bookmarks[i].category,\n links: bookmarkList.bookmarks[i].links\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 110,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"links\",\n children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n children: \"Bookmarks\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 119,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"links_loop\",\n children: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 120,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 118,\n columnNumber: 5\n }, this);\n}\n\n_c6 = Bookmarks;\n\nfunction LinkGroups(props) {\n var items = [];\n\n for (var i = 0; i < props.links.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(LinkItem, {\n link: props.links[i]\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 131,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"links_item\",\n children: [/*#__PURE__*/_jsxDEV(\"h4\", {\n children: props.category\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 139,\n columnNumber: 7\n }, this), items]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 138,\n columnNumber: 5\n }, this);\n}\n\n_c7 = LinkGroups;\n\nfunction LinkItem(props) {\n return /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: props.link.url,\n className: \"theme_color-border theme_text-select\",\n children: props.link.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 148,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 147,\n columnNumber: 5\n }, this);\n}\n\n_c8 = LinkItem;\n\nfunction ModalMenu() {\n var providers = getProviders();\n var items = [];\n\n for (var i = 0; i < providers.providers.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(Provider, {\n provider: providers.providers[i]\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 158,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"modal\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n children: [/*#__PURE__*/_jsxDEV(\"header\", {\n id: \"modal-header\",\n children: [/*#__PURE__*/_jsxDEV(\"h1\", {\n children: \"Options\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 168,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n href: \"#\",\n title: \"Close\",\n className: \"modal-close\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-close\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 170,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 169,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 167,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"h2\", {\n children: \"Color themes\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 174,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"modal-theme\",\n children: [/*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"blackboard\",\n className: \"theme-button theme-blackboard\",\n children: \"Blackboard\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 177,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"gazette\",\n className: \"theme-button theme-gazette\",\n children: \"Gazette\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 178,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"espresso\",\n className: \"theme-button theme-espresso\",\n children: \"Espresso\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 179,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cab\",\n className: \"theme-button theme-cab\",\n children: \"Cab\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 180,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cloud\",\n className: \"theme-button theme-cloud\",\n children: \"Cloud\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 181,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"lime\",\n className: \"theme-button theme-lime\",\n children: \"Lime\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 182,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"passion\",\n className: \"theme-button theme-passion\",\n children: \"Passion\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 183,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"blues\",\n className: \"theme-button theme-blues\",\n children: \"Blues\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 184,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"chalk\",\n className: \"theme-button theme-chalk\",\n children: \"Chalk\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 185,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"tron\",\n className: \"theme-button theme-tron\",\n children: \"Tron\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 186,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"paper\",\n className: \"theme-button theme-paper\",\n children: \"Paper\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 187,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cyberpunk\",\n className: \"theme-button theme-cyberpunk\",\n children: \"Cyberpunk\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 188,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"quadra\",\n className: \"theme-button theme-panam\",\n children: \"Quadra\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 189,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"panam\",\n className: \"theme-button theme-panam\",\n children: \"Panam\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 190,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"touch\",\n className: \"theme-button theme-touch\",\n children: \"Touch\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 191,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"peek\",\n className: \"theme-button theme-peek\",\n children: \"Peek\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 192,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 176,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"h2\", {\n children: \"Search options\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 196,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"providers\",\n children: /*#__PURE__*/_jsxDEV(\"table\", {\n children: /*#__PURE__*/_jsxDEV(\"tbody\", {\n children: [/*#__PURE__*/_jsxDEV(\"tr\", {\n children: [/*#__PURE__*/_jsxDEV(\"th\", {\n children: \"Website\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 201,\n columnNumber: 19\n }, this), /*#__PURE__*/_jsxDEV(\"th\", {\n children: \"Prefix\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 202,\n columnNumber: 19\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 200,\n columnNumber: 17\n }, this), items]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 199,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 198,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 197,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"header\", {\n id: \"modal-footer\",\n children: [/*#__PURE__*/_jsxDEV(\"a\", {\n href: \"https://github.com/jeroenpardon/\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-github-box\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 210,\n columnNumber: 54\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 210,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n href: \"https://materialdesignicons.com/\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-material-design\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 211,\n columnNumber: 54\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 211,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"sneaky\",\n children: [/*#__PURE__*/_jsxDEV(\"input\", {\n type: \"checkbox\",\n id: \"contenttype\",\n onChange: \"nsfw(this)\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 212,\n columnNumber: 35\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n for: \"contenttype\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-domino-mask\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 213,\n columnNumber: 36\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 213,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 212,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 209,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 166,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 165,\n columnNumber: 5\n }, this);\n}\n\n_c9 = ModalMenu;\n\nfunction Provider(props) {\n return /*#__PURE__*/_jsxDEV(\"tr\", {\n children: [/*#__PURE__*/_jsxDEV(\"td\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: props.provider.url,\n children: props.provider.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 223,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 223,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"td\", {\n children: props.provider.prefix\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 224,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 222,\n columnNumber: 5\n }, this);\n}\n\n_c10 = Provider;\n\nfunction ModalInit() {\n return /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"modal_init\",\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n className: \"btn\",\n href: \"#modal\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify icon\",\n \"data-icon\": \"mdi-xbox-controller-menu\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 233,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 232,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 231,\n columnNumber: 5\n }, this);\n}\n\n_c11 = ModalInit;\nReactDOM.render( /*#__PURE__*/_jsxDEV(Homepage, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 240,\n columnNumber: 3\n}, this), document.getElementById('root')); //Functions below this line are for calculating data for\n//other functions\n\nfunction date() {\n let currentDate = new Date();\n let dateOptions = {\n weekday: \"long\",\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\"\n };\n let date = currentDate.toLocaleDateString(\"en-GB\", dateOptions);\n return date;\n}\n\nfunction fixDigits(k) {\n if (k < 10) {\n return \"0\" + k;\n } else {\n return k;\n }\n}\n\nfunction greet() {\n let currentTime = new Date();\n let greet = Math.floor(currentTime.getHours() / 6);\n let easterEggChance = Math.floor(Math.random() * 100);\n\n let greetings = require('./messages.json');\n\n let timeBased = [];\n let easterEggs = [];\n\n for (var i = 0; i < greetings.messages.length; i++) {\n if (greetings.messages[i].easteregg === \"FALSE\") {\n timeBased = timeBased.concat(greetings.messages[i]);\n } else {\n easterEggs = easterEggs.concat(greetings.messages[i]);\n }\n }\n\n if (easterEggChance > 10) {\n return timeBased[greet].message;\n } else {\n let easterEggText = Math.floor(Math.random() * easterEggs.length);\n return easterEggs[easterEggText].message;\n }\n}\n\nfunction Clock() {\n _s();\n\n const [date, setDate] = useState(new Date());\n\n function refreshClock() {\n setDate(new Date());\n }\n\n useEffect(() => {\n const timerId = setInterval(refreshClock, 1000);\n return function cleanup() {\n clearInterval(timerId);\n };\n }, []);\n var hour = date.getHours();\n var minutes = date.getMinutes(); //var seconds = date.getSeconds();\n\n var midday = \"AM\";\n midday = hour >= 12 ? \"PM\" : \"AM\";\n hour = hour === 0 ? 12 : hour > 12 ? hour - 12 : hour;\n minutes = fixDigits(minutes); //seconds = fixDigits(seconds);\n\n let time = hour + \":\" + minutes + \" \" + midday;\n return /*#__PURE__*/_jsxDEV(\"h2\", {\n id: \"clock\",\n children: time\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 311,\n columnNumber: 5\n }, this);\n}\n\n_s(Clock, \"Gqi45WOZhU2c0BLYX0HoJeiR0fk=\");\n\n_c12 = Clock;\n\nfunction getApps() {\n let applications = require('./apps.json');\n\n return applications;\n}\n\nfunction getLinks() {\n let links = require('./links.json');\n\n return links;\n}\n\nfunction getProviders() {\n let providers = require('./providers.json');\n\n return providers;\n}\n\nvar _c, _c2, _c3, _c4, _c5, _c6, _c7, _c8, _c9, _c10, _c11, _c12;\n\n$RefreshReg$(_c, \"Homepage\");\n$RefreshReg$(_c2, \"Search\");\n$RefreshReg$(_c3, \"Header\");\n$RefreshReg$(_c4, \"Applications\");\n$RefreshReg$(_c5, \"App\");\n$RefreshReg$(_c6, \"Bookmarks\");\n$RefreshReg$(_c7, \"LinkGroups\");\n$RefreshReg$(_c8, \"LinkItem\");\n$RefreshReg$(_c9, \"ModalMenu\");\n$RefreshReg$(_c10, \"Provider\");\n$RefreshReg$(_c11, \"ModalInit\");\n$RefreshReg$(_c12, \"Clock\");","map":{"version":3,"sources":["/home/seanedmunds/dev/home-page/src/index.js"],"names":["React","useState","useEffect","ReactDOM","Homepage","date","greet","Search","handleKeyPress","event","Header","props","Applications","appList","getApps","items","i","apps","length","push","name","url","icon","NSFW","App","classNameType","hrefUrl","iconName","Bookmarks","bookmarkList","getLinks","bookmarks","category","links","LinkGroups","LinkItem","link","ModalMenu","providers","getProviders","Provider","provider","prefix","ModalInit","render","document","getElementById","currentDate","Date","dateOptions","weekday","year","month","day","toLocaleDateString","fixDigits","k","currentTime","Math","floor","getHours","easterEggChance","random","greetings","require","timeBased","easterEggs","messages","easteregg","concat","message","easterEggText","Clock","setDate","refreshClock","timerId","setInterval","cleanup","clearInterval","hour","minutes","getMinutes","midday","time","applications"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { useState, useEffect } from 'react';\nimport ReactDOM from 'react-dom';\n//import { unstable_createPortal } from 'react-dom';\nimport './index.css';\n\nfunction Homepage() {\n return (\n \n \n \n
\n \n \n
\n \n \n \n
\n \n \n
\n \n \n
\n \n );\n}\n\nfunction Search() {\n return (\n \n )\n}\n\nfunction Header(props) {\n return (\n \n );\n}\n\nfunction Applications() {\n let appList = getApps();\n var items = [];\n for (var i = 0; i < appList.apps.length; i++) {\n items.push(\n \n );\n }\n return (\n \n Applications
\n \n {items}\n
\n \n );\n}\n\nfunction App(props) {\n let classNameType = props.NSFW + \"-content\";\n let hrefUrl = \"https://\" + props.url;\n let iconName = \"mdi-\" + props.icon;\n return (\n \n );\n}\n\nfunction Bookmarks() {\n let bookmarkList = getLinks();\n var items = [];\n for (var i = 0; i < bookmarkList.bookmarks.length; i++) {\n items.push(\n \n );\n }\n return (\n \n Bookmarks
\n \n {items}\n
\n \n );\n}\n\nfunction LinkGroups(props) {\n var items = [];\n for (var i = 0; i < props.links.length; i++) {\n items.push(\n \n );\n }\n return (\n \n
{props.category}
\n {items}\n \n );\n}\n\nfunction LinkItem(props) {\n return (\n \n );\n}\n\nfunction ModalMenu() {\n var providers = getProviders();\n var items = [];\n for (var i = 0; i < providers.providers.length; i++) {\n items.push(\n \n );\n }\n return (\n \n \n \n\n
Color themes
\n\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n\n\n
Search options
\n
\n \n \n \n | Website | \n Prefix | \n
\n {items}\n \n
\n \n\n \n
\n \n );\n}\n\nfunction Provider(props) {\n return (\n \n | {props.provider.name} | \n {props.provider.prefix} | \n
\n );\n}\n\nfunction ModalInit() {\n return (\n \n );\n}\n\nReactDOM.render(\n ,\n document.getElementById('root')\n);\n\n//Functions below this line are for calculating data for\n//other functions\n\nfunction date() {\n let currentDate = new Date();\n let dateOptions = {\n weekday: \"long\",\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\"\n };\n let date = currentDate.toLocaleDateString(\"en-GB\", dateOptions);\n return date;\n}\nfunction fixDigits(k) {\n if (k < 10) {\n return \"0\" + k;\n }\n else {\n return k;\n }\n}\nfunction greet() {\n let currentTime = new Date();\n let greet = Math.floor(currentTime.getHours() / 6);\n let easterEggChance = Math.floor(Math.random() * 100);\n let greetings = require('./messages.json');\n let timeBased = [];\n let easterEggs = [];\n for (var i = 0; i < greetings.messages.length; i++) {\n if (greetings.messages[i].easteregg === \"FALSE\") {\n timeBased = timeBased.concat(greetings.messages[i]);\n } else {\n easterEggs = easterEggs.concat(greetings.messages[i]);\n }\n }\n if (easterEggChance > 10) {\n return timeBased[greet].message;\n } else {\n let easterEggText = Math.floor(Math.random() * easterEggs.length);\n return easterEggs[easterEggText].message;\n }\n}\nfunction Clock() {\n const [date, setDate] = useState(new Date());\n\n function refreshClock() {\n setDate(new Date());\n }\n useEffect(() => {\n const timerId = setInterval(refreshClock, 1000);\n return function cleanup() {\n clearInterval(timerId);\n };\n }, []);\n\n var hour = date.getHours();\n var minutes = date.getMinutes();\n //var seconds = date.getSeconds();\n var midday = \"AM\";\n midday = (hour >= 12) ? \"PM\" : \"AM\";\n hour = (hour === 0) ? 12 : ((hour > 12) ? (hour - 12) : hour);\n minutes = fixDigits(minutes);\n //seconds = fixDigits(seconds);\n let time = hour + \":\" + minutes + \" \" + midday;\n\n return (\n {time}
\n\n );\n}\nfunction getApps() {\n let applications = require('./apps.json');\n return applications;\n}\nfunction getLinks() {\n let links = require('./links.json');\n return links;\n}\nfunction getProviders() {\n let providers = require('./providers.json');\n return providers;\n}"]},"metadata":{},"sourceType":"module"}
\ No newline at end of file
diff --git a/node_modules/.cache/babel-loader/5fed5d58740f03b30e0722f74360abf8.json b/node_modules/.cache/babel-loader/5fed5d58740f03b30e0722f74360abf8.json
new file mode 100644
index 00000000..ecdd1b0b
--- /dev/null
+++ b/node_modules/.cache/babel-loader/5fed5d58740f03b30e0722f74360abf8.json
@@ -0,0 +1 @@
+{"ast":null,"code":"var _jsxFileName = \"/home/seanedmunds/dev/home-page/src/index.js\",\n _s = $RefreshSig$();\n\nimport React from 'react';\nimport { useState, useEffect } from 'react';\nimport ReactDOM from 'react-dom';\nimport './index.css';\nimport { jsxDEV as _jsxDEV } from \"react/jsx-dev-runtime\";\n\nconst setValueFromLocalStorage = property => {\n let value = localStorage.getItem(property);\n setValue(property, value);\n};\n\nconst setValue = (property, value) => {\n if (value) {\n document.documentElement.style.setProperty(`--${property}`, value);\n const input = document.querySelector(`#${property}`);\n\n if (input) {\n value = value.replace('px', '');\n input.value = value;\n }\n }\n};\n\nfunction Homepage() {\n setTheme();\n return /*#__PURE__*/_jsxDEV(\"main\", {\n id: \"container\",\n className: \"fade\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Search, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 28,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 27,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Header, {\n date: date(),\n greet: greet()\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 31,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 30,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Applications, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 37,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 36,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Bookmarks, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 40,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 39,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(ModalMenu, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 43,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 42,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(ModalInit, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 46,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 45,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 26,\n columnNumber: 5\n }, this);\n}\n\n_c = Homepage;\n\nfunction Search() {\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"search\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"abackground\",\n children: [/*#__PURE__*/_jsxDEV(\"input\", {\n name: \"keywords\",\n type: \"text\",\n className: \"keyword\",\n id: \"keywords\",\n size: \"50\",\n spellCheck: \"true\",\n placeholder: \"\"\n /*onFocus={this.placeholder = \"\"} onBlur={this.placeholder = ''}*/\n ,\n autoComplete: \"off\",\n autoFocus: true,\n onKeyUp: handleKeyPress\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 56,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n id: \"searchType\",\n className: \"Input-label\",\n children: \"Google search\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 57,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 55,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 54,\n columnNumber: 5\n }, this);\n}\n\n_c2 = Search;\n\nfunction Header(props) {\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"header\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n id: \"greeting_block\",\n children: /*#__PURE__*/_jsxDEV(\"h1\", {\n id: \"header_greet\",\n children: props.greet\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 67,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 66,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"date_block\",\n children: [/*#__PURE__*/_jsxDEV(\"h2\", {\n id: \"header_date\",\n children: props.date\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 70,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(Clock, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 71,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 69,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 65,\n columnNumber: 5\n }, this);\n}\n\n_c3 = Header;\n\nfunction Applications() {\n let appList = getApps();\n var items = [];\n\n for (var i = 0; i < appList.apps.length; i++) {\n var safe = appList.apps[i].NSFW;\n var NSFWEnabled = localStorage.getItem(\"contenttype\");\n\n if (safe === \"SAFE\") {\n items.push( /*#__PURE__*/_jsxDEV(App, {\n name: appList.apps[i].name,\n url: appList.apps[i].url,\n icon: appList.apps[i].icon,\n NSFW: appList.apps[i].NSFW\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 85,\n columnNumber: 9\n }, this));\n } else if (safe === \"NSFW\" && NSFWEnabled) {\n items.push( /*#__PURE__*/_jsxDEV(App, {\n name: appList.apps[i].name,\n url: appList.apps[i].url,\n icon: appList.apps[i].icon,\n NSFW: appList.apps[i].NSFW\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 95,\n columnNumber: 9\n }, this));\n } else {}\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"apps\",\n children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n children: \"Applications\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 110,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"apps_loop\",\n children: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 111,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 109,\n columnNumber: 5\n }, this);\n}\n\n_c4 = Applications;\n\nfunction App(props) {\n let classNameType = props.NSFW + \"-content\";\n let hrefUrl = \"https://\" + props.url;\n let iconName = \"mdi-\" + props.icon;\n return /*#__PURE__*/_jsxDEV(\"div\", {\n className: classNameType,\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: hrefUrl,\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_item\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_icon\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify icon\",\n \"data-icon\": iconName\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 128,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 127,\n columnNumber: 13\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_text\",\n children: [/*#__PURE__*/_jsxDEV(\"span\", {\n id: \"app-name\",\n children: props.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 131,\n columnNumber: 15\n }, this), /*#__PURE__*/_jsxDEV(\"span\", {\n id: \"app-address\",\n children: props.url\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 132,\n columnNumber: 15\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 130,\n columnNumber: 13\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 126,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 125,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 124,\n columnNumber: 7\n }, this);\n}\n\n_c5 = App;\n\nfunction Bookmarks() {\n let bookmarkList = getLinks();\n var items = [];\n\n for (var i = 0; i < bookmarkList.bookmarks.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(LinkGroups, {\n category: bookmarkList.bookmarks[i].category,\n links: bookmarkList.bookmarks[i].links\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 145,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"links\",\n children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n children: \"Bookmarks\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 154,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"links_loop\",\n children: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 155,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 153,\n columnNumber: 5\n }, this);\n}\n\n_c6 = Bookmarks;\n\nfunction LinkGroups(props) {\n var items = [];\n\n for (var i = 0; i < props.links.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(LinkItem, {\n link: props.links[i]\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 166,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"links_item\",\n children: [/*#__PURE__*/_jsxDEV(\"h4\", {\n children: props.category\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 174,\n columnNumber: 7\n }, this), items]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 173,\n columnNumber: 5\n }, this);\n}\n\n_c7 = LinkGroups;\n\nfunction LinkItem(props) {\n return /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: props.link.url,\n className: \"theme_color-border theme_text-select\",\n children: props.link.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 183,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 182,\n columnNumber: 5\n }, this);\n}\n\n_c8 = LinkItem;\n\nfunction ModalMenu() {\n var providers = getProviders();\n var items = [];\n var isChecked = localStorage.getItem(\"contenttype\");\n\n for (var i = 0; i < providers.providers.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(Provider, {\n provider: providers.providers[i]\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 194,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"modal\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n children: [/*#__PURE__*/_jsxDEV(\"header\", {\n id: \"modal-header\",\n children: [/*#__PURE__*/_jsxDEV(\"h1\", {\n children: \"Options\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 204,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n href: \"#\",\n title: \"Close\",\n className: \"modal-close\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-close\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 206,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 205,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 203,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"h2\", {\n children: \"Color themes\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 210,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"modal-theme\",\n children: [/*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"blackboard\",\n className: \"theme-button theme-blackboard\",\n onClick: updateTheme,\n children: \"Blackboard\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 213,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"gazette\",\n className: \"theme-button theme-gazette\",\n onClick: updateTheme,\n children: \"Gazette\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 214,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"espresso\",\n className: \"theme-button theme-espresso\",\n onClick: updateTheme,\n children: \"Espresso\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 215,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cab\",\n className: \"theme-button theme-cab\",\n onClick: updateTheme,\n children: \"Cab\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 216,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cloud\",\n className: \"theme-button theme-cloud\",\n onClick: updateTheme,\n children: \"Cloud\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 217,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"lime\",\n className: \"theme-button theme-lime\",\n onClick: updateTheme,\n children: \"Lime\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 218,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"passion\",\n className: \"theme-button theme-passion\",\n onClick: updateTheme,\n children: \"Passion\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 219,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"blues\",\n className: \"theme-button theme-blues\",\n onClick: updateTheme,\n children: \"Blues\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 220,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"chalk\",\n className: \"theme-button theme-chalk\",\n onClick: updateTheme,\n children: \"Chalk\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 221,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"tron\",\n className: \"theme-button theme-tron\",\n onClick: updateTheme,\n children: \"Tron\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 222,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"paper\",\n className: \"theme-button theme-paper\",\n onClick: updateTheme,\n children: \"Paper\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 223,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cyberpunk\",\n className: \"theme-button theme-cyberpunk\",\n onClick: updateTheme,\n children: \"Cyberpunk\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 224,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"quadra\",\n className: \"theme-button theme-panam\",\n onClick: updateTheme,\n children: \"Quadra\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 225,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"panam\",\n className: \"theme-button theme-panam\",\n onClick: updateTheme,\n children: \"Panam\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 226,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"touch\",\n className: \"theme-button theme-touch\",\n onClick: updateTheme,\n children: \"Touch\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 227,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"peek\",\n className: \"theme-button theme-peek\",\n onClick: updateTheme,\n children: \"Peek\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 228,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 212,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"h2\", {\n children: \"Search options\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 232,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"providers\",\n children: /*#__PURE__*/_jsxDEV(\"table\", {\n children: /*#__PURE__*/_jsxDEV(\"tbody\", {\n children: [/*#__PURE__*/_jsxDEV(\"tr\", {\n children: [/*#__PURE__*/_jsxDEV(\"th\", {\n children: \"Website\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 237,\n columnNumber: 19\n }, this), /*#__PURE__*/_jsxDEV(\"th\", {\n children: \"Prefix\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 238,\n columnNumber: 19\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 236,\n columnNumber: 17\n }, this), items]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 235,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 234,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 233,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"header\", {\n id: \"modal-footer\",\n children: [/*#__PURE__*/_jsxDEV(\"a\", {\n href: \"https://github.com/jeroenpardon/\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-github-box\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 246,\n columnNumber: 54\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 246,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n href: \"https://materialdesignicons.com/\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-material-design\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 247,\n columnNumber: 54\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 247,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(HideButton, {\n checked: isChecked\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 248,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 245,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 202,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 201,\n columnNumber: 5\n }, this);\n}\n\n_c9 = ModalMenu;\n\nfunction HideButton(props) {\n console.log(props.checked);\n return /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"sneaky\",\n children: [/*#__PURE__*/_jsxDEV(\"input\", {\n type: \"checkbox\",\n id: \"contenttype\",\n onChange: udpateDisplayedItems,\n defaultChecked: props.checked\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 260,\n columnNumber: 29\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n for: \"contenttype\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-domino-mask\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 261,\n columnNumber: 30\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 261,\n columnNumber: 5\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 260,\n columnNumber: 5\n }, this);\n}\n\n_c10 = HideButton;\n\nfunction Provider(props) {\n return /*#__PURE__*/_jsxDEV(\"tr\", {\n children: [/*#__PURE__*/_jsxDEV(\"td\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: props.provider.url,\n children: props.provider.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 268,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 268,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"td\", {\n children: props.provider.prefix\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 269,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 267,\n columnNumber: 5\n }, this);\n}\n\n_c11 = Provider;\n\nfunction ModalInit() {\n setDisplayedItems();\n return /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"modal_init\",\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n className: \"btn\",\n href: \"#modal\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify icon\",\n \"data-icon\": \"mdi-xbox-controller-menu\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 279,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 278,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 277,\n columnNumber: 5\n }, this);\n}\n\n_c12 = ModalInit;\nReactDOM.render( /*#__PURE__*/_jsxDEV(Homepage, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 286,\n columnNumber: 3\n}, this), document.getElementById('root')); //Functions below this line are for calculating data for\n//other functions\n\nfunction date() {\n let currentDate = new Date();\n let dateOptions = {\n weekday: \"long\",\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\"\n };\n let date = currentDate.toLocaleDateString(\"en-GB\", dateOptions);\n return date;\n}\n\nfunction fixDigits(k) {\n if (k < 10) {\n return \"0\" + k;\n } else {\n return k;\n }\n}\n\nfunction greet() {\n let currentTime = new Date();\n let greet = Math.floor(currentTime.getHours() / 6);\n let easterEggChance = Math.floor(Math.random() * 100);\n\n let greetings = require('./messages.json');\n\n let timeBased = [];\n let easterEggs = [];\n\n for (var i = 0; i < greetings.messages.length; i++) {\n if (greetings.messages[i].easteregg === \"FALSE\") {\n timeBased = timeBased.concat(greetings.messages[i]);\n } else {\n easterEggs = easterEggs.concat(greetings.messages[i]);\n }\n }\n\n if (easterEggChance > 10) {\n return timeBased[greet].message;\n } else {\n let easterEggText = Math.floor(Math.random() * easterEggs.length);\n return easterEggs[easterEggText].message;\n }\n}\n\nfunction Clock() {\n _s();\n\n const [date, setDate] = useState(new Date());\n\n function refreshClock() {\n setDate(new Date());\n }\n\n useEffect(() => {\n const timerId = setInterval(refreshClock, 1000);\n return function cleanup() {\n clearInterval(timerId);\n };\n }, []);\n var hour = date.getHours();\n var minutes = date.getMinutes(); //var seconds = date.getSeconds();\n\n var midday = \"AM\";\n midday = hour >= 12 ? \"PM\" : \"AM\";\n hour = hour === 0 ? 12 : hour > 12 ? hour - 12 : hour;\n minutes = fixDigits(minutes); //seconds = fixDigits(seconds);\n\n let time = hour + \":\" + minutes + \" \" + midday;\n return /*#__PURE__*/_jsxDEV(\"h2\", {\n id: \"clock\",\n children: time\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 357,\n columnNumber: 5\n }, this);\n}\n\n_s(Clock, \"Gqi45WOZhU2c0BLYX0HoJeiR0fk=\");\n\n_c13 = Clock;\n\nfunction getApps() {\n let applications = require('./apps.json');\n\n return applications;\n}\n\nfunction getLinks() {\n let links = require('./links.json');\n\n return links;\n}\n\nfunction getProviders() {\n let providers = require('./providers.json');\n\n return providers;\n}\n\nfunction getThemes() {\n let themes = require('./themes.json');\n\n return themes;\n}\n\nfunction updateTheme(e) {\n var themes = getThemes();\n var themeName = e.target.innerHTML.toLowerCase();\n var index = themes.themes.findIndex(function (item, i) {\n return item.name === themeName;\n });\n localStorage.setItem(\"image-background\", themes.themes[index].imagebackground);\n localStorage.setItem(\"color-background\", themes.themes[index].colorbackground);\n localStorage.setItem(\"color-search-background\", themes.themes[index].colorserachbackground);\n localStorage.setItem(\"color-text-pri\", themes.themes[index].colortextpri);\n localStorage.setItem(\"color-text-acc\", themes.themes[index].colortextacc);\n localStorage.setItem(\"color-border\", themes.themes[index].colorborder); //document.documentElement.style.setProperty(prop, `var(--${themeName}${prop.substring(10)})`);\n\n setTheme();\n}\n\nfunction setTheme() {\n setValueFromLocalStorage('image-background');\n setValueFromLocalStorage('color-background');\n setValueFromLocalStorage('color-search-background');\n setValueFromLocalStorage('color-text-pri');\n setValueFromLocalStorage('color-text-acc');\n setValueFromLocalStorage('color-border');\n setValueFromLocalStorage('content-display');\n}\n\nfunction handleKeyPress(e) {\n var sindex = 0;\n var cycle = false;\n var key = e.keyCode || e.which;\n var text = e.target.value.replaceAll(\"+\", \"%2B\");\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n\n if (key == 13) {\n // Search functions\n search(text);\n }\n\n if (key == 9) {\n // Tab Completion Functions\n e.preventDefault();\n e.stopPropagation();\n\n if (text[0] === ';') {\n switch (option) {\n case 't':\n var streamers = ['admiralbahroo', 'moonmoon_ow', 'witwix'];\n\n if (!subtext || cycle) {\n cycle = true;\n if (sindex > streamers.length - 1) sindex = 0;\n document.getElementById(\"keywords\").value = ';t ' + streamers[sindex++];\n return;\n }\n\n for (var streamer of streamers) {\n if (subtext === streamer.substr(0, subtext.length)) {\n document.getElementById(\"keywords\").value = ';t ' + streamer;\n return;\n }\n }\n\n break;\n }\n }\n }\n\n if (key == 32) {\n //Space to go to search\n updateLabel(text);\n }\n\n sindex = 0;\n cycle = false;\n updateLabel(text);\n}\n\nfunction updateLabel(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n\n if (text[0] === '/') {\n // if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n document.getElementById(\"searchType\").innerHTML = \"Allmusic search\";\n break;\n\n case \"d\":\n document.getElementById(\"searchType\").innerHTML = \"Duck Duck Go search\";\n break;\n\n case \"di\":\n document.getElementById(\"searchType\").innerHTML = \"Discogs search\";\n break;\n\n case \"i\":\n document.getElementById(\"searchType\").innerHTML = \"IMDB search\";\n break;\n\n case \"m\":\n document.getElementById(\"searchType\").innerHTML = \"TheMovieDB search\";\n break;\n\n case \"r\":\n document.getElementById(\"searchType\").innerHTML = \"Reddit search\";\n break;\n\n case \"q\":\n document.getElementById(\"searchType\").innerHTML = \"Qwant search\";\n break;\n\n case \"so\":\n document.getElementById(\"searchType\").innerHTML = \"Soundcloud search\";\n break;\n\n case \"s\":\n document.getElementById(\"searchType\").innerHTML = \"Spotify search\";\n break;\n\n case \"tv\":\n document.getElementById(\"searchType\").innerHTML = \"TheTVDB search\";\n break;\n\n case \"t\":\n document.getElementById(\"searchType\").innerHTML = \"Trakt search\";\n break;\n\n case \"y\":\n document.getElementById(\"searchType\").innerHTML = \"YouTube search\";\n break;\n\n case \"w\":\n document.getElementById(\"searchType\").innerHTML = \"Wikipedia search\";\n break;\n\n case \"p\":\n document.getElementById(\"searchType\").innerHTML = \"Plex search\";\n break;\n\n case \"rt\":\n document.getElementById(\"searchType\").innerHTML = \"Rotten Tomatoes search\";\n break;\n\n default:\n document.getElementById(\"searchType\").innerHTML = \"Invalid search\";\n break;\n }\n } else {\n document.getElementById(\"searchType\").innerHTML = \"Google search\";\n }\n}\n\nfunction search(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n\n if (text[0] === '/') {\n if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n window.location = \"https://www.allmusic.com/search/all/\" + subtext;\n break;\n\n case \"d\":\n window.location = \"https://duckduckgo.com/?q=\" + subtext;\n break;\n\n case \"di\":\n window.location = \"https://www.discogs.com/search/?q=\" + subtext;\n break;\n\n case \"i\":\n window.location = \"https://www.imdb.com/find?q=\" + subtext;\n break;\n\n case \"m\":\n window.location = \"https://www.themoviedb.org/search?query=\" + subtext;\n break;\n\n case \"r\":\n window.location = \"https://www.reddit.com/search?q=\" + subtext;\n break;\n\n case \"q\":\n window.location = \"https://www.qwant.com/?q=\" + subtext;\n break;\n\n case \"so\":\n window.location = \"https://soundcloud.com/search?q=\" + subtext;\n break;\n\n case \"s\":\n window.location = \"https://open.spotify.com/search/results/\" + subtext;\n break;\n\n case \"t\":\n window.location = \"https://trakt.tv/search?query=\" + subtext;\n break;\n\n case \"tv\":\n window.location = \"https://www.thetvdb.com/search?query=\" + subtext;\n break;\n\n case \"y\":\n window.location = \"https://www.youtube.com/results?search_query=\" + subtext;\n break;\n\n case \"w\":\n window.location = \"https://en.wikipedia.org/w/index.php?search=\" + subtext;\n break;\n\n case \"p\":\n window.location = \"https://app.plex.tv/desktop/#!/search?query=\" + subtext;\n break;\n\n case \"rt\":\n window.location = \"https://www.rottentomatoes.com/search?search=\" + subtext;\n break;\n }\n } else {\n var option = text.substr(1);\n\n switch (option) {\n case \"d\":\n window.location = \"https://www.duckduckgo.com\";\n break;\n\n case \"y\":\n window.location = \"https://www.youtube.com\";\n break;\n\n case \"r\":\n window.location = \"https://reddit.com\";\n break;\n\n case \"s\":\n window.location = \"https://open.spotify.com\";\n break;\n }\n }\n } else if (validURL(text)) {\n if (containsProtocol(text)) window.location = text;else window.location = \"https://\" + text;\n } else {\n window.location = \"https://www.google.com/search?q=\" + text;\n }\n}\n\nfunction validURL(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/)?' + // protocol\n '((([a-z\\\\d]([a-z\\\\d-]*[a-z\\\\d])*)\\\\.)+[a-z]{2,}|' + // domain name\n '((\\\\d{1,3}\\\\.){3}\\\\d{1,3}))' + // OR ip (v4) address\n '(\\\\:\\\\d+)?(\\\\/[-a-z\\\\d%_.~+]*)*' + // port and path\n '(\\\\?[;&a-z\\\\d%_.~+=-]*)?' + // query string\n '(\\\\#[-a-z\\\\d_]*)?$', 'i'); // fragment locator\n\n return !!pattern.test(str);\n}\n\nfunction containsProtocol(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/){1}.*', 'i');\n return !!pattern.test(str);\n}\n\nString.prototype.replaceAll = function (search, replacement) {\n var target = this;\n return target.split(search).join(replacement);\n};\n\nfunction udpateDisplayedItems(e) {\n localStorage.setItem('contenttype', e.target.checked);\n\n if (e.target.checked) {\n localStorage.setItem('content-display', 'none');\n } else {\n localStorage.setItem('content-display', 'block');\n }\n\n setDisplayedItems();\n}\n\nfunction setDisplayedItems() {\n setValueFromLocalStorage('contenttype');\n setValueFromLocalStorage('content-display');\n}\n\nvar _c, _c2, _c3, _c4, _c5, _c6, _c7, _c8, _c9, _c10, _c11, _c12, _c13;\n\n$RefreshReg$(_c, \"Homepage\");\n$RefreshReg$(_c2, \"Search\");\n$RefreshReg$(_c3, \"Header\");\n$RefreshReg$(_c4, \"Applications\");\n$RefreshReg$(_c5, \"App\");\n$RefreshReg$(_c6, \"Bookmarks\");\n$RefreshReg$(_c7, \"LinkGroups\");\n$RefreshReg$(_c8, \"LinkItem\");\n$RefreshReg$(_c9, \"ModalMenu\");\n$RefreshReg$(_c10, \"HideButton\");\n$RefreshReg$(_c11, \"Provider\");\n$RefreshReg$(_c12, \"ModalInit\");\n$RefreshReg$(_c13, \"Clock\");","map":{"version":3,"sources":["/home/seanedmunds/dev/home-page/src/index.js"],"names":["React","useState","useEffect","ReactDOM","setValueFromLocalStorage","property","value","localStorage","getItem","setValue","document","documentElement","style","setProperty","input","querySelector","replace","Homepage","setTheme","date","greet","Search","handleKeyPress","Header","props","Applications","appList","getApps","items","i","apps","length","safe","NSFW","NSFWEnabled","push","name","url","icon","App","classNameType","hrefUrl","iconName","Bookmarks","bookmarkList","getLinks","bookmarks","category","links","LinkGroups","LinkItem","link","ModalMenu","providers","getProviders","isChecked","updateTheme","HideButton","console","log","checked","udpateDisplayedItems","Provider","provider","prefix","ModalInit","setDisplayedItems","render","getElementById","currentDate","Date","dateOptions","weekday","year","month","day","toLocaleDateString","fixDigits","k","currentTime","Math","floor","getHours","easterEggChance","random","greetings","require","timeBased","easterEggs","messages","easteregg","concat","message","easterEggText","Clock","setDate","refreshClock","timerId","setInterval","cleanup","clearInterval","hour","minutes","getMinutes","midday","time","applications","getThemes","themes","e","themeName","target","innerHTML","toLowerCase","index","findIndex","item","setItem","imagebackground","colorbackground","colorserachbackground","colortextpri","colortextacc","colorborder","sindex","cycle","key","keyCode","which","text","replaceAll","option","substr","indexOf","subtext","search","preventDefault","stopPropagation","streamers","streamer","updateLabel","window","location","validURL","containsProtocol","str","pattern","RegExp","test","String","prototype","replacement","split","join"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { useState, useEffect } from 'react';\nimport ReactDOM from 'react-dom';\nimport './index.css';\n\nconst setValueFromLocalStorage = property => {\n let value = localStorage.getItem(property);\n setValue(property, value);\n};\nconst setValue = (property, value) => {\n if (value) {\n document.documentElement.style.setProperty(`--${property}`, value);\n\n const input = document.querySelector(`#${property}`);\n if (input) {\n value = value.replace('px', '');\n input.value = value;\n }\n }\n};\n\nfunction Homepage() {\n setTheme();\n \n return (\n \n \n \n
\n \n \n
\n \n \n \n
\n \n \n
\n \n \n
\n \n );\n}\n\nfunction Search() {\n return (\n \n )\n}\n\nfunction Header(props) {\n return (\n \n );\n}\n\nfunction Applications() {\n let appList = getApps();\n var items = [];\n for (var i = 0; i < appList.apps.length; i++) {\n var safe = appList.apps[i].NSFW;\n var NSFWEnabled = localStorage.getItem(\"contenttype\");\n if (safe === \"SAFE\") {\n items.push(\n \n );\n } else if (safe === \"NSFW\" && NSFWEnabled) {\n items.push(\n \n );\n } else {\n \n }\n \n }\n return (\n \n Applications
\n \n {items}\n
\n \n );\n}\n\nfunction App(props) {\n \n let classNameType = props.NSFW + \"-content\";\n let hrefUrl = \"https://\" + props.url;\n let iconName = \"mdi-\" + props.icon;\n return (\n \n );\n}\n\nfunction Bookmarks() {\n let bookmarkList = getLinks();\n var items = [];\n for (var i = 0; i < bookmarkList.bookmarks.length; i++) {\n items.push(\n \n );\n }\n return (\n \n Bookmarks
\n \n {items}\n
\n \n );\n}\n\nfunction LinkGroups(props) {\n var items = [];\n for (var i = 0; i < props.links.length; i++) {\n items.push(\n \n );\n }\n return (\n \n
{props.category}
\n {items}\n \n );\n}\n\nfunction LinkItem(props) {\n return (\n \n );\n}\n\nfunction ModalMenu() {\n var providers = getProviders();\n var items = [];\n var isChecked = localStorage.getItem(\"contenttype\");\n for (var i = 0; i < providers.providers.length; i++) {\n items.push(\n \n );\n }\n return (\n \n \n \n\n
Color themes
\n\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n\n\n
Search options
\n
\n \n \n \n | Website | \n Prefix | \n
\n {items}\n \n
\n \n\n \n
\n \n );\n}\n\nfunction HideButton(props) {\n console.log(props.checked);\n return (\n \n
\n );\n}\n\nfunction Provider(props) {\n return (\n \n | {props.provider.name} | \n {props.provider.prefix} | \n
\n );\n}\n\nfunction ModalInit() {\n setDisplayedItems();\n return (\n \n );\n}\n\nReactDOM.render(\n ,\n document.getElementById('root')\n);\n\n//Functions below this line are for calculating data for\n//other functions\n\nfunction date() {\n let currentDate = new Date();\n let dateOptions = {\n weekday: \"long\",\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\"\n };\n let date = currentDate.toLocaleDateString(\"en-GB\", dateOptions);\n return date;\n}\nfunction fixDigits(k) {\n if (k < 10) {\n return \"0\" + k;\n }\n else {\n return k;\n }\n}\nfunction greet() {\n let currentTime = new Date();\n let greet = Math.floor(currentTime.getHours() / 6);\n let easterEggChance = Math.floor(Math.random() * 100);\n let greetings = require('./messages.json');\n let timeBased = [];\n let easterEggs = [];\n for (var i = 0; i < greetings.messages.length; i++) {\n if (greetings.messages[i].easteregg === \"FALSE\") {\n timeBased = timeBased.concat(greetings.messages[i]);\n } else {\n easterEggs = easterEggs.concat(greetings.messages[i]);\n }\n }\n if (easterEggChance > 10) {\n return timeBased[greet].message;\n } else {\n let easterEggText = Math.floor(Math.random() * easterEggs.length);\n return easterEggs[easterEggText].message;\n }\n}\nfunction Clock() {\n const [date, setDate] = useState(new Date());\n\n function refreshClock() {\n setDate(new Date());\n }\n useEffect(() => {\n const timerId = setInterval(refreshClock, 1000);\n return function cleanup() {\n clearInterval(timerId);\n };\n }, []);\n\n var hour = date.getHours();\n var minutes = date.getMinutes();\n //var seconds = date.getSeconds();\n var midday = \"AM\";\n midday = (hour >= 12) ? \"PM\" : \"AM\";\n hour = (hour === 0) ? 12 : ((hour > 12) ? (hour - 12) : hour);\n minutes = fixDigits(minutes);\n //seconds = fixDigits(seconds);\n let time = hour + \":\" + minutes + \" \" + midday;\n\n return (\n {time}
\n\n );\n}\nfunction getApps() {\n let applications = require('./apps.json');\n return applications;\n}\nfunction getLinks() {\n let links = require('./links.json');\n return links;\n}\nfunction getProviders() {\n let providers = require('./providers.json');\n return providers;\n}\nfunction getThemes() {\n let themes = require('./themes.json');\n return themes;\n}\nfunction updateTheme(e) {\n var themes = getThemes();\n var themeName = e.target.innerHTML.toLowerCase();\n var index = themes.themes.findIndex(function(item, i){\n return item.name === themeName\n });\n localStorage.setItem(\"image-background\", themes.themes[index].imagebackground);\n localStorage.setItem(\"color-background\", themes.themes[index].colorbackground);\n localStorage.setItem(\"color-search-background\", themes.themes[index].colorserachbackground);\n localStorage.setItem(\"color-text-pri\",themes.themes[index].colortextpri);\n localStorage.setItem(\"color-text-acc\", themes.themes[index].colortextacc);\n localStorage.setItem(\"color-border\", themes.themes[index].colorborder);\n \n //document.documentElement.style.setProperty(prop, `var(--${themeName}${prop.substring(10)})`);\n setTheme();\n}\nfunction setTheme() {\n setValueFromLocalStorage('image-background');\n setValueFromLocalStorage('color-background');\n setValueFromLocalStorage('color-search-background');\n setValueFromLocalStorage('color-text-pri');\n setValueFromLocalStorage('color-text-acc');\n setValueFromLocalStorage('color-border');\n setValueFromLocalStorage('content-display');\n}\nfunction handleKeyPress(e) {\n var sindex = 0;\n var cycle = false;\n var key = e.keyCode || e.which;\n var text = e.target.value.replaceAll(\"+\", \"%2B\");\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n if (key == 13) { // Search functions\n search(text);\n }\n if (key == 9) { // Tab Completion Functions\n e.preventDefault();\n e.stopPropagation();\n if (text[0] === ';') {\n switch (option) {\n case 't':\n var streamers = ['admiralbahroo', 'moonmoon_ow', 'witwix'];\n if (!subtext || cycle) {\n cycle = true;\n if (sindex > streamers.length - 1) sindex = 0;\n document.getElementById(\"keywords\").value = ';t ' + streamers[sindex++];\n return;\n }\n for (var streamer of streamers) {\n if (subtext === streamer.substr(0, subtext.length)) {\n document.getElementById(\"keywords\").value = ';t ' + streamer;\n return;\n }\n }\n break;\n }\n }\n }\n if(key == 32){ //Space to go to search\nupdateLabel(text);\n }\n sindex = 0;\n cycle = false;\n updateLabel(text);\n}\nfunction updateLabel(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n if (text[0] === '/') {\n// if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n document.getElementById(\"searchType\").innerHTML = \"Allmusic search\";\n break;\n case \"d\":\n document.getElementById(\"searchType\").innerHTML = \"Duck Duck Go search\";\n break;\n case \"di\":\n document.getElementById(\"searchType\").innerHTML = \"Discogs search\";\n break;\n case \"i\":\n document.getElementById(\"searchType\").innerHTML = \"IMDB search\";\n break;\n case \"m\":\n document.getElementById(\"searchType\").innerHTML = \"TheMovieDB search\";\n break;\n case \"r\":\n document.getElementById(\"searchType\").innerHTML = \"Reddit search\";\n break;\n case \"q\":\n document.getElementById(\"searchType\").innerHTML = \"Qwant search\";\n break;\n case \"so\":\n document.getElementById(\"searchType\").innerHTML = \"Soundcloud search\";\n break;\n case \"s\":\n document.getElementById(\"searchType\").innerHTML = \"Spotify search\";\n break;\n case \"tv\":\n document.getElementById(\"searchType\").innerHTML = \"TheTVDB search\";\n break;\n case \"t\":\n document.getElementById(\"searchType\").innerHTML = \"Trakt search\";\n break;\n case \"y\":\n document.getElementById(\"searchType\").innerHTML = \"YouTube search\";\n break;\n case \"w\":\n document.getElementById(\"searchType\").innerHTML = \"Wikipedia search\";\n break;\n case \"p\":\n document.getElementById(\"searchType\").innerHTML = \"Plex search\";\n break;\n case \"rt\":\n document.getElementById(\"searchType\").innerHTML = \"Rotten Tomatoes search\";\n break;\n default:\n document.getElementById(\"searchType\").innerHTML = \"Invalid search\";\n break;\n }\n}else {\n document.getElementById(\"searchType\").innerHTML = \"Google search\";\n }\n}\nfunction search(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n if (text[0] === '/') {\n if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n window.location = \"https://www.allmusic.com/search/all/\" + subtext;\n break;\n case \"d\":\n window.location = \"https://duckduckgo.com/?q=\" + subtext;\n break;\n case \"di\":\n window.location = \"https://www.discogs.com/search/?q=\" + subtext;\n break;\n case \"i\":\n window.location = \"https://www.imdb.com/find?q=\" + subtext;\n break;\n case \"m\":\n window.location = \"https://www.themoviedb.org/search?query=\" + subtext;\n break;\n case \"r\":\n window.location = \"https://www.reddit.com/search?q=\" + subtext;\n break;\n case \"q\":\n window.location = \"https://www.qwant.com/?q=\" + subtext;\n break;\n case \"so\":\n window.location = \"https://soundcloud.com/search?q=\" + subtext;\n break;\n case \"s\":\n window.location = \"https://open.spotify.com/search/results/\" + subtext;\n break;\n case \"t\":\n window.location = \"https://trakt.tv/search?query=\" + subtext;\n break;\n case \"tv\":\n window.location = \"https://www.thetvdb.com/search?query=\" + subtext;\n break;\n case \"y\":\n window.location = \"https://www.youtube.com/results?search_query=\" + subtext;\n break;\n case \"w\":\n window.location = \"https://en.wikipedia.org/w/index.php?search=\" + subtext;\n break;\n case \"p\":\n window.location = \"https://app.plex.tv/desktop/#!/search?query=\" + subtext;\n break;\n case \"rt\":\n window.location = \"https://www.rottentomatoes.com/search?search=\" + subtext;\n break;\n }\n } else {\n var option = text.substr(1);\n switch (option) {\n case \"d\":\n window.location = \"https://www.duckduckgo.com\";\n break;\n case \"y\":\n window.location = \"https://www.youtube.com\";\n break;\n case \"r\":\n window.location = \"https://reddit.com\";\n break;\n case \"s\":\n window.location = \"https://open.spotify.com\";\n break;\n }\n }\n } else if (validURL(text)) {\n if (containsProtocol(text))\n window.location = text;\n else\n window.location = \"https://\" + text;\n } else {\n window.location = \"https://www.google.com/search?q=\" + text;\n }\n}\nfunction validURL(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/)?' + // protocol\n '((([a-z\\\\d]([a-z\\\\d-]*[a-z\\\\d])*)\\\\.)+[a-z]{2,}|' + // domain name\n '((\\\\d{1,3}\\\\.){3}\\\\d{1,3}))' + // OR ip (v4) address\n '(\\\\:\\\\d+)?(\\\\/[-a-z\\\\d%_.~+]*)*' + // port and path\n '(\\\\?[;&a-z\\\\d%_.~+=-]*)?' + // query string\n '(\\\\#[-a-z\\\\d_]*)?$', 'i'); // fragment locator\n return !!pattern.test(str);\n}\nfunction containsProtocol(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/){1}.*', 'i');\n return !!pattern.test(str);\n}\nString.prototype.replaceAll = function(search, replacement) {\n var target = this;\n return target.split(search).join(replacement);\n};\nfunction udpateDisplayedItems(e) {\n localStorage.setItem('contenttype', e.target.checked);\n if (e.target.checked) {\n localStorage.setItem('content-display', 'none');\n } else {\n localStorage.setItem('content-display', 'block');\n }\n setDisplayedItems();\n}\nfunction setDisplayedItems() {\n setValueFromLocalStorage('contenttype');\n setValueFromLocalStorage('content-display');\n}"]},"metadata":{},"sourceType":"module"}
\ No newline at end of file
diff --git a/node_modules/.cache/babel-loader/61e75b2d51b33c9c9b5d666cc30e8b86.json b/node_modules/.cache/babel-loader/61e75b2d51b33c9c9b5d666cc30e8b86.json
new file mode 100644
index 00000000..739300f9
--- /dev/null
+++ b/node_modules/.cache/babel-loader/61e75b2d51b33c9c9b5d666cc30e8b86.json
@@ -0,0 +1 @@
+{"ast":null,"code":"var _jsxFileName = \"/home/seanedmunds/dev/home-page/src/index.js\",\n _s = $RefreshSig$();\n\nimport React from 'react';\nimport { useState, useEffect } from 'react';\nimport ReactDOM from 'react-dom'; //import { unstable_createPortal } from 'react-dom';\n\nimport './index.css';\nimport { jsxDEV as _jsxDEV } from \"react/jsx-dev-runtime\";\n\nfunction Homepage() {\n return /*#__PURE__*/_jsxDEV(\"main\", {\n id: \"container\",\n className: \"fade\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Search, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 11,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 10,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Header, {\n date: date(),\n greet: greet()\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 14,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 13,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Applications, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 20,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 19,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Bookmarks, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 23,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 22,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(ModalMenu, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 26,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 25,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(ModalInit, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 29,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 28,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 9,\n columnNumber: 5\n }, this);\n}\n\n_c = Homepage;\n\nfunction Search() {\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"search\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"abackground\",\n children: [/*#__PURE__*/_jsxDEV(\"input\", {\n name: \"keywords\",\n type: \"text\",\n className: \"keyword\",\n id: \"keywords\",\n size: \"50\",\n spellCheck: \"true\",\n placeholder: \"\"\n /*onFocus={this.placeholder = \"\"} onBlur={this.placeholder = ''}*/\n ,\n autoComplete: \"off\",\n autoFocus: \"true\",\n onKeyUp: handleKeyPress\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 39,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n id: \"searchType\",\n className: \"Input-label\",\n children: \"Google search\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 40,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 38,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 37,\n columnNumber: 5\n }, this);\n}\n\n_c2 = Search;\n\nfunction Header(props) {\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"header\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n id: \"greeting_block\",\n children: /*#__PURE__*/_jsxDEV(\"h1\", {\n id: \"header_greet\",\n children: props.greet\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 50,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 49,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"date_block\",\n children: [/*#__PURE__*/_jsxDEV(\"h2\", {\n id: \"header_date\",\n children: props.date\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 53,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(Clock, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 54,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 52,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 48,\n columnNumber: 5\n }, this);\n}\n\n_c3 = Header;\n\nfunction Applications() {\n let appList = getApps();\n var items = [];\n\n for (var i = 0; i < appList.apps.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(App, {\n name: appList.apps[i].name,\n url: appList.apps[i].url,\n icon: appList.apps[i].icon,\n NSFW: appList.apps[i].NSFW\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 65,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"apps\",\n children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n children: \"Applications\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 76,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"apps_loop\",\n children: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 77,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 75,\n columnNumber: 5\n }, this);\n}\n\n_c4 = Applications;\n\nfunction App(props) {\n let classNameType = props.NSFW + \"-content\";\n let hrefUrl = \"https://\" + props.url;\n let iconName = \"mdi-\" + props.icon;\n return /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: hrefUrl,\n className: classNameType,\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_item\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_icon\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify icon\",\n \"data-icon\": iconName\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 93,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 92,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_text\",\n children: [/*#__PURE__*/_jsxDEV(\"span\", {\n id: \"app-name\",\n children: props.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 96,\n columnNumber: 13\n }, this), /*#__PURE__*/_jsxDEV(\"span\", {\n id: \"app-address\",\n children: props.url\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 97,\n columnNumber: 13\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 95,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 91,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 90,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 89,\n columnNumber: 5\n }, this);\n}\n\n_c5 = App;\n\nfunction Bookmarks() {\n let bookmarkList = getLinks();\n var items = [];\n\n for (var i = 0; i < bookmarkList.bookmarks.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(LinkGroups, {\n category: bookmarkList.bookmarks[i].category,\n links: bookmarkList.bookmarks[i].links\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 110,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"links\",\n children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n children: \"Bookmarks\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 119,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"links_loop\",\n children: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 120,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 118,\n columnNumber: 5\n }, this);\n}\n\n_c6 = Bookmarks;\n\nfunction LinkGroups(props) {\n var items = [];\n\n for (var i = 0; i < props.links.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(LinkItem, {\n link: props.links[i]\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 131,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"links_item\",\n children: [/*#__PURE__*/_jsxDEV(\"h4\", {\n children: props.category\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 139,\n columnNumber: 7\n }, this), items]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 138,\n columnNumber: 5\n }, this);\n}\n\n_c7 = LinkGroups;\n\nfunction LinkItem(props) {\n return /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: props.link.url,\n className: \"theme_color-border theme_text-select\",\n children: props.link.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 148,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 147,\n columnNumber: 5\n }, this);\n}\n\n_c8 = LinkItem;\n\nfunction ModalMenu() {\n var providers = getProviders();\n var items = [];\n\n for (var i = 0; i < providers.providers.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(Provider, {\n provider: providers.providers[i]\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 158,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"modal\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n children: [/*#__PURE__*/_jsxDEV(\"header\", {\n id: \"modal-header\",\n children: [/*#__PURE__*/_jsxDEV(\"h1\", {\n children: \"Options\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 168,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n href: \"#\",\n title: \"Close\",\n className: \"modal-close\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-close\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 170,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 169,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 167,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"h2\", {\n children: \"Color themes\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 174,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"modal-theme\",\n children: [/*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"blackboard\",\n className: \"theme-button theme-blackboard\",\n children: \"Blackboard\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 177,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"gazette\",\n className: \"theme-button theme-gazette\",\n children: \"Gazette\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 178,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"espresso\",\n className: \"theme-button theme-espresso\",\n children: \"Espresso\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 179,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cab\",\n className: \"theme-button theme-cab\",\n children: \"Cab\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 180,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cloud\",\n className: \"theme-button theme-cloud\",\n children: \"Cloud\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 181,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"lime\",\n className: \"theme-button theme-lime\",\n children: \"Lime\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 182,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"passion\",\n className: \"theme-button theme-passion\",\n children: \"Passion\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 183,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"blues\",\n className: \"theme-button theme-blues\",\n children: \"Blues\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 184,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"chalk\",\n className: \"theme-button theme-chalk\",\n children: \"Chalk\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 185,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"tron\",\n className: \"theme-button theme-tron\",\n children: \"Tron\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 186,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"paper\",\n className: \"theme-button theme-paper\",\n children: \"Paper\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 187,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cyberpunk\",\n className: \"theme-button theme-cyberpunk\",\n children: \"Cyberpunk\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 188,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"quadra\",\n className: \"theme-button theme-panam\",\n children: \"Quadra\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 189,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"panam\",\n className: \"theme-button theme-panam\",\n children: \"Panam\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 190,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"touch\",\n className: \"theme-button theme-touch\",\n children: \"Touch\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 191,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"peek\",\n className: \"theme-button theme-peek\",\n children: \"Peek\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 192,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 176,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"h2\", {\n children: \"Search options\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 196,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"providers\",\n children: /*#__PURE__*/_jsxDEV(\"table\", {\n children: /*#__PURE__*/_jsxDEV(\"tbody\", {\n children: [/*#__PURE__*/_jsxDEV(\"tr\", {\n children: [/*#__PURE__*/_jsxDEV(\"th\", {\n children: \"Website\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 201,\n columnNumber: 19\n }, this), /*#__PURE__*/_jsxDEV(\"th\", {\n children: \"Prefix\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 202,\n columnNumber: 19\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 200,\n columnNumber: 17\n }, this), items]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 199,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 198,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 197,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"header\", {\n id: \"modal-footer\",\n children: [/*#__PURE__*/_jsxDEV(\"a\", {\n href: \"https://github.com/jeroenpardon/\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-github-box\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 210,\n columnNumber: 54\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 210,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n href: \"https://materialdesignicons.com/\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-material-design\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 211,\n columnNumber: 54\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 211,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"sneaky\",\n children: [/*#__PURE__*/_jsxDEV(\"input\", {\n type: \"checkbox\",\n id: \"contenttype\",\n onChange: \"nsfw(this)\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 212,\n columnNumber: 35\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n for: \"contenttype\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-domino-mask\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 213,\n columnNumber: 36\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 213,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 212,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 209,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 166,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 165,\n columnNumber: 5\n }, this);\n}\n\n_c9 = ModalMenu;\n\nfunction Provider(props) {\n return /*#__PURE__*/_jsxDEV(\"tr\", {\n children: [/*#__PURE__*/_jsxDEV(\"td\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: props.provider.url,\n children: props.provider.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 223,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 223,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"td\", {\n children: props.provider.prefix\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 224,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 222,\n columnNumber: 5\n }, this);\n}\n\n_c10 = Provider;\n\nfunction ModalInit() {\n return /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"modal_init\",\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n className: \"btn\",\n href: \"#modal\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify icon\",\n \"data-icon\": \"mdi-xbox-controller-menu\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 233,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 232,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 231,\n columnNumber: 5\n }, this);\n}\n\n_c11 = ModalInit;\nReactDOM.render( /*#__PURE__*/_jsxDEV(Homepage, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 240,\n columnNumber: 3\n}, this), document.getElementById('root')); //Functions below this line are for calculating data for\n//other functions\n\nfunction date() {\n let currentDate = new Date();\n let dateOptions = {\n weekday: \"long\",\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\"\n };\n let date = currentDate.toLocaleDateString(\"en-GB\", dateOptions);\n return date;\n}\n\nfunction fixDigits(k) {\n if (k < 10) {\n return \"0\" + k;\n } else {\n return k;\n }\n}\n\nfunction greet() {\n let currentTime = new Date();\n let greet = Math.floor(currentTime.getHours() / 6);\n let easterEggChance = Math.floor(Math.random() * 100);\n\n let greetings = require('./messages.json');\n\n let timeBased = [];\n let easterEggs = [];\n\n for (var i = 0; i < greetings.messages.length; i++) {\n if (greetings.messages[i].easteregg === \"FALSE\") {\n timeBased = timeBased.concat(greetings.messages[i]);\n } else {\n easterEggs = easterEggs.concat(greetings.messages[i]);\n }\n }\n\n if (easterEggChance > 10) {\n return timeBased[greet].message;\n } else {\n let easterEggText = Math.floor(Math.random() * easterEggs.length);\n return easterEggs[easterEggText].message;\n }\n}\n\nfunction Clock() {\n _s();\n\n const [date, setDate] = useState(new Date());\n\n function refreshClock() {\n setDate(new Date());\n }\n\n useEffect(() => {\n const timerId = setInterval(refreshClock, 1000);\n return function cleanup() {\n clearInterval(timerId);\n };\n }, []);\n var hour = date.getHours();\n var minutes = date.getMinutes(); //var seconds = date.getSeconds();\n\n var midday = \"AM\";\n midday = hour >= 12 ? \"PM\" : \"AM\";\n hour = hour === 0 ? 12 : hour > 12 ? hour - 12 : hour;\n minutes = fixDigits(minutes); //seconds = fixDigits(seconds);\n\n let time = hour + \":\" + minutes + \" \" + midday;\n return /*#__PURE__*/_jsxDEV(\"h2\", {\n id: \"clock\",\n children: time\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 311,\n columnNumber: 5\n }, this);\n}\n\n_s(Clock, \"Gqi45WOZhU2c0BLYX0HoJeiR0fk=\");\n\n_c12 = Clock;\n\nfunction getApps() {\n let applications = require('./apps.json');\n\n return applications;\n}\n\nfunction getLinks() {\n let links = require('./links.json');\n\n return links;\n}\n\nfunction getProviders() {\n let providers = require('./providers.json');\n\n return providers;\n}\n\nfunction handleKeyPress(e) {\n console.log(e);\n var sindex = 0;\n var cycle = false;\n var key = e.keyCode || e.which;\n var text = e.value.replaceAll(\"+\", \"%2B\");\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n\n if (key == 13) {\n // Search functions\n search(text);\n }\n\n if (key == 9) {\n // Tab Completion Functions\n e.preventDefault();\n e.stopPropagation();\n\n if (text[0] === ';') {\n switch (option) {\n case 't':\n var streamers = ['admiralbahroo', 'moonmoon_ow', 'witwix'];\n\n if (!subtext || cycle) {\n cycle = true;\n if (sindex > streamers.length - 1) sindex = 0;\n document.getElementById(\"keywords\").value = ';t ' + streamers[sindex++];\n return;\n }\n\n for (var streamer of streamers) {\n if (subtext === streamer.substr(0, subtext.length)) {\n document.getElementById(\"keywords\").value = ';t ' + streamer;\n return;\n }\n }\n\n break;\n }\n }\n }\n\n if (key == 32) {\n //Space to go to search\n updateLabel(text);\n }\n\n sindex = 0;\n cycle = false;\n updateLabel(text);\n}\n\nfunction updateLabel(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n\n if (text[0] === '/') {\n // if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n document.getElementById(\"searchType\").innerHTML = \"Allmusic search\";\n break;\n\n case \"d\":\n document.getElementById(\"searchType\").innerHTML = \"Duck Duck Go search\";\n break;\n\n case \"di\":\n document.getElementById(\"searchType\").innerHTML = \"Discogs search\";\n break;\n\n case \"i\":\n document.getElementById(\"searchType\").innerHTML = \"IMDB search\";\n break;\n\n case \"m\":\n document.getElementById(\"searchType\").innerHTML = \"TheMovieDB search\";\n break;\n\n case \"r\":\n document.getElementById(\"searchType\").innerHTML = \"Reddit search\";\n break;\n\n case \"q\":\n document.getElementById(\"searchType\").innerHTML = \"Qwant search\";\n break;\n\n case \"so\":\n document.getElementById(\"searchType\").innerHTML = \"Soundcloud search\";\n break;\n\n case \"s\":\n document.getElementById(\"searchType\").innerHTML = \"Spotify search\";\n break;\n\n case \"tv\":\n document.getElementById(\"searchType\").innerHTML = \"TheTVDB search\";\n break;\n\n case \"t\":\n document.getElementById(\"searchType\").innerHTML = \"Trakt search\";\n break;\n\n case \"y\":\n document.getElementById(\"searchType\").innerHTML = \"YouTube search\";\n break;\n\n case \"w\":\n document.getElementById(\"searchType\").innerHTML = \"Wikipedia search\";\n break;\n\n case \"p\":\n document.getElementById(\"searchType\").innerHTML = \"Plex search\";\n break;\n\n case \"rt\":\n document.getElementById(\"searchType\").innerHTML = \"Rotten Tomatoes search\";\n break;\n\n default:\n document.getElementById(\"searchType\").innerHTML = \"Invalid search\";\n break;\n }\n } else {\n document.getElementById(\"searchType\").innerHTML = \"Google search\";\n }\n}\n\nfunction search(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n\n if (text[0] === '/') {\n if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n window.location = \"https://www.allmusic.com/search/all/\" + subtext;\n break;\n\n case \"d\":\n window.location = \"https://duckduckgo.com/?q=\" + subtext;\n break;\n\n case \"di\":\n window.location = \"https://www.discogs.com/search/?q=\" + subtext;\n break;\n\n case \"i\":\n window.location = \"https://www.imdb.com/find?q=\" + subtext;\n break;\n\n case \"m\":\n window.location = \"https://www.themoviedb.org/search?query=\" + subtext;\n break;\n\n case \"r\":\n window.location = \"https://www.reddit.com/search?q=\" + subtext;\n break;\n\n case \"q\":\n window.location = \"https://www.qwant.com/?q=\" + subtext;\n break;\n\n case \"so\":\n window.location = \"https://soundcloud.com/search?q=\" + subtext;\n break;\n\n case \"s\":\n window.location = \"https://open.spotify.com/search/results/\" + subtext;\n break;\n\n case \"t\":\n window.location = \"https://trakt.tv/search?query=\" + subtext;\n break;\n\n case \"tv\":\n window.location = \"https://www.thetvdb.com/search?query=\" + subtext;\n break;\n\n case \"y\":\n window.location = \"https://www.youtube.com/results?search_query=\" + subtext;\n break;\n\n case \"w\":\n window.location = \"https://en.wikipedia.org/w/index.php?search=\" + subtext;\n break;\n\n case \"p\":\n window.location = \"https://app.plex.tv/desktop/#!/search?query=\" + subtext;\n break;\n\n case \"rt\":\n window.location = \"https://www.rottentomatoes.com/search?search=\" + subtext;\n break;\n }\n } else {\n var option = text.substr(1);\n\n switch (option) {\n case \"d\":\n window.location = \"https://www.duckduckgo.com\";\n break;\n\n case \"y\":\n window.location = \"https://www.youtube.com\";\n break;\n\n case \"r\":\n window.location = \"https://reddit.com\";\n break;\n\n case \"s\":\n window.location = \"https://open.spotify.com\";\n break;\n }\n }\n } else if (validURL(text)) {\n if (containsProtocol(text)) window.location = text;else window.location = \"https://\" + text;\n } else {\n window.location = \"https://www.google.com/search?q=\" + text;\n }\n} // Source: https://stackoverflow.com/questions/5717093/check-if-a-javascript-string-is-a-url\n\n\nfunction validURL(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/)?' + // protocol\n '((([a-z\\\\d]([a-z\\\\d-]*[a-z\\\\d])*)\\\\.)+[a-z]{2,}|' + // domain name\n '((\\\\d{1,3}\\\\.){3}\\\\d{1,3}))' + // OR ip (v4) address\n '(\\\\:\\\\d+)?(\\\\/[-a-z\\\\d%_.~+]*)*' + // port and path\n '(\\\\?[;&a-z\\\\d%_.~+=-]*)?' + // query string\n '(\\\\#[-a-z\\\\d_]*)?$', 'i'); // fragment locator\n\n return !!pattern.test(str);\n}\n\nfunction containsProtocol(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/){1}.*', 'i');\n return !!pattern.test(str);\n}\n\nString.prototype.replaceAll = function (search, replacement) {\n var target = this;\n return target.split(search).join(replacement);\n};\n\nvar _c, _c2, _c3, _c4, _c5, _c6, _c7, _c8, _c9, _c10, _c11, _c12;\n\n$RefreshReg$(_c, \"Homepage\");\n$RefreshReg$(_c2, \"Search\");\n$RefreshReg$(_c3, \"Header\");\n$RefreshReg$(_c4, \"Applications\");\n$RefreshReg$(_c5, \"App\");\n$RefreshReg$(_c6, \"Bookmarks\");\n$RefreshReg$(_c7, \"LinkGroups\");\n$RefreshReg$(_c8, \"LinkItem\");\n$RefreshReg$(_c9, \"ModalMenu\");\n$RefreshReg$(_c10, \"Provider\");\n$RefreshReg$(_c11, \"ModalInit\");\n$RefreshReg$(_c12, \"Clock\");","map":{"version":3,"sources":["/home/seanedmunds/dev/home-page/src/index.js"],"names":["React","useState","useEffect","ReactDOM","Homepage","date","greet","Search","handleKeyPress","Header","props","Applications","appList","getApps","items","i","apps","length","push","name","url","icon","NSFW","App","classNameType","hrefUrl","iconName","Bookmarks","bookmarkList","getLinks","bookmarks","category","links","LinkGroups","LinkItem","link","ModalMenu","providers","getProviders","Provider","provider","prefix","ModalInit","render","document","getElementById","currentDate","Date","dateOptions","weekday","year","month","day","toLocaleDateString","fixDigits","k","currentTime","Math","floor","getHours","easterEggChance","random","greetings","require","timeBased","easterEggs","messages","easteregg","concat","message","easterEggText","Clock","setDate","refreshClock","timerId","setInterval","cleanup","clearInterval","hour","minutes","getMinutes","midday","time","applications","e","console","log","sindex","cycle","key","keyCode","which","text","value","replaceAll","option","substr","indexOf","subtext","search","preventDefault","stopPropagation","streamers","streamer","updateLabel","innerHTML","window","location","validURL","containsProtocol","str","pattern","RegExp","test","String","prototype","replacement","target","split","join"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { useState, useEffect } from 'react';\nimport ReactDOM from 'react-dom';\n//import { unstable_createPortal } from 'react-dom';\nimport './index.css';\n\nfunction Homepage() {\n return (\n \n \n \n
\n \n \n
\n \n \n \n
\n \n \n
\n \n \n
\n \n );\n}\n\nfunction Search() {\n return (\n \n )\n}\n\nfunction Header(props) {\n return (\n \n );\n}\n\nfunction Applications() {\n let appList = getApps();\n var items = [];\n for (var i = 0; i < appList.apps.length; i++) {\n items.push(\n \n );\n }\n return (\n \n Applications
\n \n {items}\n
\n \n );\n}\n\nfunction App(props) {\n let classNameType = props.NSFW + \"-content\";\n let hrefUrl = \"https://\" + props.url;\n let iconName = \"mdi-\" + props.icon;\n return (\n \n );\n}\n\nfunction Bookmarks() {\n let bookmarkList = getLinks();\n var items = [];\n for (var i = 0; i < bookmarkList.bookmarks.length; i++) {\n items.push(\n \n );\n }\n return (\n \n Bookmarks
\n \n {items}\n
\n \n );\n}\n\nfunction LinkGroups(props) {\n var items = [];\n for (var i = 0; i < props.links.length; i++) {\n items.push(\n \n );\n }\n return (\n \n
{props.category}
\n {items}\n \n );\n}\n\nfunction LinkItem(props) {\n return (\n \n );\n}\n\nfunction ModalMenu() {\n var providers = getProviders();\n var items = [];\n for (var i = 0; i < providers.providers.length; i++) {\n items.push(\n \n );\n }\n return (\n \n \n \n\n
Color themes
\n\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n\n\n
Search options
\n
\n \n \n \n | Website | \n Prefix | \n
\n {items}\n \n
\n \n\n \n
\n \n );\n}\n\nfunction Provider(props) {\n return (\n \n | {props.provider.name} | \n {props.provider.prefix} | \n
\n );\n}\n\nfunction ModalInit() {\n return (\n \n );\n}\n\nReactDOM.render(\n ,\n document.getElementById('root')\n);\n\n//Functions below this line are for calculating data for\n//other functions\n\nfunction date() {\n let currentDate = new Date();\n let dateOptions = {\n weekday: \"long\",\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\"\n };\n let date = currentDate.toLocaleDateString(\"en-GB\", dateOptions);\n return date;\n}\nfunction fixDigits(k) {\n if (k < 10) {\n return \"0\" + k;\n }\n else {\n return k;\n }\n}\nfunction greet() {\n let currentTime = new Date();\n let greet = Math.floor(currentTime.getHours() / 6);\n let easterEggChance = Math.floor(Math.random() * 100);\n let greetings = require('./messages.json');\n let timeBased = [];\n let easterEggs = [];\n for (var i = 0; i < greetings.messages.length; i++) {\n if (greetings.messages[i].easteregg === \"FALSE\") {\n timeBased = timeBased.concat(greetings.messages[i]);\n } else {\n easterEggs = easterEggs.concat(greetings.messages[i]);\n }\n }\n if (easterEggChance > 10) {\n return timeBased[greet].message;\n } else {\n let easterEggText = Math.floor(Math.random() * easterEggs.length);\n return easterEggs[easterEggText].message;\n }\n}\nfunction Clock() {\n const [date, setDate] = useState(new Date());\n\n function refreshClock() {\n setDate(new Date());\n }\n useEffect(() => {\n const timerId = setInterval(refreshClock, 1000);\n return function cleanup() {\n clearInterval(timerId);\n };\n }, []);\n\n var hour = date.getHours();\n var minutes = date.getMinutes();\n //var seconds = date.getSeconds();\n var midday = \"AM\";\n midday = (hour >= 12) ? \"PM\" : \"AM\";\n hour = (hour === 0) ? 12 : ((hour > 12) ? (hour - 12) : hour);\n minutes = fixDigits(minutes);\n //seconds = fixDigits(seconds);\n let time = hour + \":\" + minutes + \" \" + midday;\n\n return (\n {time}
\n\n );\n}\nfunction getApps() {\n let applications = require('./apps.json');\n return applications;\n}\nfunction getLinks() {\n let links = require('./links.json');\n return links;\n}\nfunction getProviders() {\n let providers = require('./providers.json');\n return providers;\n}\n\nfunction handleKeyPress(e) {\n console.log(e);\n var sindex = 0;\n var cycle = false;\n var key = e.keyCode || e.which;\n var text = e.value.replaceAll(\"+\", \"%2B\");\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n if (key == 13) { // Search functions\n search(text);\n }\n if (key == 9) { // Tab Completion Functions\n e.preventDefault();\n e.stopPropagation();\n if (text[0] === ';') {\n switch (option) {\n case 't':\n var streamers = ['admiralbahroo', 'moonmoon_ow', 'witwix'];\n if (!subtext || cycle) {\n cycle = true;\n if (sindex > streamers.length - 1) sindex = 0;\n document.getElementById(\"keywords\").value = ';t ' + streamers[sindex++];\n return;\n }\n for (var streamer of streamers) {\n if (subtext === streamer.substr(0, subtext.length)) {\n document.getElementById(\"keywords\").value = ';t ' + streamer;\n return;\n }\n }\n break;\n }\n }\n }\n if(key == 32){ //Space to go to search\nupdateLabel(text);\n }\n sindex = 0;\n cycle = false;\n updateLabel(text);\n}\n\nfunction updateLabel(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n if (text[0] === '/') {\n// if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n document.getElementById(\"searchType\").innerHTML = \"Allmusic search\";\n break;\n case \"d\":\n document.getElementById(\"searchType\").innerHTML = \"Duck Duck Go search\";\n break;\n case \"di\":\n document.getElementById(\"searchType\").innerHTML = \"Discogs search\";\n break;\n case \"i\":\n document.getElementById(\"searchType\").innerHTML = \"IMDB search\";\n break;\n case \"m\":\n document.getElementById(\"searchType\").innerHTML = \"TheMovieDB search\";\n break;\n case \"r\":\n document.getElementById(\"searchType\").innerHTML = \"Reddit search\";\n break;\n case \"q\":\n document.getElementById(\"searchType\").innerHTML = \"Qwant search\";\n break;\n case \"so\":\n document.getElementById(\"searchType\").innerHTML = \"Soundcloud search\";\n break;\n case \"s\":\n document.getElementById(\"searchType\").innerHTML = \"Spotify search\";\n break;\n case \"tv\":\n document.getElementById(\"searchType\").innerHTML = \"TheTVDB search\";\n break;\n case \"t\":\n document.getElementById(\"searchType\").innerHTML = \"Trakt search\";\n break;\n case \"y\":\n document.getElementById(\"searchType\").innerHTML = \"YouTube search\";\n break;\n case \"w\":\n document.getElementById(\"searchType\").innerHTML = \"Wikipedia search\";\n break;\n case \"p\":\n document.getElementById(\"searchType\").innerHTML = \"Plex search\";\n break;\n case \"rt\":\n document.getElementById(\"searchType\").innerHTML = \"Rotten Tomatoes search\";\n break;\n default:\n document.getElementById(\"searchType\").innerHTML = \"Invalid search\";\n break;\n }\n}else {\n document.getElementById(\"searchType\").innerHTML = \"Google search\";\n }\n}\n\nfunction search(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n if (text[0] === '/') {\n if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n window.location = \"https://www.allmusic.com/search/all/\" + subtext;\n break;\n case \"d\":\n window.location = \"https://duckduckgo.com/?q=\" + subtext;\n break;\n case \"di\":\n window.location = \"https://www.discogs.com/search/?q=\" + subtext;\n break;\n case \"i\":\n window.location = \"https://www.imdb.com/find?q=\" + subtext;\n break;\n case \"m\":\n window.location = \"https://www.themoviedb.org/search?query=\" + subtext;\n break;\n case \"r\":\n window.location = \"https://www.reddit.com/search?q=\" + subtext;\n break;\n case \"q\":\n window.location = \"https://www.qwant.com/?q=\" + subtext;\n break;\n case \"so\":\n window.location = \"https://soundcloud.com/search?q=\" + subtext;\n break;\n case \"s\":\n window.location = \"https://open.spotify.com/search/results/\" + subtext;\n break;\n case \"t\":\n window.location = \"https://trakt.tv/search?query=\" + subtext;\n break;\n case \"tv\":\n window.location = \"https://www.thetvdb.com/search?query=\" + subtext;\n break;\n case \"y\":\n window.location = \"https://www.youtube.com/results?search_query=\" + subtext;\n break;\n case \"w\":\n window.location = \"https://en.wikipedia.org/w/index.php?search=\" + subtext;\n break;\n case \"p\":\n window.location = \"https://app.plex.tv/desktop/#!/search?query=\" + subtext;\n break;\n case \"rt\":\n window.location = \"https://www.rottentomatoes.com/search?search=\" + subtext;\n break;\n }\n } else {\n var option = text.substr(1);\n switch (option) {\n case \"d\":\n window.location = \"https://www.duckduckgo.com\";\n break;\n case \"y\":\n window.location = \"https://www.youtube.com\";\n break;\n case \"r\":\n window.location = \"https://reddit.com\";\n break;\n case \"s\":\n window.location = \"https://open.spotify.com\";\n break;\n }\n }\n } else if (validURL(text)) {\n if (containsProtocol(text))\n window.location = text;\n else\n window.location = \"https://\" + text;\n } else {\n window.location = \"https://www.google.com/search?q=\" + text;\n }\n}\n\n// Source: https://stackoverflow.com/questions/5717093/check-if-a-javascript-string-is-a-url\nfunction validURL(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/)?' + // protocol\n '((([a-z\\\\d]([a-z\\\\d-]*[a-z\\\\d])*)\\\\.)+[a-z]{2,}|' + // domain name\n '((\\\\d{1,3}\\\\.){3}\\\\d{1,3}))' + // OR ip (v4) address\n '(\\\\:\\\\d+)?(\\\\/[-a-z\\\\d%_.~+]*)*' + // port and path\n '(\\\\?[;&a-z\\\\d%_.~+=-]*)?' + // query string\n '(\\\\#[-a-z\\\\d_]*)?$', 'i'); // fragment locator\n return !!pattern.test(str);\n}\n\nfunction containsProtocol(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/){1}.*', 'i');\n return !!pattern.test(str);\n}\n\nString.prototype.replaceAll = function(search, replacement) {\n var target = this;\n return target.split(search).join(replacement);\n};"]},"metadata":{},"sourceType":"module"}
\ No newline at end of file
diff --git a/node_modules/.cache/babel-loader/62b9adba6f1c63d8c15b203eb5948b39.json b/node_modules/.cache/babel-loader/62b9adba6f1c63d8c15b203eb5948b39.json
new file mode 100644
index 00000000..81a5efee
--- /dev/null
+++ b/node_modules/.cache/babel-loader/62b9adba6f1c63d8c15b203eb5948b39.json
@@ -0,0 +1 @@
+{"ast":null,"code":"var _jsxFileName = \"/home/seanedmunds/dev/home-page/src/index.js\",\n _s = $RefreshSig$();\n\nimport React from 'react';\nimport { useState, useEffect } from 'react';\nimport ReactDOM from 'react-dom'; //import { unstable_createPortal } from 'react-dom';\n\nimport './index.css';\nimport { jsxDEV as _jsxDEV } from \"react/jsx-dev-runtime\";\n\nconst setValueFromLocalStorage = property => {\n let value = localStorage.getItem(property);\n setValue(property, value);\n};\n\nconst setValue = (property, value) => {\n if (value) {\n document.documentElement.style.setProperty(`--${property}`, value);\n const input = document.querySelector(`#${property}`);\n\n if (input) {\n value = value.replace('px', '');\n input.value = value;\n }\n }\n};\n\nconst setBoxCheckedFromLocalStorage = property => {\n let value = localStorage.getItem(property);\n};\n\nfunction Homepage() {\n setTheme();\n return /*#__PURE__*/_jsxDEV(\"main\", {\n id: \"container\",\n className: \"fade\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Search, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 34,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 33,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Header, {\n date: date(),\n greet: greet()\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 37,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 36,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Applications, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 43,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 42,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Bookmarks, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 46,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 45,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(ModalMenu, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 49,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 48,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(ModalInit, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 52,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 51,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 32,\n columnNumber: 5\n }, this);\n}\n\n_c = Homepage;\n\nfunction Search() {\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"search\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"abackground\",\n children: [/*#__PURE__*/_jsxDEV(\"input\", {\n name: \"keywords\",\n type: \"text\",\n className: \"keyword\",\n id: \"keywords\",\n size: \"50\",\n spellCheck: \"true\",\n placeholder: \"\"\n /*onFocus={this.placeholder = \"\"} onBlur={this.placeholder = ''}*/\n ,\n autoComplete: \"off\",\n autoFocus: true,\n onKeyUp: handleKeyPress\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 62,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n id: \"searchType\",\n className: \"Input-label\",\n children: \"Google search\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 63,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 61,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 60,\n columnNumber: 5\n }, this);\n}\n\n_c2 = Search;\n\nfunction Header(props) {\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"header\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n id: \"greeting_block\",\n children: /*#__PURE__*/_jsxDEV(\"h1\", {\n id: \"header_greet\",\n children: props.greet\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 73,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 72,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"date_block\",\n children: [/*#__PURE__*/_jsxDEV(\"h2\", {\n id: \"header_date\",\n children: props.date\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 76,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(Clock, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 77,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 75,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 71,\n columnNumber: 5\n }, this);\n}\n\n_c3 = Header;\n\nfunction Applications() {\n let appList = getApps();\n var items = [];\n\n for (var i = 0; i < appList.apps.length; i++) {\n var safe = appList.apps[i].NSFW;\n var NSFWEnabled = localStorage.getItem(\"contenttype\");\n\n if (safe === \"SAFE\") {\n items.push( /*#__PURE__*/_jsxDEV(App, {\n name: appList.apps[i].name,\n url: appList.apps[i].url,\n icon: appList.apps[i].icon,\n NSFW: appList.apps[i].NSFW\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 91,\n columnNumber: 9\n }, this));\n } else if (safe === \"NSFW\" && NSFWEnabled) {\n items.push( /*#__PURE__*/_jsxDEV(App, {\n name: appList.apps[i].name,\n url: appList.apps[i].url,\n icon: appList.apps[i].icon,\n NSFW: appList.apps[i].NSFW\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 101,\n columnNumber: 9\n }, this));\n } else {}\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"apps\",\n children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n children: \"Applications\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 116,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"apps_loop\",\n children: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 117,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 115,\n columnNumber: 5\n }, this);\n}\n\n_c4 = Applications;\n\nfunction App(props) {\n let classNameType = props.NSFW + \"-content\";\n let hrefUrl = \"https://\" + props.url;\n let iconName = \"mdi-\" + props.icon;\n return /*#__PURE__*/_jsxDEV(\"div\", {\n className: classNameType,\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: hrefUrl,\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_item\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_icon\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify icon\",\n \"data-icon\": iconName\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 134,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 133,\n columnNumber: 13\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_text\",\n children: [/*#__PURE__*/_jsxDEV(\"span\", {\n id: \"app-name\",\n children: props.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 137,\n columnNumber: 15\n }, this), /*#__PURE__*/_jsxDEV(\"span\", {\n id: \"app-address\",\n children: props.url\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 138,\n columnNumber: 15\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 136,\n columnNumber: 13\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 132,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 131,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 130,\n columnNumber: 7\n }, this);\n}\n\n_c5 = App;\n\nfunction Bookmarks() {\n let bookmarkList = getLinks();\n var items = [];\n\n for (var i = 0; i < bookmarkList.bookmarks.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(LinkGroups, {\n category: bookmarkList.bookmarks[i].category,\n links: bookmarkList.bookmarks[i].links\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 151,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"links\",\n children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n children: \"Bookmarks\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 160,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"links_loop\",\n children: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 161,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 159,\n columnNumber: 5\n }, this);\n}\n\n_c6 = Bookmarks;\n\nfunction LinkGroups(props) {\n var items = [];\n\n for (var i = 0; i < props.links.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(LinkItem, {\n link: props.links[i]\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 172,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"links_item\",\n children: [/*#__PURE__*/_jsxDEV(\"h4\", {\n children: props.category\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 180,\n columnNumber: 7\n }, this), items]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 179,\n columnNumber: 5\n }, this);\n}\n\n_c7 = LinkGroups;\n\nfunction LinkItem(props) {\n return /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: props.link.url,\n className: \"theme_color-border theme_text-select\",\n children: props.link.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 189,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 188,\n columnNumber: 5\n }, this);\n}\n\n_c8 = LinkItem;\n\nfunction ModalMenu(props) {\n var providers = getProviders();\n var items = [];\n console.log(props);\n\n for (var i = 0; i < providers.providers.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(Provider, {\n provider: providers.providers[i]\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 200,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"modal\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n children: [/*#__PURE__*/_jsxDEV(\"header\", {\n id: \"modal-header\",\n children: [/*#__PURE__*/_jsxDEV(\"h1\", {\n children: \"Options\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 210,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n href: \"#\",\n title: \"Close\",\n className: \"modal-close\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-close\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 212,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 211,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 209,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"h2\", {\n children: \"Color themes\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 216,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"modal-theme\",\n children: [/*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"blackboard\",\n className: \"theme-button theme-blackboard\",\n onClick: updateTheme,\n children: \"Blackboard\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 219,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"gazette\",\n className: \"theme-button theme-gazette\",\n onClick: updateTheme,\n children: \"Gazette\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 220,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"espresso\",\n className: \"theme-button theme-espresso\",\n onClick: updateTheme,\n children: \"Espresso\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 221,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cab\",\n className: \"theme-button theme-cab\",\n onClick: updateTheme,\n children: \"Cab\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 222,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cloud\",\n className: \"theme-button theme-cloud\",\n onClick: updateTheme,\n children: \"Cloud\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 223,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"lime\",\n className: \"theme-button theme-lime\",\n onClick: updateTheme,\n children: \"Lime\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 224,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"passion\",\n className: \"theme-button theme-passion\",\n onClick: updateTheme,\n children: \"Passion\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 225,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"blues\",\n className: \"theme-button theme-blues\",\n onClick: updateTheme,\n children: \"Blues\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 226,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"chalk\",\n className: \"theme-button theme-chalk\",\n onClick: updateTheme,\n children: \"Chalk\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 227,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"tron\",\n className: \"theme-button theme-tron\",\n onClick: updateTheme,\n children: \"Tron\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 228,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"paper\",\n className: \"theme-button theme-paper\",\n onClick: updateTheme,\n children: \"Paper\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 229,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cyberpunk\",\n className: \"theme-button theme-cyberpunk\",\n onClick: updateTheme,\n children: \"Cyberpunk\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 230,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"quadra\",\n className: \"theme-button theme-panam\",\n onClick: updateTheme,\n children: \"Quadra\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 231,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"panam\",\n className: \"theme-button theme-panam\",\n onClick: updateTheme,\n children: \"Panam\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 232,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"touch\",\n className: \"theme-button theme-touch\",\n onClick: updateTheme,\n children: \"Touch\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 233,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"peek\",\n className: \"theme-button theme-peek\",\n onClick: updateTheme,\n children: \"Peek\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 234,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 218,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"h2\", {\n children: \"Search options\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 238,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"providers\",\n children: /*#__PURE__*/_jsxDEV(\"table\", {\n children: /*#__PURE__*/_jsxDEV(\"tbody\", {\n children: [/*#__PURE__*/_jsxDEV(\"tr\", {\n children: [/*#__PURE__*/_jsxDEV(\"th\", {\n children: \"Website\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 243,\n columnNumber: 19\n }, this), /*#__PURE__*/_jsxDEV(\"th\", {\n children: \"Prefix\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 244,\n columnNumber: 19\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 242,\n columnNumber: 17\n }, this), items]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 241,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 240,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 239,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"header\", {\n id: \"modal-footer\",\n children: [/*#__PURE__*/_jsxDEV(\"a\", {\n href: \"https://github.com/jeroenpardon/\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-github-box\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 252,\n columnNumber: 54\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 252,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n href: \"https://materialdesignicons.com/\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-material-design\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 253,\n columnNumber: 54\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 253,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"sneaky\",\n children: [/*#__PURE__*/_jsxDEV(\"input\", {\n type: \"checkbox\",\n id: \"contenttype\",\n checked: setBoxCheckedFromLocalStorage,\n onChange: udpateDisplayedItems\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 254,\n columnNumber: 35\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n for: \"contenttype\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-domino-mask\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 255,\n columnNumber: 36\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 255,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 254,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 251,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 208,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 207,\n columnNumber: 5\n }, this);\n}\n\n_c9 = ModalMenu;\n\nfunction Provider(props) {\n return /*#__PURE__*/_jsxDEV(\"tr\", {\n children: [/*#__PURE__*/_jsxDEV(\"td\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: props.provider.url,\n children: props.provider.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 265,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 265,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"td\", {\n children: props.provider.prefix\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 266,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 264,\n columnNumber: 5\n }, this);\n}\n\n_c10 = Provider;\n\nfunction ModalInit() {\n setDisplayedItems();\n return /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"modal_init\",\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n className: \"btn\",\n href: \"#modal\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify icon\",\n \"data-icon\": \"mdi-xbox-controller-menu\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 276,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 275,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 274,\n columnNumber: 5\n }, this);\n}\n\n_c11 = ModalInit;\nReactDOM.render( /*#__PURE__*/_jsxDEV(Homepage, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 283,\n columnNumber: 3\n}, this), document.getElementById('root')); //Functions below this line are for calculating data for\n//other functions\n\nfunction date() {\n let currentDate = new Date();\n let dateOptions = {\n weekday: \"long\",\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\"\n };\n let date = currentDate.toLocaleDateString(\"en-GB\", dateOptions);\n return date;\n}\n\nfunction fixDigits(k) {\n if (k < 10) {\n return \"0\" + k;\n } else {\n return k;\n }\n}\n\nfunction greet() {\n let currentTime = new Date();\n let greet = Math.floor(currentTime.getHours() / 6);\n let easterEggChance = Math.floor(Math.random() * 100);\n\n let greetings = require('./messages.json');\n\n let timeBased = [];\n let easterEggs = [];\n\n for (var i = 0; i < greetings.messages.length; i++) {\n if (greetings.messages[i].easteregg === \"FALSE\") {\n timeBased = timeBased.concat(greetings.messages[i]);\n } else {\n easterEggs = easterEggs.concat(greetings.messages[i]);\n }\n }\n\n if (easterEggChance > 10) {\n return timeBased[greet].message;\n } else {\n let easterEggText = Math.floor(Math.random() * easterEggs.length);\n return easterEggs[easterEggText].message;\n }\n}\n\nfunction Clock() {\n _s();\n\n const [date, setDate] = useState(new Date());\n\n function refreshClock() {\n setDate(new Date());\n }\n\n useEffect(() => {\n const timerId = setInterval(refreshClock, 1000);\n return function cleanup() {\n clearInterval(timerId);\n };\n }, []);\n var hour = date.getHours();\n var minutes = date.getMinutes(); //var seconds = date.getSeconds();\n\n var midday = \"AM\";\n midday = hour >= 12 ? \"PM\" : \"AM\";\n hour = hour === 0 ? 12 : hour > 12 ? hour - 12 : hour;\n minutes = fixDigits(minutes); //seconds = fixDigits(seconds);\n\n let time = hour + \":\" + minutes + \" \" + midday;\n return /*#__PURE__*/_jsxDEV(\"h2\", {\n id: \"clock\",\n children: time\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 354,\n columnNumber: 5\n }, this);\n}\n\n_s(Clock, \"Gqi45WOZhU2c0BLYX0HoJeiR0fk=\");\n\n_c12 = Clock;\n\nfunction getApps() {\n let applications = require('./apps.json');\n\n return applications;\n}\n\nfunction getLinks() {\n let links = require('./links.json');\n\n return links;\n}\n\nfunction getProviders() {\n let providers = require('./providers.json');\n\n return providers;\n}\n\nfunction getThemes() {\n let themes = require('./themes.json');\n\n return themes;\n}\n\nfunction updateTheme(e) {\n var themes = getThemes();\n var themeName = e.target.innerHTML.toLowerCase();\n var index = themes.themes.findIndex(function (item, i) {\n return item.name === themeName;\n });\n localStorage.setItem(\"image-background\", themes.themes[index].imagebackground);\n localStorage.setItem(\"color-background\", themes.themes[index].colorbackground);\n localStorage.setItem(\"color-search-background\", themes.themes[index].colorserachbackground);\n localStorage.setItem(\"color-text-pri\", themes.themes[index].colortextpri);\n localStorage.setItem(\"color-text-acc\", themes.themes[index].colortextacc);\n localStorage.setItem(\"color-border\", themes.themes[index].colorborder); //document.documentElement.style.setProperty(prop, `var(--${themeName}${prop.substring(10)})`);\n\n setTheme();\n}\n\nfunction setTheme() {\n setValueFromLocalStorage('image-background');\n setValueFromLocalStorage('color-background');\n setValueFromLocalStorage('color-search-background');\n setValueFromLocalStorage('color-text-pri');\n setValueFromLocalStorage('color-text-acc');\n setValueFromLocalStorage('color-border');\n setValueFromLocalStorage('content-display');\n}\n\nfunction handleKeyPress(e) {\n var sindex = 0;\n var cycle = false;\n var key = e.keyCode || e.which;\n var text = e.target.value.replaceAll(\"+\", \"%2B\");\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n\n if (key == 13) {\n // Search functions\n search(text);\n }\n\n if (key == 9) {\n // Tab Completion Functions\n e.preventDefault();\n e.stopPropagation();\n\n if (text[0] === ';') {\n switch (option) {\n case 't':\n var streamers = ['admiralbahroo', 'moonmoon_ow', 'witwix'];\n\n if (!subtext || cycle) {\n cycle = true;\n if (sindex > streamers.length - 1) sindex = 0;\n document.getElementById(\"keywords\").value = ';t ' + streamers[sindex++];\n return;\n }\n\n for (var streamer of streamers) {\n if (subtext === streamer.substr(0, subtext.length)) {\n document.getElementById(\"keywords\").value = ';t ' + streamer;\n return;\n }\n }\n\n break;\n }\n }\n }\n\n if (key == 32) {\n //Space to go to search\n updateLabel(text);\n }\n\n sindex = 0;\n cycle = false;\n updateLabel(text);\n}\n\nfunction updateLabel(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n\n if (text[0] === '/') {\n // if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n document.getElementById(\"searchType\").innerHTML = \"Allmusic search\";\n break;\n\n case \"d\":\n document.getElementById(\"searchType\").innerHTML = \"Duck Duck Go search\";\n break;\n\n case \"di\":\n document.getElementById(\"searchType\").innerHTML = \"Discogs search\";\n break;\n\n case \"i\":\n document.getElementById(\"searchType\").innerHTML = \"IMDB search\";\n break;\n\n case \"m\":\n document.getElementById(\"searchType\").innerHTML = \"TheMovieDB search\";\n break;\n\n case \"r\":\n document.getElementById(\"searchType\").innerHTML = \"Reddit search\";\n break;\n\n case \"q\":\n document.getElementById(\"searchType\").innerHTML = \"Qwant search\";\n break;\n\n case \"so\":\n document.getElementById(\"searchType\").innerHTML = \"Soundcloud search\";\n break;\n\n case \"s\":\n document.getElementById(\"searchType\").innerHTML = \"Spotify search\";\n break;\n\n case \"tv\":\n document.getElementById(\"searchType\").innerHTML = \"TheTVDB search\";\n break;\n\n case \"t\":\n document.getElementById(\"searchType\").innerHTML = \"Trakt search\";\n break;\n\n case \"y\":\n document.getElementById(\"searchType\").innerHTML = \"YouTube search\";\n break;\n\n case \"w\":\n document.getElementById(\"searchType\").innerHTML = \"Wikipedia search\";\n break;\n\n case \"p\":\n document.getElementById(\"searchType\").innerHTML = \"Plex search\";\n break;\n\n case \"rt\":\n document.getElementById(\"searchType\").innerHTML = \"Rotten Tomatoes search\";\n break;\n\n default:\n document.getElementById(\"searchType\").innerHTML = \"Invalid search\";\n break;\n }\n } else {\n document.getElementById(\"searchType\").innerHTML = \"Google search\";\n }\n}\n\nfunction search(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n\n if (text[0] === '/') {\n if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n window.location = \"https://www.allmusic.com/search/all/\" + subtext;\n break;\n\n case \"d\":\n window.location = \"https://duckduckgo.com/?q=\" + subtext;\n break;\n\n case \"di\":\n window.location = \"https://www.discogs.com/search/?q=\" + subtext;\n break;\n\n case \"i\":\n window.location = \"https://www.imdb.com/find?q=\" + subtext;\n break;\n\n case \"m\":\n window.location = \"https://www.themoviedb.org/search?query=\" + subtext;\n break;\n\n case \"r\":\n window.location = \"https://www.reddit.com/search?q=\" + subtext;\n break;\n\n case \"q\":\n window.location = \"https://www.qwant.com/?q=\" + subtext;\n break;\n\n case \"so\":\n window.location = \"https://soundcloud.com/search?q=\" + subtext;\n break;\n\n case \"s\":\n window.location = \"https://open.spotify.com/search/results/\" + subtext;\n break;\n\n case \"t\":\n window.location = \"https://trakt.tv/search?query=\" + subtext;\n break;\n\n case \"tv\":\n window.location = \"https://www.thetvdb.com/search?query=\" + subtext;\n break;\n\n case \"y\":\n window.location = \"https://www.youtube.com/results?search_query=\" + subtext;\n break;\n\n case \"w\":\n window.location = \"https://en.wikipedia.org/w/index.php?search=\" + subtext;\n break;\n\n case \"p\":\n window.location = \"https://app.plex.tv/desktop/#!/search?query=\" + subtext;\n break;\n\n case \"rt\":\n window.location = \"https://www.rottentomatoes.com/search?search=\" + subtext;\n break;\n }\n } else {\n var option = text.substr(1);\n\n switch (option) {\n case \"d\":\n window.location = \"https://www.duckduckgo.com\";\n break;\n\n case \"y\":\n window.location = \"https://www.youtube.com\";\n break;\n\n case \"r\":\n window.location = \"https://reddit.com\";\n break;\n\n case \"s\":\n window.location = \"https://open.spotify.com\";\n break;\n }\n }\n } else if (validURL(text)) {\n if (containsProtocol(text)) window.location = text;else window.location = \"https://\" + text;\n } else {\n window.location = \"https://www.google.com/search?q=\" + text;\n }\n}\n\nfunction validURL(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/)?' + // protocol\n '((([a-z\\\\d]([a-z\\\\d-]*[a-z\\\\d])*)\\\\.)+[a-z]{2,}|' + // domain name\n '((\\\\d{1,3}\\\\.){3}\\\\d{1,3}))' + // OR ip (v4) address\n '(\\\\:\\\\d+)?(\\\\/[-a-z\\\\d%_.~+]*)*' + // port and path\n '(\\\\?[;&a-z\\\\d%_.~+=-]*)?' + // query string\n '(\\\\#[-a-z\\\\d_]*)?$', 'i'); // fragment locator\n\n return !!pattern.test(str);\n}\n\nfunction containsProtocol(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/){1}.*', 'i');\n return !!pattern.test(str);\n}\n\nString.prototype.replaceAll = function (search, replacement) {\n var target = this;\n return target.split(search).join(replacement);\n};\n\nfunction udpateDisplayedItems(e) {\n console.log(e);\n localStorage.setItem('contenttype', e.target.checked);\n\n if (e.target.checked) {\n localStorage.setItem('content-display', 'none');\n } else {\n localStorage.setItem('content-display', 'block');\n }\n\n setDisplayedItems();\n}\n\nfunction setDisplayedItems() {\n setValueFromLocalStorage('contenttype');\n setValueFromLocalStorage('content-display');\n}\n\nvar _c, _c2, _c3, _c4, _c5, _c6, _c7, _c8, _c9, _c10, _c11, _c12;\n\n$RefreshReg$(_c, \"Homepage\");\n$RefreshReg$(_c2, \"Search\");\n$RefreshReg$(_c3, \"Header\");\n$RefreshReg$(_c4, \"Applications\");\n$RefreshReg$(_c5, \"App\");\n$RefreshReg$(_c6, \"Bookmarks\");\n$RefreshReg$(_c7, \"LinkGroups\");\n$RefreshReg$(_c8, \"LinkItem\");\n$RefreshReg$(_c9, \"ModalMenu\");\n$RefreshReg$(_c10, \"Provider\");\n$RefreshReg$(_c11, \"ModalInit\");\n$RefreshReg$(_c12, \"Clock\");","map":{"version":3,"sources":["/home/seanedmunds/dev/home-page/src/index.js"],"names":["React","useState","useEffect","ReactDOM","setValueFromLocalStorage","property","value","localStorage","getItem","setValue","document","documentElement","style","setProperty","input","querySelector","replace","setBoxCheckedFromLocalStorage","Homepage","setTheme","date","greet","Search","handleKeyPress","Header","props","Applications","appList","getApps","items","i","apps","length","safe","NSFW","NSFWEnabled","push","name","url","icon","App","classNameType","hrefUrl","iconName","Bookmarks","bookmarkList","getLinks","bookmarks","category","links","LinkGroups","LinkItem","link","ModalMenu","providers","getProviders","console","log","updateTheme","udpateDisplayedItems","Provider","provider","prefix","ModalInit","setDisplayedItems","render","getElementById","currentDate","Date","dateOptions","weekday","year","month","day","toLocaleDateString","fixDigits","k","currentTime","Math","floor","getHours","easterEggChance","random","greetings","require","timeBased","easterEggs","messages","easteregg","concat","message","easterEggText","Clock","setDate","refreshClock","timerId","setInterval","cleanup","clearInterval","hour","minutes","getMinutes","midday","time","applications","getThemes","themes","e","themeName","target","innerHTML","toLowerCase","index","findIndex","item","setItem","imagebackground","colorbackground","colorserachbackground","colortextpri","colortextacc","colorborder","sindex","cycle","key","keyCode","which","text","replaceAll","option","substr","indexOf","subtext","search","preventDefault","stopPropagation","streamers","streamer","updateLabel","window","location","validURL","containsProtocol","str","pattern","RegExp","test","String","prototype","replacement","split","join","checked"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { useState, useEffect } from 'react';\nimport ReactDOM from 'react-dom';\n//import { unstable_createPortal } from 'react-dom';\nimport './index.css';\n\nconst setValueFromLocalStorage = property => {\n let value = localStorage.getItem(property);\n setValue(property, value);\n};\nconst setValue = (property, value) => {\n if (value) {\n document.documentElement.style.setProperty(`--${property}`, value);\n\n const input = document.querySelector(`#${property}`);\n if (input) {\n value = value.replace('px', '');\n input.value = value;\n }\n }\n};\n\nconst setBoxCheckedFromLocalStorage = property => {\n let value = localStorage.getItem(property);\n\n}\n\nfunction Homepage() {\n setTheme();\n \n return (\n \n \n \n
\n \n \n
\n \n \n \n
\n \n \n
\n \n \n
\n \n );\n}\n\nfunction Search() {\n return (\n \n )\n}\n\nfunction Header(props) {\n return (\n \n );\n}\n\nfunction Applications() {\n let appList = getApps();\n var items = [];\n for (var i = 0; i < appList.apps.length; i++) {\n var safe = appList.apps[i].NSFW;\n var NSFWEnabled = localStorage.getItem(\"contenttype\");\n if (safe === \"SAFE\") {\n items.push(\n \n );\n } else if (safe === \"NSFW\" && NSFWEnabled) {\n items.push(\n \n );\n } else {\n \n }\n \n }\n return (\n \n Applications
\n \n {items}\n
\n \n );\n}\n\nfunction App(props) {\n \n let classNameType = props.NSFW + \"-content\";\n let hrefUrl = \"https://\" + props.url;\n let iconName = \"mdi-\" + props.icon;\n return (\n \n );\n}\n\nfunction Bookmarks() {\n let bookmarkList = getLinks();\n var items = [];\n for (var i = 0; i < bookmarkList.bookmarks.length; i++) {\n items.push(\n \n );\n }\n return (\n \n Bookmarks
\n \n {items}\n
\n \n );\n}\n\nfunction LinkGroups(props) {\n var items = [];\n for (var i = 0; i < props.links.length; i++) {\n items.push(\n \n );\n }\n return (\n \n
{props.category}
\n {items}\n \n );\n}\n\nfunction LinkItem(props) {\n return (\n \n );\n}\n\nfunction ModalMenu(props) {\n var providers = getProviders();\n var items = [];\n console.log(props);\n for (var i = 0; i < providers.providers.length; i++) {\n items.push(\n \n );\n }\n return (\n \n \n \n\n
Color themes
\n\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n\n\n
Search options
\n
\n \n \n \n | Website | \n Prefix | \n
\n {items}\n \n
\n \n\n \n
\n \n );\n}\n\nfunction Provider(props) {\n return (\n \n | {props.provider.name} | \n {props.provider.prefix} | \n
\n );\n}\n\nfunction ModalInit() {\n setDisplayedItems();\n return (\n \n );\n}\n\nReactDOM.render(\n ,\n document.getElementById('root')\n);\n\n//Functions below this line are for calculating data for\n//other functions\n\nfunction date() {\n let currentDate = new Date();\n let dateOptions = {\n weekday: \"long\",\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\"\n };\n let date = currentDate.toLocaleDateString(\"en-GB\", dateOptions);\n return date;\n}\nfunction fixDigits(k) {\n if (k < 10) {\n return \"0\" + k;\n }\n else {\n return k;\n }\n}\nfunction greet() {\n let currentTime = new Date();\n let greet = Math.floor(currentTime.getHours() / 6);\n let easterEggChance = Math.floor(Math.random() * 100);\n let greetings = require('./messages.json');\n let timeBased = [];\n let easterEggs = [];\n for (var i = 0; i < greetings.messages.length; i++) {\n if (greetings.messages[i].easteregg === \"FALSE\") {\n timeBased = timeBased.concat(greetings.messages[i]);\n } else {\n easterEggs = easterEggs.concat(greetings.messages[i]);\n }\n }\n if (easterEggChance > 10) {\n return timeBased[greet].message;\n } else {\n let easterEggText = Math.floor(Math.random() * easterEggs.length);\n return easterEggs[easterEggText].message;\n }\n}\nfunction Clock() {\n const [date, setDate] = useState(new Date());\n\n function refreshClock() {\n setDate(new Date());\n }\n useEffect(() => {\n const timerId = setInterval(refreshClock, 1000);\n return function cleanup() {\n clearInterval(timerId);\n };\n }, []);\n\n var hour = date.getHours();\n var minutes = date.getMinutes();\n //var seconds = date.getSeconds();\n var midday = \"AM\";\n midday = (hour >= 12) ? \"PM\" : \"AM\";\n hour = (hour === 0) ? 12 : ((hour > 12) ? (hour - 12) : hour);\n minutes = fixDigits(minutes);\n //seconds = fixDigits(seconds);\n let time = hour + \":\" + minutes + \" \" + midday;\n\n return (\n {time}
\n\n );\n}\nfunction getApps() {\n let applications = require('./apps.json');\n return applications;\n}\nfunction getLinks() {\n let links = require('./links.json');\n return links;\n}\nfunction getProviders() {\n let providers = require('./providers.json');\n return providers;\n}\nfunction getThemes() {\n let themes = require('./themes.json');\n return themes;\n}\nfunction updateTheme(e) {\n var themes = getThemes();\n var themeName = e.target.innerHTML.toLowerCase();\n var index = themes.themes.findIndex(function(item, i){\n return item.name === themeName\n });\n localStorage.setItem(\"image-background\", themes.themes[index].imagebackground);\n localStorage.setItem(\"color-background\", themes.themes[index].colorbackground);\n localStorage.setItem(\"color-search-background\", themes.themes[index].colorserachbackground);\n localStorage.setItem(\"color-text-pri\",themes.themes[index].colortextpri);\n localStorage.setItem(\"color-text-acc\", themes.themes[index].colortextacc);\n localStorage.setItem(\"color-border\", themes.themes[index].colorborder);\n \n //document.documentElement.style.setProperty(prop, `var(--${themeName}${prop.substring(10)})`);\n setTheme();\n}\nfunction setTheme() {\n setValueFromLocalStorage('image-background');\n setValueFromLocalStorage('color-background');\n setValueFromLocalStorage('color-search-background');\n setValueFromLocalStorage('color-text-pri');\n setValueFromLocalStorage('color-text-acc');\n setValueFromLocalStorage('color-border');\n setValueFromLocalStorage('content-display');\n}\nfunction handleKeyPress(e) {\n var sindex = 0;\n var cycle = false;\n var key = e.keyCode || e.which;\n var text = e.target.value.replaceAll(\"+\", \"%2B\");\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n if (key == 13) { // Search functions\n search(text);\n }\n if (key == 9) { // Tab Completion Functions\n e.preventDefault();\n e.stopPropagation();\n if (text[0] === ';') {\n switch (option) {\n case 't':\n var streamers = ['admiralbahroo', 'moonmoon_ow', 'witwix'];\n if (!subtext || cycle) {\n cycle = true;\n if (sindex > streamers.length - 1) sindex = 0;\n document.getElementById(\"keywords\").value = ';t ' + streamers[sindex++];\n return;\n }\n for (var streamer of streamers) {\n if (subtext === streamer.substr(0, subtext.length)) {\n document.getElementById(\"keywords\").value = ';t ' + streamer;\n return;\n }\n }\n break;\n }\n }\n }\n if(key == 32){ //Space to go to search\nupdateLabel(text);\n }\n sindex = 0;\n cycle = false;\n updateLabel(text);\n}\nfunction updateLabel(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n if (text[0] === '/') {\n// if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n document.getElementById(\"searchType\").innerHTML = \"Allmusic search\";\n break;\n case \"d\":\n document.getElementById(\"searchType\").innerHTML = \"Duck Duck Go search\";\n break;\n case \"di\":\n document.getElementById(\"searchType\").innerHTML = \"Discogs search\";\n break;\n case \"i\":\n document.getElementById(\"searchType\").innerHTML = \"IMDB search\";\n break;\n case \"m\":\n document.getElementById(\"searchType\").innerHTML = \"TheMovieDB search\";\n break;\n case \"r\":\n document.getElementById(\"searchType\").innerHTML = \"Reddit search\";\n break;\n case \"q\":\n document.getElementById(\"searchType\").innerHTML = \"Qwant search\";\n break;\n case \"so\":\n document.getElementById(\"searchType\").innerHTML = \"Soundcloud search\";\n break;\n case \"s\":\n document.getElementById(\"searchType\").innerHTML = \"Spotify search\";\n break;\n case \"tv\":\n document.getElementById(\"searchType\").innerHTML = \"TheTVDB search\";\n break;\n case \"t\":\n document.getElementById(\"searchType\").innerHTML = \"Trakt search\";\n break;\n case \"y\":\n document.getElementById(\"searchType\").innerHTML = \"YouTube search\";\n break;\n case \"w\":\n document.getElementById(\"searchType\").innerHTML = \"Wikipedia search\";\n break;\n case \"p\":\n document.getElementById(\"searchType\").innerHTML = \"Plex search\";\n break;\n case \"rt\":\n document.getElementById(\"searchType\").innerHTML = \"Rotten Tomatoes search\";\n break;\n default:\n document.getElementById(\"searchType\").innerHTML = \"Invalid search\";\n break;\n }\n}else {\n document.getElementById(\"searchType\").innerHTML = \"Google search\";\n }\n}\nfunction search(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n if (text[0] === '/') {\n if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n window.location = \"https://www.allmusic.com/search/all/\" + subtext;\n break;\n case \"d\":\n window.location = \"https://duckduckgo.com/?q=\" + subtext;\n break;\n case \"di\":\n window.location = \"https://www.discogs.com/search/?q=\" + subtext;\n break;\n case \"i\":\n window.location = \"https://www.imdb.com/find?q=\" + subtext;\n break;\n case \"m\":\n window.location = \"https://www.themoviedb.org/search?query=\" + subtext;\n break;\n case \"r\":\n window.location = \"https://www.reddit.com/search?q=\" + subtext;\n break;\n case \"q\":\n window.location = \"https://www.qwant.com/?q=\" + subtext;\n break;\n case \"so\":\n window.location = \"https://soundcloud.com/search?q=\" + subtext;\n break;\n case \"s\":\n window.location = \"https://open.spotify.com/search/results/\" + subtext;\n break;\n case \"t\":\n window.location = \"https://trakt.tv/search?query=\" + subtext;\n break;\n case \"tv\":\n window.location = \"https://www.thetvdb.com/search?query=\" + subtext;\n break;\n case \"y\":\n window.location = \"https://www.youtube.com/results?search_query=\" + subtext;\n break;\n case \"w\":\n window.location = \"https://en.wikipedia.org/w/index.php?search=\" + subtext;\n break;\n case \"p\":\n window.location = \"https://app.plex.tv/desktop/#!/search?query=\" + subtext;\n break;\n case \"rt\":\n window.location = \"https://www.rottentomatoes.com/search?search=\" + subtext;\n break;\n }\n } else {\n var option = text.substr(1);\n switch (option) {\n case \"d\":\n window.location = \"https://www.duckduckgo.com\";\n break;\n case \"y\":\n window.location = \"https://www.youtube.com\";\n break;\n case \"r\":\n window.location = \"https://reddit.com\";\n break;\n case \"s\":\n window.location = \"https://open.spotify.com\";\n break;\n }\n }\n } else if (validURL(text)) {\n if (containsProtocol(text))\n window.location = text;\n else\n window.location = \"https://\" + text;\n } else {\n window.location = \"https://www.google.com/search?q=\" + text;\n }\n}\nfunction validURL(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/)?' + // protocol\n '((([a-z\\\\d]([a-z\\\\d-]*[a-z\\\\d])*)\\\\.)+[a-z]{2,}|' + // domain name\n '((\\\\d{1,3}\\\\.){3}\\\\d{1,3}))' + // OR ip (v4) address\n '(\\\\:\\\\d+)?(\\\\/[-a-z\\\\d%_.~+]*)*' + // port and path\n '(\\\\?[;&a-z\\\\d%_.~+=-]*)?' + // query string\n '(\\\\#[-a-z\\\\d_]*)?$', 'i'); // fragment locator\n return !!pattern.test(str);\n}\nfunction containsProtocol(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/){1}.*', 'i');\n return !!pattern.test(str);\n}\nString.prototype.replaceAll = function(search, replacement) {\n var target = this;\n return target.split(search).join(replacement);\n};\nfunction udpateDisplayedItems(e) {\n console.log(e);\n localStorage.setItem('contenttype', e.target.checked);\n if (e.target.checked) {\n localStorage.setItem('content-display', 'none');\n } else {\n localStorage.setItem('content-display', 'block');\n }\n setDisplayedItems();\n}\nfunction setDisplayedItems() {\n setValueFromLocalStorage('contenttype');\n setValueFromLocalStorage('content-display');\n}"]},"metadata":{},"sourceType":"module"}
\ No newline at end of file
diff --git a/node_modules/.cache/babel-loader/62f98ee62a286ae3d80eb77c7981d039.json b/node_modules/.cache/babel-loader/62f98ee62a286ae3d80eb77c7981d039.json
new file mode 100644
index 00000000..733b0cb3
--- /dev/null
+++ b/node_modules/.cache/babel-loader/62f98ee62a286ae3d80eb77c7981d039.json
@@ -0,0 +1 @@
+{"ast":null,"code":"var _jsxFileName = \"/home/seanedmunds/dev/home-page/src/index.js\",\n _s = $RefreshSig$(),\n _s2 = $RefreshSig$();\n\nimport React from 'react';\nimport { useState, useEffect } from 'react';\nimport ReactDOM from 'react-dom';\nimport './index.css';\nimport { jsxDEV as _jsxDEV } from \"react/jsx-dev-runtime\";\n\nconst setValueFromLocalStorage = property => {\n let value = localStorage.getItem(property);\n setValue(property, value);\n};\n\nconst setValue = (property, value) => {\n if (value) {\n document.documentElement.style.setProperty(`--${property}`, value);\n const input = document.querySelector(`#${property}`);\n\n if (input) {\n value = value.replace('px', '');\n input.value = value;\n }\n }\n};\n\nfunction Homepage() {\n setTheme();\n return /*#__PURE__*/_jsxDEV(\"main\", {\n id: \"container\",\n className: \"fade\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Search, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 28,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 27,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Header, {\n date: date(),\n greet: greet()\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 31,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 30,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Applications, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 37,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 36,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Bookmarks, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 40,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 39,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(ModalMenu, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 43,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 42,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(ModalInit, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 46,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 45,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 26,\n columnNumber: 5\n }, this);\n}\n\n_c = Homepage;\n\nfunction Search() {\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"search\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"abackground\",\n children: [/*#__PURE__*/_jsxDEV(\"input\", {\n name: \"keywords\",\n type: \"text\",\n className: \"keyword\",\n id: \"keywords\",\n size: \"50\",\n spellCheck: \"true\",\n placeholder: \"\"\n /*onFocus={this.placeholder = \"\"} onBlur={this.placeholder = ''}*/\n ,\n autoComplete: \"off\",\n autoFocus: true,\n onKeyUp: handleKeyPress\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 56,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n id: \"searchType\",\n className: \"Input-label\",\n children: \"Google search\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 57,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 55,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 54,\n columnNumber: 5\n }, this);\n}\n\n_c2 = Search;\n\nfunction Header(props) {\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"header\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n id: \"greeting_block\",\n children: /*#__PURE__*/_jsxDEV(\"h1\", {\n id: \"header_greet\",\n children: props.greet\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 67,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 66,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"date_block\",\n children: [/*#__PURE__*/_jsxDEV(\"h2\", {\n id: \"header_date\",\n children: props.date\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 70,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(Clock, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 71,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 69,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 65,\n columnNumber: 5\n }, this);\n}\n\n_c3 = Header;\n\nfunction Applications() {\n let appList = getApps();\n var items = [];\n\n for (var i = 0; i < appList.apps.length; i++) {\n var safe = appList.apps[i].NSFW;\n var NSFWEnabled = localStorage.getItem(\"contenttype\");\n\n if (safe === \"SAFE\") {\n items.push( /*#__PURE__*/_jsxDEV(App, {\n name: appList.apps[i].name,\n url: appList.apps[i].url,\n icon: appList.apps[i].icon,\n NSFW: appList.apps[i].NSFW\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 85,\n columnNumber: 9\n }, this));\n } else if (safe === \"NSFW\" && NSFWEnabled) {\n items.push( /*#__PURE__*/_jsxDEV(App, {\n name: appList.apps[i].name,\n url: appList.apps[i].url,\n icon: appList.apps[i].icon,\n NSFW: appList.apps[i].NSFW\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 95,\n columnNumber: 9\n }, this));\n } else {}\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"apps\",\n children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n children: \"Applications\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 110,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"apps_loop\",\n children: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 111,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 109,\n columnNumber: 5\n }, this);\n}\n\n_c4 = Applications;\n\nfunction App(props) {\n let classNameType = props.NSFW + \"-content\";\n let hrefUrl = \"https://\" + props.url;\n let iconName = \"mdi-\" + props.icon;\n return /*#__PURE__*/_jsxDEV(\"div\", {\n className: classNameType,\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: hrefUrl,\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_item\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_icon\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify icon\",\n \"data-icon\": iconName\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 128,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 127,\n columnNumber: 13\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_text\",\n children: [/*#__PURE__*/_jsxDEV(\"span\", {\n id: \"app-name\",\n children: props.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 131,\n columnNumber: 15\n }, this), /*#__PURE__*/_jsxDEV(\"span\", {\n id: \"app-address\",\n children: props.url\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 132,\n columnNumber: 15\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 130,\n columnNumber: 13\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 126,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 125,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 124,\n columnNumber: 7\n }, this);\n}\n\n_c5 = App;\n\nfunction Bookmarks() {\n let bookmarkList = getLinks();\n var items = [];\n\n for (var i = 0; i < bookmarkList.bookmarks.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(LinkGroups, {\n category: bookmarkList.bookmarks[i].category,\n links: bookmarkList.bookmarks[i].links\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 145,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"links\",\n children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n children: \"Bookmarks\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 154,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"links_loop\",\n children: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 155,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 153,\n columnNumber: 5\n }, this);\n}\n\n_c6 = Bookmarks;\n\nfunction LinkGroups(props) {\n var items = [];\n\n for (var i = 0; i < props.links.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(LinkItem, {\n link: props.links[i]\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 166,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"links_item\",\n children: [/*#__PURE__*/_jsxDEV(\"h4\", {\n children: props.category\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 174,\n columnNumber: 7\n }, this), items]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 173,\n columnNumber: 5\n }, this);\n}\n\n_c7 = LinkGroups;\n\nfunction LinkItem(props) {\n return /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: props.link.url,\n className: \"theme_color-border theme_text-select\",\n children: props.link.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 183,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 182,\n columnNumber: 5\n }, this);\n}\n\n_c8 = LinkItem;\n\nfunction ModalMenu() {\n var providers = getProviders();\n var items = [];\n\n for (var i = 0; i < providers.providers.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(Provider, {\n provider: providers.providers[i]\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 193,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"modal\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n children: [/*#__PURE__*/_jsxDEV(\"header\", {\n id: \"modal-header\",\n children: [/*#__PURE__*/_jsxDEV(\"h1\", {\n children: \"Options\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 203,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n href: \"#\",\n title: \"Close\",\n className: \"modal-close\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-close\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 205,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 204,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 202,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"h2\", {\n children: \"Color themes\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 209,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"modal-theme\",\n children: [/*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"blackboard\",\n className: \"theme-button theme-blackboard\",\n onClick: updateTheme,\n children: \"Blackboard\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 212,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"gazette\",\n className: \"theme-button theme-gazette\",\n onClick: updateTheme,\n children: \"Gazette\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 213,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"espresso\",\n className: \"theme-button theme-espresso\",\n onClick: updateTheme,\n children: \"Espresso\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 214,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cab\",\n className: \"theme-button theme-cab\",\n onClick: updateTheme,\n children: \"Cab\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 215,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cloud\",\n className: \"theme-button theme-cloud\",\n onClick: updateTheme,\n children: \"Cloud\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 216,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"lime\",\n className: \"theme-button theme-lime\",\n onClick: updateTheme,\n children: \"Lime\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 217,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"passion\",\n className: \"theme-button theme-passion\",\n onClick: updateTheme,\n children: \"Passion\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 218,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"blues\",\n className: \"theme-button theme-blues\",\n onClick: updateTheme,\n children: \"Blues\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 219,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"chalk\",\n className: \"theme-button theme-chalk\",\n onClick: updateTheme,\n children: \"Chalk\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 220,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"tron\",\n className: \"theme-button theme-tron\",\n onClick: updateTheme,\n children: \"Tron\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 221,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"paper\",\n className: \"theme-button theme-paper\",\n onClick: updateTheme,\n children: \"Paper\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 222,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cyberpunk\",\n className: \"theme-button theme-cyberpunk\",\n onClick: updateTheme,\n children: \"Cyberpunk\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 223,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"quadra\",\n className: \"theme-button theme-panam\",\n onClick: updateTheme,\n children: \"Quadra\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 224,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"panam\",\n className: \"theme-button theme-panam\",\n onClick: updateTheme,\n children: \"Panam\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 225,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"touch\",\n className: \"theme-button theme-touch\",\n onClick: updateTheme,\n children: \"Touch\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 226,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"peek\",\n className: \"theme-button theme-peek\",\n onClick: updateTheme,\n children: \"Peek\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 227,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 211,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"h2\", {\n children: \"Search options\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 231,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"providers\",\n children: /*#__PURE__*/_jsxDEV(\"table\", {\n children: /*#__PURE__*/_jsxDEV(\"tbody\", {\n children: [/*#__PURE__*/_jsxDEV(\"tr\", {\n children: [/*#__PURE__*/_jsxDEV(\"th\", {\n children: \"Website\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 236,\n columnNumber: 19\n }, this), /*#__PURE__*/_jsxDEV(\"th\", {\n children: \"Prefix\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 237,\n columnNumber: 19\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 235,\n columnNumber: 17\n }, this), items]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 234,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 233,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 232,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"header\", {\n id: \"modal-footer\",\n children: [/*#__PURE__*/_jsxDEV(\"a\", {\n href: \"https://github.com/jeroenpardon/\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-github-box\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 245,\n columnNumber: 54\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 245,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n href: \"https://materialdesignicons.com/\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-material-design\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 246,\n columnNumber: 54\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 246,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(HideButton, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 247,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 244,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 201,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 200,\n columnNumber: 5\n }, this);\n}\n\n_c9 = ModalMenu;\n\nfunction HideButton() {\n _s();\n\n const [checked, setChecked] = useState(0);\n useEffect(() => {\n document.getElementById(\"contenttype\").checked = checked;\n });\n return /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"sneaky\",\n children: [/*#__PURE__*/_jsxDEV(\"input\", {\n type: \"checkbox\",\n id: \"contenttype\",\n checked: () => setChecked,\n onChange: udpateDisplayedItems\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 261,\n columnNumber: 29\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n for: \"contenttype\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-domino-mask\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 262,\n columnNumber: 30\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 262,\n columnNumber: 5\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 261,\n columnNumber: 5\n }, this);\n}\n\n_s(HideButton, \"RwYq7+q0Ip3azBT8Ar8AZBBB05c=\");\n\n_c10 = HideButton;\n\nfunction Provider(props) {\n return /*#__PURE__*/_jsxDEV(\"tr\", {\n children: [/*#__PURE__*/_jsxDEV(\"td\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: props.provider.url,\n children: props.provider.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 269,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 269,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"td\", {\n children: props.provider.prefix\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 270,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 268,\n columnNumber: 5\n }, this);\n}\n\n_c11 = Provider;\n\nfunction ModalInit() {\n setDisplayedItems();\n return /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"modal_init\",\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n className: \"btn\",\n href: \"#modal\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify icon\",\n \"data-icon\": \"mdi-xbox-controller-menu\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 280,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 279,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 278,\n columnNumber: 5\n }, this);\n}\n\n_c12 = ModalInit;\nReactDOM.render( /*#__PURE__*/_jsxDEV(Homepage, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 287,\n columnNumber: 3\n}, this), document.getElementById('root')); //Functions below this line are for calculating data for\n//other functions\n\nfunction date() {\n let currentDate = new Date();\n let dateOptions = {\n weekday: \"long\",\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\"\n };\n let date = currentDate.toLocaleDateString(\"en-GB\", dateOptions);\n return date;\n}\n\nfunction fixDigits(k) {\n if (k < 10) {\n return \"0\" + k;\n } else {\n return k;\n }\n}\n\nfunction greet() {\n let currentTime = new Date();\n let greet = Math.floor(currentTime.getHours() / 6);\n let easterEggChance = Math.floor(Math.random() * 100);\n\n let greetings = require('./messages.json');\n\n let timeBased = [];\n let easterEggs = [];\n\n for (var i = 0; i < greetings.messages.length; i++) {\n if (greetings.messages[i].easteregg === \"FALSE\") {\n timeBased = timeBased.concat(greetings.messages[i]);\n } else {\n easterEggs = easterEggs.concat(greetings.messages[i]);\n }\n }\n\n if (easterEggChance > 10) {\n return timeBased[greet].message;\n } else {\n let easterEggText = Math.floor(Math.random() * easterEggs.length);\n return easterEggs[easterEggText].message;\n }\n}\n\nfunction Clock() {\n _s2();\n\n const [date, setDate] = useState(new Date());\n\n function refreshClock() {\n setDate(new Date());\n }\n\n useEffect(() => {\n const timerId = setInterval(refreshClock, 1000);\n return function cleanup() {\n clearInterval(timerId);\n };\n }, []);\n var hour = date.getHours();\n var minutes = date.getMinutes(); //var seconds = date.getSeconds();\n\n var midday = \"AM\";\n midday = hour >= 12 ? \"PM\" : \"AM\";\n hour = hour === 0 ? 12 : hour > 12 ? hour - 12 : hour;\n minutes = fixDigits(minutes); //seconds = fixDigits(seconds);\n\n let time = hour + \":\" + minutes + \" \" + midday;\n return /*#__PURE__*/_jsxDEV(\"h2\", {\n id: \"clock\",\n children: time\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 358,\n columnNumber: 5\n }, this);\n}\n\n_s2(Clock, \"Gqi45WOZhU2c0BLYX0HoJeiR0fk=\");\n\n_c13 = Clock;\n\nfunction getApps() {\n let applications = require('./apps.json');\n\n return applications;\n}\n\nfunction getLinks() {\n let links = require('./links.json');\n\n return links;\n}\n\nfunction getProviders() {\n let providers = require('./providers.json');\n\n return providers;\n}\n\nfunction getThemes() {\n let themes = require('./themes.json');\n\n return themes;\n}\n\nfunction updateTheme(e) {\n var themes = getThemes();\n var themeName = e.target.innerHTML.toLowerCase();\n var index = themes.themes.findIndex(function (item, i) {\n return item.name === themeName;\n });\n localStorage.setItem(\"image-background\", themes.themes[index].imagebackground);\n localStorage.setItem(\"color-background\", themes.themes[index].colorbackground);\n localStorage.setItem(\"color-search-background\", themes.themes[index].colorserachbackground);\n localStorage.setItem(\"color-text-pri\", themes.themes[index].colortextpri);\n localStorage.setItem(\"color-text-acc\", themes.themes[index].colortextacc);\n localStorage.setItem(\"color-border\", themes.themes[index].colorborder); //document.documentElement.style.setProperty(prop, `var(--${themeName}${prop.substring(10)})`);\n\n setTheme();\n}\n\nfunction setTheme() {\n setValueFromLocalStorage('image-background');\n setValueFromLocalStorage('color-background');\n setValueFromLocalStorage('color-search-background');\n setValueFromLocalStorage('color-text-pri');\n setValueFromLocalStorage('color-text-acc');\n setValueFromLocalStorage('color-border');\n setValueFromLocalStorage('content-display');\n}\n\nfunction handleKeyPress(e) {\n var sindex = 0;\n var cycle = false;\n var key = e.keyCode || e.which;\n var text = e.target.value.replaceAll(\"+\", \"%2B\");\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n\n if (key == 13) {\n // Search functions\n search(text);\n }\n\n if (key == 9) {\n // Tab Completion Functions\n e.preventDefault();\n e.stopPropagation();\n\n if (text[0] === ';') {\n switch (option) {\n case 't':\n var streamers = ['admiralbahroo', 'moonmoon_ow', 'witwix'];\n\n if (!subtext || cycle) {\n cycle = true;\n if (sindex > streamers.length - 1) sindex = 0;\n document.getElementById(\"keywords\").value = ';t ' + streamers[sindex++];\n return;\n }\n\n for (var streamer of streamers) {\n if (subtext === streamer.substr(0, subtext.length)) {\n document.getElementById(\"keywords\").value = ';t ' + streamer;\n return;\n }\n }\n\n break;\n }\n }\n }\n\n if (key == 32) {\n //Space to go to search\n updateLabel(text);\n }\n\n sindex = 0;\n cycle = false;\n updateLabel(text);\n}\n\nfunction updateLabel(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n\n if (text[0] === '/') {\n // if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n document.getElementById(\"searchType\").innerHTML = \"Allmusic search\";\n break;\n\n case \"d\":\n document.getElementById(\"searchType\").innerHTML = \"Duck Duck Go search\";\n break;\n\n case \"di\":\n document.getElementById(\"searchType\").innerHTML = \"Discogs search\";\n break;\n\n case \"i\":\n document.getElementById(\"searchType\").innerHTML = \"IMDB search\";\n break;\n\n case \"m\":\n document.getElementById(\"searchType\").innerHTML = \"TheMovieDB search\";\n break;\n\n case \"r\":\n document.getElementById(\"searchType\").innerHTML = \"Reddit search\";\n break;\n\n case \"q\":\n document.getElementById(\"searchType\").innerHTML = \"Qwant search\";\n break;\n\n case \"so\":\n document.getElementById(\"searchType\").innerHTML = \"Soundcloud search\";\n break;\n\n case \"s\":\n document.getElementById(\"searchType\").innerHTML = \"Spotify search\";\n break;\n\n case \"tv\":\n document.getElementById(\"searchType\").innerHTML = \"TheTVDB search\";\n break;\n\n case \"t\":\n document.getElementById(\"searchType\").innerHTML = \"Trakt search\";\n break;\n\n case \"y\":\n document.getElementById(\"searchType\").innerHTML = \"YouTube search\";\n break;\n\n case \"w\":\n document.getElementById(\"searchType\").innerHTML = \"Wikipedia search\";\n break;\n\n case \"p\":\n document.getElementById(\"searchType\").innerHTML = \"Plex search\";\n break;\n\n case \"rt\":\n document.getElementById(\"searchType\").innerHTML = \"Rotten Tomatoes search\";\n break;\n\n default:\n document.getElementById(\"searchType\").innerHTML = \"Invalid search\";\n break;\n }\n } else {\n document.getElementById(\"searchType\").innerHTML = \"Google search\";\n }\n}\n\nfunction search(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n\n if (text[0] === '/') {\n if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n window.location = \"https://www.allmusic.com/search/all/\" + subtext;\n break;\n\n case \"d\":\n window.location = \"https://duckduckgo.com/?q=\" + subtext;\n break;\n\n case \"di\":\n window.location = \"https://www.discogs.com/search/?q=\" + subtext;\n break;\n\n case \"i\":\n window.location = \"https://www.imdb.com/find?q=\" + subtext;\n break;\n\n case \"m\":\n window.location = \"https://www.themoviedb.org/search?query=\" + subtext;\n break;\n\n case \"r\":\n window.location = \"https://www.reddit.com/search?q=\" + subtext;\n break;\n\n case \"q\":\n window.location = \"https://www.qwant.com/?q=\" + subtext;\n break;\n\n case \"so\":\n window.location = \"https://soundcloud.com/search?q=\" + subtext;\n break;\n\n case \"s\":\n window.location = \"https://open.spotify.com/search/results/\" + subtext;\n break;\n\n case \"t\":\n window.location = \"https://trakt.tv/search?query=\" + subtext;\n break;\n\n case \"tv\":\n window.location = \"https://www.thetvdb.com/search?query=\" + subtext;\n break;\n\n case \"y\":\n window.location = \"https://www.youtube.com/results?search_query=\" + subtext;\n break;\n\n case \"w\":\n window.location = \"https://en.wikipedia.org/w/index.php?search=\" + subtext;\n break;\n\n case \"p\":\n window.location = \"https://app.plex.tv/desktop/#!/search?query=\" + subtext;\n break;\n\n case \"rt\":\n window.location = \"https://www.rottentomatoes.com/search?search=\" + subtext;\n break;\n }\n } else {\n var option = text.substr(1);\n\n switch (option) {\n case \"d\":\n window.location = \"https://www.duckduckgo.com\";\n break;\n\n case \"y\":\n window.location = \"https://www.youtube.com\";\n break;\n\n case \"r\":\n window.location = \"https://reddit.com\";\n break;\n\n case \"s\":\n window.location = \"https://open.spotify.com\";\n break;\n }\n }\n } else if (validURL(text)) {\n if (containsProtocol(text)) window.location = text;else window.location = \"https://\" + text;\n } else {\n window.location = \"https://www.google.com/search?q=\" + text;\n }\n}\n\nfunction validURL(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/)?' + // protocol\n '((([a-z\\\\d]([a-z\\\\d-]*[a-z\\\\d])*)\\\\.)+[a-z]{2,}|' + // domain name\n '((\\\\d{1,3}\\\\.){3}\\\\d{1,3}))' + // OR ip (v4) address\n '(\\\\:\\\\d+)?(\\\\/[-a-z\\\\d%_.~+]*)*' + // port and path\n '(\\\\?[;&a-z\\\\d%_.~+=-]*)?' + // query string\n '(\\\\#[-a-z\\\\d_]*)?$', 'i'); // fragment locator\n\n return !!pattern.test(str);\n}\n\nfunction containsProtocol(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/){1}.*', 'i');\n return !!pattern.test(str);\n}\n\nString.prototype.replaceAll = function (search, replacement) {\n var target = this;\n return target.split(search).join(replacement);\n};\n\nfunction udpateDisplayedItems(e) {\n console.log(e);\n localStorage.setItem('contenttype', e.target.checked);\n\n if (e.target.checked) {\n localStorage.setItem('content-display', 'none');\n } else {\n localStorage.setItem('content-display', 'block');\n }\n\n setDisplayedItems();\n}\n\nfunction setDisplayedItems() {\n setValueFromLocalStorage('contenttype');\n setValueFromLocalStorage('content-display');\n}\n\nvar _c, _c2, _c3, _c4, _c5, _c6, _c7, _c8, _c9, _c10, _c11, _c12, _c13;\n\n$RefreshReg$(_c, \"Homepage\");\n$RefreshReg$(_c2, \"Search\");\n$RefreshReg$(_c3, \"Header\");\n$RefreshReg$(_c4, \"Applications\");\n$RefreshReg$(_c5, \"App\");\n$RefreshReg$(_c6, \"Bookmarks\");\n$RefreshReg$(_c7, \"LinkGroups\");\n$RefreshReg$(_c8, \"LinkItem\");\n$RefreshReg$(_c9, \"ModalMenu\");\n$RefreshReg$(_c10, \"HideButton\");\n$RefreshReg$(_c11, \"Provider\");\n$RefreshReg$(_c12, \"ModalInit\");\n$RefreshReg$(_c13, \"Clock\");","map":{"version":3,"sources":["/home/seanedmunds/dev/home-page/src/index.js"],"names":["React","useState","useEffect","ReactDOM","setValueFromLocalStorage","property","value","localStorage","getItem","setValue","document","documentElement","style","setProperty","input","querySelector","replace","Homepage","setTheme","date","greet","Search","handleKeyPress","Header","props","Applications","appList","getApps","items","i","apps","length","safe","NSFW","NSFWEnabled","push","name","url","icon","App","classNameType","hrefUrl","iconName","Bookmarks","bookmarkList","getLinks","bookmarks","category","links","LinkGroups","LinkItem","link","ModalMenu","providers","getProviders","updateTheme","HideButton","checked","setChecked","getElementById","udpateDisplayedItems","Provider","provider","prefix","ModalInit","setDisplayedItems","render","currentDate","Date","dateOptions","weekday","year","month","day","toLocaleDateString","fixDigits","k","currentTime","Math","floor","getHours","easterEggChance","random","greetings","require","timeBased","easterEggs","messages","easteregg","concat","message","easterEggText","Clock","setDate","refreshClock","timerId","setInterval","cleanup","clearInterval","hour","minutes","getMinutes","midday","time","applications","getThemes","themes","e","themeName","target","innerHTML","toLowerCase","index","findIndex","item","setItem","imagebackground","colorbackground","colorserachbackground","colortextpri","colortextacc","colorborder","sindex","cycle","key","keyCode","which","text","replaceAll","option","substr","indexOf","subtext","search","preventDefault","stopPropagation","streamers","streamer","updateLabel","window","location","validURL","containsProtocol","str","pattern","RegExp","test","String","prototype","replacement","split","join","console","log"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { useState, useEffect } from 'react';\nimport ReactDOM from 'react-dom';\nimport './index.css';\n\nconst setValueFromLocalStorage = property => {\n let value = localStorage.getItem(property);\n setValue(property, value);\n};\nconst setValue = (property, value) => {\n if (value) {\n document.documentElement.style.setProperty(`--${property}`, value);\n\n const input = document.querySelector(`#${property}`);\n if (input) {\n value = value.replace('px', '');\n input.value = value;\n }\n }\n};\n\nfunction Homepage() {\n setTheme();\n \n return (\n \n \n \n
\n \n \n
\n \n \n \n
\n \n \n
\n \n \n
\n \n );\n}\n\nfunction Search() {\n return (\n \n )\n}\n\nfunction Header(props) {\n return (\n \n );\n}\n\nfunction Applications() {\n let appList = getApps();\n var items = [];\n for (var i = 0; i < appList.apps.length; i++) {\n var safe = appList.apps[i].NSFW;\n var NSFWEnabled = localStorage.getItem(\"contenttype\");\n if (safe === \"SAFE\") {\n items.push(\n \n );\n } else if (safe === \"NSFW\" && NSFWEnabled) {\n items.push(\n \n );\n } else {\n \n }\n \n }\n return (\n \n Applications
\n \n {items}\n
\n \n );\n}\n\nfunction App(props) {\n \n let classNameType = props.NSFW + \"-content\";\n let hrefUrl = \"https://\" + props.url;\n let iconName = \"mdi-\" + props.icon;\n return (\n \n );\n}\n\nfunction Bookmarks() {\n let bookmarkList = getLinks();\n var items = [];\n for (var i = 0; i < bookmarkList.bookmarks.length; i++) {\n items.push(\n \n );\n }\n return (\n \n Bookmarks
\n \n {items}\n
\n \n );\n}\n\nfunction LinkGroups(props) {\n var items = [];\n for (var i = 0; i < props.links.length; i++) {\n items.push(\n \n );\n }\n return (\n \n
{props.category}
\n {items}\n \n );\n}\n\nfunction LinkItem(props) {\n return (\n \n );\n}\n\nfunction ModalMenu() {\n var providers = getProviders();\n var items = [];\n for (var i = 0; i < providers.providers.length; i++) {\n items.push(\n \n );\n }\n return (\n \n \n \n\n
Color themes
\n\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n\n\n
Search options
\n
\n \n \n \n | Website | \n Prefix | \n
\n {items}\n \n
\n \n\n \n
\n \n );\n}\n\nfunction HideButton() {\n const [checked, setChecked] = useState(0);\n useEffect(() =>{\n document.getElementById(\"contenttype\").checked = checked;\n });\n\n return (\n setChecked} onChange={udpateDisplayedItems}>\n
\n );\n}\n\nfunction Provider(props) {\n return (\n \n | {props.provider.name} | \n {props.provider.prefix} | \n
\n );\n}\n\nfunction ModalInit() {\n setDisplayedItems();\n return (\n \n );\n}\n\nReactDOM.render(\n ,\n document.getElementById('root')\n);\n\n//Functions below this line are for calculating data for\n//other functions\n\nfunction date() {\n let currentDate = new Date();\n let dateOptions = {\n weekday: \"long\",\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\"\n };\n let date = currentDate.toLocaleDateString(\"en-GB\", dateOptions);\n return date;\n}\nfunction fixDigits(k) {\n if (k < 10) {\n return \"0\" + k;\n }\n else {\n return k;\n }\n}\nfunction greet() {\n let currentTime = new Date();\n let greet = Math.floor(currentTime.getHours() / 6);\n let easterEggChance = Math.floor(Math.random() * 100);\n let greetings = require('./messages.json');\n let timeBased = [];\n let easterEggs = [];\n for (var i = 0; i < greetings.messages.length; i++) {\n if (greetings.messages[i].easteregg === \"FALSE\") {\n timeBased = timeBased.concat(greetings.messages[i]);\n } else {\n easterEggs = easterEggs.concat(greetings.messages[i]);\n }\n }\n if (easterEggChance > 10) {\n return timeBased[greet].message;\n } else {\n let easterEggText = Math.floor(Math.random() * easterEggs.length);\n return easterEggs[easterEggText].message;\n }\n}\nfunction Clock() {\n const [date, setDate] = useState(new Date());\n\n function refreshClock() {\n setDate(new Date());\n }\n useEffect(() => {\n const timerId = setInterval(refreshClock, 1000);\n return function cleanup() {\n clearInterval(timerId);\n };\n }, []);\n\n var hour = date.getHours();\n var minutes = date.getMinutes();\n //var seconds = date.getSeconds();\n var midday = \"AM\";\n midday = (hour >= 12) ? \"PM\" : \"AM\";\n hour = (hour === 0) ? 12 : ((hour > 12) ? (hour - 12) : hour);\n minutes = fixDigits(minutes);\n //seconds = fixDigits(seconds);\n let time = hour + \":\" + minutes + \" \" + midday;\n\n return (\n {time}
\n\n );\n}\nfunction getApps() {\n let applications = require('./apps.json');\n return applications;\n}\nfunction getLinks() {\n let links = require('./links.json');\n return links;\n}\nfunction getProviders() {\n let providers = require('./providers.json');\n return providers;\n}\nfunction getThemes() {\n let themes = require('./themes.json');\n return themes;\n}\nfunction updateTheme(e) {\n var themes = getThemes();\n var themeName = e.target.innerHTML.toLowerCase();\n var index = themes.themes.findIndex(function(item, i){\n return item.name === themeName\n });\n localStorage.setItem(\"image-background\", themes.themes[index].imagebackground);\n localStorage.setItem(\"color-background\", themes.themes[index].colorbackground);\n localStorage.setItem(\"color-search-background\", themes.themes[index].colorserachbackground);\n localStorage.setItem(\"color-text-pri\",themes.themes[index].colortextpri);\n localStorage.setItem(\"color-text-acc\", themes.themes[index].colortextacc);\n localStorage.setItem(\"color-border\", themes.themes[index].colorborder);\n \n //document.documentElement.style.setProperty(prop, `var(--${themeName}${prop.substring(10)})`);\n setTheme();\n}\nfunction setTheme() {\n setValueFromLocalStorage('image-background');\n setValueFromLocalStorage('color-background');\n setValueFromLocalStorage('color-search-background');\n setValueFromLocalStorage('color-text-pri');\n setValueFromLocalStorage('color-text-acc');\n setValueFromLocalStorage('color-border');\n setValueFromLocalStorage('content-display');\n}\nfunction handleKeyPress(e) {\n var sindex = 0;\n var cycle = false;\n var key = e.keyCode || e.which;\n var text = e.target.value.replaceAll(\"+\", \"%2B\");\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n if (key == 13) { // Search functions\n search(text);\n }\n if (key == 9) { // Tab Completion Functions\n e.preventDefault();\n e.stopPropagation();\n if (text[0] === ';') {\n switch (option) {\n case 't':\n var streamers = ['admiralbahroo', 'moonmoon_ow', 'witwix'];\n if (!subtext || cycle) {\n cycle = true;\n if (sindex > streamers.length - 1) sindex = 0;\n document.getElementById(\"keywords\").value = ';t ' + streamers[sindex++];\n return;\n }\n for (var streamer of streamers) {\n if (subtext === streamer.substr(0, subtext.length)) {\n document.getElementById(\"keywords\").value = ';t ' + streamer;\n return;\n }\n }\n break;\n }\n }\n }\n if(key == 32){ //Space to go to search\nupdateLabel(text);\n }\n sindex = 0;\n cycle = false;\n updateLabel(text);\n}\nfunction updateLabel(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n if (text[0] === '/') {\n// if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n document.getElementById(\"searchType\").innerHTML = \"Allmusic search\";\n break;\n case \"d\":\n document.getElementById(\"searchType\").innerHTML = \"Duck Duck Go search\";\n break;\n case \"di\":\n document.getElementById(\"searchType\").innerHTML = \"Discogs search\";\n break;\n case \"i\":\n document.getElementById(\"searchType\").innerHTML = \"IMDB search\";\n break;\n case \"m\":\n document.getElementById(\"searchType\").innerHTML = \"TheMovieDB search\";\n break;\n case \"r\":\n document.getElementById(\"searchType\").innerHTML = \"Reddit search\";\n break;\n case \"q\":\n document.getElementById(\"searchType\").innerHTML = \"Qwant search\";\n break;\n case \"so\":\n document.getElementById(\"searchType\").innerHTML = \"Soundcloud search\";\n break;\n case \"s\":\n document.getElementById(\"searchType\").innerHTML = \"Spotify search\";\n break;\n case \"tv\":\n document.getElementById(\"searchType\").innerHTML = \"TheTVDB search\";\n break;\n case \"t\":\n document.getElementById(\"searchType\").innerHTML = \"Trakt search\";\n break;\n case \"y\":\n document.getElementById(\"searchType\").innerHTML = \"YouTube search\";\n break;\n case \"w\":\n document.getElementById(\"searchType\").innerHTML = \"Wikipedia search\";\n break;\n case \"p\":\n document.getElementById(\"searchType\").innerHTML = \"Plex search\";\n break;\n case \"rt\":\n document.getElementById(\"searchType\").innerHTML = \"Rotten Tomatoes search\";\n break;\n default:\n document.getElementById(\"searchType\").innerHTML = \"Invalid search\";\n break;\n }\n}else {\n document.getElementById(\"searchType\").innerHTML = \"Google search\";\n }\n}\nfunction search(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n if (text[0] === '/') {\n if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n window.location = \"https://www.allmusic.com/search/all/\" + subtext;\n break;\n case \"d\":\n window.location = \"https://duckduckgo.com/?q=\" + subtext;\n break;\n case \"di\":\n window.location = \"https://www.discogs.com/search/?q=\" + subtext;\n break;\n case \"i\":\n window.location = \"https://www.imdb.com/find?q=\" + subtext;\n break;\n case \"m\":\n window.location = \"https://www.themoviedb.org/search?query=\" + subtext;\n break;\n case \"r\":\n window.location = \"https://www.reddit.com/search?q=\" + subtext;\n break;\n case \"q\":\n window.location = \"https://www.qwant.com/?q=\" + subtext;\n break;\n case \"so\":\n window.location = \"https://soundcloud.com/search?q=\" + subtext;\n break;\n case \"s\":\n window.location = \"https://open.spotify.com/search/results/\" + subtext;\n break;\n case \"t\":\n window.location = \"https://trakt.tv/search?query=\" + subtext;\n break;\n case \"tv\":\n window.location = \"https://www.thetvdb.com/search?query=\" + subtext;\n break;\n case \"y\":\n window.location = \"https://www.youtube.com/results?search_query=\" + subtext;\n break;\n case \"w\":\n window.location = \"https://en.wikipedia.org/w/index.php?search=\" + subtext;\n break;\n case \"p\":\n window.location = \"https://app.plex.tv/desktop/#!/search?query=\" + subtext;\n break;\n case \"rt\":\n window.location = \"https://www.rottentomatoes.com/search?search=\" + subtext;\n break;\n }\n } else {\n var option = text.substr(1);\n switch (option) {\n case \"d\":\n window.location = \"https://www.duckduckgo.com\";\n break;\n case \"y\":\n window.location = \"https://www.youtube.com\";\n break;\n case \"r\":\n window.location = \"https://reddit.com\";\n break;\n case \"s\":\n window.location = \"https://open.spotify.com\";\n break;\n }\n }\n } else if (validURL(text)) {\n if (containsProtocol(text))\n window.location = text;\n else\n window.location = \"https://\" + text;\n } else {\n window.location = \"https://www.google.com/search?q=\" + text;\n }\n}\nfunction validURL(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/)?' + // protocol\n '((([a-z\\\\d]([a-z\\\\d-]*[a-z\\\\d])*)\\\\.)+[a-z]{2,}|' + // domain name\n '((\\\\d{1,3}\\\\.){3}\\\\d{1,3}))' + // OR ip (v4) address\n '(\\\\:\\\\d+)?(\\\\/[-a-z\\\\d%_.~+]*)*' + // port and path\n '(\\\\?[;&a-z\\\\d%_.~+=-]*)?' + // query string\n '(\\\\#[-a-z\\\\d_]*)?$', 'i'); // fragment locator\n return !!pattern.test(str);\n}\nfunction containsProtocol(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/){1}.*', 'i');\n return !!pattern.test(str);\n}\nString.prototype.replaceAll = function(search, replacement) {\n var target = this;\n return target.split(search).join(replacement);\n};\nfunction udpateDisplayedItems(e) {\n console.log(e);\n localStorage.setItem('contenttype', e.target.checked);\n if (e.target.checked) {\n localStorage.setItem('content-display', 'none');\n } else {\n localStorage.setItem('content-display', 'block');\n }\n setDisplayedItems();\n}\nfunction setDisplayedItems() {\n setValueFromLocalStorage('contenttype');\n setValueFromLocalStorage('content-display');\n}"]},"metadata":{},"sourceType":"module"}
\ No newline at end of file
diff --git a/node_modules/.cache/babel-loader/66efa5ddf686c0a554085e0d17033897.json b/node_modules/.cache/babel-loader/66efa5ddf686c0a554085e0d17033897.json
new file mode 100644
index 00000000..7c8a25b4
--- /dev/null
+++ b/node_modules/.cache/babel-loader/66efa5ddf686c0a554085e0d17033897.json
@@ -0,0 +1 @@
+{"ast":null,"code":"var _jsxFileName = \"/home/seanedmunds/dev/home-page/src/index.js\",\n _s = $RefreshSig$();\n\nimport React from 'react';\nimport { useState, useEffect } from 'react';\nimport ReactDOM from 'react-dom';\nimport './index.css';\nimport { jsxDEV as _jsxDEV } from \"react/jsx-dev-runtime\";\n\nconst setValueFromLocalStorage = property => {\n let value = localStorage.getItem(property);\n setValue(property, value);\n};\n\nconst setValue = (property, value) => {\n if (value) {\n document.documentElement.style.setProperty(`--${property}`, value);\n const input = document.querySelector(`#${property}`);\n\n if (input) {\n value = value.replace('px', '');\n input.value = value;\n }\n }\n};\n\nfunction Homepage() {\n setTheme();\n return /*#__PURE__*/_jsxDEV(\"main\", {\n id: \"container\",\n className: \"fade\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Search, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 28,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 27,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Header, {\n date: date(),\n greet: greet()\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 31,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 30,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Applications, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 37,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 36,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Bookmarks, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 40,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 39,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(ModalMenu, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 43,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 42,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(ModalInit, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 46,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 45,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 26,\n columnNumber: 5\n }, this);\n}\n\n_c = Homepage;\n\nfunction Search() {\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"search\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"abackground\",\n children: [/*#__PURE__*/_jsxDEV(\"input\", {\n name: \"keywords\",\n type: \"text\",\n className: \"keyword\",\n id: \"keywords\",\n size: \"50\",\n spellCheck: \"true\",\n placeholder: \"\"\n /*onFocus={this.placeholder = \"\"} onBlur={this.placeholder = ''}*/\n ,\n autoComplete: \"off\",\n autoFocus: true,\n onKeyUp: handleKeyPress\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 56,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n id: \"searchType\",\n className: \"Input-label\",\n children: \"Google search\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 57,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 55,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 54,\n columnNumber: 5\n }, this);\n}\n\n_c2 = Search;\n\nfunction Header(props) {\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"header\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n id: \"greeting_block\",\n children: /*#__PURE__*/_jsxDEV(\"h1\", {\n id: \"header_greet\",\n children: props.greet\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 67,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 66,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"date_block\",\n children: [/*#__PURE__*/_jsxDEV(\"h2\", {\n id: \"header_date\",\n children: props.date\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 70,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(Clock, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 71,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 69,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 65,\n columnNumber: 5\n }, this);\n}\n\n_c3 = Header;\n\nfunction Applications() {\n let appList = getApps();\n var items = [];\n\n for (var i = 0; i < appList.apps.length; i++) {\n var safe = appList.apps[i].NSFW;\n var NSFWEnabled = localStorage.getItem(\"contenttype\");\n\n if (safe === \"SAFE\") {\n items.push( /*#__PURE__*/_jsxDEV(App, {\n name: appList.apps[i].name,\n url: appList.apps[i].url,\n icon: appList.apps[i].icon,\n NSFW: appList.apps[i].NSFW\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 85,\n columnNumber: 9\n }, this));\n } else if (safe === \"NSFW\" && NSFWEnabled) {\n items.push( /*#__PURE__*/_jsxDEV(App, {\n name: appList.apps[i].name,\n url: appList.apps[i].url,\n icon: appList.apps[i].icon,\n NSFW: appList.apps[i].NSFW\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 95,\n columnNumber: 9\n }, this));\n } else {}\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"apps\",\n children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n children: \"Applications\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 110,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"apps_loop\",\n children: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 111,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 109,\n columnNumber: 5\n }, this);\n}\n\n_c4 = Applications;\n\nfunction App(props) {\n let classNameType = props.NSFW + \"-content\";\n let hrefUrl = \"https://\" + props.url;\n let iconName = \"mdi-\" + props.icon;\n return /*#__PURE__*/_jsxDEV(\"div\", {\n className: classNameType,\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: hrefUrl,\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_item\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_icon\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify icon\",\n \"data-icon\": iconName\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 128,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 127,\n columnNumber: 13\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_text\",\n children: [/*#__PURE__*/_jsxDEV(\"span\", {\n id: \"app-name\",\n children: props.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 131,\n columnNumber: 15\n }, this), /*#__PURE__*/_jsxDEV(\"span\", {\n id: \"app-address\",\n children: props.url\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 132,\n columnNumber: 15\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 130,\n columnNumber: 13\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 126,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 125,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 124,\n columnNumber: 7\n }, this);\n}\n\n_c5 = App;\n\nfunction Bookmarks() {\n let bookmarkList = getLinks();\n var items = [];\n\n for (var i = 0; i < bookmarkList.bookmarks.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(LinkGroups, {\n category: bookmarkList.bookmarks[i].category,\n links: bookmarkList.bookmarks[i].links\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 145,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"links\",\n children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n children: \"Bookmarks\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 154,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"links_loop\",\n children: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 155,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 153,\n columnNumber: 5\n }, this);\n}\n\n_c6 = Bookmarks;\n\nfunction LinkGroups(props) {\n var items = [];\n\n for (var i = 0; i < props.links.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(LinkItem, {\n link: props.links[i]\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 166,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"links_item\",\n children: [/*#__PURE__*/_jsxDEV(\"h4\", {\n children: props.category\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 174,\n columnNumber: 7\n }, this), items]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 173,\n columnNumber: 5\n }, this);\n}\n\n_c7 = LinkGroups;\n\nfunction LinkItem(props) {\n return /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: props.link.url,\n className: \"theme_color-border theme_text-select\",\n children: props.link.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 183,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 182,\n columnNumber: 5\n }, this);\n}\n\n_c8 = LinkItem;\n\nfunction ModalMenu() {\n var providers = getProviders();\n var items = [];\n var isChecked = localStorage.getItem(\"contenttype\");\n console.log(localStorage.getItem(\"contenttype\"));\n\n for (var i = 0; i < providers.providers.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(Provider, {\n provider: providers.providers[i]\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 195,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"modal\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n children: [/*#__PURE__*/_jsxDEV(\"header\", {\n id: \"modal-header\",\n children: [/*#__PURE__*/_jsxDEV(\"h1\", {\n children: \"Options\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 205,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n href: \"#\",\n title: \"Close\",\n className: \"modal-close\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-close\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 207,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 206,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 204,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"h2\", {\n children: \"Color themes\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 211,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"modal-theme\",\n children: [/*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"blackboard\",\n className: \"theme-button theme-blackboard\",\n onClick: updateTheme,\n children: \"Blackboard\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 214,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"gazette\",\n className: \"theme-button theme-gazette\",\n onClick: updateTheme,\n children: \"Gazette\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 215,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"espresso\",\n className: \"theme-button theme-espresso\",\n onClick: updateTheme,\n children: \"Espresso\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 216,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cab\",\n className: \"theme-button theme-cab\",\n onClick: updateTheme,\n children: \"Cab\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 217,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cloud\",\n className: \"theme-button theme-cloud\",\n onClick: updateTheme,\n children: \"Cloud\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 218,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"lime\",\n className: \"theme-button theme-lime\",\n onClick: updateTheme,\n children: \"Lime\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 219,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"passion\",\n className: \"theme-button theme-passion\",\n onClick: updateTheme,\n children: \"Passion\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 220,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"blues\",\n className: \"theme-button theme-blues\",\n onClick: updateTheme,\n children: \"Blues\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 221,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"chalk\",\n className: \"theme-button theme-chalk\",\n onClick: updateTheme,\n children: \"Chalk\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 222,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"tron\",\n className: \"theme-button theme-tron\",\n onClick: updateTheme,\n children: \"Tron\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 223,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"paper\",\n className: \"theme-button theme-paper\",\n onClick: updateTheme,\n children: \"Paper\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 224,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cyberpunk\",\n className: \"theme-button theme-cyberpunk\",\n onClick: updateTheme,\n children: \"Cyberpunk\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 225,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"quadra\",\n className: \"theme-button theme-panam\",\n onClick: updateTheme,\n children: \"Quadra\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 226,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"panam\",\n className: \"theme-button theme-panam\",\n onClick: updateTheme,\n children: \"Panam\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 227,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"touch\",\n className: \"theme-button theme-touch\",\n onClick: updateTheme,\n children: \"Touch\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 228,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"peek\",\n className: \"theme-button theme-peek\",\n onClick: updateTheme,\n children: \"Peek\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 229,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 213,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"h2\", {\n children: \"Search options\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 233,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"providers\",\n children: /*#__PURE__*/_jsxDEV(\"table\", {\n children: /*#__PURE__*/_jsxDEV(\"tbody\", {\n children: [/*#__PURE__*/_jsxDEV(\"tr\", {\n children: [/*#__PURE__*/_jsxDEV(\"th\", {\n children: \"Website\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 238,\n columnNumber: 19\n }, this), /*#__PURE__*/_jsxDEV(\"th\", {\n children: \"Prefix\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 239,\n columnNumber: 19\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 237,\n columnNumber: 17\n }, this), items]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 236,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 235,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 234,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"header\", {\n id: \"modal-footer\",\n children: [/*#__PURE__*/_jsxDEV(\"a\", {\n href: \"https://github.com/jeroenpardon/\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-github-box\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 247,\n columnNumber: 54\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 247,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n href: \"https://materialdesignicons.com/\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-material-design\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 248,\n columnNumber: 54\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 248,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(HideButton, {\n checked: isChecked\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 249,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 246,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 203,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 202,\n columnNumber: 5\n }, this);\n}\n\n_c9 = ModalMenu;\n\nfunction HideButton(props) {\n console.log(props.checked);\n return /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"sneaky\",\n children: [/*#__PURE__*/_jsxDEV(\"input\", {\n type: \"checkbox\",\n id: \"contenttype\",\n onChange: udpateDisplayedItems,\n defaultChecked: props.checked\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 261,\n columnNumber: 29\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n for: \"contenttype\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-domino-mask\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 262,\n columnNumber: 30\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 262,\n columnNumber: 5\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 261,\n columnNumber: 5\n }, this);\n}\n\n_c10 = HideButton;\n\nfunction Provider(props) {\n return /*#__PURE__*/_jsxDEV(\"tr\", {\n children: [/*#__PURE__*/_jsxDEV(\"td\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: props.provider.url,\n children: props.provider.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 269,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 269,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"td\", {\n children: props.provider.prefix\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 270,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 268,\n columnNumber: 5\n }, this);\n}\n\n_c11 = Provider;\n\nfunction ModalInit() {\n setDisplayedItems();\n return /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"modal_init\",\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n className: \"btn\",\n href: \"#modal\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify icon\",\n \"data-icon\": \"mdi-xbox-controller-menu\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 280,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 279,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 278,\n columnNumber: 5\n }, this);\n}\n\n_c12 = ModalInit;\nReactDOM.render( /*#__PURE__*/_jsxDEV(Homepage, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 287,\n columnNumber: 3\n}, this), document.getElementById('root')); //Functions below this line are for calculating data for\n//other functions\n\nfunction date() {\n let currentDate = new Date();\n let dateOptions = {\n weekday: \"long\",\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\"\n };\n let date = currentDate.toLocaleDateString(\"en-GB\", dateOptions);\n return date;\n}\n\nfunction fixDigits(k) {\n if (k < 10) {\n return \"0\" + k;\n } else {\n return k;\n }\n}\n\nfunction greet() {\n let currentTime = new Date();\n let greet = Math.floor(currentTime.getHours() / 6);\n let easterEggChance = Math.floor(Math.random() * 100);\n\n let greetings = require('./messages.json');\n\n let timeBased = [];\n let easterEggs = [];\n\n for (var i = 0; i < greetings.messages.length; i++) {\n if (greetings.messages[i].easteregg === \"FALSE\") {\n timeBased = timeBased.concat(greetings.messages[i]);\n } else {\n easterEggs = easterEggs.concat(greetings.messages[i]);\n }\n }\n\n if (easterEggChance > 10) {\n return timeBased[greet].message;\n } else {\n let easterEggText = Math.floor(Math.random() * easterEggs.length);\n return easterEggs[easterEggText].message;\n }\n}\n\nfunction Clock() {\n _s();\n\n const [date, setDate] = useState(new Date());\n\n function refreshClock() {\n setDate(new Date());\n }\n\n useEffect(() => {\n const timerId = setInterval(refreshClock, 1000);\n return function cleanup() {\n clearInterval(timerId);\n };\n }, []);\n var hour = date.getHours();\n var minutes = date.getMinutes(); //var seconds = date.getSeconds();\n\n var midday = \"AM\";\n midday = hour >= 12 ? \"PM\" : \"AM\";\n hour = hour === 0 ? 12 : hour > 12 ? hour - 12 : hour;\n minutes = fixDigits(minutes); //seconds = fixDigits(seconds);\n\n let time = hour + \":\" + minutes + \" \" + midday;\n return /*#__PURE__*/_jsxDEV(\"h2\", {\n id: \"clock\",\n children: time\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 358,\n columnNumber: 5\n }, this);\n}\n\n_s(Clock, \"Gqi45WOZhU2c0BLYX0HoJeiR0fk=\");\n\n_c13 = Clock;\n\nfunction getApps() {\n let applications = require('./apps.json');\n\n return applications;\n}\n\nfunction getLinks() {\n let links = require('./links.json');\n\n return links;\n}\n\nfunction getProviders() {\n let providers = require('./providers.json');\n\n return providers;\n}\n\nfunction getThemes() {\n let themes = require('./themes.json');\n\n return themes;\n}\n\nfunction updateTheme(e) {\n var themes = getThemes();\n var themeName = e.target.innerHTML.toLowerCase();\n var index = themes.themes.findIndex(function (item, i) {\n return item.name === themeName;\n });\n localStorage.setItem(\"image-background\", themes.themes[index].imagebackground);\n localStorage.setItem(\"color-background\", themes.themes[index].colorbackground);\n localStorage.setItem(\"color-search-background\", themes.themes[index].colorserachbackground);\n localStorage.setItem(\"color-text-pri\", themes.themes[index].colortextpri);\n localStorage.setItem(\"color-text-acc\", themes.themes[index].colortextacc);\n localStorage.setItem(\"color-border\", themes.themes[index].colorborder); //document.documentElement.style.setProperty(prop, `var(--${themeName}${prop.substring(10)})`);\n\n setTheme();\n}\n\nfunction setTheme() {\n setValueFromLocalStorage('image-background');\n setValueFromLocalStorage('color-background');\n setValueFromLocalStorage('color-search-background');\n setValueFromLocalStorage('color-text-pri');\n setValueFromLocalStorage('color-text-acc');\n setValueFromLocalStorage('color-border');\n setValueFromLocalStorage('content-display');\n}\n\nfunction handleKeyPress(e) {\n var sindex = 0;\n var cycle = false;\n var key = e.keyCode || e.which;\n var text = e.target.value.replaceAll(\"+\", \"%2B\");\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n\n if (key == 13) {\n // Search functions\n search(text);\n }\n\n if (key == 9) {\n // Tab Completion Functions\n e.preventDefault();\n e.stopPropagation();\n\n if (text[0] === ';') {\n switch (option) {\n case 't':\n var streamers = ['admiralbahroo', 'moonmoon_ow', 'witwix'];\n\n if (!subtext || cycle) {\n cycle = true;\n if (sindex > streamers.length - 1) sindex = 0;\n document.getElementById(\"keywords\").value = ';t ' + streamers[sindex++];\n return;\n }\n\n for (var streamer of streamers) {\n if (subtext === streamer.substr(0, subtext.length)) {\n document.getElementById(\"keywords\").value = ';t ' + streamer;\n return;\n }\n }\n\n break;\n }\n }\n }\n\n if (key == 32) {\n //Space to go to search\n updateLabel(text);\n }\n\n sindex = 0;\n cycle = false;\n updateLabel(text);\n}\n\nfunction updateLabel(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n\n if (text[0] === '/') {\n // if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n document.getElementById(\"searchType\").innerHTML = \"Allmusic search\";\n break;\n\n case \"d\":\n document.getElementById(\"searchType\").innerHTML = \"Duck Duck Go search\";\n break;\n\n case \"di\":\n document.getElementById(\"searchType\").innerHTML = \"Discogs search\";\n break;\n\n case \"i\":\n document.getElementById(\"searchType\").innerHTML = \"IMDB search\";\n break;\n\n case \"m\":\n document.getElementById(\"searchType\").innerHTML = \"TheMovieDB search\";\n break;\n\n case \"r\":\n document.getElementById(\"searchType\").innerHTML = \"Reddit search\";\n break;\n\n case \"q\":\n document.getElementById(\"searchType\").innerHTML = \"Qwant search\";\n break;\n\n case \"so\":\n document.getElementById(\"searchType\").innerHTML = \"Soundcloud search\";\n break;\n\n case \"s\":\n document.getElementById(\"searchType\").innerHTML = \"Spotify search\";\n break;\n\n case \"tv\":\n document.getElementById(\"searchType\").innerHTML = \"TheTVDB search\";\n break;\n\n case \"t\":\n document.getElementById(\"searchType\").innerHTML = \"Trakt search\";\n break;\n\n case \"y\":\n document.getElementById(\"searchType\").innerHTML = \"YouTube search\";\n break;\n\n case \"w\":\n document.getElementById(\"searchType\").innerHTML = \"Wikipedia search\";\n break;\n\n case \"p\":\n document.getElementById(\"searchType\").innerHTML = \"Plex search\";\n break;\n\n case \"rt\":\n document.getElementById(\"searchType\").innerHTML = \"Rotten Tomatoes search\";\n break;\n\n default:\n document.getElementById(\"searchType\").innerHTML = \"Invalid search\";\n break;\n }\n } else {\n document.getElementById(\"searchType\").innerHTML = \"Google search\";\n }\n}\n\nfunction search(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n\n if (text[0] === '/') {\n if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n window.location = \"https://www.allmusic.com/search/all/\" + subtext;\n break;\n\n case \"d\":\n window.location = \"https://duckduckgo.com/?q=\" + subtext;\n break;\n\n case \"di\":\n window.location = \"https://www.discogs.com/search/?q=\" + subtext;\n break;\n\n case \"i\":\n window.location = \"https://www.imdb.com/find?q=\" + subtext;\n break;\n\n case \"m\":\n window.location = \"https://www.themoviedb.org/search?query=\" + subtext;\n break;\n\n case \"r\":\n window.location = \"https://www.reddit.com/search?q=\" + subtext;\n break;\n\n case \"q\":\n window.location = \"https://www.qwant.com/?q=\" + subtext;\n break;\n\n case \"so\":\n window.location = \"https://soundcloud.com/search?q=\" + subtext;\n break;\n\n case \"s\":\n window.location = \"https://open.spotify.com/search/results/\" + subtext;\n break;\n\n case \"t\":\n window.location = \"https://trakt.tv/search?query=\" + subtext;\n break;\n\n case \"tv\":\n window.location = \"https://www.thetvdb.com/search?query=\" + subtext;\n break;\n\n case \"y\":\n window.location = \"https://www.youtube.com/results?search_query=\" + subtext;\n break;\n\n case \"w\":\n window.location = \"https://en.wikipedia.org/w/index.php?search=\" + subtext;\n break;\n\n case \"p\":\n window.location = \"https://app.plex.tv/desktop/#!/search?query=\" + subtext;\n break;\n\n case \"rt\":\n window.location = \"https://www.rottentomatoes.com/search?search=\" + subtext;\n break;\n }\n } else {\n var option = text.substr(1);\n\n switch (option) {\n case \"d\":\n window.location = \"https://www.duckduckgo.com\";\n break;\n\n case \"y\":\n window.location = \"https://www.youtube.com\";\n break;\n\n case \"r\":\n window.location = \"https://reddit.com\";\n break;\n\n case \"s\":\n window.location = \"https://open.spotify.com\";\n break;\n }\n }\n } else if (validURL(text)) {\n if (containsProtocol(text)) window.location = text;else window.location = \"https://\" + text;\n } else {\n window.location = \"https://www.google.com/search?q=\" + text;\n }\n}\n\nfunction validURL(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/)?' + // protocol\n '((([a-z\\\\d]([a-z\\\\d-]*[a-z\\\\d])*)\\\\.)+[a-z]{2,}|' + // domain name\n '((\\\\d{1,3}\\\\.){3}\\\\d{1,3}))' + // OR ip (v4) address\n '(\\\\:\\\\d+)?(\\\\/[-a-z\\\\d%_.~+]*)*' + // port and path\n '(\\\\?[;&a-z\\\\d%_.~+=-]*)?' + // query string\n '(\\\\#[-a-z\\\\d_]*)?$', 'i'); // fragment locator\n\n return !!pattern.test(str);\n}\n\nfunction containsProtocol(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/){1}.*', 'i');\n return !!pattern.test(str);\n}\n\nString.prototype.replaceAll = function (search, replacement) {\n var target = this;\n return target.split(search).join(replacement);\n};\n\nfunction udpateDisplayedItems(e) {\n localStorage.setItem('contenttype', e.target.checked);\n\n if (e.target.checked) {\n localStorage.setItem('content-display', 'none');\n } else {\n localStorage.setItem('content-display', 'block');\n }\n\n setDisplayedItems();\n}\n\nfunction setDisplayedItems() {\n setValueFromLocalStorage('contenttype');\n setValueFromLocalStorage('content-display');\n}\n\nvar _c, _c2, _c3, _c4, _c5, _c6, _c7, _c8, _c9, _c10, _c11, _c12, _c13;\n\n$RefreshReg$(_c, \"Homepage\");\n$RefreshReg$(_c2, \"Search\");\n$RefreshReg$(_c3, \"Header\");\n$RefreshReg$(_c4, \"Applications\");\n$RefreshReg$(_c5, \"App\");\n$RefreshReg$(_c6, \"Bookmarks\");\n$RefreshReg$(_c7, \"LinkGroups\");\n$RefreshReg$(_c8, \"LinkItem\");\n$RefreshReg$(_c9, \"ModalMenu\");\n$RefreshReg$(_c10, \"HideButton\");\n$RefreshReg$(_c11, \"Provider\");\n$RefreshReg$(_c12, \"ModalInit\");\n$RefreshReg$(_c13, \"Clock\");","map":{"version":3,"sources":["/home/seanedmunds/dev/home-page/src/index.js"],"names":["React","useState","useEffect","ReactDOM","setValueFromLocalStorage","property","value","localStorage","getItem","setValue","document","documentElement","style","setProperty","input","querySelector","replace","Homepage","setTheme","date","greet","Search","handleKeyPress","Header","props","Applications","appList","getApps","items","i","apps","length","safe","NSFW","NSFWEnabled","push","name","url","icon","App","classNameType","hrefUrl","iconName","Bookmarks","bookmarkList","getLinks","bookmarks","category","links","LinkGroups","LinkItem","link","ModalMenu","providers","getProviders","isChecked","console","log","updateTheme","HideButton","checked","udpateDisplayedItems","Provider","provider","prefix","ModalInit","setDisplayedItems","render","getElementById","currentDate","Date","dateOptions","weekday","year","month","day","toLocaleDateString","fixDigits","k","currentTime","Math","floor","getHours","easterEggChance","random","greetings","require","timeBased","easterEggs","messages","easteregg","concat","message","easterEggText","Clock","setDate","refreshClock","timerId","setInterval","cleanup","clearInterval","hour","minutes","getMinutes","midday","time","applications","getThemes","themes","e","themeName","target","innerHTML","toLowerCase","index","findIndex","item","setItem","imagebackground","colorbackground","colorserachbackground","colortextpri","colortextacc","colorborder","sindex","cycle","key","keyCode","which","text","replaceAll","option","substr","indexOf","subtext","search","preventDefault","stopPropagation","streamers","streamer","updateLabel","window","location","validURL","containsProtocol","str","pattern","RegExp","test","String","prototype","replacement","split","join"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { useState, useEffect } from 'react';\nimport ReactDOM from 'react-dom';\nimport './index.css';\n\nconst setValueFromLocalStorage = property => {\n let value = localStorage.getItem(property);\n setValue(property, value);\n};\nconst setValue = (property, value) => {\n if (value) {\n document.documentElement.style.setProperty(`--${property}`, value);\n\n const input = document.querySelector(`#${property}`);\n if (input) {\n value = value.replace('px', '');\n input.value = value;\n }\n }\n};\n\nfunction Homepage() {\n setTheme();\n \n return (\n \n \n \n
\n \n \n
\n \n \n \n
\n \n \n
\n \n \n
\n \n );\n}\n\nfunction Search() {\n return (\n \n )\n}\n\nfunction Header(props) {\n return (\n \n );\n}\n\nfunction Applications() {\n let appList = getApps();\n var items = [];\n for (var i = 0; i < appList.apps.length; i++) {\n var safe = appList.apps[i].NSFW;\n var NSFWEnabled = localStorage.getItem(\"contenttype\");\n if (safe === \"SAFE\") {\n items.push(\n \n );\n } else if (safe === \"NSFW\" && NSFWEnabled) {\n items.push(\n \n );\n } else {\n \n }\n \n }\n return (\n \n Applications
\n \n {items}\n
\n \n );\n}\n\nfunction App(props) {\n \n let classNameType = props.NSFW + \"-content\";\n let hrefUrl = \"https://\" + props.url;\n let iconName = \"mdi-\" + props.icon;\n return (\n \n );\n}\n\nfunction Bookmarks() {\n let bookmarkList = getLinks();\n var items = [];\n for (var i = 0; i < bookmarkList.bookmarks.length; i++) {\n items.push(\n \n );\n }\n return (\n \n Bookmarks
\n \n {items}\n
\n \n );\n}\n\nfunction LinkGroups(props) {\n var items = [];\n for (var i = 0; i < props.links.length; i++) {\n items.push(\n \n );\n }\n return (\n \n
{props.category}
\n {items}\n \n );\n}\n\nfunction LinkItem(props) {\n return (\n \n );\n}\n\nfunction ModalMenu() {\n var providers = getProviders();\n var items = [];\n var isChecked = localStorage.getItem(\"contenttype\");\n console.log(localStorage.getItem(\"contenttype\"));\n for (var i = 0; i < providers.providers.length; i++) {\n items.push(\n \n );\n }\n return (\n \n \n \n\n
Color themes
\n\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n\n\n
Search options
\n
\n \n \n \n | Website | \n Prefix | \n
\n {items}\n \n
\n \n\n \n
\n \n );\n}\n\nfunction HideButton(props) {\n console.log(props.checked);\n return (\n \n
\n );\n}\n\nfunction Provider(props) {\n return (\n \n | {props.provider.name} | \n {props.provider.prefix} | \n
\n );\n}\n\nfunction ModalInit() {\n setDisplayedItems();\n return (\n \n );\n}\n\nReactDOM.render(\n ,\n document.getElementById('root')\n);\n\n//Functions below this line are for calculating data for\n//other functions\n\nfunction date() {\n let currentDate = new Date();\n let dateOptions = {\n weekday: \"long\",\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\"\n };\n let date = currentDate.toLocaleDateString(\"en-GB\", dateOptions);\n return date;\n}\nfunction fixDigits(k) {\n if (k < 10) {\n return \"0\" + k;\n }\n else {\n return k;\n }\n}\nfunction greet() {\n let currentTime = new Date();\n let greet = Math.floor(currentTime.getHours() / 6);\n let easterEggChance = Math.floor(Math.random() * 100);\n let greetings = require('./messages.json');\n let timeBased = [];\n let easterEggs = [];\n for (var i = 0; i < greetings.messages.length; i++) {\n if (greetings.messages[i].easteregg === \"FALSE\") {\n timeBased = timeBased.concat(greetings.messages[i]);\n } else {\n easterEggs = easterEggs.concat(greetings.messages[i]);\n }\n }\n if (easterEggChance > 10) {\n return timeBased[greet].message;\n } else {\n let easterEggText = Math.floor(Math.random() * easterEggs.length);\n return easterEggs[easterEggText].message;\n }\n}\nfunction Clock() {\n const [date, setDate] = useState(new Date());\n\n function refreshClock() {\n setDate(new Date());\n }\n useEffect(() => {\n const timerId = setInterval(refreshClock, 1000);\n return function cleanup() {\n clearInterval(timerId);\n };\n }, []);\n\n var hour = date.getHours();\n var minutes = date.getMinutes();\n //var seconds = date.getSeconds();\n var midday = \"AM\";\n midday = (hour >= 12) ? \"PM\" : \"AM\";\n hour = (hour === 0) ? 12 : ((hour > 12) ? (hour - 12) : hour);\n minutes = fixDigits(minutes);\n //seconds = fixDigits(seconds);\n let time = hour + \":\" + minutes + \" \" + midday;\n\n return (\n {time}
\n\n );\n}\nfunction getApps() {\n let applications = require('./apps.json');\n return applications;\n}\nfunction getLinks() {\n let links = require('./links.json');\n return links;\n}\nfunction getProviders() {\n let providers = require('./providers.json');\n return providers;\n}\nfunction getThemes() {\n let themes = require('./themes.json');\n return themes;\n}\nfunction updateTheme(e) {\n var themes = getThemes();\n var themeName = e.target.innerHTML.toLowerCase();\n var index = themes.themes.findIndex(function(item, i){\n return item.name === themeName;\n });\n localStorage.setItem(\"image-background\", themes.themes[index].imagebackground);\n localStorage.setItem(\"color-background\", themes.themes[index].colorbackground);\n localStorage.setItem(\"color-search-background\", themes.themes[index].colorserachbackground);\n localStorage.setItem(\"color-text-pri\",themes.themes[index].colortextpri);\n localStorage.setItem(\"color-text-acc\", themes.themes[index].colortextacc);\n localStorage.setItem(\"color-border\", themes.themes[index].colorborder);\n \n //document.documentElement.style.setProperty(prop, `var(--${themeName}${prop.substring(10)})`);\n setTheme();\n}\nfunction setTheme() {\n setValueFromLocalStorage('image-background');\n setValueFromLocalStorage('color-background');\n setValueFromLocalStorage('color-search-background');\n setValueFromLocalStorage('color-text-pri');\n setValueFromLocalStorage('color-text-acc');\n setValueFromLocalStorage('color-border');\n setValueFromLocalStorage('content-display');\n}\nfunction handleKeyPress(e) {\n var sindex = 0;\n var cycle = false;\n var key = e.keyCode || e.which;\n var text = e.target.value.replaceAll(\"+\", \"%2B\");\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n if (key == 13) { // Search functions\n search(text);\n }\n if (key == 9) { // Tab Completion Functions\n e.preventDefault();\n e.stopPropagation();\n if (text[0] === ';') {\n switch (option) {\n case 't':\n var streamers = ['admiralbahroo', 'moonmoon_ow', 'witwix'];\n if (!subtext || cycle) {\n cycle = true;\n if (sindex > streamers.length - 1) sindex = 0;\n document.getElementById(\"keywords\").value = ';t ' + streamers[sindex++];\n return;\n }\n for (var streamer of streamers) {\n if (subtext === streamer.substr(0, subtext.length)) {\n document.getElementById(\"keywords\").value = ';t ' + streamer;\n return;\n }\n }\n break;\n }\n }\n }\n if(key == 32){ //Space to go to search\nupdateLabel(text);\n }\n sindex = 0;\n cycle = false;\n updateLabel(text);\n}\nfunction updateLabel(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n if (text[0] === '/') {\n// if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n document.getElementById(\"searchType\").innerHTML = \"Allmusic search\";\n break;\n case \"d\":\n document.getElementById(\"searchType\").innerHTML = \"Duck Duck Go search\";\n break;\n case \"di\":\n document.getElementById(\"searchType\").innerHTML = \"Discogs search\";\n break;\n case \"i\":\n document.getElementById(\"searchType\").innerHTML = \"IMDB search\";\n break;\n case \"m\":\n document.getElementById(\"searchType\").innerHTML = \"TheMovieDB search\";\n break;\n case \"r\":\n document.getElementById(\"searchType\").innerHTML = \"Reddit search\";\n break;\n case \"q\":\n document.getElementById(\"searchType\").innerHTML = \"Qwant search\";\n break;\n case \"so\":\n document.getElementById(\"searchType\").innerHTML = \"Soundcloud search\";\n break;\n case \"s\":\n document.getElementById(\"searchType\").innerHTML = \"Spotify search\";\n break;\n case \"tv\":\n document.getElementById(\"searchType\").innerHTML = \"TheTVDB search\";\n break;\n case \"t\":\n document.getElementById(\"searchType\").innerHTML = \"Trakt search\";\n break;\n case \"y\":\n document.getElementById(\"searchType\").innerHTML = \"YouTube search\";\n break;\n case \"w\":\n document.getElementById(\"searchType\").innerHTML = \"Wikipedia search\";\n break;\n case \"p\":\n document.getElementById(\"searchType\").innerHTML = \"Plex search\";\n break;\n case \"rt\":\n document.getElementById(\"searchType\").innerHTML = \"Rotten Tomatoes search\";\n break;\n default:\n document.getElementById(\"searchType\").innerHTML = \"Invalid search\";\n break;\n }\n}else {\n document.getElementById(\"searchType\").innerHTML = \"Google search\";\n }\n}\nfunction search(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n if (text[0] === '/') {\n if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n window.location = \"https://www.allmusic.com/search/all/\" + subtext;\n break;\n case \"d\":\n window.location = \"https://duckduckgo.com/?q=\" + subtext;\n break;\n case \"di\":\n window.location = \"https://www.discogs.com/search/?q=\" + subtext;\n break;\n case \"i\":\n window.location = \"https://www.imdb.com/find?q=\" + subtext;\n break;\n case \"m\":\n window.location = \"https://www.themoviedb.org/search?query=\" + subtext;\n break;\n case \"r\":\n window.location = \"https://www.reddit.com/search?q=\" + subtext;\n break;\n case \"q\":\n window.location = \"https://www.qwant.com/?q=\" + subtext;\n break;\n case \"so\":\n window.location = \"https://soundcloud.com/search?q=\" + subtext;\n break;\n case \"s\":\n window.location = \"https://open.spotify.com/search/results/\" + subtext;\n break;\n case \"t\":\n window.location = \"https://trakt.tv/search?query=\" + subtext;\n break;\n case \"tv\":\n window.location = \"https://www.thetvdb.com/search?query=\" + subtext;\n break;\n case \"y\":\n window.location = \"https://www.youtube.com/results?search_query=\" + subtext;\n break;\n case \"w\":\n window.location = \"https://en.wikipedia.org/w/index.php?search=\" + subtext;\n break;\n case \"p\":\n window.location = \"https://app.plex.tv/desktop/#!/search?query=\" + subtext;\n break;\n case \"rt\":\n window.location = \"https://www.rottentomatoes.com/search?search=\" + subtext;\n break;\n }\n } else {\n var option = text.substr(1);\n switch (option) {\n case \"d\":\n window.location = \"https://www.duckduckgo.com\";\n break;\n case \"y\":\n window.location = \"https://www.youtube.com\";\n break;\n case \"r\":\n window.location = \"https://reddit.com\";\n break;\n case \"s\":\n window.location = \"https://open.spotify.com\";\n break;\n }\n }\n } else if (validURL(text)) {\n if (containsProtocol(text))\n window.location = text;\n else\n window.location = \"https://\" + text;\n } else {\n window.location = \"https://www.google.com/search?q=\" + text;\n }\n}\nfunction validURL(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/)?' + // protocol\n '((([a-z\\\\d]([a-z\\\\d-]*[a-z\\\\d])*)\\\\.)+[a-z]{2,}|' + // domain name\n '((\\\\d{1,3}\\\\.){3}\\\\d{1,3}))' + // OR ip (v4) address\n '(\\\\:\\\\d+)?(\\\\/[-a-z\\\\d%_.~+]*)*' + // port and path\n '(\\\\?[;&a-z\\\\d%_.~+=-]*)?' + // query string\n '(\\\\#[-a-z\\\\d_]*)?$', 'i'); // fragment locator\n return !!pattern.test(str);\n}\nfunction containsProtocol(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/){1}.*', 'i');\n return !!pattern.test(str);\n}\nString.prototype.replaceAll = function(search, replacement) {\n var target = this;\n return target.split(search).join(replacement);\n};\nfunction udpateDisplayedItems(e) {\n localStorage.setItem('contenttype', e.target.checked);\n if (e.target.checked) {\n localStorage.setItem('content-display', 'none');\n } else {\n localStorage.setItem('content-display', 'block');\n }\n setDisplayedItems();\n}\nfunction setDisplayedItems() {\n setValueFromLocalStorage('contenttype');\n setValueFromLocalStorage('content-display');\n}"]},"metadata":{},"sourceType":"module"}
\ No newline at end of file
diff --git a/node_modules/.cache/babel-loader/688ea99c12aad29a40c35c930a624e8b.json b/node_modules/.cache/babel-loader/688ea99c12aad29a40c35c930a624e8b.json
new file mode 100644
index 00000000..ac726895
--- /dev/null
+++ b/node_modules/.cache/babel-loader/688ea99c12aad29a40c35c930a624e8b.json
@@ -0,0 +1 @@
+{"ast":null,"code":"var _jsxFileName = \"/home/seanedmunds/dev/home-page/src/index.js\",\n _s = $RefreshSig$();\n\nimport React from 'react';\nimport { useState, useEffect } from 'react';\nimport ReactDOM from 'react-dom'; //import { unstable_createPortal } from 'react-dom';\n\nimport './index.css';\nimport { jsxDEV as _jsxDEV } from \"react/jsx-dev-runtime\";\n\nfunction Homepage() {\n return /*#__PURE__*/_jsxDEV(\"main\", {\n id: \"container\",\n className: \"fade\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Search, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 11,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 10,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Header, {\n date: date(),\n greet: greet()\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 14,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 13,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Applications, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 20,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 19,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Bookmarks, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 23,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 22,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(ModalMenu, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 26,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 25,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(ModalInit, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 29,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 28,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 9,\n columnNumber: 5\n }, this);\n}\n\n_c = Homepage;\n\nfunction Search() {\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"search\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"abackground\",\n children: [/*#__PURE__*/_jsxDEV(\"input\", {\n name: \"keywords\",\n type: \"text\",\n className: \"keyword\",\n id: \"keywords\",\n size: \"50\",\n spellCheck: \"true\",\n placeholder: \"\"\n /*onFocus={this.placeholder = \"\"} onBlur={this.placeholder = ''}*/\n ,\n autoComplete: \"off\",\n autoFocus: true,\n onKeyUp: handleKeyPress\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 39,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n id: \"searchType\",\n className: \"Input-label\",\n children: \"Google search\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 40,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 38,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 37,\n columnNumber: 5\n }, this);\n}\n\n_c2 = Search;\n\nfunction Header(props) {\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"header\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n id: \"greeting_block\",\n children: /*#__PURE__*/_jsxDEV(\"h1\", {\n id: \"header_greet\",\n children: props.greet\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 50,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 49,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"date_block\",\n children: [/*#__PURE__*/_jsxDEV(\"h2\", {\n id: \"header_date\",\n children: props.date\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 53,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(Clock, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 54,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 52,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 48,\n columnNumber: 5\n }, this);\n}\n\n_c3 = Header;\n\nfunction Applications() {\n let appList = getApps();\n var items = [];\n\n for (var i = 0; i < appList.apps.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(App, {\n name: appList.apps[i].name,\n url: appList.apps[i].url,\n icon: appList.apps[i].icon,\n NSFW: appList.apps[i].NSFW\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 65,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"apps\",\n children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n children: \"Applications\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 76,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"apps_loop\",\n children: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 77,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 75,\n columnNumber: 5\n }, this);\n}\n\n_c4 = Applications;\n\nfunction App(props) {\n let classNameType = props.NSFW + \"-content\";\n let hrefUrl = \"https://\" + props.url;\n let iconName = \"mdi-\" + props.icon;\n return /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: hrefUrl,\n className: classNameType,\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_item\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_icon\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify icon\",\n \"data-icon\": iconName\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 93,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 92,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_text\",\n children: [/*#__PURE__*/_jsxDEV(\"span\", {\n id: \"app-name\",\n children: props.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 96,\n columnNumber: 13\n }, this), /*#__PURE__*/_jsxDEV(\"span\", {\n id: \"app-address\",\n children: props.url\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 97,\n columnNumber: 13\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 95,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 91,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 90,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 89,\n columnNumber: 5\n }, this);\n}\n\n_c5 = App;\n\nfunction Bookmarks() {\n let bookmarkList = getLinks();\n var items = [];\n\n for (var i = 0; i < bookmarkList.bookmarks.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(LinkGroups, {\n category: bookmarkList.bookmarks[i].category,\n links: bookmarkList.bookmarks[i].links\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 110,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"links\",\n children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n children: \"Bookmarks\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 119,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"links_loop\",\n children: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 120,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 118,\n columnNumber: 5\n }, this);\n}\n\n_c6 = Bookmarks;\n\nfunction LinkGroups(props) {\n var items = [];\n\n for (var i = 0; i < props.links.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(LinkItem, {\n link: props.links[i]\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 131,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"links_item\",\n children: [/*#__PURE__*/_jsxDEV(\"h4\", {\n children: props.category\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 139,\n columnNumber: 7\n }, this), items]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 138,\n columnNumber: 5\n }, this);\n}\n\n_c7 = LinkGroups;\n\nfunction LinkItem(props) {\n return /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: props.link.url,\n className: \"theme_color-border theme_text-select\",\n children: props.link.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 148,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 147,\n columnNumber: 5\n }, this);\n}\n\n_c8 = LinkItem;\n\nfunction ModalMenu() {\n var providers = getProviders();\n var items = [];\n\n for (var i = 0; i < providers.providers.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(Provider, {\n provider: providers.providers[i]\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 158,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"modal\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n children: [/*#__PURE__*/_jsxDEV(\"header\", {\n id: \"modal-header\",\n children: [/*#__PURE__*/_jsxDEV(\"h1\", {\n children: \"Options\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 168,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n href: \"#\",\n title: \"Close\",\n className: \"modal-close\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-close\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 170,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 169,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 167,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"h2\", {\n children: \"Color themes\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 174,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"modal-theme\",\n children: [/*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"blackboard\",\n className: \"theme-button theme-blackboard\",\n onClick: updateTheme,\n children: \"Blackboard\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 177,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"gazette\",\n className: \"theme-button theme-gazette\",\n children: \"Gazette\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 178,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"espresso\",\n className: \"theme-button theme-espresso\",\n children: \"Espresso\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 179,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cab\",\n className: \"theme-button theme-cab\",\n children: \"Cab\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 180,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cloud\",\n className: \"theme-button theme-cloud\",\n children: \"Cloud\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 181,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"lime\",\n className: \"theme-button theme-lime\",\n children: \"Lime\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 182,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"passion\",\n className: \"theme-button theme-passion\",\n children: \"Passion\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 183,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"blues\",\n className: \"theme-button theme-blues\",\n children: \"Blues\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 184,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"chalk\",\n className: \"theme-button theme-chalk\",\n children: \"Chalk\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 185,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"tron\",\n className: \"theme-button theme-tron\",\n children: \"Tron\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 186,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"paper\",\n className: \"theme-button theme-paper\",\n children: \"Paper\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 187,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cyberpunk\",\n className: \"theme-button theme-cyberpunk\",\n children: \"Cyberpunk\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 188,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"quadra\",\n className: \"theme-button theme-panam\",\n children: \"Quadra\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 189,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"panam\",\n className: \"theme-button theme-panam\",\n children: \"Panam\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 190,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"touch\",\n className: \"theme-button theme-touch\",\n children: \"Touch\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 191,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"peek\",\n className: \"theme-button theme-peek\",\n children: \"Peek\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 192,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 176,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"h2\", {\n children: \"Search options\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 196,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"providers\",\n children: /*#__PURE__*/_jsxDEV(\"table\", {\n children: /*#__PURE__*/_jsxDEV(\"tbody\", {\n children: [/*#__PURE__*/_jsxDEV(\"tr\", {\n children: [/*#__PURE__*/_jsxDEV(\"th\", {\n children: \"Website\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 201,\n columnNumber: 19\n }, this), /*#__PURE__*/_jsxDEV(\"th\", {\n children: \"Prefix\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 202,\n columnNumber: 19\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 200,\n columnNumber: 17\n }, this), items]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 199,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 198,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 197,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"header\", {\n id: \"modal-footer\",\n children: [/*#__PURE__*/_jsxDEV(\"a\", {\n href: \"https://github.com/jeroenpardon/\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-github-box\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 210,\n columnNumber: 54\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 210,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n href: \"https://materialdesignicons.com/\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-material-design\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 211,\n columnNumber: 54\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 211,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"sneaky\",\n children: [/*#__PURE__*/_jsxDEV(\"input\", {\n type: \"checkbox\",\n id: \"contenttype\",\n onChange: \"nsfw(this)\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 212,\n columnNumber: 35\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n for: \"contenttype\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-domino-mask\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 213,\n columnNumber: 36\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 213,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 212,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 209,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 166,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 165,\n columnNumber: 5\n }, this);\n}\n\n_c9 = ModalMenu;\n\nfunction Provider(props) {\n return /*#__PURE__*/_jsxDEV(\"tr\", {\n children: [/*#__PURE__*/_jsxDEV(\"td\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: props.provider.url,\n children: props.provider.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 223,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 223,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"td\", {\n children: props.provider.prefix\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 224,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 222,\n columnNumber: 5\n }, this);\n}\n\n_c10 = Provider;\n\nfunction ModalInit() {\n return /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"modal_init\",\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n className: \"btn\",\n href: \"#modal\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify icon\",\n \"data-icon\": \"mdi-xbox-controller-menu\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 233,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 232,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 231,\n columnNumber: 5\n }, this);\n}\n\n_c11 = ModalInit;\nReactDOM.render( /*#__PURE__*/_jsxDEV(Homepage, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 240,\n columnNumber: 3\n}, this), document.getElementById('root')); //Functions below this line are for calculating data for\n//other functions\n\nfunction date() {\n let currentDate = new Date();\n let dateOptions = {\n weekday: \"long\",\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\"\n };\n let date = currentDate.toLocaleDateString(\"en-GB\", dateOptions);\n return date;\n}\n\nfunction fixDigits(k) {\n if (k < 10) {\n return \"0\" + k;\n } else {\n return k;\n }\n}\n\nfunction greet() {\n let currentTime = new Date();\n let greet = Math.floor(currentTime.getHours() / 6);\n let easterEggChance = Math.floor(Math.random() * 100);\n\n let greetings = require('./messages.json');\n\n let timeBased = [];\n let easterEggs = [];\n\n for (var i = 0; i < greetings.messages.length; i++) {\n if (greetings.messages[i].easteregg === \"FALSE\") {\n timeBased = timeBased.concat(greetings.messages[i]);\n } else {\n easterEggs = easterEggs.concat(greetings.messages[i]);\n }\n }\n\n if (easterEggChance > 10) {\n return timeBased[greet].message;\n } else {\n let easterEggText = Math.floor(Math.random() * easterEggs.length);\n return easterEggs[easterEggText].message;\n }\n}\n\nfunction Clock() {\n _s();\n\n const [date, setDate] = useState(new Date());\n\n function refreshClock() {\n setDate(new Date());\n }\n\n useEffect(() => {\n const timerId = setInterval(refreshClock, 1000);\n return function cleanup() {\n clearInterval(timerId);\n };\n }, []);\n var hour = date.getHours();\n var minutes = date.getMinutes(); //var seconds = date.getSeconds();\n\n var midday = \"AM\";\n midday = hour >= 12 ? \"PM\" : \"AM\";\n hour = hour === 0 ? 12 : hour > 12 ? hour - 12 : hour;\n minutes = fixDigits(minutes); //seconds = fixDigits(seconds);\n\n let time = hour + \":\" + minutes + \" \" + midday;\n return /*#__PURE__*/_jsxDEV(\"h2\", {\n id: \"clock\",\n children: time\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 311,\n columnNumber: 5\n }, this);\n}\n\n_s(Clock, \"Gqi45WOZhU2c0BLYX0HoJeiR0fk=\");\n\n_c12 = Clock;\n\nfunction getApps() {\n let applications = require('./apps.json');\n\n return applications;\n}\n\nfunction getLinks() {\n let links = require('./links.json');\n\n return links;\n}\n\nfunction getProviders() {\n let providers = require('./providers.json');\n\n return providers;\n}\n\nfunction getThemes() {\n let themes = require('./themes.json');\n\n return themes;\n}\n\nfunction updateTheme(e) {\n var themes = getThemes().themes;\n var themeName = e.target.innerHTML.toLowerCase();\n}\n\nfunction handleKeyPress(e) {\n var sindex = 0;\n var cycle = false;\n var key = e.keyCode || e.which;\n var text = e.target.value.replaceAll(\"+\", \"%2B\");\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n\n if (key == 13) {\n // Search functions\n search(text);\n }\n\n if (key == 9) {\n // Tab Completion Functions\n e.preventDefault();\n e.stopPropagation();\n\n if (text[0] === ';') {\n switch (option) {\n case 't':\n var streamers = ['admiralbahroo', 'moonmoon_ow', 'witwix'];\n\n if (!subtext || cycle) {\n cycle = true;\n if (sindex > streamers.length - 1) sindex = 0;\n document.getElementById(\"keywords\").value = ';t ' + streamers[sindex++];\n return;\n }\n\n for (var streamer of streamers) {\n if (subtext === streamer.substr(0, subtext.length)) {\n document.getElementById(\"keywords\").value = ';t ' + streamer;\n return;\n }\n }\n\n break;\n }\n }\n }\n\n if (key == 32) {\n //Space to go to search\n updateLabel(text);\n }\n\n sindex = 0;\n cycle = false;\n updateLabel(text);\n}\n\nfunction updateLabel(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n\n if (text[0] === '/') {\n // if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n document.getElementById(\"searchType\").innerHTML = \"Allmusic search\";\n break;\n\n case \"d\":\n document.getElementById(\"searchType\").innerHTML = \"Duck Duck Go search\";\n break;\n\n case \"di\":\n document.getElementById(\"searchType\").innerHTML = \"Discogs search\";\n break;\n\n case \"i\":\n document.getElementById(\"searchType\").innerHTML = \"IMDB search\";\n break;\n\n case \"m\":\n document.getElementById(\"searchType\").innerHTML = \"TheMovieDB search\";\n break;\n\n case \"r\":\n document.getElementById(\"searchType\").innerHTML = \"Reddit search\";\n break;\n\n case \"q\":\n document.getElementById(\"searchType\").innerHTML = \"Qwant search\";\n break;\n\n case \"so\":\n document.getElementById(\"searchType\").innerHTML = \"Soundcloud search\";\n break;\n\n case \"s\":\n document.getElementById(\"searchType\").innerHTML = \"Spotify search\";\n break;\n\n case \"tv\":\n document.getElementById(\"searchType\").innerHTML = \"TheTVDB search\";\n break;\n\n case \"t\":\n document.getElementById(\"searchType\").innerHTML = \"Trakt search\";\n break;\n\n case \"y\":\n document.getElementById(\"searchType\").innerHTML = \"YouTube search\";\n break;\n\n case \"w\":\n document.getElementById(\"searchType\").innerHTML = \"Wikipedia search\";\n break;\n\n case \"p\":\n document.getElementById(\"searchType\").innerHTML = \"Plex search\";\n break;\n\n case \"rt\":\n document.getElementById(\"searchType\").innerHTML = \"Rotten Tomatoes search\";\n break;\n\n default:\n document.getElementById(\"searchType\").innerHTML = \"Invalid search\";\n break;\n }\n } else {\n document.getElementById(\"searchType\").innerHTML = \"Google search\";\n }\n}\n\nfunction search(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n\n if (text[0] === '/') {\n if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n window.location = \"https://www.allmusic.com/search/all/\" + subtext;\n break;\n\n case \"d\":\n window.location = \"https://duckduckgo.com/?q=\" + subtext;\n break;\n\n case \"di\":\n window.location = \"https://www.discogs.com/search/?q=\" + subtext;\n break;\n\n case \"i\":\n window.location = \"https://www.imdb.com/find?q=\" + subtext;\n break;\n\n case \"m\":\n window.location = \"https://www.themoviedb.org/search?query=\" + subtext;\n break;\n\n case \"r\":\n window.location = \"https://www.reddit.com/search?q=\" + subtext;\n break;\n\n case \"q\":\n window.location = \"https://www.qwant.com/?q=\" + subtext;\n break;\n\n case \"so\":\n window.location = \"https://soundcloud.com/search?q=\" + subtext;\n break;\n\n case \"s\":\n window.location = \"https://open.spotify.com/search/results/\" + subtext;\n break;\n\n case \"t\":\n window.location = \"https://trakt.tv/search?query=\" + subtext;\n break;\n\n case \"tv\":\n window.location = \"https://www.thetvdb.com/search?query=\" + subtext;\n break;\n\n case \"y\":\n window.location = \"https://www.youtube.com/results?search_query=\" + subtext;\n break;\n\n case \"w\":\n window.location = \"https://en.wikipedia.org/w/index.php?search=\" + subtext;\n break;\n\n case \"p\":\n window.location = \"https://app.plex.tv/desktop/#!/search?query=\" + subtext;\n break;\n\n case \"rt\":\n window.location = \"https://www.rottentomatoes.com/search?search=\" + subtext;\n break;\n }\n } else {\n var option = text.substr(1);\n\n switch (option) {\n case \"d\":\n window.location = \"https://www.duckduckgo.com\";\n break;\n\n case \"y\":\n window.location = \"https://www.youtube.com\";\n break;\n\n case \"r\":\n window.location = \"https://reddit.com\";\n break;\n\n case \"s\":\n window.location = \"https://open.spotify.com\";\n break;\n }\n }\n } else if (validURL(text)) {\n if (containsProtocol(text)) window.location = text;else window.location = \"https://\" + text;\n } else {\n window.location = \"https://www.google.com/search?q=\" + text;\n }\n} // Source: https://stackoverflow.com/questions/5717093/check-if-a-javascript-string-is-a-url\n\n\nfunction validURL(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/)?' + // protocol\n '((([a-z\\\\d]([a-z\\\\d-]*[a-z\\\\d])*)\\\\.)+[a-z]{2,}|' + // domain name\n '((\\\\d{1,3}\\\\.){3}\\\\d{1,3}))' + // OR ip (v4) address\n '(\\\\:\\\\d+)?(\\\\/[-a-z\\\\d%_.~+]*)*' + // port and path\n '(\\\\?[;&a-z\\\\d%_.~+=-]*)?' + // query string\n '(\\\\#[-a-z\\\\d_]*)?$', 'i'); // fragment locator\n\n return !!pattern.test(str);\n}\n\nfunction containsProtocol(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/){1}.*', 'i');\n return !!pattern.test(str);\n}\n\nString.prototype.replaceAll = function (search, replacement) {\n var target = this;\n return target.split(search).join(replacement);\n};\n\nvar _c, _c2, _c3, _c4, _c5, _c6, _c7, _c8, _c9, _c10, _c11, _c12;\n\n$RefreshReg$(_c, \"Homepage\");\n$RefreshReg$(_c2, \"Search\");\n$RefreshReg$(_c3, \"Header\");\n$RefreshReg$(_c4, \"Applications\");\n$RefreshReg$(_c5, \"App\");\n$RefreshReg$(_c6, \"Bookmarks\");\n$RefreshReg$(_c7, \"LinkGroups\");\n$RefreshReg$(_c8, \"LinkItem\");\n$RefreshReg$(_c9, \"ModalMenu\");\n$RefreshReg$(_c10, \"Provider\");\n$RefreshReg$(_c11, \"ModalInit\");\n$RefreshReg$(_c12, \"Clock\");","map":{"version":3,"sources":["/home/seanedmunds/dev/home-page/src/index.js"],"names":["React","useState","useEffect","ReactDOM","Homepage","date","greet","Search","handleKeyPress","Header","props","Applications","appList","getApps","items","i","apps","length","push","name","url","icon","NSFW","App","classNameType","hrefUrl","iconName","Bookmarks","bookmarkList","getLinks","bookmarks","category","links","LinkGroups","LinkItem","link","ModalMenu","providers","getProviders","updateTheme","Provider","provider","prefix","ModalInit","render","document","getElementById","currentDate","Date","dateOptions","weekday","year","month","day","toLocaleDateString","fixDigits","k","currentTime","Math","floor","getHours","easterEggChance","random","greetings","require","timeBased","easterEggs","messages","easteregg","concat","message","easterEggText","Clock","setDate","refreshClock","timerId","setInterval","cleanup","clearInterval","hour","minutes","getMinutes","midday","time","applications","getThemes","themes","e","themeName","target","innerHTML","toLowerCase","sindex","cycle","key","keyCode","which","text","value","replaceAll","option","substr","indexOf","subtext","search","preventDefault","stopPropagation","streamers","streamer","updateLabel","window","location","validURL","containsProtocol","str","pattern","RegExp","test","String","prototype","replacement","split","join"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { useState, useEffect } from 'react';\nimport ReactDOM from 'react-dom';\n//import { unstable_createPortal } from 'react-dom';\nimport './index.css';\n\nfunction Homepage() {\n return (\n \n \n \n
\n \n \n
\n \n \n \n
\n \n \n
\n \n \n
\n \n );\n}\n\nfunction Search() {\n return (\n \n )\n}\n\nfunction Header(props) {\n return (\n \n );\n}\n\nfunction Applications() {\n let appList = getApps();\n var items = [];\n for (var i = 0; i < appList.apps.length; i++) {\n items.push(\n \n );\n }\n return (\n \n Applications
\n \n {items}\n
\n \n );\n}\n\nfunction App(props) {\n let classNameType = props.NSFW + \"-content\";\n let hrefUrl = \"https://\" + props.url;\n let iconName = \"mdi-\" + props.icon;\n return (\n \n );\n}\n\nfunction Bookmarks() {\n let bookmarkList = getLinks();\n var items = [];\n for (var i = 0; i < bookmarkList.bookmarks.length; i++) {\n items.push(\n \n );\n }\n return (\n \n Bookmarks
\n \n {items}\n
\n \n );\n}\n\nfunction LinkGroups(props) {\n var items = [];\n for (var i = 0; i < props.links.length; i++) {\n items.push(\n \n );\n }\n return (\n \n
{props.category}
\n {items}\n \n );\n}\n\nfunction LinkItem(props) {\n return (\n \n );\n}\n\nfunction ModalMenu() {\n var providers = getProviders();\n var items = [];\n for (var i = 0; i < providers.providers.length; i++) {\n items.push(\n \n );\n }\n return (\n \n \n \n\n
Color themes
\n\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n\n\n
Search options
\n
\n \n \n \n | Website | \n Prefix | \n
\n {items}\n \n
\n \n\n \n
\n \n );\n}\n\nfunction Provider(props) {\n return (\n \n | {props.provider.name} | \n {props.provider.prefix} | \n
\n );\n}\n\nfunction ModalInit() {\n return (\n \n );\n}\n\nReactDOM.render(\n ,\n document.getElementById('root')\n);\n\n//Functions below this line are for calculating data for\n//other functions\n\nfunction date() {\n let currentDate = new Date();\n let dateOptions = {\n weekday: \"long\",\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\"\n };\n let date = currentDate.toLocaleDateString(\"en-GB\", dateOptions);\n return date;\n}\nfunction fixDigits(k) {\n if (k < 10) {\n return \"0\" + k;\n }\n else {\n return k;\n }\n}\nfunction greet() {\n let currentTime = new Date();\n let greet = Math.floor(currentTime.getHours() / 6);\n let easterEggChance = Math.floor(Math.random() * 100);\n let greetings = require('./messages.json');\n let timeBased = [];\n let easterEggs = [];\n for (var i = 0; i < greetings.messages.length; i++) {\n if (greetings.messages[i].easteregg === \"FALSE\") {\n timeBased = timeBased.concat(greetings.messages[i]);\n } else {\n easterEggs = easterEggs.concat(greetings.messages[i]);\n }\n }\n if (easterEggChance > 10) {\n return timeBased[greet].message;\n } else {\n let easterEggText = Math.floor(Math.random() * easterEggs.length);\n return easterEggs[easterEggText].message;\n }\n}\nfunction Clock() {\n const [date, setDate] = useState(new Date());\n\n function refreshClock() {\n setDate(new Date());\n }\n useEffect(() => {\n const timerId = setInterval(refreshClock, 1000);\n return function cleanup() {\n clearInterval(timerId);\n };\n }, []);\n\n var hour = date.getHours();\n var minutes = date.getMinutes();\n //var seconds = date.getSeconds();\n var midday = \"AM\";\n midday = (hour >= 12) ? \"PM\" : \"AM\";\n hour = (hour === 0) ? 12 : ((hour > 12) ? (hour - 12) : hour);\n minutes = fixDigits(minutes);\n //seconds = fixDigits(seconds);\n let time = hour + \":\" + minutes + \" \" + midday;\n\n return (\n {time}
\n\n );\n}\nfunction getApps() {\n let applications = require('./apps.json');\n return applications;\n}\nfunction getLinks() {\n let links = require('./links.json');\n return links;\n}\nfunction getProviders() {\n let providers = require('./providers.json');\n return providers;\n}\nfunction getThemes() {\n let themes = require('./themes.json');\n return themes;\n}\n\nfunction updateTheme(e) {\n var themes = getThemes().themes;\n var themeName = e.target.innerHTML.toLowerCase()\n}\n\nfunction handleKeyPress(e) {\n var sindex = 0;\n var cycle = false;\n var key = e.keyCode || e.which;\n var text = e.target.value.replaceAll(\"+\", \"%2B\");\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n if (key == 13) { // Search functions\n search(text);\n }\n if (key == 9) { // Tab Completion Functions\n e.preventDefault();\n e.stopPropagation();\n if (text[0] === ';') {\n switch (option) {\n case 't':\n var streamers = ['admiralbahroo', 'moonmoon_ow', 'witwix'];\n if (!subtext || cycle) {\n cycle = true;\n if (sindex > streamers.length - 1) sindex = 0;\n document.getElementById(\"keywords\").value = ';t ' + streamers[sindex++];\n return;\n }\n for (var streamer of streamers) {\n if (subtext === streamer.substr(0, subtext.length)) {\n document.getElementById(\"keywords\").value = ';t ' + streamer;\n return;\n }\n }\n break;\n }\n }\n }\n if(key == 32){ //Space to go to search\nupdateLabel(text);\n }\n sindex = 0;\n cycle = false;\n updateLabel(text);\n}\n\nfunction updateLabel(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n if (text[0] === '/') {\n// if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n document.getElementById(\"searchType\").innerHTML = \"Allmusic search\";\n break;\n case \"d\":\n document.getElementById(\"searchType\").innerHTML = \"Duck Duck Go search\";\n break;\n case \"di\":\n document.getElementById(\"searchType\").innerHTML = \"Discogs search\";\n break;\n case \"i\":\n document.getElementById(\"searchType\").innerHTML = \"IMDB search\";\n break;\n case \"m\":\n document.getElementById(\"searchType\").innerHTML = \"TheMovieDB search\";\n break;\n case \"r\":\n document.getElementById(\"searchType\").innerHTML = \"Reddit search\";\n break;\n case \"q\":\n document.getElementById(\"searchType\").innerHTML = \"Qwant search\";\n break;\n case \"so\":\n document.getElementById(\"searchType\").innerHTML = \"Soundcloud search\";\n break;\n case \"s\":\n document.getElementById(\"searchType\").innerHTML = \"Spotify search\";\n break;\n case \"tv\":\n document.getElementById(\"searchType\").innerHTML = \"TheTVDB search\";\n break;\n case \"t\":\n document.getElementById(\"searchType\").innerHTML = \"Trakt search\";\n break;\n case \"y\":\n document.getElementById(\"searchType\").innerHTML = \"YouTube search\";\n break;\n case \"w\":\n document.getElementById(\"searchType\").innerHTML = \"Wikipedia search\";\n break;\n case \"p\":\n document.getElementById(\"searchType\").innerHTML = \"Plex search\";\n break;\n case \"rt\":\n document.getElementById(\"searchType\").innerHTML = \"Rotten Tomatoes search\";\n break;\n default:\n document.getElementById(\"searchType\").innerHTML = \"Invalid search\";\n break;\n }\n}else {\n document.getElementById(\"searchType\").innerHTML = \"Google search\";\n }\n}\n\nfunction search(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n if (text[0] === '/') {\n if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n window.location = \"https://www.allmusic.com/search/all/\" + subtext;\n break;\n case \"d\":\n window.location = \"https://duckduckgo.com/?q=\" + subtext;\n break;\n case \"di\":\n window.location = \"https://www.discogs.com/search/?q=\" + subtext;\n break;\n case \"i\":\n window.location = \"https://www.imdb.com/find?q=\" + subtext;\n break;\n case \"m\":\n window.location = \"https://www.themoviedb.org/search?query=\" + subtext;\n break;\n case \"r\":\n window.location = \"https://www.reddit.com/search?q=\" + subtext;\n break;\n case \"q\":\n window.location = \"https://www.qwant.com/?q=\" + subtext;\n break;\n case \"so\":\n window.location = \"https://soundcloud.com/search?q=\" + subtext;\n break;\n case \"s\":\n window.location = \"https://open.spotify.com/search/results/\" + subtext;\n break;\n case \"t\":\n window.location = \"https://trakt.tv/search?query=\" + subtext;\n break;\n case \"tv\":\n window.location = \"https://www.thetvdb.com/search?query=\" + subtext;\n break;\n case \"y\":\n window.location = \"https://www.youtube.com/results?search_query=\" + subtext;\n break;\n case \"w\":\n window.location = \"https://en.wikipedia.org/w/index.php?search=\" + subtext;\n break;\n case \"p\":\n window.location = \"https://app.plex.tv/desktop/#!/search?query=\" + subtext;\n break;\n case \"rt\":\n window.location = \"https://www.rottentomatoes.com/search?search=\" + subtext;\n break;\n }\n } else {\n var option = text.substr(1);\n switch (option) {\n case \"d\":\n window.location = \"https://www.duckduckgo.com\";\n break;\n case \"y\":\n window.location = \"https://www.youtube.com\";\n break;\n case \"r\":\n window.location = \"https://reddit.com\";\n break;\n case \"s\":\n window.location = \"https://open.spotify.com\";\n break;\n }\n }\n } else if (validURL(text)) {\n if (containsProtocol(text))\n window.location = text;\n else\n window.location = \"https://\" + text;\n } else {\n window.location = \"https://www.google.com/search?q=\" + text;\n }\n}\n\n// Source: https://stackoverflow.com/questions/5717093/check-if-a-javascript-string-is-a-url\nfunction validURL(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/)?' + // protocol\n '((([a-z\\\\d]([a-z\\\\d-]*[a-z\\\\d])*)\\\\.)+[a-z]{2,}|' + // domain name\n '((\\\\d{1,3}\\\\.){3}\\\\d{1,3}))' + // OR ip (v4) address\n '(\\\\:\\\\d+)?(\\\\/[-a-z\\\\d%_.~+]*)*' + // port and path\n '(\\\\?[;&a-z\\\\d%_.~+=-]*)?' + // query string\n '(\\\\#[-a-z\\\\d_]*)?$', 'i'); // fragment locator\n return !!pattern.test(str);\n}\n\nfunction containsProtocol(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/){1}.*', 'i');\n return !!pattern.test(str);\n}\n\nString.prototype.replaceAll = function(search, replacement) {\n var target = this;\n return target.split(search).join(replacement);\n};"]},"metadata":{},"sourceType":"module"}
\ No newline at end of file
diff --git a/node_modules/.cache/babel-loader/6a6cc379965b4cf09ea8113b41851ceb.json b/node_modules/.cache/babel-loader/6a6cc379965b4cf09ea8113b41851ceb.json
new file mode 100644
index 00000000..3aa15d18
--- /dev/null
+++ b/node_modules/.cache/babel-loader/6a6cc379965b4cf09ea8113b41851ceb.json
@@ -0,0 +1 @@
+{"ast":null,"code":"var _jsxFileName = \"/home/seanedmunds/dev/home-page/src/index.js\",\n _s = $RefreshSig$();\n\nimport React from 'react';\nimport { useState, useEffect } from 'react';\nimport ReactDOM from 'react-dom'; //import { unstable_createPortal } from 'react-dom';\n\nimport './index.css';\nimport { jsxDEV as _jsxDEV } from \"react/jsx-dev-runtime\";\n\nconst setValueFromLocalStorage = property => {\n let value = localStorage.getItem(property);\n setValue(property, value);\n};\n\nconst setValue = (property, value) => {\n if (value) {\n document.documentElement.style.setProperty(`--${property}`, value);\n const input = document.querySelector(`#${property}`);\n\n if (input) {\n value = value.replace('px', '');\n input.value = value;\n }\n }\n};\n\nfunction Homepage() {\n setTheme();\n return /*#__PURE__*/_jsxDEV(\"main\", {\n id: \"container\",\n className: \"fade\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Search, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 28,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 27,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Header, {\n date: date(),\n greet: greet()\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 31,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 30,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Applications, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 37,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 36,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Bookmarks, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 40,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 39,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(ModalMenu, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 43,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 42,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(ModalInit, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 46,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 45,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 26,\n columnNumber: 5\n }, this);\n}\n\n_c = Homepage;\n\nfunction Search() {\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"search\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"abackground\",\n children: [/*#__PURE__*/_jsxDEV(\"input\", {\n name: \"keywords\",\n type: \"text\",\n className: \"keyword\",\n id: \"keywords\",\n size: \"50\",\n spellCheck: \"true\",\n placeholder: \"\"\n /*onFocus={this.placeholder = \"\"} onBlur={this.placeholder = ''}*/\n ,\n autoComplete: \"off\",\n autoFocus: true,\n onKeyUp: handleKeyPress\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 56,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n id: \"searchType\",\n className: \"Input-label\",\n children: \"Google search\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 57,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 55,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 54,\n columnNumber: 5\n }, this);\n}\n\n_c2 = Search;\n\nfunction Header(props) {\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"header\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n id: \"greeting_block\",\n children: /*#__PURE__*/_jsxDEV(\"h1\", {\n id: \"header_greet\",\n children: props.greet\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 67,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 66,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"date_block\",\n children: [/*#__PURE__*/_jsxDEV(\"h2\", {\n id: \"header_date\",\n children: props.date\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 70,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(Clock, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 71,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 69,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 65,\n columnNumber: 5\n }, this);\n}\n\n_c3 = Header;\n\nfunction Applications() {\n let appList = getApps();\n var items = [];\n\n for (var i = 0; i < appList.apps.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(App, {\n name: appList.apps[i].name,\n url: appList.apps[i].url,\n icon: appList.apps[i].icon,\n NSFW: appList.apps[i].NSFW\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 82,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"apps\",\n children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n children: \"Applications\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 93,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"apps_loop\",\n children: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 94,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 92,\n columnNumber: 5\n }, this);\n}\n\n_c4 = Applications;\n\nfunction App(props) {\n let classNameType = props.NSFW + \"-content\";\n let hrefUrl = \"https://\" + props.url;\n let iconName = \"mdi-\" + props.icon;\n return /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: hrefUrl,\n className: classNameType,\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_item\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_icon\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify icon\",\n \"data-icon\": iconName\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 110,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 109,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_text\",\n children: [/*#__PURE__*/_jsxDEV(\"span\", {\n id: \"app-name\",\n children: props.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 113,\n columnNumber: 13\n }, this), /*#__PURE__*/_jsxDEV(\"span\", {\n id: \"app-address\",\n children: props.url\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 114,\n columnNumber: 13\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 112,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 108,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 107,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 106,\n columnNumber: 5\n }, this);\n}\n\n_c5 = App;\n\nfunction Bookmarks() {\n let bookmarkList = getLinks();\n var items = [];\n\n for (var i = 0; i < bookmarkList.bookmarks.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(LinkGroups, {\n category: bookmarkList.bookmarks[i].category,\n links: bookmarkList.bookmarks[i].links\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 127,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"links\",\n children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n children: \"Bookmarks\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 136,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"links_loop\",\n children: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 137,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 135,\n columnNumber: 5\n }, this);\n}\n\n_c6 = Bookmarks;\n\nfunction LinkGroups(props) {\n var items = [];\n\n for (var i = 0; i < props.links.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(LinkItem, {\n link: props.links[i]\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 148,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"links_item\",\n children: [/*#__PURE__*/_jsxDEV(\"h4\", {\n children: props.category\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 156,\n columnNumber: 7\n }, this), items]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 155,\n columnNumber: 5\n }, this);\n}\n\n_c7 = LinkGroups;\n\nfunction LinkItem(props) {\n return /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: props.link.url,\n className: \"theme_color-border theme_text-select\",\n children: props.link.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 165,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 164,\n columnNumber: 5\n }, this);\n}\n\n_c8 = LinkItem;\n\nfunction ModalMenu() {\n var providers = getProviders();\n var items = [];\n\n for (var i = 0; i < providers.providers.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(Provider, {\n provider: providers.providers[i]\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 175,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"modal\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n children: [/*#__PURE__*/_jsxDEV(\"header\", {\n id: \"modal-header\",\n children: [/*#__PURE__*/_jsxDEV(\"h1\", {\n children: \"Options\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 185,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n href: \"#\",\n title: \"Close\",\n className: \"modal-close\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-close\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 187,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 186,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 184,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"h2\", {\n children: \"Color themes\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 191,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"modal-theme\",\n children: [/*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"blackboard\",\n className: \"theme-button theme-blackboard\",\n onClick: updateTheme,\n children: \"Blackboard\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 194,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"gazette\",\n className: \"theme-button theme-gazette\",\n onClick: updateTheme,\n children: \"Gazette\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 195,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"espresso\",\n className: \"theme-button theme-espresso\",\n onClick: updateTheme,\n children: \"Espresso\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 196,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cab\",\n className: \"theme-button theme-cab\",\n onClick: updateTheme,\n children: \"Cab\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 197,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cloud\",\n className: \"theme-button theme-cloud\",\n onClick: updateTheme,\n children: \"Cloud\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 198,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"lime\",\n className: \"theme-button theme-lime\",\n onClick: updateTheme,\n children: \"Lime\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 199,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"passion\",\n className: \"theme-button theme-passion\",\n onClick: updateTheme,\n children: \"Passion\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 200,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"blues\",\n className: \"theme-button theme-blues\",\n onClick: updateTheme,\n children: \"Blues\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 201,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"chalk\",\n className: \"theme-button theme-chalk\",\n onClick: updateTheme,\n children: \"Chalk\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 202,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"tron\",\n className: \"theme-button theme-tron\",\n onClick: updateTheme,\n children: \"Tron\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 203,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"paper\",\n className: \"theme-button theme-paper\",\n onClick: updateTheme,\n children: \"Paper\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 204,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cyberpunk\",\n className: \"theme-button theme-cyberpunk\",\n onClick: updateTheme,\n children: \"Cyberpunk\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 205,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"quadra\",\n className: \"theme-button theme-panam\",\n onClick: updateTheme,\n children: \"Quadra\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 206,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"panam\",\n className: \"theme-button theme-panam\",\n onClick: updateTheme,\n children: \"Panam\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 207,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"touch\",\n className: \"theme-button theme-touch\",\n onClick: updateTheme,\n children: \"Touch\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 208,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"peek\",\n className: \"theme-button theme-peek\",\n onClick: updateTheme,\n children: \"Peek\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 209,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 193,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"h2\", {\n children: \"Search options\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 213,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"providers\",\n children: /*#__PURE__*/_jsxDEV(\"table\", {\n children: /*#__PURE__*/_jsxDEV(\"tbody\", {\n children: [/*#__PURE__*/_jsxDEV(\"tr\", {\n children: [/*#__PURE__*/_jsxDEV(\"th\", {\n children: \"Website\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 218,\n columnNumber: 19\n }, this), /*#__PURE__*/_jsxDEV(\"th\", {\n children: \"Prefix\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 219,\n columnNumber: 19\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 217,\n columnNumber: 17\n }, this), items]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 216,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 215,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 214,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"header\", {\n id: \"modal-footer\",\n children: [/*#__PURE__*/_jsxDEV(\"a\", {\n href: \"https://github.com/jeroenpardon/\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-github-box\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 227,\n columnNumber: 54\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 227,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n href: \"https://materialdesignicons.com/\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-material-design\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 228,\n columnNumber: 54\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 228,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"sneaky\",\n children: [/*#__PURE__*/_jsxDEV(\"input\", {\n type: \"checkbox\",\n id: \"contenttype\",\n onChange: udpateDisplayedItems\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 229,\n columnNumber: 35\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n for: \"contenttype\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-domino-mask\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 230,\n columnNumber: 36\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 230,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 229,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 226,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 183,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 182,\n columnNumber: 5\n }, this);\n}\n\n_c9 = ModalMenu;\n\nfunction Provider(props) {\n return /*#__PURE__*/_jsxDEV(\"tr\", {\n children: [/*#__PURE__*/_jsxDEV(\"td\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: props.provider.url,\n children: props.provider.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 240,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 240,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"td\", {\n children: props.provider.prefix\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 241,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 239,\n columnNumber: 5\n }, this);\n}\n\n_c10 = Provider;\n\nfunction ModalInit() {\n return /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"modal_init\",\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n className: \"btn\",\n href: \"#modal\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify icon\",\n \"data-icon\": \"mdi-xbox-controller-menu\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 250,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 249,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 248,\n columnNumber: 5\n }, this);\n}\n\n_c11 = ModalInit;\nReactDOM.render( /*#__PURE__*/_jsxDEV(Homepage, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 257,\n columnNumber: 3\n}, this), document.getElementById('root')); //Functions below this line are for calculating data for\n//other functions\n\nfunction date() {\n let currentDate = new Date();\n let dateOptions = {\n weekday: \"long\",\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\"\n };\n let date = currentDate.toLocaleDateString(\"en-GB\", dateOptions);\n return date;\n}\n\nfunction fixDigits(k) {\n if (k < 10) {\n return \"0\" + k;\n } else {\n return k;\n }\n}\n\nfunction greet() {\n let currentTime = new Date();\n let greet = Math.floor(currentTime.getHours() / 6);\n let easterEggChance = Math.floor(Math.random() * 100);\n\n let greetings = require('./messages.json');\n\n let timeBased = [];\n let easterEggs = [];\n\n for (var i = 0; i < greetings.messages.length; i++) {\n if (greetings.messages[i].easteregg === \"FALSE\") {\n timeBased = timeBased.concat(greetings.messages[i]);\n } else {\n easterEggs = easterEggs.concat(greetings.messages[i]);\n }\n }\n\n if (easterEggChance > 10) {\n return timeBased[greet].message;\n } else {\n let easterEggText = Math.floor(Math.random() * easterEggs.length);\n return easterEggs[easterEggText].message;\n }\n}\n\nfunction Clock() {\n _s();\n\n const [date, setDate] = useState(new Date());\n\n function refreshClock() {\n setDate(new Date());\n }\n\n useEffect(() => {\n const timerId = setInterval(refreshClock, 1000);\n return function cleanup() {\n clearInterval(timerId);\n };\n }, []);\n var hour = date.getHours();\n var minutes = date.getMinutes(); //var seconds = date.getSeconds();\n\n var midday = \"AM\";\n midday = hour >= 12 ? \"PM\" : \"AM\";\n hour = hour === 0 ? 12 : hour > 12 ? hour - 12 : hour;\n minutes = fixDigits(minutes); //seconds = fixDigits(seconds);\n\n let time = hour + \":\" + minutes + \" \" + midday;\n return /*#__PURE__*/_jsxDEV(\"h2\", {\n id: \"clock\",\n children: time\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 328,\n columnNumber: 5\n }, this);\n}\n\n_s(Clock, \"Gqi45WOZhU2c0BLYX0HoJeiR0fk=\");\n\n_c12 = Clock;\n\nfunction getApps() {\n let applications = require('./apps.json');\n\n return applications;\n}\n\nfunction getLinks() {\n let links = require('./links.json');\n\n return links;\n}\n\nfunction getProviders() {\n let providers = require('./providers.json');\n\n return providers;\n}\n\nfunction getThemes() {\n let themes = require('./themes.json');\n\n return themes;\n}\n\nfunction updateTheme(e) {\n var themes = getThemes();\n var themeName = e.target.innerHTML.toLowerCase();\n var index = themes.themes.findIndex(function (item, i) {\n return item.name === themeName;\n });\n console.log(themes.themes[index]);\n localStorage.setItem(\"image-background\", themes.themes[index].imagebackground);\n localStorage.setItem(\"color-background\", themes.themes[index].colorbackground);\n localStorage.setItem(\"color-search-background\", themes.themes[index].colorserachbackground);\n localStorage.setItem(\"color-text-pri\", themes.themes[index].colortextpri);\n localStorage.setItem(\"color-text-acc\", themes.themes[index].colortextacc);\n localStorage.setItem(\"color-border\", themes.themes[index].colorborder); //document.documentElement.style.setProperty(prop, `var(--${themeName}${prop.substring(10)})`);\n\n setTheme();\n}\n\nfunction setTheme() {\n setValueFromLocalStorage('image-background');\n setValueFromLocalStorage('color-background');\n setValueFromLocalStorage('color-search-background');\n setValueFromLocalStorage('color-text-pri');\n setValueFromLocalStorage('color-text-acc');\n setValueFromLocalStorage('color-border');\n setValueFromLocalStorage('content-display');\n}\n\nfunction handleKeyPress(e) {\n var sindex = 0;\n var cycle = false;\n var key = e.keyCode || e.which;\n var text = e.target.value.replaceAll(\"+\", \"%2B\");\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n\n if (key == 13) {\n // Search functions\n search(text);\n }\n\n if (key == 9) {\n // Tab Completion Functions\n e.preventDefault();\n e.stopPropagation();\n\n if (text[0] === ';') {\n switch (option) {\n case 't':\n var streamers = ['admiralbahroo', 'moonmoon_ow', 'witwix'];\n\n if (!subtext || cycle) {\n cycle = true;\n if (sindex > streamers.length - 1) sindex = 0;\n document.getElementById(\"keywords\").value = ';t ' + streamers[sindex++];\n return;\n }\n\n for (var streamer of streamers) {\n if (subtext === streamer.substr(0, subtext.length)) {\n document.getElementById(\"keywords\").value = ';t ' + streamer;\n return;\n }\n }\n\n break;\n }\n }\n }\n\n if (key == 32) {\n //Space to go to search\n updateLabel(text);\n }\n\n sindex = 0;\n cycle = false;\n updateLabel(text);\n}\n\nfunction updateLabel(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n\n if (text[0] === '/') {\n // if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n document.getElementById(\"searchType\").innerHTML = \"Allmusic search\";\n break;\n\n case \"d\":\n document.getElementById(\"searchType\").innerHTML = \"Duck Duck Go search\";\n break;\n\n case \"di\":\n document.getElementById(\"searchType\").innerHTML = \"Discogs search\";\n break;\n\n case \"i\":\n document.getElementById(\"searchType\").innerHTML = \"IMDB search\";\n break;\n\n case \"m\":\n document.getElementById(\"searchType\").innerHTML = \"TheMovieDB search\";\n break;\n\n case \"r\":\n document.getElementById(\"searchType\").innerHTML = \"Reddit search\";\n break;\n\n case \"q\":\n document.getElementById(\"searchType\").innerHTML = \"Qwant search\";\n break;\n\n case \"so\":\n document.getElementById(\"searchType\").innerHTML = \"Soundcloud search\";\n break;\n\n case \"s\":\n document.getElementById(\"searchType\").innerHTML = \"Spotify search\";\n break;\n\n case \"tv\":\n document.getElementById(\"searchType\").innerHTML = \"TheTVDB search\";\n break;\n\n case \"t\":\n document.getElementById(\"searchType\").innerHTML = \"Trakt search\";\n break;\n\n case \"y\":\n document.getElementById(\"searchType\").innerHTML = \"YouTube search\";\n break;\n\n case \"w\":\n document.getElementById(\"searchType\").innerHTML = \"Wikipedia search\";\n break;\n\n case \"p\":\n document.getElementById(\"searchType\").innerHTML = \"Plex search\";\n break;\n\n case \"rt\":\n document.getElementById(\"searchType\").innerHTML = \"Rotten Tomatoes search\";\n break;\n\n default:\n document.getElementById(\"searchType\").innerHTML = \"Invalid search\";\n break;\n }\n } else {\n document.getElementById(\"searchType\").innerHTML = \"Google search\";\n }\n}\n\nfunction search(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n\n if (text[0] === '/') {\n if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n window.location = \"https://www.allmusic.com/search/all/\" + subtext;\n break;\n\n case \"d\":\n window.location = \"https://duckduckgo.com/?q=\" + subtext;\n break;\n\n case \"di\":\n window.location = \"https://www.discogs.com/search/?q=\" + subtext;\n break;\n\n case \"i\":\n window.location = \"https://www.imdb.com/find?q=\" + subtext;\n break;\n\n case \"m\":\n window.location = \"https://www.themoviedb.org/search?query=\" + subtext;\n break;\n\n case \"r\":\n window.location = \"https://www.reddit.com/search?q=\" + subtext;\n break;\n\n case \"q\":\n window.location = \"https://www.qwant.com/?q=\" + subtext;\n break;\n\n case \"so\":\n window.location = \"https://soundcloud.com/search?q=\" + subtext;\n break;\n\n case \"s\":\n window.location = \"https://open.spotify.com/search/results/\" + subtext;\n break;\n\n case \"t\":\n window.location = \"https://trakt.tv/search?query=\" + subtext;\n break;\n\n case \"tv\":\n window.location = \"https://www.thetvdb.com/search?query=\" + subtext;\n break;\n\n case \"y\":\n window.location = \"https://www.youtube.com/results?search_query=\" + subtext;\n break;\n\n case \"w\":\n window.location = \"https://en.wikipedia.org/w/index.php?search=\" + subtext;\n break;\n\n case \"p\":\n window.location = \"https://app.plex.tv/desktop/#!/search?query=\" + subtext;\n break;\n\n case \"rt\":\n window.location = \"https://www.rottentomatoes.com/search?search=\" + subtext;\n break;\n }\n } else {\n var option = text.substr(1);\n\n switch (option) {\n case \"d\":\n window.location = \"https://www.duckduckgo.com\";\n break;\n\n case \"y\":\n window.location = \"https://www.youtube.com\";\n break;\n\n case \"r\":\n window.location = \"https://reddit.com\";\n break;\n\n case \"s\":\n window.location = \"https://open.spotify.com\";\n break;\n }\n }\n } else if (validURL(text)) {\n if (containsProtocol(text)) window.location = text;else window.location = \"https://\" + text;\n } else {\n window.location = \"https://www.google.com/search?q=\" + text;\n }\n} // Source: https://stackoverflow.com/questions/5717093/check-if-a-javascript-string-is-a-url\n\n\nfunction validURL(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/)?' + // protocol\n '((([a-z\\\\d]([a-z\\\\d-]*[a-z\\\\d])*)\\\\.)+[a-z]{2,}|' + // domain name\n '((\\\\d{1,3}\\\\.){3}\\\\d{1,3}))' + // OR ip (v4) address\n '(\\\\:\\\\d+)?(\\\\/[-a-z\\\\d%_.~+]*)*' + // port and path\n '(\\\\?[;&a-z\\\\d%_.~+=-]*)?' + // query string\n '(\\\\#[-a-z\\\\d_]*)?$', 'i'); // fragment locator\n\n return !!pattern.test(str);\n}\n\nfunction containsProtocol(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/){1}.*', 'i');\n return !!pattern.test(str);\n}\n\nString.prototype.replaceAll = function (search, replacement) {\n var target = this;\n return target.split(search).join(replacement);\n};\n\nfunction udpateDisplayedItems(e) {\n console.log(e);\n}\n\nvar _c, _c2, _c3, _c4, _c5, _c6, _c7, _c8, _c9, _c10, _c11, _c12;\n\n$RefreshReg$(_c, \"Homepage\");\n$RefreshReg$(_c2, \"Search\");\n$RefreshReg$(_c3, \"Header\");\n$RefreshReg$(_c4, \"Applications\");\n$RefreshReg$(_c5, \"App\");\n$RefreshReg$(_c6, \"Bookmarks\");\n$RefreshReg$(_c7, \"LinkGroups\");\n$RefreshReg$(_c8, \"LinkItem\");\n$RefreshReg$(_c9, \"ModalMenu\");\n$RefreshReg$(_c10, \"Provider\");\n$RefreshReg$(_c11, \"ModalInit\");\n$RefreshReg$(_c12, \"Clock\");","map":{"version":3,"sources":["/home/seanedmunds/dev/home-page/src/index.js"],"names":["React","useState","useEffect","ReactDOM","setValueFromLocalStorage","property","value","localStorage","getItem","setValue","document","documentElement","style","setProperty","input","querySelector","replace","Homepage","setTheme","date","greet","Search","handleKeyPress","Header","props","Applications","appList","getApps","items","i","apps","length","push","name","url","icon","NSFW","App","classNameType","hrefUrl","iconName","Bookmarks","bookmarkList","getLinks","bookmarks","category","links","LinkGroups","LinkItem","link","ModalMenu","providers","getProviders","updateTheme","udpateDisplayedItems","Provider","provider","prefix","ModalInit","render","getElementById","currentDate","Date","dateOptions","weekday","year","month","day","toLocaleDateString","fixDigits","k","currentTime","Math","floor","getHours","easterEggChance","random","greetings","require","timeBased","easterEggs","messages","easteregg","concat","message","easterEggText","Clock","setDate","refreshClock","timerId","setInterval","cleanup","clearInterval","hour","minutes","getMinutes","midday","time","applications","getThemes","themes","e","themeName","target","innerHTML","toLowerCase","index","findIndex","item","console","log","setItem","imagebackground","colorbackground","colorserachbackground","colortextpri","colortextacc","colorborder","sindex","cycle","key","keyCode","which","text","replaceAll","option","substr","indexOf","subtext","search","preventDefault","stopPropagation","streamers","streamer","updateLabel","window","location","validURL","containsProtocol","str","pattern","RegExp","test","String","prototype","replacement","split","join"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { useState, useEffect } from 'react';\nimport ReactDOM from 'react-dom';\n//import { unstable_createPortal } from 'react-dom';\nimport './index.css';\n\nconst setValueFromLocalStorage = property => {\n let value = localStorage.getItem(property);\n setValue(property, value);\n};\nconst setValue = (property, value) => {\n if (value) {\n document.documentElement.style.setProperty(`--${property}`, value);\n\n const input = document.querySelector(`#${property}`);\n if (input) {\n value = value.replace('px', '');\n input.value = value;\n }\n }\n};\n\nfunction Homepage() {\n setTheme();\n return (\n \n \n \n
\n \n \n
\n \n \n \n
\n \n \n
\n \n \n
\n \n );\n}\n\nfunction Search() {\n return (\n \n )\n}\n\nfunction Header(props) {\n return (\n \n );\n}\n\nfunction Applications() {\n let appList = getApps();\n var items = [];\n for (var i = 0; i < appList.apps.length; i++) {\n items.push(\n \n );\n }\n return (\n \n Applications
\n \n {items}\n
\n \n );\n}\n\nfunction App(props) {\n let classNameType = props.NSFW + \"-content\";\n let hrefUrl = \"https://\" + props.url;\n let iconName = \"mdi-\" + props.icon;\n return (\n \n );\n}\n\nfunction Bookmarks() {\n let bookmarkList = getLinks();\n var items = [];\n for (var i = 0; i < bookmarkList.bookmarks.length; i++) {\n items.push(\n \n );\n }\n return (\n \n Bookmarks
\n \n {items}\n
\n \n );\n}\n\nfunction LinkGroups(props) {\n var items = [];\n for (var i = 0; i < props.links.length; i++) {\n items.push(\n \n );\n }\n return (\n \n
{props.category}
\n {items}\n \n );\n}\n\nfunction LinkItem(props) {\n return (\n \n );\n}\n\nfunction ModalMenu() {\n var providers = getProviders();\n var items = [];\n for (var i = 0; i < providers.providers.length; i++) {\n items.push(\n \n );\n }\n return (\n \n \n \n\n
Color themes
\n\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n\n\n
Search options
\n
\n \n \n \n | Website | \n Prefix | \n
\n {items}\n \n
\n \n\n \n
\n \n );\n}\n\nfunction Provider(props) {\n return (\n \n | {props.provider.name} | \n {props.provider.prefix} | \n
\n );\n}\n\nfunction ModalInit() {\n return (\n \n );\n}\n\nReactDOM.render(\n ,\n document.getElementById('root')\n);\n\n//Functions below this line are for calculating data for\n//other functions\n\nfunction date() {\n let currentDate = new Date();\n let dateOptions = {\n weekday: \"long\",\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\"\n };\n let date = currentDate.toLocaleDateString(\"en-GB\", dateOptions);\n return date;\n}\nfunction fixDigits(k) {\n if (k < 10) {\n return \"0\" + k;\n }\n else {\n return k;\n }\n}\nfunction greet() {\n let currentTime = new Date();\n let greet = Math.floor(currentTime.getHours() / 6);\n let easterEggChance = Math.floor(Math.random() * 100);\n let greetings = require('./messages.json');\n let timeBased = [];\n let easterEggs = [];\n for (var i = 0; i < greetings.messages.length; i++) {\n if (greetings.messages[i].easteregg === \"FALSE\") {\n timeBased = timeBased.concat(greetings.messages[i]);\n } else {\n easterEggs = easterEggs.concat(greetings.messages[i]);\n }\n }\n if (easterEggChance > 10) {\n return timeBased[greet].message;\n } else {\n let easterEggText = Math.floor(Math.random() * easterEggs.length);\n return easterEggs[easterEggText].message;\n }\n}\nfunction Clock() {\n const [date, setDate] = useState(new Date());\n\n function refreshClock() {\n setDate(new Date());\n }\n useEffect(() => {\n const timerId = setInterval(refreshClock, 1000);\n return function cleanup() {\n clearInterval(timerId);\n };\n }, []);\n\n var hour = date.getHours();\n var minutes = date.getMinutes();\n //var seconds = date.getSeconds();\n var midday = \"AM\";\n midday = (hour >= 12) ? \"PM\" : \"AM\";\n hour = (hour === 0) ? 12 : ((hour > 12) ? (hour - 12) : hour);\n minutes = fixDigits(minutes);\n //seconds = fixDigits(seconds);\n let time = hour + \":\" + minutes + \" \" + midday;\n\n return (\n {time}
\n\n );\n}\nfunction getApps() {\n let applications = require('./apps.json');\n return applications;\n}\nfunction getLinks() {\n let links = require('./links.json');\n return links;\n}\nfunction getProviders() {\n let providers = require('./providers.json');\n return providers;\n}\nfunction getThemes() {\n let themes = require('./themes.json');\n return themes;\n}\n\nfunction updateTheme(e) {\n var themes = getThemes();\n var themeName = e.target.innerHTML.toLowerCase();\n var index = themes.themes.findIndex(function(item, i){\n return item.name === themeName\n });\n console.log(themes.themes[index]);\n localStorage.setItem(\"image-background\", themes.themes[index].imagebackground);\n localStorage.setItem(\"color-background\", themes.themes[index].colorbackground);\n localStorage.setItem(\"color-search-background\", themes.themes[index].colorserachbackground);\n localStorage.setItem(\"color-text-pri\",themes.themes[index].colortextpri);\n localStorage.setItem(\"color-text-acc\", themes.themes[index].colortextacc);\n localStorage.setItem(\"color-border\", themes.themes[index].colorborder);\n \n //document.documentElement.style.setProperty(prop, `var(--${themeName}${prop.substring(10)})`);\n setTheme();\n}\n\nfunction setTheme() {\n setValueFromLocalStorage('image-background');\n setValueFromLocalStorage('color-background');\n setValueFromLocalStorage('color-search-background');\n setValueFromLocalStorage('color-text-pri');\n setValueFromLocalStorage('color-text-acc');\n setValueFromLocalStorage('color-border');\n setValueFromLocalStorage('content-display');\n}\n\nfunction handleKeyPress(e) {\n var sindex = 0;\n var cycle = false;\n var key = e.keyCode || e.which;\n var text = e.target.value.replaceAll(\"+\", \"%2B\");\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n if (key == 13) { // Search functions\n search(text);\n }\n if (key == 9) { // Tab Completion Functions\n e.preventDefault();\n e.stopPropagation();\n if (text[0] === ';') {\n switch (option) {\n case 't':\n var streamers = ['admiralbahroo', 'moonmoon_ow', 'witwix'];\n if (!subtext || cycle) {\n cycle = true;\n if (sindex > streamers.length - 1) sindex = 0;\n document.getElementById(\"keywords\").value = ';t ' + streamers[sindex++];\n return;\n }\n for (var streamer of streamers) {\n if (subtext === streamer.substr(0, subtext.length)) {\n document.getElementById(\"keywords\").value = ';t ' + streamer;\n return;\n }\n }\n break;\n }\n }\n }\n if(key == 32){ //Space to go to search\nupdateLabel(text);\n }\n sindex = 0;\n cycle = false;\n updateLabel(text);\n}\n\nfunction updateLabel(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n if (text[0] === '/') {\n// if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n document.getElementById(\"searchType\").innerHTML = \"Allmusic search\";\n break;\n case \"d\":\n document.getElementById(\"searchType\").innerHTML = \"Duck Duck Go search\";\n break;\n case \"di\":\n document.getElementById(\"searchType\").innerHTML = \"Discogs search\";\n break;\n case \"i\":\n document.getElementById(\"searchType\").innerHTML = \"IMDB search\";\n break;\n case \"m\":\n document.getElementById(\"searchType\").innerHTML = \"TheMovieDB search\";\n break;\n case \"r\":\n document.getElementById(\"searchType\").innerHTML = \"Reddit search\";\n break;\n case \"q\":\n document.getElementById(\"searchType\").innerHTML = \"Qwant search\";\n break;\n case \"so\":\n document.getElementById(\"searchType\").innerHTML = \"Soundcloud search\";\n break;\n case \"s\":\n document.getElementById(\"searchType\").innerHTML = \"Spotify search\";\n break;\n case \"tv\":\n document.getElementById(\"searchType\").innerHTML = \"TheTVDB search\";\n break;\n case \"t\":\n document.getElementById(\"searchType\").innerHTML = \"Trakt search\";\n break;\n case \"y\":\n document.getElementById(\"searchType\").innerHTML = \"YouTube search\";\n break;\n case \"w\":\n document.getElementById(\"searchType\").innerHTML = \"Wikipedia search\";\n break;\n case \"p\":\n document.getElementById(\"searchType\").innerHTML = \"Plex search\";\n break;\n case \"rt\":\n document.getElementById(\"searchType\").innerHTML = \"Rotten Tomatoes search\";\n break;\n default:\n document.getElementById(\"searchType\").innerHTML = \"Invalid search\";\n break;\n }\n}else {\n document.getElementById(\"searchType\").innerHTML = \"Google search\";\n }\n}\n\nfunction search(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n if (text[0] === '/') {\n if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n window.location = \"https://www.allmusic.com/search/all/\" + subtext;\n break;\n case \"d\":\n window.location = \"https://duckduckgo.com/?q=\" + subtext;\n break;\n case \"di\":\n window.location = \"https://www.discogs.com/search/?q=\" + subtext;\n break;\n case \"i\":\n window.location = \"https://www.imdb.com/find?q=\" + subtext;\n break;\n case \"m\":\n window.location = \"https://www.themoviedb.org/search?query=\" + subtext;\n break;\n case \"r\":\n window.location = \"https://www.reddit.com/search?q=\" + subtext;\n break;\n case \"q\":\n window.location = \"https://www.qwant.com/?q=\" + subtext;\n break;\n case \"so\":\n window.location = \"https://soundcloud.com/search?q=\" + subtext;\n break;\n case \"s\":\n window.location = \"https://open.spotify.com/search/results/\" + subtext;\n break;\n case \"t\":\n window.location = \"https://trakt.tv/search?query=\" + subtext;\n break;\n case \"tv\":\n window.location = \"https://www.thetvdb.com/search?query=\" + subtext;\n break;\n case \"y\":\n window.location = \"https://www.youtube.com/results?search_query=\" + subtext;\n break;\n case \"w\":\n window.location = \"https://en.wikipedia.org/w/index.php?search=\" + subtext;\n break;\n case \"p\":\n window.location = \"https://app.plex.tv/desktop/#!/search?query=\" + subtext;\n break;\n case \"rt\":\n window.location = \"https://www.rottentomatoes.com/search?search=\" + subtext;\n break;\n }\n } else {\n var option = text.substr(1);\n switch (option) {\n case \"d\":\n window.location = \"https://www.duckduckgo.com\";\n break;\n case \"y\":\n window.location = \"https://www.youtube.com\";\n break;\n case \"r\":\n window.location = \"https://reddit.com\";\n break;\n case \"s\":\n window.location = \"https://open.spotify.com\";\n break;\n }\n }\n } else if (validURL(text)) {\n if (containsProtocol(text))\n window.location = text;\n else\n window.location = \"https://\" + text;\n } else {\n window.location = \"https://www.google.com/search?q=\" + text;\n }\n}\n\n// Source: https://stackoverflow.com/questions/5717093/check-if-a-javascript-string-is-a-url\nfunction validURL(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/)?' + // protocol\n '((([a-z\\\\d]([a-z\\\\d-]*[a-z\\\\d])*)\\\\.)+[a-z]{2,}|' + // domain name\n '((\\\\d{1,3}\\\\.){3}\\\\d{1,3}))' + // OR ip (v4) address\n '(\\\\:\\\\d+)?(\\\\/[-a-z\\\\d%_.~+]*)*' + // port and path\n '(\\\\?[;&a-z\\\\d%_.~+=-]*)?' + // query string\n '(\\\\#[-a-z\\\\d_]*)?$', 'i'); // fragment locator\n return !!pattern.test(str);\n}\n\nfunction containsProtocol(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/){1}.*', 'i');\n return !!pattern.test(str);\n}\n\nString.prototype.replaceAll = function(search, replacement) {\n var target = this;\n return target.split(search).join(replacement);\n};\n\nfunction udpateDisplayedItems(e) {\n console.log(e);\n}"]},"metadata":{},"sourceType":"module"}
\ No newline at end of file
diff --git a/node_modules/.cache/babel-loader/6a8398183bd727313e75db2315e30725.json b/node_modules/.cache/babel-loader/6a8398183bd727313e75db2315e30725.json
new file mode 100644
index 00000000..a3124820
--- /dev/null
+++ b/node_modules/.cache/babel-loader/6a8398183bd727313e75db2315e30725.json
@@ -0,0 +1 @@
+{"ast":null,"code":"var sindex = 0;\nvar cycle = false;\n\nfunction start() {\n var query = getParameterByName('q');\n if (query) search(query.replaceAll(\"+\", \"%2B\"));\n document.getElementById('keywords').focus();\n window.setInterval(function () {\n updatetime();\n }, 200);\n}\n\nfunction handleKeyPress(e) {\n var key = e.keyCode || e.which;\n var text = document.getElementById(\"keywords\").value.replaceAll(\"+\", \"%2B\");\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n\n if (key == 13) {\n // Search functions\n search(text);\n }\n\n if (key == 9) {\n // Tab Completion Functions\n e.preventDefault();\n e.stopPropagation();\n\n if (text[0] === ';') {\n switch (option) {\n case 't':\n var streamers = ['admiralbahroo', 'moonmoon_ow', 'witwix'];\n\n if (!subtext || cycle) {\n cycle = true;\n if (sindex > streamers.length - 1) sindex = 0;\n document.getElementById(\"keywords\").value = ';t ' + streamers[sindex++];\n return;\n }\n\n for (var streamer of streamers) {\n if (subtext === streamer.substr(0, subtext.length)) {\n document.getElementById(\"keywords\").value = ';t ' + streamer;\n return;\n }\n }\n\n break;\n }\n }\n }\n\n if (key == 32) {\n //Space to go to search\n updateLabel(text);\n }\n\n sindex = 0;\n cycle = false;\n updateLabel(text);\n}\n\nfunction updateLabel(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n\n if (text[0] === '/') {\n // if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n document.getElementById(\"searchType\").innerHTML = \"Allmusic search\";\n break;\n\n case \"d\":\n document.getElementById(\"searchType\").innerHTML = \"Duck Duck Go search\";\n break;\n\n case \"di\":\n document.getElementById(\"searchType\").innerHTML = \"Discogs search\";\n break;\n\n case \"i\":\n document.getElementById(\"searchType\").innerHTML = \"IMDB search\";\n break;\n\n case \"m\":\n document.getElementById(\"searchType\").innerHTML = \"TheMovieDB search\";\n break;\n\n case \"r\":\n document.getElementById(\"searchType\").innerHTML = \"Reddit search\";\n break;\n\n case \"q\":\n document.getElementById(\"searchType\").innerHTML = \"Qwant search\";\n break;\n\n case \"so\":\n document.getElementById(\"searchType\").innerHTML = \"Soundcloud search\";\n break;\n\n case \"s\":\n document.getElementById(\"searchType\").innerHTML = \"Spotify search\";\n break;\n\n case \"tv\":\n document.getElementById(\"searchType\").innerHTML = \"TheTVDB search\";\n break;\n\n case \"t\":\n document.getElementById(\"searchType\").innerHTML = \"Trakt search\";\n break;\n\n case \"y\":\n document.getElementById(\"searchType\").innerHTML = \"YouTube search\";\n break;\n\n case \"w\":\n document.getElementById(\"searchType\").innerHTML = \"Wikipedia search\";\n break;\n\n case \"p\":\n document.getElementById(\"searchType\").innerHTML = \"Plex search\";\n break;\n\n case \"rt\":\n document.getElementById(\"searchType\").innerHTML = \"Rotten Tomatoes search\";\n break;\n\n default:\n document.getElementById(\"searchType\").innerHTML = \"Invalid search\";\n break;\n }\n } else {\n document.getElementById(\"searchType\").innerHTML = \"Google search\";\n }\n}\n\nfunction search(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n\n if (text[0] === '/') {\n if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n window.location = \"https://www.allmusic.com/search/all/\" + subtext;\n break;\n\n case \"d\":\n window.location = \"https://duckduckgo.com/?q=\" + subtext;\n break;\n\n case \"di\":\n window.location = \"https://www.discogs.com/search/?q=\" + subtext;\n break;\n\n case \"i\":\n window.location = \"https://www.imdb.com/find?q=\" + subtext;\n break;\n\n case \"m\":\n window.location = \"https://www.themoviedb.org/search?query=\" + subtext;\n break;\n\n case \"r\":\n window.location = \"https://www.reddit.com/search?q=\" + subtext;\n break;\n\n case \"q\":\n window.location = \"https://www.qwant.com/?q=\" + subtext;\n break;\n\n case \"so\":\n window.location = \"https://soundcloud.com/search?q=\" + subtext;\n break;\n\n case \"s\":\n window.location = \"https://open.spotify.com/search/results/\" + subtext;\n break;\n\n case \"t\":\n window.location = \"https://trakt.tv/search?query=\" + subtext;\n break;\n\n case \"tv\":\n window.location = \"https://www.thetvdb.com/search?query=\" + subtext;\n break;\n\n case \"y\":\n window.location = \"https://www.youtube.com/results?search_query=\" + subtext;\n break;\n\n case \"w\":\n window.location = \"https://en.wikipedia.org/w/index.php?search=\" + subtext;\n break;\n\n case \"p\":\n window.location = \"https://app.plex.tv/desktop/#!/search?query=\" + subtext;\n break;\n\n case \"rt\":\n window.location = \"https://www.rottentomatoes.com/search?search=\" + subtext;\n break;\n }\n } else {\n var option = text.substr(1);\n\n switch (option) {\n case \"d\":\n window.location = \"https://www.duckduckgo.com\";\n break;\n\n case \"y\":\n window.location = \"https://www.youtube.com\";\n break;\n\n case \"r\":\n window.location = \"https://reddit.com\";\n break;\n\n case \"s\":\n window.location = \"https://open.spotify.com\";\n break;\n }\n }\n } else if (validURL(text)) {\n if (containsProtocol(text)) window.location = text;else window.location = \"https://\" + text;\n } else {\n window.location = \"https://www.google.com/search?q=\" + text;\n }\n} // Source: https://stackoverflow.com/questions/5717093/check-if-a-javascript-string-is-a-url\n\n\nfunction validURL(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/)?' + // protocol\n '((([a-z\\\\d]([a-z\\\\d-]*[a-z\\\\d])*)\\\\.)+[a-z]{2,}|' + // domain name\n '((\\\\d{1,3}\\\\.){3}\\\\d{1,3}))' + // OR ip (v4) address\n '(\\\\:\\\\d+)?(\\\\/[-a-z\\\\d%_.~+]*)*' + // port and path\n '(\\\\?[;&a-z\\\\d%_.~+=-]*)?' + // query string\n '(\\\\#[-a-z\\\\d_]*)?$', 'i'); // fragment locator\n\n return !!pattern.test(str);\n}\n\nfunction containsProtocol(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/){1}.*', 'i');\n return !!pattern.test(str);\n}\n\nString.prototype.replaceAll = function (search, replacement) {\n var target = this;\n return target.split(search).join(replacement);\n};","map":{"version":3,"sources":["/home/seanedmunds/dev/home-page/src/search.js"],"names":["sindex","cycle","start","query","getParameterByName","search","replaceAll","document","getElementById","focus","window","setInterval","updatetime","handleKeyPress","e","key","keyCode","which","text","value","option","substr","indexOf","subtext","length","preventDefault","stopPropagation","streamers","streamer","updateLabel","innerHTML","location","validURL","containsProtocol","str","pattern","RegExp","test","String","prototype","replacement","target","split","join"],"mappings":"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","sourcesContent":["var sindex = 0;\nvar cycle = false;\n\nfunction start() {\n var query = getParameterByName('q');\n if (query) search(query.replaceAll(\"+\", \"%2B\"));\n\n document.getElementById('keywords').focus();\n\n window.setInterval(function () {\n updatetime();\n }, 200);\n}\n\nfunction handleKeyPress(e) {\n var key = e.keyCode || e.which;\n var text = document.getElementById(\"keywords\").value.replaceAll(\"+\", \"%2B\");\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n if (key == 13) { // Search functions\n search(text);\n }\n if (key == 9) { // Tab Completion Functions\n e.preventDefault();\n e.stopPropagation();\n if (text[0] === ';') {\n switch (option) {\n case 't':\n var streamers = ['admiralbahroo', 'moonmoon_ow', 'witwix'];\n if (!subtext || cycle) {\n cycle = true;\n if (sindex > streamers.length - 1) sindex = 0;\n document.getElementById(\"keywords\").value = ';t ' + streamers[sindex++];\n return;\n }\n for (var streamer of streamers) {\n if (subtext === streamer.substr(0, subtext.length)) {\n document.getElementById(\"keywords\").value = ';t ' + streamer;\n return;\n }\n }\n break;\n }\n }\n }\n if(key == 32){ //Space to go to search\n\tupdateLabel(text);\n }\n sindex = 0;\n cycle = false;\n updateLabel(text);\n}\n\nfunction updateLabel(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n if (text[0] === '/') {\n// if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n document.getElementById(\"searchType\").innerHTML = \"Allmusic search\";\n break;\n\t\tcase \"d\":\n\t\t document.getElementById(\"searchType\").innerHTML = \"Duck Duck Go search\";\n\t\t break;\n\t\tcase \"di\":\n\t\t document.getElementById(\"searchType\").innerHTML = \"Discogs search\";\n\t\t break;\n\t\tcase \"i\":\n\t\t document.getElementById(\"searchType\").innerHTML = \"IMDB search\";\n\t\t break;\n\t\tcase \"m\":\n\t\t document.getElementById(\"searchType\").innerHTML = \"TheMovieDB search\";\n\t\t break;\n\t\tcase \"r\":\n\t\t document.getElementById(\"searchType\").innerHTML = \"Reddit search\";\n\t\t break;\n\t\tcase \"q\":\n\t\t document.getElementById(\"searchType\").innerHTML = \"Qwant search\";\n\t\t break;\n\t\tcase \"so\":\n\t\t document.getElementById(\"searchType\").innerHTML = \"Soundcloud search\";\n\t\t break;\n\t\tcase \"s\":\n\t\t document.getElementById(\"searchType\").innerHTML = \"Spotify search\";\n\t\t break;\n\t\tcase \"tv\":\n\t\t document.getElementById(\"searchType\").innerHTML = \"TheTVDB search\";\n\t\t break;\n\t\tcase \"t\":\n\t\t document.getElementById(\"searchType\").innerHTML = \"Trakt search\";\n\t\t break;\n\t\tcase \"y\":\n\t\t document.getElementById(\"searchType\").innerHTML = \"YouTube search\";\n\t\t break;\n\t\tcase \"w\":\n\t\t document.getElementById(\"searchType\").innerHTML = \"Wikipedia search\";\n\t\t break;\n\t\tcase \"p\":\n\t\t document.getElementById(\"searchType\").innerHTML = \"Plex search\";\n\t\t break;\n\t\tcase \"rt\":\n\t\t document.getElementById(\"searchType\").innerHTML = \"Rotten Tomatoes search\";\n\t\t break;\n\t\tdefault:\n\t\t document.getElementById(\"searchType\").innerHTML = \"Invalid search\";\n\t\t break;\n }\n\t}else {\n\t\tdocument.getElementById(\"searchType\").innerHTML = \"Google search\";\n }\n}\n\nfunction search(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n if (text[0] === '/') {\n if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n window.location = \"https://www.allmusic.com/search/all/\" + subtext;\n break;\n case \"d\":\n window.location = \"https://duckduckgo.com/?q=\" + subtext;\n break;\n case \"di\":\n window.location = \"https://www.discogs.com/search/?q=\" + subtext;\n break;\n case \"i\":\n window.location = \"https://www.imdb.com/find?q=\" + subtext;\n break;\n case \"m\":\n window.location = \"https://www.themoviedb.org/search?query=\" + subtext;\n break;\n case \"r\":\n window.location = \"https://www.reddit.com/search?q=\" + subtext;\n break;\n case \"q\":\n window.location = \"https://www.qwant.com/?q=\" + subtext;\n break;\n case \"so\":\n window.location = \"https://soundcloud.com/search?q=\" + subtext;\n break;\n case \"s\":\n window.location = \"https://open.spotify.com/search/results/\" + subtext;\n break;\n case \"t\":\n window.location = \"https://trakt.tv/search?query=\" + subtext;\n break;\n case \"tv\":\n window.location = \"https://www.thetvdb.com/search?query=\" + subtext;\n break;\n case \"y\":\n window.location = \"https://www.youtube.com/results?search_query=\" + subtext;\n break;\n\t\tcase \"w\":\n\t\t window.location = \"https://en.wikipedia.org/w/index.php?search=\" + subtext;\n\t\t break;\n\t\tcase \"p\":\n\t\t window.location = \"https://app.plex.tv/desktop/#!/search?query=\" + subtext;\n\t\t break;\n\t\tcase \"rt\":\n\t\t window.location = \"https://www.rottentomatoes.com/search?search=\" + subtext;\n\t\t break;\n }\n } else {\n var option = text.substr(1);\n switch (option) {\n case \"d\":\n window.location = \"https://www.duckduckgo.com\";\n break;\n case \"y\":\n window.location = \"https://www.youtube.com\";\n break;\n case \"r\":\n window.location = \"https://reddit.com\";\n break;\n case \"s\":\n window.location = \"https://open.spotify.com\";\n break;\n }\n }\n } else if (validURL(text)) {\n if (containsProtocol(text))\n window.location = text;\n else\n window.location = \"https://\" + text;\n } else {\n window.location = \"https://www.google.com/search?q=\" + text;\n }\n}\n\n// Source: https://stackoverflow.com/questions/5717093/check-if-a-javascript-string-is-a-url\nfunction validURL(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/)?' + // protocol\n '((([a-z\\\\d]([a-z\\\\d-]*[a-z\\\\d])*)\\\\.)+[a-z]{2,}|' + // domain name\n '((\\\\d{1,3}\\\\.){3}\\\\d{1,3}))' + // OR ip (v4) address\n '(\\\\:\\\\d+)?(\\\\/[-a-z\\\\d%_.~+]*)*' + // port and path\n '(\\\\?[;&a-z\\\\d%_.~+=-]*)?' + // query string\n '(\\\\#[-a-z\\\\d_]*)?$', 'i'); // fragment locator\n return !!pattern.test(str);\n}\n\nfunction containsProtocol(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/){1}.*', 'i');\n return !!pattern.test(str);\n}\n\nString.prototype.replaceAll = function(search, replacement) {\n var target = this;\n return target.split(search).join(replacement);\n};\n"]},"metadata":{},"sourceType":"module"}
\ No newline at end of file
diff --git a/node_modules/.cache/babel-loader/6a91a472f43e93d2be685abeddd012f6.json b/node_modules/.cache/babel-loader/6a91a472f43e93d2be685abeddd012f6.json
new file mode 100644
index 00000000..0f5b8773
--- /dev/null
+++ b/node_modules/.cache/babel-loader/6a91a472f43e93d2be685abeddd012f6.json
@@ -0,0 +1 @@
+{"ast":null,"code":"var sindex = 0;\nvar cycle = false;\n/*function start() {\n var query = getParameterByName('q');\n if (query) search(query.replaceAll(\"+\", \"%2B\"));\n\n document.getElementById('keywords').focus();\n\n /*window.setInterval(function () {\n updatetime();\n }, 200);\n}*/\n\nfunction handleKeyPress(e) {\n var key = e.keyCode || e.which;\n var text = document.getElementById(\"keywords\").value.replaceAll(\"+\", \"%2B\");\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n\n if (key == 13) {\n // Search functions\n search(text);\n }\n\n if (key == 9) {\n // Tab Completion Functions\n e.preventDefault();\n e.stopPropagation();\n\n if (text[0] === ';') {\n switch (option) {\n case 't':\n var streamers = ['admiralbahroo', 'moonmoon_ow', 'witwix'];\n\n if (!subtext || cycle) {\n cycle = true;\n if (sindex > streamers.length - 1) sindex = 0;\n document.getElementById(\"keywords\").value = ';t ' + streamers[sindex++];\n return;\n }\n\n for (var streamer of streamers) {\n if (subtext === streamer.substr(0, subtext.length)) {\n document.getElementById(\"keywords\").value = ';t ' + streamer;\n return;\n }\n }\n\n break;\n }\n }\n }\n\n if (key == 32) {\n //Space to go to search\n updateLabel(text);\n }\n\n sindex = 0;\n cycle = false;\n updateLabel(text);\n}\n\nfunction updateLabel(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n\n if (text[0] === '/') {\n // if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n document.getElementById(\"searchType\").innerHTML = \"Allmusic search\";\n break;\n\n case \"d\":\n document.getElementById(\"searchType\").innerHTML = \"Duck Duck Go search\";\n break;\n\n case \"di\":\n document.getElementById(\"searchType\").innerHTML = \"Discogs search\";\n break;\n\n case \"i\":\n document.getElementById(\"searchType\").innerHTML = \"IMDB search\";\n break;\n\n case \"m\":\n document.getElementById(\"searchType\").innerHTML = \"TheMovieDB search\";\n break;\n\n case \"r\":\n document.getElementById(\"searchType\").innerHTML = \"Reddit search\";\n break;\n\n case \"q\":\n document.getElementById(\"searchType\").innerHTML = \"Qwant search\";\n break;\n\n case \"so\":\n document.getElementById(\"searchType\").innerHTML = \"Soundcloud search\";\n break;\n\n case \"s\":\n document.getElementById(\"searchType\").innerHTML = \"Spotify search\";\n break;\n\n case \"tv\":\n document.getElementById(\"searchType\").innerHTML = \"TheTVDB search\";\n break;\n\n case \"t\":\n document.getElementById(\"searchType\").innerHTML = \"Trakt search\";\n break;\n\n case \"y\":\n document.getElementById(\"searchType\").innerHTML = \"YouTube search\";\n break;\n\n case \"w\":\n document.getElementById(\"searchType\").innerHTML = \"Wikipedia search\";\n break;\n\n case \"p\":\n document.getElementById(\"searchType\").innerHTML = \"Plex search\";\n break;\n\n case \"rt\":\n document.getElementById(\"searchType\").innerHTML = \"Rotten Tomatoes search\";\n break;\n\n default:\n document.getElementById(\"searchType\").innerHTML = \"Invalid search\";\n break;\n }\n } else {\n document.getElementById(\"searchType\").innerHTML = \"Google search\";\n }\n}\n\nfunction search(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n\n if (text[0] === '/') {\n if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n window.location = \"https://www.allmusic.com/search/all/\" + subtext;\n break;\n\n case \"d\":\n window.location = \"https://duckduckgo.com/?q=\" + subtext;\n break;\n\n case \"di\":\n window.location = \"https://www.discogs.com/search/?q=\" + subtext;\n break;\n\n case \"i\":\n window.location = \"https://www.imdb.com/find?q=\" + subtext;\n break;\n\n case \"m\":\n window.location = \"https://www.themoviedb.org/search?query=\" + subtext;\n break;\n\n case \"r\":\n window.location = \"https://www.reddit.com/search?q=\" + subtext;\n break;\n\n case \"q\":\n window.location = \"https://www.qwant.com/?q=\" + subtext;\n break;\n\n case \"so\":\n window.location = \"https://soundcloud.com/search?q=\" + subtext;\n break;\n\n case \"s\":\n window.location = \"https://open.spotify.com/search/results/\" + subtext;\n break;\n\n case \"t\":\n window.location = \"https://trakt.tv/search?query=\" + subtext;\n break;\n\n case \"tv\":\n window.location = \"https://www.thetvdb.com/search?query=\" + subtext;\n break;\n\n case \"y\":\n window.location = \"https://www.youtube.com/results?search_query=\" + subtext;\n break;\n\n case \"w\":\n window.location = \"https://en.wikipedia.org/w/index.php?search=\" + subtext;\n break;\n\n case \"p\":\n window.location = \"https://app.plex.tv/desktop/#!/search?query=\" + subtext;\n break;\n\n case \"rt\":\n window.location = \"https://www.rottentomatoes.com/search?search=\" + subtext;\n break;\n }\n } else {\n var option = text.substr(1);\n\n switch (option) {\n case \"d\":\n window.location = \"https://www.duckduckgo.com\";\n break;\n\n case \"y\":\n window.location = \"https://www.youtube.com\";\n break;\n\n case \"r\":\n window.location = \"https://reddit.com\";\n break;\n\n case \"s\":\n window.location = \"https://open.spotify.com\";\n break;\n }\n }\n } else if (validURL(text)) {\n if (containsProtocol(text)) window.location = text;else window.location = \"https://\" + text;\n } else {\n window.location = \"https://www.google.com/search?q=\" + text;\n }\n} // Source: https://stackoverflow.com/questions/5717093/check-if-a-javascript-string-is-a-url\n\n\nfunction validURL(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/)?' + // protocol\n '((([a-z\\\\d]([a-z\\\\d-]*[a-z\\\\d])*)\\\\.)+[a-z]{2,}|' + // domain name\n '((\\\\d{1,3}\\\\.){3}\\\\d{1,3}))' + // OR ip (v4) address\n '(\\\\:\\\\d+)?(\\\\/[-a-z\\\\d%_.~+]*)*' + // port and path\n '(\\\\?[;&a-z\\\\d%_.~+=-]*)?' + // query string\n '(\\\\#[-a-z\\\\d_]*)?$', 'i'); // fragment locator\n\n return !!pattern.test(str);\n}\n\nfunction containsProtocol(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/){1}.*', 'i');\n return !!pattern.test(str);\n}\n\nString.prototype.replaceAll = function (search, replacement) {\n var target = this;\n return target.split(search).join(replacement);\n};","map":{"version":3,"sources":["/home/seanedmunds/dev/home-page/src/search.js"],"names":["sindex","cycle","handleKeyPress","e","key","keyCode","which","text","document","getElementById","value","replaceAll","option","substr","indexOf","subtext","length","search","preventDefault","stopPropagation","streamers","streamer","updateLabel","innerHTML","window","location","validURL","containsProtocol","str","pattern","RegExp","test","String","prototype","replacement","target","split","join"],"mappings":"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","sourcesContent":["var sindex = 0;\nvar cycle = false;\n\n/*function start() {\n var query = getParameterByName('q');\n if (query) search(query.replaceAll(\"+\", \"%2B\"));\n\n document.getElementById('keywords').focus();\n\n /*window.setInterval(function () {\n updatetime();\n }, 200);\n}*/\n\nfunction handleKeyPress(e) {\n var key = e.keyCode || e.which;\n var text = document.getElementById(\"keywords\").value.replaceAll(\"+\", \"%2B\");\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n if (key == 13) { // Search functions\n search(text);\n }\n if (key == 9) { // Tab Completion Functions\n e.preventDefault();\n e.stopPropagation();\n if (text[0] === ';') {\n switch (option) {\n case 't':\n var streamers = ['admiralbahroo', 'moonmoon_ow', 'witwix'];\n if (!subtext || cycle) {\n cycle = true;\n if (sindex > streamers.length - 1) sindex = 0;\n document.getElementById(\"keywords\").value = ';t ' + streamers[sindex++];\n return;\n }\n for (var streamer of streamers) {\n if (subtext === streamer.substr(0, subtext.length)) {\n document.getElementById(\"keywords\").value = ';t ' + streamer;\n return;\n }\n }\n break;\n }\n }\n }\n if(key == 32){ //Space to go to search\n\tupdateLabel(text);\n }\n sindex = 0;\n cycle = false;\n updateLabel(text);\n}\n\nfunction updateLabel(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n if (text[0] === '/') {\n// if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n document.getElementById(\"searchType\").innerHTML = \"Allmusic search\";\n break;\n\t\tcase \"d\":\n\t\t document.getElementById(\"searchType\").innerHTML = \"Duck Duck Go search\";\n\t\t break;\n\t\tcase \"di\":\n\t\t document.getElementById(\"searchType\").innerHTML = \"Discogs search\";\n\t\t break;\n\t\tcase \"i\":\n\t\t document.getElementById(\"searchType\").innerHTML = \"IMDB search\";\n\t\t break;\n\t\tcase \"m\":\n\t\t document.getElementById(\"searchType\").innerHTML = \"TheMovieDB search\";\n\t\t break;\n\t\tcase \"r\":\n\t\t document.getElementById(\"searchType\").innerHTML = \"Reddit search\";\n\t\t break;\n\t\tcase \"q\":\n\t\t document.getElementById(\"searchType\").innerHTML = \"Qwant search\";\n\t\t break;\n\t\tcase \"so\":\n\t\t document.getElementById(\"searchType\").innerHTML = \"Soundcloud search\";\n\t\t break;\n\t\tcase \"s\":\n\t\t document.getElementById(\"searchType\").innerHTML = \"Spotify search\";\n\t\t break;\n\t\tcase \"tv\":\n\t\t document.getElementById(\"searchType\").innerHTML = \"TheTVDB search\";\n\t\t break;\n\t\tcase \"t\":\n\t\t document.getElementById(\"searchType\").innerHTML = \"Trakt search\";\n\t\t break;\n\t\tcase \"y\":\n\t\t document.getElementById(\"searchType\").innerHTML = \"YouTube search\";\n\t\t break;\n\t\tcase \"w\":\n\t\t document.getElementById(\"searchType\").innerHTML = \"Wikipedia search\";\n\t\t break;\n\t\tcase \"p\":\n\t\t document.getElementById(\"searchType\").innerHTML = \"Plex search\";\n\t\t break;\n\t\tcase \"rt\":\n\t\t document.getElementById(\"searchType\").innerHTML = \"Rotten Tomatoes search\";\n\t\t break;\n\t\tdefault:\n\t\t document.getElementById(\"searchType\").innerHTML = \"Invalid search\";\n\t\t break;\n }\n\t}else {\n\t\tdocument.getElementById(\"searchType\").innerHTML = \"Google search\";\n }\n}\n\nfunction search(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n if (text[0] === '/') {\n if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n window.location = \"https://www.allmusic.com/search/all/\" + subtext;\n break;\n case \"d\":\n window.location = \"https://duckduckgo.com/?q=\" + subtext;\n break;\n case \"di\":\n window.location = \"https://www.discogs.com/search/?q=\" + subtext;\n break;\n case \"i\":\n window.location = \"https://www.imdb.com/find?q=\" + subtext;\n break;\n case \"m\":\n window.location = \"https://www.themoviedb.org/search?query=\" + subtext;\n break;\n case \"r\":\n window.location = \"https://www.reddit.com/search?q=\" + subtext;\n break;\n case \"q\":\n window.location = \"https://www.qwant.com/?q=\" + subtext;\n break;\n case \"so\":\n window.location = \"https://soundcloud.com/search?q=\" + subtext;\n break;\n case \"s\":\n window.location = \"https://open.spotify.com/search/results/\" + subtext;\n break;\n case \"t\":\n window.location = \"https://trakt.tv/search?query=\" + subtext;\n break;\n case \"tv\":\n window.location = \"https://www.thetvdb.com/search?query=\" + subtext;\n break;\n case \"y\":\n window.location = \"https://www.youtube.com/results?search_query=\" + subtext;\n break;\n\t\tcase \"w\":\n\t\t window.location = \"https://en.wikipedia.org/w/index.php?search=\" + subtext;\n\t\t break;\n\t\tcase \"p\":\n\t\t window.location = \"https://app.plex.tv/desktop/#!/search?query=\" + subtext;\n\t\t break;\n\t\tcase \"rt\":\n\t\t window.location = \"https://www.rottentomatoes.com/search?search=\" + subtext;\n\t\t break;\n }\n } else {\n var option = text.substr(1);\n switch (option) {\n case \"d\":\n window.location = \"https://www.duckduckgo.com\";\n break;\n case \"y\":\n window.location = \"https://www.youtube.com\";\n break;\n case \"r\":\n window.location = \"https://reddit.com\";\n break;\n case \"s\":\n window.location = \"https://open.spotify.com\";\n break;\n }\n }\n } else if (validURL(text)) {\n if (containsProtocol(text))\n window.location = text;\n else\n window.location = \"https://\" + text;\n } else {\n window.location = \"https://www.google.com/search?q=\" + text;\n }\n}\n\n// Source: https://stackoverflow.com/questions/5717093/check-if-a-javascript-string-is-a-url\nfunction validURL(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/)?' + // protocol\n '((([a-z\\\\d]([a-z\\\\d-]*[a-z\\\\d])*)\\\\.)+[a-z]{2,}|' + // domain name\n '((\\\\d{1,3}\\\\.){3}\\\\d{1,3}))' + // OR ip (v4) address\n '(\\\\:\\\\d+)?(\\\\/[-a-z\\\\d%_.~+]*)*' + // port and path\n '(\\\\?[;&a-z\\\\d%_.~+=-]*)?' + // query string\n '(\\\\#[-a-z\\\\d_]*)?$', 'i'); // fragment locator\n return !!pattern.test(str);\n}\n\nfunction containsProtocol(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/){1}.*', 'i');\n return !!pattern.test(str);\n}\n\nString.prototype.replaceAll = function(search, replacement) {\n var target = this;\n return target.split(search).join(replacement);\n};\n"]},"metadata":{},"sourceType":"module"}
\ No newline at end of file
diff --git a/node_modules/.cache/babel-loader/6f70cf2a5d99756af1183119594965ed.json b/node_modules/.cache/babel-loader/6f70cf2a5d99756af1183119594965ed.json
new file mode 100644
index 00000000..d252eac4
--- /dev/null
+++ b/node_modules/.cache/babel-loader/6f70cf2a5d99756af1183119594965ed.json
@@ -0,0 +1 @@
+{"ast":null,"code":"var _jsxFileName = \"/home/seanedmunds/dev/home-page/src/index.js\",\n _s = $RefreshSig$();\n\nimport React from 'react';\nimport { useState, useEffect } from 'react';\nimport ReactDOM from 'react-dom'; //import { unstable_createPortal } from 'react-dom';\n\nimport './index.css';\nimport { jsxDEV as _jsxDEV } from \"react/jsx-dev-runtime\";\n\nfunction Homepage() {\n return /*#__PURE__*/_jsxDEV(\"main\", {\n id: \"container\",\n className: \"fade\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Search, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 11,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 10,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Header, {\n date: date(),\n greet: greet()\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 14,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 13,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Applications, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 20,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 19,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Bookmarks, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 23,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 22,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(ModalMenu, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 26,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 25,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(ModalInit, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 29,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 28,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 9,\n columnNumber: 5\n }, this);\n}\n\n_c = Homepage;\n\nfunction Search() {\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"search\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"abackground\",\n children: [/*#__PURE__*/_jsxDEV(\"input\", {\n name: \"keywords\",\n type: \"text\",\n className: \"keyword\",\n id: \"keywords\",\n size: \"50\",\n spellCheck: \"true\",\n placeholder: \"\"\n /*onFocus={this.placeholder = \"\"} onBlur={this.placeholder = ''}*/\n ,\n autoComplete: \"off\",\n autoFocus: true,\n onKeyUp: handleKeyPress\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 39,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n id: \"searchType\",\n className: \"Input-label\",\n children: \"Google search\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 40,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 38,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 37,\n columnNumber: 5\n }, this);\n}\n\n_c2 = Search;\n\nfunction Header(props) {\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"header\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n id: \"greeting_block\",\n children: /*#__PURE__*/_jsxDEV(\"h1\", {\n id: \"header_greet\",\n children: props.greet\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 50,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 49,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"date_block\",\n children: [/*#__PURE__*/_jsxDEV(\"h2\", {\n id: \"header_date\",\n children: props.date\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 53,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(Clock, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 54,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 52,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 48,\n columnNumber: 5\n }, this);\n}\n\n_c3 = Header;\n\nfunction Applications() {\n let appList = getApps();\n var items = [];\n\n for (var i = 0; i < appList.apps.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(App, {\n name: appList.apps[i].name,\n url: appList.apps[i].url,\n icon: appList.apps[i].icon,\n NSFW: appList.apps[i].NSFW\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 65,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"apps\",\n children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n children: \"Applications\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 76,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"apps_loop\",\n children: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 77,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 75,\n columnNumber: 5\n }, this);\n}\n\n_c4 = Applications;\n\nfunction App(props) {\n let classNameType = props.NSFW + \"-content\";\n let hrefUrl = \"https://\" + props.url;\n let iconName = \"mdi-\" + props.icon;\n return /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: hrefUrl,\n className: classNameType,\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_item\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_icon\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify icon\",\n \"data-icon\": iconName\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 93,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 92,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_text\",\n children: [/*#__PURE__*/_jsxDEV(\"span\", {\n id: \"app-name\",\n children: props.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 96,\n columnNumber: 13\n }, this), /*#__PURE__*/_jsxDEV(\"span\", {\n id: \"app-address\",\n children: props.url\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 97,\n columnNumber: 13\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 95,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 91,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 90,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 89,\n columnNumber: 5\n }, this);\n}\n\n_c5 = App;\n\nfunction Bookmarks() {\n let bookmarkList = getLinks();\n var items = [];\n\n for (var i = 0; i < bookmarkList.bookmarks.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(LinkGroups, {\n category: bookmarkList.bookmarks[i].category,\n links: bookmarkList.bookmarks[i].links\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 110,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"links\",\n children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n children: \"Bookmarks\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 119,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"links_loop\",\n children: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 120,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 118,\n columnNumber: 5\n }, this);\n}\n\n_c6 = Bookmarks;\n\nfunction LinkGroups(props) {\n var items = [];\n\n for (var i = 0; i < props.links.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(LinkItem, {\n link: props.links[i]\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 131,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"links_item\",\n children: [/*#__PURE__*/_jsxDEV(\"h4\", {\n children: props.category\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 139,\n columnNumber: 7\n }, this), items]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 138,\n columnNumber: 5\n }, this);\n}\n\n_c7 = LinkGroups;\n\nfunction LinkItem(props) {\n return /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: props.link.url,\n className: \"theme_color-border theme_text-select\",\n children: props.link.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 148,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 147,\n columnNumber: 5\n }, this);\n}\n\n_c8 = LinkItem;\n\nfunction ModalMenu() {\n var providers = getProviders();\n var items = [];\n\n for (var i = 0; i < providers.providers.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(Provider, {\n provider: providers.providers[i]\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 158,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"modal\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n children: [/*#__PURE__*/_jsxDEV(\"header\", {\n id: \"modal-header\",\n children: [/*#__PURE__*/_jsxDEV(\"h1\", {\n children: \"Options\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 168,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n href: \"#\",\n title: \"Close\",\n className: \"modal-close\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-close\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 170,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 169,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 167,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"h2\", {\n children: \"Color themes\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 174,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"modal-theme\",\n children: [/*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"blackboard\",\n className: \"theme-button theme-blackboard\",\n onClick: updateTheme,\n children: \"Blackboard\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 177,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"gazette\",\n className: \"theme-button theme-gazette\",\n onClick: updateTheme,\n children: \"Gazette\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 178,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"espresso\",\n className: \"theme-button theme-espresso\",\n onClick: updateTheme,\n children: \"Espresso\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 179,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cab\",\n className: \"theme-button theme-cab\",\n onClick: updateTheme,\n children: \"Cab\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 180,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cloud\",\n className: \"theme-button theme-cloud\",\n onClick: updateTheme,\n children: \"Cloud\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 181,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"lime\",\n className: \"theme-button theme-lime\",\n onClick: updateTheme,\n children: \"Lime\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 182,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"passion\",\n className: \"theme-button theme-passion\",\n onClick: updateTheme,\n children: \"Passion\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 183,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"blues\",\n className: \"theme-button theme-blues\",\n onClick: updateTheme,\n children: \"Blues\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 184,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"chalk\",\n className: \"theme-button theme-chalk\",\n onClick: updateTheme,\n children: \"Chalk\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 185,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"tron\",\n className: \"theme-button theme-tron\",\n onClick: updateTheme,\n children: \"Tron\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 186,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"paper\",\n className: \"theme-button theme-paper\",\n onClick: updateTheme,\n children: \"Paper\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 187,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cyberpunk\",\n className: \"theme-button theme-cyberpunk\",\n onClick: updateTheme,\n children: \"Cyberpunk\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 188,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"quadra\",\n className: \"theme-button theme-panam\",\n onClick: updateTheme,\n children: \"Quadra\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 189,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"panam\",\n className: \"theme-button theme-panam\",\n onClick: updateTheme,\n children: \"Panam\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 190,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"touch\",\n className: \"theme-button theme-touch\",\n onClick: updateTheme,\n children: \"Touch\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 191,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"peek\",\n className: \"theme-button theme-peek\",\n onClick: updateTheme,\n children: \"Peek\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 192,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 176,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"h2\", {\n children: \"Search options\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 196,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"providers\",\n children: /*#__PURE__*/_jsxDEV(\"table\", {\n children: /*#__PURE__*/_jsxDEV(\"tbody\", {\n children: [/*#__PURE__*/_jsxDEV(\"tr\", {\n children: [/*#__PURE__*/_jsxDEV(\"th\", {\n children: \"Website\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 201,\n columnNumber: 19\n }, this), /*#__PURE__*/_jsxDEV(\"th\", {\n children: \"Prefix\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 202,\n columnNumber: 19\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 200,\n columnNumber: 17\n }, this), items]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 199,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 198,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 197,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"header\", {\n id: \"modal-footer\",\n children: [/*#__PURE__*/_jsxDEV(\"a\", {\n href: \"https://github.com/jeroenpardon/\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-github-box\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 210,\n columnNumber: 54\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 210,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n href: \"https://materialdesignicons.com/\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-material-design\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 211,\n columnNumber: 54\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 211,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"sneaky\",\n children: [/*#__PURE__*/_jsxDEV(\"input\", {\n type: \"checkbox\",\n id: \"contenttype\",\n onChange: \"nsfw(this)\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 212,\n columnNumber: 35\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n for: \"contenttype\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-domino-mask\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 213,\n columnNumber: 36\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 213,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 212,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 209,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 166,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 165,\n columnNumber: 5\n }, this);\n}\n\n_c9 = ModalMenu;\n\nfunction Provider(props) {\n return /*#__PURE__*/_jsxDEV(\"tr\", {\n children: [/*#__PURE__*/_jsxDEV(\"td\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: props.provider.url,\n children: props.provider.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 223,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 223,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"td\", {\n children: props.provider.prefix\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 224,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 222,\n columnNumber: 5\n }, this);\n}\n\n_c10 = Provider;\n\nfunction ModalInit() {\n return /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"modal_init\",\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n className: \"btn\",\n href: \"#modal\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify icon\",\n \"data-icon\": \"mdi-xbox-controller-menu\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 233,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 232,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 231,\n columnNumber: 5\n }, this);\n}\n\n_c11 = ModalInit;\nReactDOM.render( /*#__PURE__*/_jsxDEV(Homepage, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 240,\n columnNumber: 3\n}, this), document.getElementById('root')); //Functions below this line are for calculating data for\n//other functions\n\nfunction date() {\n let currentDate = new Date();\n let dateOptions = {\n weekday: \"long\",\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\"\n };\n let date = currentDate.toLocaleDateString(\"en-GB\", dateOptions);\n return date;\n}\n\nfunction fixDigits(k) {\n if (k < 10) {\n return \"0\" + k;\n } else {\n return k;\n }\n}\n\nfunction greet() {\n let currentTime = new Date();\n let greet = Math.floor(currentTime.getHours() / 6);\n let easterEggChance = Math.floor(Math.random() * 100);\n\n let greetings = require('./messages.json');\n\n let timeBased = [];\n let easterEggs = [];\n\n for (var i = 0; i < greetings.messages.length; i++) {\n if (greetings.messages[i].easteregg === \"FALSE\") {\n timeBased = timeBased.concat(greetings.messages[i]);\n } else {\n easterEggs = easterEggs.concat(greetings.messages[i]);\n }\n }\n\n if (easterEggChance > 10) {\n return timeBased[greet].message;\n } else {\n let easterEggText = Math.floor(Math.random() * easterEggs.length);\n return easterEggs[easterEggText].message;\n }\n}\n\nfunction Clock() {\n _s();\n\n const [date, setDate] = useState(new Date());\n\n function refreshClock() {\n setDate(new Date());\n }\n\n useEffect(() => {\n const timerId = setInterval(refreshClock, 1000);\n return function cleanup() {\n clearInterval(timerId);\n };\n }, []);\n var hour = date.getHours();\n var minutes = date.getMinutes(); //var seconds = date.getSeconds();\n\n var midday = \"AM\";\n midday = hour >= 12 ? \"PM\" : \"AM\";\n hour = hour === 0 ? 12 : hour > 12 ? hour - 12 : hour;\n minutes = fixDigits(minutes); //seconds = fixDigits(seconds);\n\n let time = hour + \":\" + minutes + \" \" + midday;\n return /*#__PURE__*/_jsxDEV(\"h2\", {\n id: \"clock\",\n children: time\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 311,\n columnNumber: 5\n }, this);\n}\n\n_s(Clock, \"Gqi45WOZhU2c0BLYX0HoJeiR0fk=\");\n\n_c12 = Clock;\n\nfunction getApps() {\n let applications = require('./apps.json');\n\n return applications;\n}\n\nfunction getLinks() {\n let links = require('./links.json');\n\n return links;\n}\n\nfunction getProviders() {\n let providers = require('./providers.json');\n\n return providers;\n}\n\nfunction getThemes() {\n let themes = require('./themes.json');\n\n return themes;\n}\n\nfunction updateTheme(e) {\n var themes = getThemes();\n var themeName = e.target.innerHTML.toLowerCase();\n var index = themes.themes.findIndex(function (item, i) {\n return item.name === themeName;\n });\n console.log(themes.themes[index]);\n localStorage.setItem(\"image-background\", themes.themes[index].imagebackground);\n localStorage.setItem(\"color-background\", themes.themes[index].colorbackground);\n localStorage.setItem(\"color-search-background\", themes.themes[index].colorserachbackground);\n localStorage.setItem(\"color-text-pri\", themes.themes[index].colortextpri);\n localStorage.setItem(\"color-text-acc\", themes.themes[index].colortextacc);\n localStorage.setItem(\"color-border\", themes.themes[index].colorborder);\n document.documentElement.style.setProperty(prop, `var(--${themeName}${prop.substring(10)})`);\n document.documentElement.style.setProperty(\"image-background\");\n}\n\nfunction handleKeyPress(e) {\n var sindex = 0;\n var cycle = false;\n var key = e.keyCode || e.which;\n var text = e.target.value.replaceAll(\"+\", \"%2B\");\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n\n if (key == 13) {\n // Search functions\n search(text);\n }\n\n if (key == 9) {\n // Tab Completion Functions\n e.preventDefault();\n e.stopPropagation();\n\n if (text[0] === ';') {\n switch (option) {\n case 't':\n var streamers = ['admiralbahroo', 'moonmoon_ow', 'witwix'];\n\n if (!subtext || cycle) {\n cycle = true;\n if (sindex > streamers.length - 1) sindex = 0;\n document.getElementById(\"keywords\").value = ';t ' + streamers[sindex++];\n return;\n }\n\n for (var streamer of streamers) {\n if (subtext === streamer.substr(0, subtext.length)) {\n document.getElementById(\"keywords\").value = ';t ' + streamer;\n return;\n }\n }\n\n break;\n }\n }\n }\n\n if (key == 32) {\n //Space to go to search\n updateLabel(text);\n }\n\n sindex = 0;\n cycle = false;\n updateLabel(text);\n}\n\nfunction updateLabel(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n\n if (text[0] === '/') {\n // if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n document.getElementById(\"searchType\").innerHTML = \"Allmusic search\";\n break;\n\n case \"d\":\n document.getElementById(\"searchType\").innerHTML = \"Duck Duck Go search\";\n break;\n\n case \"di\":\n document.getElementById(\"searchType\").innerHTML = \"Discogs search\";\n break;\n\n case \"i\":\n document.getElementById(\"searchType\").innerHTML = \"IMDB search\";\n break;\n\n case \"m\":\n document.getElementById(\"searchType\").innerHTML = \"TheMovieDB search\";\n break;\n\n case \"r\":\n document.getElementById(\"searchType\").innerHTML = \"Reddit search\";\n break;\n\n case \"q\":\n document.getElementById(\"searchType\").innerHTML = \"Qwant search\";\n break;\n\n case \"so\":\n document.getElementById(\"searchType\").innerHTML = \"Soundcloud search\";\n break;\n\n case \"s\":\n document.getElementById(\"searchType\").innerHTML = \"Spotify search\";\n break;\n\n case \"tv\":\n document.getElementById(\"searchType\").innerHTML = \"TheTVDB search\";\n break;\n\n case \"t\":\n document.getElementById(\"searchType\").innerHTML = \"Trakt search\";\n break;\n\n case \"y\":\n document.getElementById(\"searchType\").innerHTML = \"YouTube search\";\n break;\n\n case \"w\":\n document.getElementById(\"searchType\").innerHTML = \"Wikipedia search\";\n break;\n\n case \"p\":\n document.getElementById(\"searchType\").innerHTML = \"Plex search\";\n break;\n\n case \"rt\":\n document.getElementById(\"searchType\").innerHTML = \"Rotten Tomatoes search\";\n break;\n\n default:\n document.getElementById(\"searchType\").innerHTML = \"Invalid search\";\n break;\n }\n } else {\n document.getElementById(\"searchType\").innerHTML = \"Google search\";\n }\n}\n\nfunction search(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n\n if (text[0] === '/') {\n if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n window.location = \"https://www.allmusic.com/search/all/\" + subtext;\n break;\n\n case \"d\":\n window.location = \"https://duckduckgo.com/?q=\" + subtext;\n break;\n\n case \"di\":\n window.location = \"https://www.discogs.com/search/?q=\" + subtext;\n break;\n\n case \"i\":\n window.location = \"https://www.imdb.com/find?q=\" + subtext;\n break;\n\n case \"m\":\n window.location = \"https://www.themoviedb.org/search?query=\" + subtext;\n break;\n\n case \"r\":\n window.location = \"https://www.reddit.com/search?q=\" + subtext;\n break;\n\n case \"q\":\n window.location = \"https://www.qwant.com/?q=\" + subtext;\n break;\n\n case \"so\":\n window.location = \"https://soundcloud.com/search?q=\" + subtext;\n break;\n\n case \"s\":\n window.location = \"https://open.spotify.com/search/results/\" + subtext;\n break;\n\n case \"t\":\n window.location = \"https://trakt.tv/search?query=\" + subtext;\n break;\n\n case \"tv\":\n window.location = \"https://www.thetvdb.com/search?query=\" + subtext;\n break;\n\n case \"y\":\n window.location = \"https://www.youtube.com/results?search_query=\" + subtext;\n break;\n\n case \"w\":\n window.location = \"https://en.wikipedia.org/w/index.php?search=\" + subtext;\n break;\n\n case \"p\":\n window.location = \"https://app.plex.tv/desktop/#!/search?query=\" + subtext;\n break;\n\n case \"rt\":\n window.location = \"https://www.rottentomatoes.com/search?search=\" + subtext;\n break;\n }\n } else {\n var option = text.substr(1);\n\n switch (option) {\n case \"d\":\n window.location = \"https://www.duckduckgo.com\";\n break;\n\n case \"y\":\n window.location = \"https://www.youtube.com\";\n break;\n\n case \"r\":\n window.location = \"https://reddit.com\";\n break;\n\n case \"s\":\n window.location = \"https://open.spotify.com\";\n break;\n }\n }\n } else if (validURL(text)) {\n if (containsProtocol(text)) window.location = text;else window.location = \"https://\" + text;\n } else {\n window.location = \"https://www.google.com/search?q=\" + text;\n }\n} // Source: https://stackoverflow.com/questions/5717093/check-if-a-javascript-string-is-a-url\n\n\nfunction validURL(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/)?' + // protocol\n '((([a-z\\\\d]([a-z\\\\d-]*[a-z\\\\d])*)\\\\.)+[a-z]{2,}|' + // domain name\n '((\\\\d{1,3}\\\\.){3}\\\\d{1,3}))' + // OR ip (v4) address\n '(\\\\:\\\\d+)?(\\\\/[-a-z\\\\d%_.~+]*)*' + // port and path\n '(\\\\?[;&a-z\\\\d%_.~+=-]*)?' + // query string\n '(\\\\#[-a-z\\\\d_]*)?$', 'i'); // fragment locator\n\n return !!pattern.test(str);\n}\n\nfunction containsProtocol(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/){1}.*', 'i');\n return !!pattern.test(str);\n}\n\nString.prototype.replaceAll = function (search, replacement) {\n var target = this;\n return target.split(search).join(replacement);\n};\n\nvar _c, _c2, _c3, _c4, _c5, _c6, _c7, _c8, _c9, _c10, _c11, _c12;\n\n$RefreshReg$(_c, \"Homepage\");\n$RefreshReg$(_c2, \"Search\");\n$RefreshReg$(_c3, \"Header\");\n$RefreshReg$(_c4, \"Applications\");\n$RefreshReg$(_c5, \"App\");\n$RefreshReg$(_c6, \"Bookmarks\");\n$RefreshReg$(_c7, \"LinkGroups\");\n$RefreshReg$(_c8, \"LinkItem\");\n$RefreshReg$(_c9, \"ModalMenu\");\n$RefreshReg$(_c10, \"Provider\");\n$RefreshReg$(_c11, \"ModalInit\");\n$RefreshReg$(_c12, \"Clock\");","map":{"version":3,"sources":["/home/seanedmunds/dev/home-page/src/index.js"],"names":["React","useState","useEffect","ReactDOM","Homepage","date","greet","Search","handleKeyPress","Header","props","Applications","appList","getApps","items","i","apps","length","push","name","url","icon","NSFW","App","classNameType","hrefUrl","iconName","Bookmarks","bookmarkList","getLinks","bookmarks","category","links","LinkGroups","LinkItem","link","ModalMenu","providers","getProviders","updateTheme","Provider","provider","prefix","ModalInit","render","document","getElementById","currentDate","Date","dateOptions","weekday","year","month","day","toLocaleDateString","fixDigits","k","currentTime","Math","floor","getHours","easterEggChance","random","greetings","require","timeBased","easterEggs","messages","easteregg","concat","message","easterEggText","Clock","setDate","refreshClock","timerId","setInterval","cleanup","clearInterval","hour","minutes","getMinutes","midday","time","applications","getThemes","themes","e","themeName","target","innerHTML","toLowerCase","index","findIndex","item","console","log","localStorage","setItem","imagebackground","colorbackground","colorserachbackground","colortextpri","colortextacc","colorborder","documentElement","style","setProperty","prop","substring","sindex","cycle","key","keyCode","which","text","value","replaceAll","option","substr","indexOf","subtext","search","preventDefault","stopPropagation","streamers","streamer","updateLabel","window","location","validURL","containsProtocol","str","pattern","RegExp","test","String","prototype","replacement","split","join"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { useState, useEffect } from 'react';\nimport ReactDOM from 'react-dom';\n//import { unstable_createPortal } from 'react-dom';\nimport './index.css';\n\nfunction Homepage() {\n return (\n \n \n \n
\n \n \n
\n \n \n \n
\n \n \n
\n \n \n
\n \n );\n}\n\nfunction Search() {\n return (\n \n )\n}\n\nfunction Header(props) {\n return (\n \n );\n}\n\nfunction Applications() {\n let appList = getApps();\n var items = [];\n for (var i = 0; i < appList.apps.length; i++) {\n items.push(\n \n );\n }\n return (\n \n Applications
\n \n {items}\n
\n \n );\n}\n\nfunction App(props) {\n let classNameType = props.NSFW + \"-content\";\n let hrefUrl = \"https://\" + props.url;\n let iconName = \"mdi-\" + props.icon;\n return (\n \n );\n}\n\nfunction Bookmarks() {\n let bookmarkList = getLinks();\n var items = [];\n for (var i = 0; i < bookmarkList.bookmarks.length; i++) {\n items.push(\n \n );\n }\n return (\n \n Bookmarks
\n \n {items}\n
\n \n );\n}\n\nfunction LinkGroups(props) {\n var items = [];\n for (var i = 0; i < props.links.length; i++) {\n items.push(\n \n );\n }\n return (\n \n
{props.category}
\n {items}\n \n );\n}\n\nfunction LinkItem(props) {\n return (\n \n );\n}\n\nfunction ModalMenu() {\n var providers = getProviders();\n var items = [];\n for (var i = 0; i < providers.providers.length; i++) {\n items.push(\n \n );\n }\n return (\n \n \n \n\n
Color themes
\n\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n\n\n
Search options
\n
\n \n \n \n | Website | \n Prefix | \n
\n {items}\n \n
\n \n\n \n
\n \n );\n}\n\nfunction Provider(props) {\n return (\n \n | {props.provider.name} | \n {props.provider.prefix} | \n
\n );\n}\n\nfunction ModalInit() {\n return (\n \n );\n}\n\nReactDOM.render(\n ,\n document.getElementById('root')\n);\n\n//Functions below this line are for calculating data for\n//other functions\n\nfunction date() {\n let currentDate = new Date();\n let dateOptions = {\n weekday: \"long\",\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\"\n };\n let date = currentDate.toLocaleDateString(\"en-GB\", dateOptions);\n return date;\n}\nfunction fixDigits(k) {\n if (k < 10) {\n return \"0\" + k;\n }\n else {\n return k;\n }\n}\nfunction greet() {\n let currentTime = new Date();\n let greet = Math.floor(currentTime.getHours() / 6);\n let easterEggChance = Math.floor(Math.random() * 100);\n let greetings = require('./messages.json');\n let timeBased = [];\n let easterEggs = [];\n for (var i = 0; i < greetings.messages.length; i++) {\n if (greetings.messages[i].easteregg === \"FALSE\") {\n timeBased = timeBased.concat(greetings.messages[i]);\n } else {\n easterEggs = easterEggs.concat(greetings.messages[i]);\n }\n }\n if (easterEggChance > 10) {\n return timeBased[greet].message;\n } else {\n let easterEggText = Math.floor(Math.random() * easterEggs.length);\n return easterEggs[easterEggText].message;\n }\n}\nfunction Clock() {\n const [date, setDate] = useState(new Date());\n\n function refreshClock() {\n setDate(new Date());\n }\n useEffect(() => {\n const timerId = setInterval(refreshClock, 1000);\n return function cleanup() {\n clearInterval(timerId);\n };\n }, []);\n\n var hour = date.getHours();\n var minutes = date.getMinutes();\n //var seconds = date.getSeconds();\n var midday = \"AM\";\n midday = (hour >= 12) ? \"PM\" : \"AM\";\n hour = (hour === 0) ? 12 : ((hour > 12) ? (hour - 12) : hour);\n minutes = fixDigits(minutes);\n //seconds = fixDigits(seconds);\n let time = hour + \":\" + minutes + \" \" + midday;\n\n return (\n {time}
\n\n );\n}\nfunction getApps() {\n let applications = require('./apps.json');\n return applications;\n}\nfunction getLinks() {\n let links = require('./links.json');\n return links;\n}\nfunction getProviders() {\n let providers = require('./providers.json');\n return providers;\n}\nfunction getThemes() {\n let themes = require('./themes.json');\n return themes;\n}\n\nfunction updateTheme(e) {\n var themes = getThemes();\n var themeName = e.target.innerHTML.toLowerCase();\n var index = themes.themes.findIndex(function(item, i){\n return item.name === themeName\n });\n console.log(themes.themes[index]);\n localStorage.setItem(\"image-background\", themes.themes[index].imagebackground);\n localStorage.setItem(\"color-background\", themes.themes[index].colorbackground);\n localStorage.setItem(\"color-search-background\", themes.themes[index].colorserachbackground);\n localStorage.setItem(\"color-text-pri\",themes.themes[index].colortextpri);\n localStorage.setItem(\"color-text-acc\", themes.themes[index].colortextacc);\n localStorage.setItem(\"color-border\", themes.themes[index].colorborder);\n \n document.documentElement.style.setProperty(prop, `var(--${themeName}${prop.substring(10)})`);\n document.documentElement.style.setProperty(\"image-background\")\n}\n\nfunction handleKeyPress(e) {\n var sindex = 0;\n var cycle = false;\n var key = e.keyCode || e.which;\n var text = e.target.value.replaceAll(\"+\", \"%2B\");\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n if (key == 13) { // Search functions\n search(text);\n }\n if (key == 9) { // Tab Completion Functions\n e.preventDefault();\n e.stopPropagation();\n if (text[0] === ';') {\n switch (option) {\n case 't':\n var streamers = ['admiralbahroo', 'moonmoon_ow', 'witwix'];\n if (!subtext || cycle) {\n cycle = true;\n if (sindex > streamers.length - 1) sindex = 0;\n document.getElementById(\"keywords\").value = ';t ' + streamers[sindex++];\n return;\n }\n for (var streamer of streamers) {\n if (subtext === streamer.substr(0, subtext.length)) {\n document.getElementById(\"keywords\").value = ';t ' + streamer;\n return;\n }\n }\n break;\n }\n }\n }\n if(key == 32){ //Space to go to search\nupdateLabel(text);\n }\n sindex = 0;\n cycle = false;\n updateLabel(text);\n}\n\nfunction updateLabel(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n if (text[0] === '/') {\n// if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n document.getElementById(\"searchType\").innerHTML = \"Allmusic search\";\n break;\n case \"d\":\n document.getElementById(\"searchType\").innerHTML = \"Duck Duck Go search\";\n break;\n case \"di\":\n document.getElementById(\"searchType\").innerHTML = \"Discogs search\";\n break;\n case \"i\":\n document.getElementById(\"searchType\").innerHTML = \"IMDB search\";\n break;\n case \"m\":\n document.getElementById(\"searchType\").innerHTML = \"TheMovieDB search\";\n break;\n case \"r\":\n document.getElementById(\"searchType\").innerHTML = \"Reddit search\";\n break;\n case \"q\":\n document.getElementById(\"searchType\").innerHTML = \"Qwant search\";\n break;\n case \"so\":\n document.getElementById(\"searchType\").innerHTML = \"Soundcloud search\";\n break;\n case \"s\":\n document.getElementById(\"searchType\").innerHTML = \"Spotify search\";\n break;\n case \"tv\":\n document.getElementById(\"searchType\").innerHTML = \"TheTVDB search\";\n break;\n case \"t\":\n document.getElementById(\"searchType\").innerHTML = \"Trakt search\";\n break;\n case \"y\":\n document.getElementById(\"searchType\").innerHTML = \"YouTube search\";\n break;\n case \"w\":\n document.getElementById(\"searchType\").innerHTML = \"Wikipedia search\";\n break;\n case \"p\":\n document.getElementById(\"searchType\").innerHTML = \"Plex search\";\n break;\n case \"rt\":\n document.getElementById(\"searchType\").innerHTML = \"Rotten Tomatoes search\";\n break;\n default:\n document.getElementById(\"searchType\").innerHTML = \"Invalid search\";\n break;\n }\n}else {\n document.getElementById(\"searchType\").innerHTML = \"Google search\";\n }\n}\n\nfunction search(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n if (text[0] === '/') {\n if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n window.location = \"https://www.allmusic.com/search/all/\" + subtext;\n break;\n case \"d\":\n window.location = \"https://duckduckgo.com/?q=\" + subtext;\n break;\n case \"di\":\n window.location = \"https://www.discogs.com/search/?q=\" + subtext;\n break;\n case \"i\":\n window.location = \"https://www.imdb.com/find?q=\" + subtext;\n break;\n case \"m\":\n window.location = \"https://www.themoviedb.org/search?query=\" + subtext;\n break;\n case \"r\":\n window.location = \"https://www.reddit.com/search?q=\" + subtext;\n break;\n case \"q\":\n window.location = \"https://www.qwant.com/?q=\" + subtext;\n break;\n case \"so\":\n window.location = \"https://soundcloud.com/search?q=\" + subtext;\n break;\n case \"s\":\n window.location = \"https://open.spotify.com/search/results/\" + subtext;\n break;\n case \"t\":\n window.location = \"https://trakt.tv/search?query=\" + subtext;\n break;\n case \"tv\":\n window.location = \"https://www.thetvdb.com/search?query=\" + subtext;\n break;\n case \"y\":\n window.location = \"https://www.youtube.com/results?search_query=\" + subtext;\n break;\n case \"w\":\n window.location = \"https://en.wikipedia.org/w/index.php?search=\" + subtext;\n break;\n case \"p\":\n window.location = \"https://app.plex.tv/desktop/#!/search?query=\" + subtext;\n break;\n case \"rt\":\n window.location = \"https://www.rottentomatoes.com/search?search=\" + subtext;\n break;\n }\n } else {\n var option = text.substr(1);\n switch (option) {\n case \"d\":\n window.location = \"https://www.duckduckgo.com\";\n break;\n case \"y\":\n window.location = \"https://www.youtube.com\";\n break;\n case \"r\":\n window.location = \"https://reddit.com\";\n break;\n case \"s\":\n window.location = \"https://open.spotify.com\";\n break;\n }\n }\n } else if (validURL(text)) {\n if (containsProtocol(text))\n window.location = text;\n else\n window.location = \"https://\" + text;\n } else {\n window.location = \"https://www.google.com/search?q=\" + text;\n }\n}\n\n// Source: https://stackoverflow.com/questions/5717093/check-if-a-javascript-string-is-a-url\nfunction validURL(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/)?' + // protocol\n '((([a-z\\\\d]([a-z\\\\d-]*[a-z\\\\d])*)\\\\.)+[a-z]{2,}|' + // domain name\n '((\\\\d{1,3}\\\\.){3}\\\\d{1,3}))' + // OR ip (v4) address\n '(\\\\:\\\\d+)?(\\\\/[-a-z\\\\d%_.~+]*)*' + // port and path\n '(\\\\?[;&a-z\\\\d%_.~+=-]*)?' + // query string\n '(\\\\#[-a-z\\\\d_]*)?$', 'i'); // fragment locator\n return !!pattern.test(str);\n}\n\nfunction containsProtocol(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/){1}.*', 'i');\n return !!pattern.test(str);\n}\n\nString.prototype.replaceAll = function(search, replacement) {\n var target = this;\n return target.split(search).join(replacement);\n};"]},"metadata":{},"sourceType":"module"}
\ No newline at end of file
diff --git a/node_modules/.cache/babel-loader/7183bae64415863f90eb8b7b821b9055.json b/node_modules/.cache/babel-loader/7183bae64415863f90eb8b7b821b9055.json
new file mode 100644
index 00000000..d86159ed
--- /dev/null
+++ b/node_modules/.cache/babel-loader/7183bae64415863f90eb8b7b821b9055.json
@@ -0,0 +1 @@
+{"ast":null,"code":"var _jsxFileName = \"/home/seanedmunds/dev/home-page/src/index.js\",\n _s = $RefreshSig$();\n\nimport React from 'react';\nimport { useState, useEffect } from 'react';\nimport ReactDOM from 'react-dom'; //import { unstable_createPortal } from 'react-dom';\n\nimport './index.css';\nimport { jsxDEV as _jsxDEV } from \"react/jsx-dev-runtime\";\n\nfunction Homepage() {\n return /*#__PURE__*/_jsxDEV(\"main\", {\n id: \"container\",\n className: \"fade\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Search, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 11,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 10,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Header, {\n date: date(),\n greet: greet()\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 14,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 13,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Applications, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 20,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 19,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Bookmarks, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 23,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 22,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(ModalMenu, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 26,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 25,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(ModalInit, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 29,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 28,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 9,\n columnNumber: 5\n }, this);\n}\n\n_c = Homepage;\n\nfunction Search() {\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"search\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"abackground\",\n children: [/*#__PURE__*/_jsxDEV(\"input\", {\n name: \"keywords\",\n type: \"text\",\n className: \"keyword\",\n id: \"keywords\",\n size: \"50\",\n spellCheck: \"true\",\n placeholder: \"\"\n /*onFocus={this.placeholder = \"\"} onBlur={this.placeholder = ''}*/\n ,\n autoComplete: \"off\",\n autoFocus: true,\n onKeyUp: handleKeyPress\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 39,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n id: \"searchType\",\n className: \"Input-label\",\n children: \"Google search\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 40,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 38,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 37,\n columnNumber: 5\n }, this);\n}\n\n_c2 = Search;\n\nfunction Header(props) {\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"header\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n id: \"greeting_block\",\n children: /*#__PURE__*/_jsxDEV(\"h1\", {\n id: \"header_greet\",\n children: props.greet\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 50,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 49,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"date_block\",\n children: [/*#__PURE__*/_jsxDEV(\"h2\", {\n id: \"header_date\",\n children: props.date\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 53,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(Clock, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 54,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 52,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 48,\n columnNumber: 5\n }, this);\n}\n\n_c3 = Header;\n\nfunction Applications() {\n let appList = getApps();\n var items = [];\n\n for (var i = 0; i < appList.apps.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(App, {\n name: appList.apps[i].name,\n url: appList.apps[i].url,\n icon: appList.apps[i].icon,\n NSFW: appList.apps[i].NSFW\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 65,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"apps\",\n children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n children: \"Applications\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 76,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"apps_loop\",\n children: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 77,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 75,\n columnNumber: 5\n }, this);\n}\n\n_c4 = Applications;\n\nfunction App(props) {\n let classNameType = props.NSFW + \"-content\";\n let hrefUrl = \"https://\" + props.url;\n let iconName = \"mdi-\" + props.icon;\n return /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: hrefUrl,\n className: classNameType,\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_item\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_icon\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify icon\",\n \"data-icon\": iconName\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 93,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 92,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_text\",\n children: [/*#__PURE__*/_jsxDEV(\"span\", {\n id: \"app-name\",\n children: props.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 96,\n columnNumber: 13\n }, this), /*#__PURE__*/_jsxDEV(\"span\", {\n id: \"app-address\",\n children: props.url\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 97,\n columnNumber: 13\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 95,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 91,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 90,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 89,\n columnNumber: 5\n }, this);\n}\n\n_c5 = App;\n\nfunction Bookmarks() {\n let bookmarkList = getLinks();\n var items = [];\n\n for (var i = 0; i < bookmarkList.bookmarks.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(LinkGroups, {\n category: bookmarkList.bookmarks[i].category,\n links: bookmarkList.bookmarks[i].links\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 110,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"links\",\n children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n children: \"Bookmarks\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 119,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"links_loop\",\n children: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 120,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 118,\n columnNumber: 5\n }, this);\n}\n\n_c6 = Bookmarks;\n\nfunction LinkGroups(props) {\n var items = [];\n\n for (var i = 0; i < props.links.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(LinkItem, {\n link: props.links[i]\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 131,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"links_item\",\n children: [/*#__PURE__*/_jsxDEV(\"h4\", {\n children: props.category\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 139,\n columnNumber: 7\n }, this), items]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 138,\n columnNumber: 5\n }, this);\n}\n\n_c7 = LinkGroups;\n\nfunction LinkItem(props) {\n return /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: props.link.url,\n className: \"theme_color-border theme_text-select\",\n children: props.link.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 148,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 147,\n columnNumber: 5\n }, this);\n}\n\n_c8 = LinkItem;\n\nfunction ModalMenu() {\n var providers = getProviders();\n var items = [];\n\n for (var i = 0; i < providers.providers.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(Provider, {\n provider: providers.providers[i]\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 158,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"modal\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n children: [/*#__PURE__*/_jsxDEV(\"header\", {\n id: \"modal-header\",\n children: [/*#__PURE__*/_jsxDEV(\"h1\", {\n children: \"Options\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 168,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n href: \"#\",\n title: \"Close\",\n className: \"modal-close\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-close\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 170,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 169,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 167,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"h2\", {\n children: \"Color themes\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 174,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"modal-theme\",\n children: [/*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"blackboard\",\n className: \"theme-button theme-blackboard\",\n onClick: updateTheme,\n children: \"Blackboard\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 177,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"gazette\",\n className: \"theme-button theme-gazette\",\n children: \"Gazette\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 178,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"espresso\",\n className: \"theme-button theme-espresso\",\n children: \"Espresso\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 179,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cab\",\n className: \"theme-button theme-cab\",\n children: \"Cab\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 180,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cloud\",\n className: \"theme-button theme-cloud\",\n children: \"Cloud\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 181,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"lime\",\n className: \"theme-button theme-lime\",\n children: \"Lime\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 182,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"passion\",\n className: \"theme-button theme-passion\",\n children: \"Passion\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 183,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"blues\",\n className: \"theme-button theme-blues\",\n children: \"Blues\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 184,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"chalk\",\n className: \"theme-button theme-chalk\",\n children: \"Chalk\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 185,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"tron\",\n className: \"theme-button theme-tron\",\n children: \"Tron\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 186,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"paper\",\n className: \"theme-button theme-paper\",\n children: \"Paper\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 187,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cyberpunk\",\n className: \"theme-button theme-cyberpunk\",\n children: \"Cyberpunk\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 188,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"quadra\",\n className: \"theme-button theme-panam\",\n children: \"Quadra\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 189,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"panam\",\n className: \"theme-button theme-panam\",\n children: \"Panam\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 190,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"touch\",\n className: \"theme-button theme-touch\",\n children: \"Touch\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 191,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"peek\",\n className: \"theme-button theme-peek\",\n children: \"Peek\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 192,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 176,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"h2\", {\n children: \"Search options\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 196,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"providers\",\n children: /*#__PURE__*/_jsxDEV(\"table\", {\n children: /*#__PURE__*/_jsxDEV(\"tbody\", {\n children: [/*#__PURE__*/_jsxDEV(\"tr\", {\n children: [/*#__PURE__*/_jsxDEV(\"th\", {\n children: \"Website\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 201,\n columnNumber: 19\n }, this), /*#__PURE__*/_jsxDEV(\"th\", {\n children: \"Prefix\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 202,\n columnNumber: 19\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 200,\n columnNumber: 17\n }, this), items]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 199,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 198,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 197,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"header\", {\n id: \"modal-footer\",\n children: [/*#__PURE__*/_jsxDEV(\"a\", {\n href: \"https://github.com/jeroenpardon/\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-github-box\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 210,\n columnNumber: 54\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 210,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n href: \"https://materialdesignicons.com/\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-material-design\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 211,\n columnNumber: 54\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 211,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"sneaky\",\n children: [/*#__PURE__*/_jsxDEV(\"input\", {\n type: \"checkbox\",\n id: \"contenttype\",\n onChange: \"nsfw(this)\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 212,\n columnNumber: 35\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n for: \"contenttype\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-domino-mask\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 213,\n columnNumber: 36\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 213,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 212,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 209,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 166,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 165,\n columnNumber: 5\n }, this);\n}\n\n_c9 = ModalMenu;\n\nfunction Provider(props) {\n return /*#__PURE__*/_jsxDEV(\"tr\", {\n children: [/*#__PURE__*/_jsxDEV(\"td\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: props.provider.url,\n children: props.provider.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 223,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 223,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"td\", {\n children: props.provider.prefix\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 224,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 222,\n columnNumber: 5\n }, this);\n}\n\n_c10 = Provider;\n\nfunction ModalInit() {\n return /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"modal_init\",\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n className: \"btn\",\n href: \"#modal\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify icon\",\n \"data-icon\": \"mdi-xbox-controller-menu\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 233,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 232,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 231,\n columnNumber: 5\n }, this);\n}\n\n_c11 = ModalInit;\nReactDOM.render( /*#__PURE__*/_jsxDEV(Homepage, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 240,\n columnNumber: 3\n}, this), document.getElementById('root')); //Functions below this line are for calculating data for\n//other functions\n\nfunction date() {\n let currentDate = new Date();\n let dateOptions = {\n weekday: \"long\",\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\"\n };\n let date = currentDate.toLocaleDateString(\"en-GB\", dateOptions);\n return date;\n}\n\nfunction fixDigits(k) {\n if (k < 10) {\n return \"0\" + k;\n } else {\n return k;\n }\n}\n\nfunction greet() {\n let currentTime = new Date();\n let greet = Math.floor(currentTime.getHours() / 6);\n let easterEggChance = Math.floor(Math.random() * 100);\n\n let greetings = require('./messages.json');\n\n let timeBased = [];\n let easterEggs = [];\n\n for (var i = 0; i < greetings.messages.length; i++) {\n if (greetings.messages[i].easteregg === \"FALSE\") {\n timeBased = timeBased.concat(greetings.messages[i]);\n } else {\n easterEggs = easterEggs.concat(greetings.messages[i]);\n }\n }\n\n if (easterEggChance > 10) {\n return timeBased[greet].message;\n } else {\n let easterEggText = Math.floor(Math.random() * easterEggs.length);\n return easterEggs[easterEggText].message;\n }\n}\n\nfunction Clock() {\n _s();\n\n const [date, setDate] = useState(new Date());\n\n function refreshClock() {\n setDate(new Date());\n }\n\n useEffect(() => {\n const timerId = setInterval(refreshClock, 1000);\n return function cleanup() {\n clearInterval(timerId);\n };\n }, []);\n var hour = date.getHours();\n var minutes = date.getMinutes(); //var seconds = date.getSeconds();\n\n var midday = \"AM\";\n midday = hour >= 12 ? \"PM\" : \"AM\";\n hour = hour === 0 ? 12 : hour > 12 ? hour - 12 : hour;\n minutes = fixDigits(minutes); //seconds = fixDigits(seconds);\n\n let time = hour + \":\" + minutes + \" \" + midday;\n return /*#__PURE__*/_jsxDEV(\"h2\", {\n id: \"clock\",\n children: time\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 311,\n columnNumber: 5\n }, this);\n}\n\n_s(Clock, \"Gqi45WOZhU2c0BLYX0HoJeiR0fk=\");\n\n_c12 = Clock;\n\nfunction getApps() {\n let applications = require('./apps.json');\n\n return applications;\n}\n\nfunction getLinks() {\n let links = require('./links.json');\n\n return links;\n}\n\nfunction getProviders() {\n let providers = require('./providers.json');\n\n return providers;\n}\n\nfunction getThemes() {\n let themes = require('./themes.json');\n\n return themes;\n}\n\nfunction updateTheme(e) {\n var themes = getThemes().themes;\n var themeName = e.target.innerHTML.toLowerCase();\n console.log(themes.name);\n}\n\nfunction handleKeyPress(e) {\n var sindex = 0;\n var cycle = false;\n var key = e.keyCode || e.which;\n var text = e.target.value.replaceAll(\"+\", \"%2B\");\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n\n if (key == 13) {\n // Search functions\n search(text);\n }\n\n if (key == 9) {\n // Tab Completion Functions\n e.preventDefault();\n e.stopPropagation();\n\n if (text[0] === ';') {\n switch (option) {\n case 't':\n var streamers = ['admiralbahroo', 'moonmoon_ow', 'witwix'];\n\n if (!subtext || cycle) {\n cycle = true;\n if (sindex > streamers.length - 1) sindex = 0;\n document.getElementById(\"keywords\").value = ';t ' + streamers[sindex++];\n return;\n }\n\n for (var streamer of streamers) {\n if (subtext === streamer.substr(0, subtext.length)) {\n document.getElementById(\"keywords\").value = ';t ' + streamer;\n return;\n }\n }\n\n break;\n }\n }\n }\n\n if (key == 32) {\n //Space to go to search\n updateLabel(text);\n }\n\n sindex = 0;\n cycle = false;\n updateLabel(text);\n}\n\nfunction updateLabel(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n\n if (text[0] === '/') {\n // if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n document.getElementById(\"searchType\").innerHTML = \"Allmusic search\";\n break;\n\n case \"d\":\n document.getElementById(\"searchType\").innerHTML = \"Duck Duck Go search\";\n break;\n\n case \"di\":\n document.getElementById(\"searchType\").innerHTML = \"Discogs search\";\n break;\n\n case \"i\":\n document.getElementById(\"searchType\").innerHTML = \"IMDB search\";\n break;\n\n case \"m\":\n document.getElementById(\"searchType\").innerHTML = \"TheMovieDB search\";\n break;\n\n case \"r\":\n document.getElementById(\"searchType\").innerHTML = \"Reddit search\";\n break;\n\n case \"q\":\n document.getElementById(\"searchType\").innerHTML = \"Qwant search\";\n break;\n\n case \"so\":\n document.getElementById(\"searchType\").innerHTML = \"Soundcloud search\";\n break;\n\n case \"s\":\n document.getElementById(\"searchType\").innerHTML = \"Spotify search\";\n break;\n\n case \"tv\":\n document.getElementById(\"searchType\").innerHTML = \"TheTVDB search\";\n break;\n\n case \"t\":\n document.getElementById(\"searchType\").innerHTML = \"Trakt search\";\n break;\n\n case \"y\":\n document.getElementById(\"searchType\").innerHTML = \"YouTube search\";\n break;\n\n case \"w\":\n document.getElementById(\"searchType\").innerHTML = \"Wikipedia search\";\n break;\n\n case \"p\":\n document.getElementById(\"searchType\").innerHTML = \"Plex search\";\n break;\n\n case \"rt\":\n document.getElementById(\"searchType\").innerHTML = \"Rotten Tomatoes search\";\n break;\n\n default:\n document.getElementById(\"searchType\").innerHTML = \"Invalid search\";\n break;\n }\n } else {\n document.getElementById(\"searchType\").innerHTML = \"Google search\";\n }\n}\n\nfunction search(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n\n if (text[0] === '/') {\n if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n window.location = \"https://www.allmusic.com/search/all/\" + subtext;\n break;\n\n case \"d\":\n window.location = \"https://duckduckgo.com/?q=\" + subtext;\n break;\n\n case \"di\":\n window.location = \"https://www.discogs.com/search/?q=\" + subtext;\n break;\n\n case \"i\":\n window.location = \"https://www.imdb.com/find?q=\" + subtext;\n break;\n\n case \"m\":\n window.location = \"https://www.themoviedb.org/search?query=\" + subtext;\n break;\n\n case \"r\":\n window.location = \"https://www.reddit.com/search?q=\" + subtext;\n break;\n\n case \"q\":\n window.location = \"https://www.qwant.com/?q=\" + subtext;\n break;\n\n case \"so\":\n window.location = \"https://soundcloud.com/search?q=\" + subtext;\n break;\n\n case \"s\":\n window.location = \"https://open.spotify.com/search/results/\" + subtext;\n break;\n\n case \"t\":\n window.location = \"https://trakt.tv/search?query=\" + subtext;\n break;\n\n case \"tv\":\n window.location = \"https://www.thetvdb.com/search?query=\" + subtext;\n break;\n\n case \"y\":\n window.location = \"https://www.youtube.com/results?search_query=\" + subtext;\n break;\n\n case \"w\":\n window.location = \"https://en.wikipedia.org/w/index.php?search=\" + subtext;\n break;\n\n case \"p\":\n window.location = \"https://app.plex.tv/desktop/#!/search?query=\" + subtext;\n break;\n\n case \"rt\":\n window.location = \"https://www.rottentomatoes.com/search?search=\" + subtext;\n break;\n }\n } else {\n var option = text.substr(1);\n\n switch (option) {\n case \"d\":\n window.location = \"https://www.duckduckgo.com\";\n break;\n\n case \"y\":\n window.location = \"https://www.youtube.com\";\n break;\n\n case \"r\":\n window.location = \"https://reddit.com\";\n break;\n\n case \"s\":\n window.location = \"https://open.spotify.com\";\n break;\n }\n }\n } else if (validURL(text)) {\n if (containsProtocol(text)) window.location = text;else window.location = \"https://\" + text;\n } else {\n window.location = \"https://www.google.com/search?q=\" + text;\n }\n} // Source: https://stackoverflow.com/questions/5717093/check-if-a-javascript-string-is-a-url\n\n\nfunction validURL(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/)?' + // protocol\n '((([a-z\\\\d]([a-z\\\\d-]*[a-z\\\\d])*)\\\\.)+[a-z]{2,}|' + // domain name\n '((\\\\d{1,3}\\\\.){3}\\\\d{1,3}))' + // OR ip (v4) address\n '(\\\\:\\\\d+)?(\\\\/[-a-z\\\\d%_.~+]*)*' + // port and path\n '(\\\\?[;&a-z\\\\d%_.~+=-]*)?' + // query string\n '(\\\\#[-a-z\\\\d_]*)?$', 'i'); // fragment locator\n\n return !!pattern.test(str);\n}\n\nfunction containsProtocol(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/){1}.*', 'i');\n return !!pattern.test(str);\n}\n\nString.prototype.replaceAll = function (search, replacement) {\n var target = this;\n return target.split(search).join(replacement);\n};\n\nvar _c, _c2, _c3, _c4, _c5, _c6, _c7, _c8, _c9, _c10, _c11, _c12;\n\n$RefreshReg$(_c, \"Homepage\");\n$RefreshReg$(_c2, \"Search\");\n$RefreshReg$(_c3, \"Header\");\n$RefreshReg$(_c4, \"Applications\");\n$RefreshReg$(_c5, \"App\");\n$RefreshReg$(_c6, \"Bookmarks\");\n$RefreshReg$(_c7, \"LinkGroups\");\n$RefreshReg$(_c8, \"LinkItem\");\n$RefreshReg$(_c9, \"ModalMenu\");\n$RefreshReg$(_c10, \"Provider\");\n$RefreshReg$(_c11, \"ModalInit\");\n$RefreshReg$(_c12, \"Clock\");","map":{"version":3,"sources":["/home/seanedmunds/dev/home-page/src/index.js"],"names":["React","useState","useEffect","ReactDOM","Homepage","date","greet","Search","handleKeyPress","Header","props","Applications","appList","getApps","items","i","apps","length","push","name","url","icon","NSFW","App","classNameType","hrefUrl","iconName","Bookmarks","bookmarkList","getLinks","bookmarks","category","links","LinkGroups","LinkItem","link","ModalMenu","providers","getProviders","updateTheme","Provider","provider","prefix","ModalInit","render","document","getElementById","currentDate","Date","dateOptions","weekday","year","month","day","toLocaleDateString","fixDigits","k","currentTime","Math","floor","getHours","easterEggChance","random","greetings","require","timeBased","easterEggs","messages","easteregg","concat","message","easterEggText","Clock","setDate","refreshClock","timerId","setInterval","cleanup","clearInterval","hour","minutes","getMinutes","midday","time","applications","getThemes","themes","e","themeName","target","innerHTML","toLowerCase","console","log","sindex","cycle","key","keyCode","which","text","value","replaceAll","option","substr","indexOf","subtext","search","preventDefault","stopPropagation","streamers","streamer","updateLabel","window","location","validURL","containsProtocol","str","pattern","RegExp","test","String","prototype","replacement","split","join"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { useState, useEffect } from 'react';\nimport ReactDOM from 'react-dom';\n//import { unstable_createPortal } from 'react-dom';\nimport './index.css';\n\nfunction Homepage() {\n return (\n \n \n \n
\n \n \n
\n \n \n \n
\n \n \n
\n \n \n
\n \n );\n}\n\nfunction Search() {\n return (\n \n )\n}\n\nfunction Header(props) {\n return (\n \n );\n}\n\nfunction Applications() {\n let appList = getApps();\n var items = [];\n for (var i = 0; i < appList.apps.length; i++) {\n items.push(\n \n );\n }\n return (\n \n Applications
\n \n {items}\n
\n \n );\n}\n\nfunction App(props) {\n let classNameType = props.NSFW + \"-content\";\n let hrefUrl = \"https://\" + props.url;\n let iconName = \"mdi-\" + props.icon;\n return (\n \n );\n}\n\nfunction Bookmarks() {\n let bookmarkList = getLinks();\n var items = [];\n for (var i = 0; i < bookmarkList.bookmarks.length; i++) {\n items.push(\n \n );\n }\n return (\n \n Bookmarks
\n \n {items}\n
\n \n );\n}\n\nfunction LinkGroups(props) {\n var items = [];\n for (var i = 0; i < props.links.length; i++) {\n items.push(\n \n );\n }\n return (\n \n
{props.category}
\n {items}\n \n );\n}\n\nfunction LinkItem(props) {\n return (\n \n );\n}\n\nfunction ModalMenu() {\n var providers = getProviders();\n var items = [];\n for (var i = 0; i < providers.providers.length; i++) {\n items.push(\n \n );\n }\n return (\n \n \n \n\n
Color themes
\n\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n\n\n
Search options
\n
\n \n \n \n | Website | \n Prefix | \n
\n {items}\n \n
\n \n\n \n
\n \n );\n}\n\nfunction Provider(props) {\n return (\n \n | {props.provider.name} | \n {props.provider.prefix} | \n
\n );\n}\n\nfunction ModalInit() {\n return (\n \n );\n}\n\nReactDOM.render(\n ,\n document.getElementById('root')\n);\n\n//Functions below this line are for calculating data for\n//other functions\n\nfunction date() {\n let currentDate = new Date();\n let dateOptions = {\n weekday: \"long\",\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\"\n };\n let date = currentDate.toLocaleDateString(\"en-GB\", dateOptions);\n return date;\n}\nfunction fixDigits(k) {\n if (k < 10) {\n return \"0\" + k;\n }\n else {\n return k;\n }\n}\nfunction greet() {\n let currentTime = new Date();\n let greet = Math.floor(currentTime.getHours() / 6);\n let easterEggChance = Math.floor(Math.random() * 100);\n let greetings = require('./messages.json');\n let timeBased = [];\n let easterEggs = [];\n for (var i = 0; i < greetings.messages.length; i++) {\n if (greetings.messages[i].easteregg === \"FALSE\") {\n timeBased = timeBased.concat(greetings.messages[i]);\n } else {\n easterEggs = easterEggs.concat(greetings.messages[i]);\n }\n }\n if (easterEggChance > 10) {\n return timeBased[greet].message;\n } else {\n let easterEggText = Math.floor(Math.random() * easterEggs.length);\n return easterEggs[easterEggText].message;\n }\n}\nfunction Clock() {\n const [date, setDate] = useState(new Date());\n\n function refreshClock() {\n setDate(new Date());\n }\n useEffect(() => {\n const timerId = setInterval(refreshClock, 1000);\n return function cleanup() {\n clearInterval(timerId);\n };\n }, []);\n\n var hour = date.getHours();\n var minutes = date.getMinutes();\n //var seconds = date.getSeconds();\n var midday = \"AM\";\n midday = (hour >= 12) ? \"PM\" : \"AM\";\n hour = (hour === 0) ? 12 : ((hour > 12) ? (hour - 12) : hour);\n minutes = fixDigits(minutes);\n //seconds = fixDigits(seconds);\n let time = hour + \":\" + minutes + \" \" + midday;\n\n return (\n {time}
\n\n );\n}\nfunction getApps() {\n let applications = require('./apps.json');\n return applications;\n}\nfunction getLinks() {\n let links = require('./links.json');\n return links;\n}\nfunction getProviders() {\n let providers = require('./providers.json');\n return providers;\n}\nfunction getThemes() {\n let themes = require('./themes.json');\n return themes;\n}\n\nfunction updateTheme(e) {\n var themes = getThemes().themes;\n var themeName = e.target.innerHTML.toLowerCase();\n console.log(themes.name);\n}\n\nfunction handleKeyPress(e) {\n var sindex = 0;\n var cycle = false;\n var key = e.keyCode || e.which;\n var text = e.target.value.replaceAll(\"+\", \"%2B\");\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n if (key == 13) { // Search functions\n search(text);\n }\n if (key == 9) { // Tab Completion Functions\n e.preventDefault();\n e.stopPropagation();\n if (text[0] === ';') {\n switch (option) {\n case 't':\n var streamers = ['admiralbahroo', 'moonmoon_ow', 'witwix'];\n if (!subtext || cycle) {\n cycle = true;\n if (sindex > streamers.length - 1) sindex = 0;\n document.getElementById(\"keywords\").value = ';t ' + streamers[sindex++];\n return;\n }\n for (var streamer of streamers) {\n if (subtext === streamer.substr(0, subtext.length)) {\n document.getElementById(\"keywords\").value = ';t ' + streamer;\n return;\n }\n }\n break;\n }\n }\n }\n if(key == 32){ //Space to go to search\nupdateLabel(text);\n }\n sindex = 0;\n cycle = false;\n updateLabel(text);\n}\n\nfunction updateLabel(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n if (text[0] === '/') {\n// if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n document.getElementById(\"searchType\").innerHTML = \"Allmusic search\";\n break;\n case \"d\":\n document.getElementById(\"searchType\").innerHTML = \"Duck Duck Go search\";\n break;\n case \"di\":\n document.getElementById(\"searchType\").innerHTML = \"Discogs search\";\n break;\n case \"i\":\n document.getElementById(\"searchType\").innerHTML = \"IMDB search\";\n break;\n case \"m\":\n document.getElementById(\"searchType\").innerHTML = \"TheMovieDB search\";\n break;\n case \"r\":\n document.getElementById(\"searchType\").innerHTML = \"Reddit search\";\n break;\n case \"q\":\n document.getElementById(\"searchType\").innerHTML = \"Qwant search\";\n break;\n case \"so\":\n document.getElementById(\"searchType\").innerHTML = \"Soundcloud search\";\n break;\n case \"s\":\n document.getElementById(\"searchType\").innerHTML = \"Spotify search\";\n break;\n case \"tv\":\n document.getElementById(\"searchType\").innerHTML = \"TheTVDB search\";\n break;\n case \"t\":\n document.getElementById(\"searchType\").innerHTML = \"Trakt search\";\n break;\n case \"y\":\n document.getElementById(\"searchType\").innerHTML = \"YouTube search\";\n break;\n case \"w\":\n document.getElementById(\"searchType\").innerHTML = \"Wikipedia search\";\n break;\n case \"p\":\n document.getElementById(\"searchType\").innerHTML = \"Plex search\";\n break;\n case \"rt\":\n document.getElementById(\"searchType\").innerHTML = \"Rotten Tomatoes search\";\n break;\n default:\n document.getElementById(\"searchType\").innerHTML = \"Invalid search\";\n break;\n }\n}else {\n document.getElementById(\"searchType\").innerHTML = \"Google search\";\n }\n}\n\nfunction search(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n if (text[0] === '/') {\n if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n window.location = \"https://www.allmusic.com/search/all/\" + subtext;\n break;\n case \"d\":\n window.location = \"https://duckduckgo.com/?q=\" + subtext;\n break;\n case \"di\":\n window.location = \"https://www.discogs.com/search/?q=\" + subtext;\n break;\n case \"i\":\n window.location = \"https://www.imdb.com/find?q=\" + subtext;\n break;\n case \"m\":\n window.location = \"https://www.themoviedb.org/search?query=\" + subtext;\n break;\n case \"r\":\n window.location = \"https://www.reddit.com/search?q=\" + subtext;\n break;\n case \"q\":\n window.location = \"https://www.qwant.com/?q=\" + subtext;\n break;\n case \"so\":\n window.location = \"https://soundcloud.com/search?q=\" + subtext;\n break;\n case \"s\":\n window.location = \"https://open.spotify.com/search/results/\" + subtext;\n break;\n case \"t\":\n window.location = \"https://trakt.tv/search?query=\" + subtext;\n break;\n case \"tv\":\n window.location = \"https://www.thetvdb.com/search?query=\" + subtext;\n break;\n case \"y\":\n window.location = \"https://www.youtube.com/results?search_query=\" + subtext;\n break;\n case \"w\":\n window.location = \"https://en.wikipedia.org/w/index.php?search=\" + subtext;\n break;\n case \"p\":\n window.location = \"https://app.plex.tv/desktop/#!/search?query=\" + subtext;\n break;\n case \"rt\":\n window.location = \"https://www.rottentomatoes.com/search?search=\" + subtext;\n break;\n }\n } else {\n var option = text.substr(1);\n switch (option) {\n case \"d\":\n window.location = \"https://www.duckduckgo.com\";\n break;\n case \"y\":\n window.location = \"https://www.youtube.com\";\n break;\n case \"r\":\n window.location = \"https://reddit.com\";\n break;\n case \"s\":\n window.location = \"https://open.spotify.com\";\n break;\n }\n }\n } else if (validURL(text)) {\n if (containsProtocol(text))\n window.location = text;\n else\n window.location = \"https://\" + text;\n } else {\n window.location = \"https://www.google.com/search?q=\" + text;\n }\n}\n\n// Source: https://stackoverflow.com/questions/5717093/check-if-a-javascript-string-is-a-url\nfunction validURL(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/)?' + // protocol\n '((([a-z\\\\d]([a-z\\\\d-]*[a-z\\\\d])*)\\\\.)+[a-z]{2,}|' + // domain name\n '((\\\\d{1,3}\\\\.){3}\\\\d{1,3}))' + // OR ip (v4) address\n '(\\\\:\\\\d+)?(\\\\/[-a-z\\\\d%_.~+]*)*' + // port and path\n '(\\\\?[;&a-z\\\\d%_.~+=-]*)?' + // query string\n '(\\\\#[-a-z\\\\d_]*)?$', 'i'); // fragment locator\n return !!pattern.test(str);\n}\n\nfunction containsProtocol(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/){1}.*', 'i');\n return !!pattern.test(str);\n}\n\nString.prototype.replaceAll = function(search, replacement) {\n var target = this;\n return target.split(search).join(replacement);\n};"]},"metadata":{},"sourceType":"module"}
\ No newline at end of file
diff --git a/node_modules/.cache/babel-loader/720fe91fa3911fde05dbf68537dbe0bd.json b/node_modules/.cache/babel-loader/720fe91fa3911fde05dbf68537dbe0bd.json
new file mode 100644
index 00000000..5b426f13
--- /dev/null
+++ b/node_modules/.cache/babel-loader/720fe91fa3911fde05dbf68537dbe0bd.json
@@ -0,0 +1 @@
+{"ast":null,"code":"var _jsxFileName = \"/home/seanedmunds/dev/home-page/src/index.js\",\n _s = $RefreshSig$();\n\nimport React from 'react';\nimport { useState, useEffect } from 'react';\nimport ReactDOM from 'react-dom'; //import { unstable_createPortal } from 'react-dom';\n\nimport './index.css';\nimport { jsxDEV as _jsxDEV } from \"react/jsx-dev-runtime\";\n\nfunction Homepage() {\n return /*#__PURE__*/_jsxDEV(\"main\", {\n id: \"container\",\n className: \"fade\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Search, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 11,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 10,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Header, {\n date: date(),\n greet: greet()\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 14,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 13,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Applications, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 20,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 19,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Bookmarks, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 23,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 22,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(ModalMenu, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 26,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 25,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(ModalInit, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 29,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 28,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 9,\n columnNumber: 5\n }, this);\n}\n\n_c = Homepage;\n\nfunction Search() {\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"search\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"abackground\",\n children: [/*#__PURE__*/_jsxDEV(\"input\", {\n name: \"keywords\",\n type: \"text\",\n className: \"keyword\",\n id: \"keywords\",\n size: \"50\",\n spellCheck: \"true\",\n placeholder: \"\"\n /*onFocus={this.placeholder = \"\"} onBlur={this.placeholder = ''}*/\n ,\n autoComplete: \"off\",\n autoFocus: \"true\",\n onKeyUp: handleKeyPress(event)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 39,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n id: \"searchType\",\n className: \"Input-label\",\n children: \"Google search\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 40,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 38,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 37,\n columnNumber: 5\n }, this);\n}\n\n_c2 = Search;\n\nfunction Header(props) {\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"header\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n id: \"greeting_block\",\n children: /*#__PURE__*/_jsxDEV(\"h1\", {\n id: \"header_greet\",\n children: props.greet\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 50,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 49,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"date_block\",\n children: [/*#__PURE__*/_jsxDEV(\"h2\", {\n id: \"header_date\",\n children: props.date\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 53,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(Clock, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 54,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 52,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 48,\n columnNumber: 5\n }, this);\n}\n\n_c3 = Header;\n\nfunction Applications() {\n let appList = getApps();\n var items = [];\n\n for (var i = 0; i < appList.apps.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(App, {\n name: appList.apps[i].name,\n url: appList.apps[i].url,\n icon: appList.apps[i].icon,\n NSFW: appList.apps[i].NSFW\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 65,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"apps\",\n children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n children: \"Applications\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 76,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"apps_loop\",\n children: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 77,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 75,\n columnNumber: 5\n }, this);\n}\n\n_c4 = Applications;\n\nfunction App(props) {\n let classNameType = props.NSFW + \"-content\";\n let hrefUrl = \"https://\" + props.url;\n let iconName = \"mdi-\" + props.icon;\n return /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: hrefUrl,\n className: classNameType,\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_item\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_icon\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify icon\",\n \"data-icon\": iconName\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 93,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 92,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_text\",\n children: [/*#__PURE__*/_jsxDEV(\"span\", {\n id: \"app-name\",\n children: props.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 96,\n columnNumber: 13\n }, this), /*#__PURE__*/_jsxDEV(\"span\", {\n id: \"app-address\",\n children: props.url\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 97,\n columnNumber: 13\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 95,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 91,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 90,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 89,\n columnNumber: 5\n }, this);\n}\n\n_c5 = App;\n\nfunction Bookmarks() {\n let bookmarkList = getLinks();\n var items = [];\n\n for (var i = 0; i < bookmarkList.bookmarks.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(LinkGroups, {\n category: bookmarkList.bookmarks[i].category,\n links: bookmarkList.bookmarks[i].links\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 110,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"links\",\n children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n children: \"Bookmarks\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 119,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"links_loop\",\n children: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 120,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 118,\n columnNumber: 5\n }, this);\n}\n\n_c6 = Bookmarks;\n\nfunction LinkGroups(props) {\n var items = [];\n\n for (var i = 0; i < props.links.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(LinkItem, {\n link: props.links[i]\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 131,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"links_item\",\n children: [/*#__PURE__*/_jsxDEV(\"h4\", {\n children: props.category\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 139,\n columnNumber: 7\n }, this), items]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 138,\n columnNumber: 5\n }, this);\n}\n\n_c7 = LinkGroups;\n\nfunction LinkItem(props) {\n return /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: props.link.url,\n className: \"theme_color-border theme_text-select\",\n children: props.link.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 148,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 147,\n columnNumber: 5\n }, this);\n}\n\n_c8 = LinkItem;\n\nfunction ModalMenu() {\n var providers = getProviders();\n var items = [];\n\n for (var i = 0; i < providers.providers.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(Provider, {\n provider: providers.providers[i]\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 158,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"modal\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n children: [/*#__PURE__*/_jsxDEV(\"header\", {\n id: \"modal-header\",\n children: [/*#__PURE__*/_jsxDEV(\"h1\", {\n children: \"Options\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 168,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n href: \"#\",\n title: \"Close\",\n className: \"modal-close\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-close\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 170,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 169,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 167,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"h2\", {\n children: \"Color themes\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 174,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"modal-theme\",\n children: [/*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"blackboard\",\n className: \"theme-button theme-blackboard\",\n children: \"Blackboard\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 177,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"gazette\",\n className: \"theme-button theme-gazette\",\n children: \"Gazette\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 178,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"espresso\",\n className: \"theme-button theme-espresso\",\n children: \"Espresso\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 179,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cab\",\n className: \"theme-button theme-cab\",\n children: \"Cab\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 180,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cloud\",\n className: \"theme-button theme-cloud\",\n children: \"Cloud\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 181,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"lime\",\n className: \"theme-button theme-lime\",\n children: \"Lime\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 182,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"passion\",\n className: \"theme-button theme-passion\",\n children: \"Passion\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 183,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"blues\",\n className: \"theme-button theme-blues\",\n children: \"Blues\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 184,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"chalk\",\n className: \"theme-button theme-chalk\",\n children: \"Chalk\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 185,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"tron\",\n className: \"theme-button theme-tron\",\n children: \"Tron\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 186,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"paper\",\n className: \"theme-button theme-paper\",\n children: \"Paper\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 187,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cyberpunk\",\n className: \"theme-button theme-cyberpunk\",\n children: \"Cyberpunk\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 188,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"quadra\",\n className: \"theme-button theme-panam\",\n children: \"Quadra\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 189,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"panam\",\n className: \"theme-button theme-panam\",\n children: \"Panam\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 190,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"touch\",\n className: \"theme-button theme-touch\",\n children: \"Touch\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 191,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"peek\",\n className: \"theme-button theme-peek\",\n children: \"Peek\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 192,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 176,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"h2\", {\n children: \"Search options\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 196,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"providers\",\n children: /*#__PURE__*/_jsxDEV(\"table\", {\n children: /*#__PURE__*/_jsxDEV(\"tbody\", {\n children: [/*#__PURE__*/_jsxDEV(\"tr\", {\n children: [/*#__PURE__*/_jsxDEV(\"th\", {\n children: \"Website\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 201,\n columnNumber: 19\n }, this), /*#__PURE__*/_jsxDEV(\"th\", {\n children: \"Prefix\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 202,\n columnNumber: 19\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 200,\n columnNumber: 17\n }, this), items]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 199,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 198,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 197,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"header\", {\n id: \"modal-footer\",\n children: [/*#__PURE__*/_jsxDEV(\"a\", {\n href: \"https://github.com/jeroenpardon/\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-github-box\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 210,\n columnNumber: 54\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 210,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n href: \"https://materialdesignicons.com/\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-material-design\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 211,\n columnNumber: 54\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 211,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"sneaky\",\n children: [/*#__PURE__*/_jsxDEV(\"input\", {\n type: \"checkbox\",\n id: \"contenttype\",\n onChange: \"nsfw(this)\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 212,\n columnNumber: 35\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n for: \"contenttype\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-domino-mask\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 213,\n columnNumber: 36\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 213,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 212,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 209,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 166,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 165,\n columnNumber: 5\n }, this);\n}\n\n_c9 = ModalMenu;\n\nfunction Provider(props) {\n return /*#__PURE__*/_jsxDEV(\"tr\", {\n children: [/*#__PURE__*/_jsxDEV(\"td\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: props.provider.url,\n children: props.provider.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 223,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 223,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"td\", {\n children: props.provider.prefix\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 224,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 222,\n columnNumber: 5\n }, this);\n}\n\n_c10 = Provider;\n\nfunction ModalInit() {\n return /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"modal_init\",\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n className: \"btn\",\n href: \"#modal\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify icon\",\n \"data-icon\": \"mdi-xbox-controller-menu\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 233,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 232,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 231,\n columnNumber: 5\n }, this);\n}\n\n_c11 = ModalInit;\nReactDOM.render( /*#__PURE__*/_jsxDEV(Homepage, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 240,\n columnNumber: 3\n}, this), document.getElementById('root')); //Functions below this line are for calculating data for\n//other functions\n\nfunction date() {\n let currentDate = new Date();\n let dateOptions = {\n weekday: \"long\",\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\"\n };\n let date = currentDate.toLocaleDateString(\"en-GB\", dateOptions);\n return date;\n}\n\nfunction fixDigits(k) {\n if (k < 10) {\n return \"0\" + k;\n } else {\n return k;\n }\n}\n\nfunction greet() {\n let currentTime = new Date();\n let greet = Math.floor(currentTime.getHours() / 6);\n let easterEggChance = Math.floor(Math.random() * 100);\n\n let greetings = require('./messages.json');\n\n let timeBased = [];\n let easterEggs = [];\n\n for (var i = 0; i < greetings.messages.length; i++) {\n if (greetings.messages[i].easteregg === \"FALSE\") {\n timeBased = timeBased.concat(greetings.messages[i]);\n } else {\n easterEggs = easterEggs.concat(greetings.messages[i]);\n }\n }\n\n if (easterEggChance > 10) {\n return timeBased[greet].message;\n } else {\n let easterEggText = Math.floor(Math.random() * easterEggs.length);\n return easterEggs[easterEggText].message;\n }\n}\n\nfunction Clock() {\n _s();\n\n const [date, setDate] = useState(new Date());\n\n function refreshClock() {\n setDate(new Date());\n }\n\n useEffect(() => {\n const timerId = setInterval(refreshClock, 1000);\n return function cleanup() {\n clearInterval(timerId);\n };\n }, []);\n var hour = date.getHours();\n var minutes = date.getMinutes(); //var seconds = date.getSeconds();\n\n var midday = \"AM\";\n midday = hour >= 12 ? \"PM\" : \"AM\";\n hour = hour === 0 ? 12 : hour > 12 ? hour - 12 : hour;\n minutes = fixDigits(minutes); //seconds = fixDigits(seconds);\n\n let time = hour + \":\" + minutes + \" \" + midday;\n return /*#__PURE__*/_jsxDEV(\"h2\", {\n id: \"clock\",\n children: time\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 311,\n columnNumber: 5\n }, this);\n}\n\n_s(Clock, \"Gqi45WOZhU2c0BLYX0HoJeiR0fk=\");\n\n_c12 = Clock;\n\nfunction getApps() {\n let applications = require('./apps.json');\n\n return applications;\n}\n\nfunction getLinks() {\n let links = require('./links.json');\n\n return links;\n}\n\nfunction getProviders() {\n let providers = require('./providers.json');\n\n return providers;\n}\n\nfunction handleKeyPress(e) {\n var key = e.keyCode || e.which;\n var text = document.getElementById(\"keywords\").value.replaceAll(\"+\", \"%2B\");\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n\n if (key == 13) {\n // Search functions\n search(text);\n }\n\n if (key == 9) {\n // Tab Completion Functions\n e.preventDefault();\n e.stopPropagation();\n\n if (text[0] === ';') {\n switch (option) {\n case 't':\n var streamers = ['admiralbahroo', 'moonmoon_ow', 'witwix'];\n\n if (!subtext || cycle) {\n cycle = true;\n if (sindex > streamers.length - 1) sindex = 0;\n document.getElementById(\"keywords\").value = ';t ' + streamers[sindex++];\n return;\n }\n\n for (var streamer of streamers) {\n if (subtext === streamer.substr(0, subtext.length)) {\n document.getElementById(\"keywords\").value = ';t ' + streamer;\n return;\n }\n }\n\n break;\n }\n }\n }\n\n if (key == 32) {\n //Space to go to search\n updateLabel(text);\n }\n\n sindex = 0;\n cycle = false;\n updateLabel(text);\n}\n\nvar _c, _c2, _c3, _c4, _c5, _c6, _c7, _c8, _c9, _c10, _c11, _c12;\n\n$RefreshReg$(_c, \"Homepage\");\n$RefreshReg$(_c2, \"Search\");\n$RefreshReg$(_c3, \"Header\");\n$RefreshReg$(_c4, \"Applications\");\n$RefreshReg$(_c5, \"App\");\n$RefreshReg$(_c6, \"Bookmarks\");\n$RefreshReg$(_c7, \"LinkGroups\");\n$RefreshReg$(_c8, \"LinkItem\");\n$RefreshReg$(_c9, \"ModalMenu\");\n$RefreshReg$(_c10, \"Provider\");\n$RefreshReg$(_c11, \"ModalInit\");\n$RefreshReg$(_c12, \"Clock\");","map":{"version":3,"sources":["/home/seanedmunds/dev/home-page/src/index.js"],"names":["React","useState","useEffect","ReactDOM","Homepage","date","greet","Search","handleKeyPress","event","Header","props","Applications","appList","getApps","items","i","apps","length","push","name","url","icon","NSFW","App","classNameType","hrefUrl","iconName","Bookmarks","bookmarkList","getLinks","bookmarks","category","links","LinkGroups","LinkItem","link","ModalMenu","providers","getProviders","Provider","provider","prefix","ModalInit","render","document","getElementById","currentDate","Date","dateOptions","weekday","year","month","day","toLocaleDateString","fixDigits","k","currentTime","Math","floor","getHours","easterEggChance","random","greetings","require","timeBased","easterEggs","messages","easteregg","concat","message","easterEggText","Clock","setDate","refreshClock","timerId","setInterval","cleanup","clearInterval","hour","minutes","getMinutes","midday","time","applications","e","key","keyCode","which","text","value","replaceAll","option","substr","indexOf","subtext","search","preventDefault","stopPropagation","streamers","cycle","sindex","streamer","updateLabel"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { useState, useEffect } from 'react';\nimport ReactDOM from 'react-dom';\n//import { unstable_createPortal } from 'react-dom';\nimport './index.css';\n\nfunction Homepage() {\n return (\n \n \n \n
\n \n \n
\n \n \n \n
\n \n \n
\n \n \n
\n \n );\n}\n\nfunction Search() {\n return (\n \n )\n}\n\nfunction Header(props) {\n return (\n \n );\n}\n\nfunction Applications() {\n let appList = getApps();\n var items = [];\n for (var i = 0; i < appList.apps.length; i++) {\n items.push(\n \n );\n }\n return (\n \n Applications
\n \n {items}\n
\n \n );\n}\n\nfunction App(props) {\n let classNameType = props.NSFW + \"-content\";\n let hrefUrl = \"https://\" + props.url;\n let iconName = \"mdi-\" + props.icon;\n return (\n \n );\n}\n\nfunction Bookmarks() {\n let bookmarkList = getLinks();\n var items = [];\n for (var i = 0; i < bookmarkList.bookmarks.length; i++) {\n items.push(\n \n );\n }\n return (\n \n Bookmarks
\n \n {items}\n
\n \n );\n}\n\nfunction LinkGroups(props) {\n var items = [];\n for (var i = 0; i < props.links.length; i++) {\n items.push(\n \n );\n }\n return (\n \n
{props.category}
\n {items}\n \n );\n}\n\nfunction LinkItem(props) {\n return (\n \n );\n}\n\nfunction ModalMenu() {\n var providers = getProviders();\n var items = [];\n for (var i = 0; i < providers.providers.length; i++) {\n items.push(\n \n );\n }\n return (\n \n \n \n\n
Color themes
\n\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n\n\n
Search options
\n
\n \n \n \n | Website | \n Prefix | \n
\n {items}\n \n
\n \n\n \n
\n \n );\n}\n\nfunction Provider(props) {\n return (\n \n | {props.provider.name} | \n {props.provider.prefix} | \n
\n );\n}\n\nfunction ModalInit() {\n return (\n \n );\n}\n\nReactDOM.render(\n ,\n document.getElementById('root')\n);\n\n//Functions below this line are for calculating data for\n//other functions\n\nfunction date() {\n let currentDate = new Date();\n let dateOptions = {\n weekday: \"long\",\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\"\n };\n let date = currentDate.toLocaleDateString(\"en-GB\", dateOptions);\n return date;\n}\nfunction fixDigits(k) {\n if (k < 10) {\n return \"0\" + k;\n }\n else {\n return k;\n }\n}\nfunction greet() {\n let currentTime = new Date();\n let greet = Math.floor(currentTime.getHours() / 6);\n let easterEggChance = Math.floor(Math.random() * 100);\n let greetings = require('./messages.json');\n let timeBased = [];\n let easterEggs = [];\n for (var i = 0; i < greetings.messages.length; i++) {\n if (greetings.messages[i].easteregg === \"FALSE\") {\n timeBased = timeBased.concat(greetings.messages[i]);\n } else {\n easterEggs = easterEggs.concat(greetings.messages[i]);\n }\n }\n if (easterEggChance > 10) {\n return timeBased[greet].message;\n } else {\n let easterEggText = Math.floor(Math.random() * easterEggs.length);\n return easterEggs[easterEggText].message;\n }\n}\nfunction Clock() {\n const [date, setDate] = useState(new Date());\n\n function refreshClock() {\n setDate(new Date());\n }\n useEffect(() => {\n const timerId = setInterval(refreshClock, 1000);\n return function cleanup() {\n clearInterval(timerId);\n };\n }, []);\n\n var hour = date.getHours();\n var minutes = date.getMinutes();\n //var seconds = date.getSeconds();\n var midday = \"AM\";\n midday = (hour >= 12) ? \"PM\" : \"AM\";\n hour = (hour === 0) ? 12 : ((hour > 12) ? (hour - 12) : hour);\n minutes = fixDigits(minutes);\n //seconds = fixDigits(seconds);\n let time = hour + \":\" + minutes + \" \" + midday;\n\n return (\n {time}
\n\n );\n}\nfunction getApps() {\n let applications = require('./apps.json');\n return applications;\n}\nfunction getLinks() {\n let links = require('./links.json');\n return links;\n}\nfunction getProviders() {\n let providers = require('./providers.json');\n return providers;\n}\nfunction handleKeyPress(e) {\n var key = e.keyCode || e.which;\n var text = document.getElementById(\"keywords\").value.replaceAll(\"+\", \"%2B\");\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n if (key == 13) { // Search functions\n search(text);\n }\n if (key == 9) { // Tab Completion Functions\n e.preventDefault();\n e.stopPropagation();\n if (text[0] === ';') {\n switch (option) {\n case 't':\n var streamers = ['admiralbahroo', 'moonmoon_ow', 'witwix'];\n if (!subtext || cycle) {\n cycle = true;\n if (sindex > streamers.length - 1) sindex = 0;\n document.getElementById(\"keywords\").value = ';t ' + streamers[sindex++];\n return;\n }\n for (var streamer of streamers) {\n if (subtext === streamer.substr(0, subtext.length)) {\n document.getElementById(\"keywords\").value = ';t ' + streamer;\n return;\n }\n }\n break;\n }\n }\n }\n if(key == 32){ //Space to go to search\nupdateLabel(text);\n }\n sindex = 0;\n cycle = false;\n updateLabel(text);\n}"]},"metadata":{},"sourceType":"module"}
\ No newline at end of file
diff --git a/node_modules/.cache/babel-loader/73c4fa6e0b07926bab1ed70b005a6073.json b/node_modules/.cache/babel-loader/73c4fa6e0b07926bab1ed70b005a6073.json
new file mode 100644
index 00000000..a295a827
--- /dev/null
+++ b/node_modules/.cache/babel-loader/73c4fa6e0b07926bab1ed70b005a6073.json
@@ -0,0 +1 @@
+{"ast":null,"code":"var _jsxFileName = \"/home/seanedmunds/dev/home-page/src/index.js\",\n _s = $RefreshSig$();\n\nimport React from 'react';\nimport { useState, useEffect } from 'react';\nimport ReactDOM from 'react-dom'; //import { unstable_createPortal } from 'react-dom';\n\nimport './index.css';\nimport { jsxDEV as _jsxDEV } from \"react/jsx-dev-runtime\";\n\nconst setValueFromLocalStorage = property => {\n let value = localStorage.getItem(property);\n setValue(property, value);\n};\n\nconst setValue = (property, value) => {\n if (value) {\n document.documentElement.style.setProperty(`--${property}`, value);\n const input = document.querySelector(`#${property}`);\n\n if (input) {\n value = value.replace('px', '');\n input.value = value;\n }\n }\n};\n\nfunction Homepage() {\n return /*#__PURE__*/_jsxDEV(\"main\", {\n id: \"container\",\n className: \"fade\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Search, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 27,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 26,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Header, {\n date: date(),\n greet: greet()\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 30,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 29,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Applications, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 36,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 35,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Bookmarks, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 39,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 38,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(ModalMenu, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 42,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 41,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(ModalInit, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 45,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 44,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 25,\n columnNumber: 5\n }, this);\n}\n\n_c = Homepage;\n\nfunction Search() {\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"search\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"abackground\",\n children: [/*#__PURE__*/_jsxDEV(\"input\", {\n name: \"keywords\",\n type: \"text\",\n className: \"keyword\",\n id: \"keywords\",\n size: \"50\",\n spellCheck: \"true\",\n placeholder: \"\"\n /*onFocus={this.placeholder = \"\"} onBlur={this.placeholder = ''}*/\n ,\n autoComplete: \"off\",\n autoFocus: true,\n onKeyUp: handleKeyPress\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 55,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n id: \"searchType\",\n className: \"Input-label\",\n children: \"Google search\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 56,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 54,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 53,\n columnNumber: 5\n }, this);\n}\n\n_c2 = Search;\n\nfunction Header(props) {\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"header\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n id: \"greeting_block\",\n children: /*#__PURE__*/_jsxDEV(\"h1\", {\n id: \"header_greet\",\n children: props.greet\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 66,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 65,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"date_block\",\n children: [/*#__PURE__*/_jsxDEV(\"h2\", {\n id: \"header_date\",\n children: props.date\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 69,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(Clock, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 70,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 68,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 64,\n columnNumber: 5\n }, this);\n}\n\n_c3 = Header;\n\nfunction Applications() {\n let appList = getApps();\n var items = [];\n\n for (var i = 0; i < appList.apps.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(App, {\n name: appList.apps[i].name,\n url: appList.apps[i].url,\n icon: appList.apps[i].icon,\n NSFW: appList.apps[i].NSFW\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 81,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"apps\",\n children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n children: \"Applications\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 92,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"apps_loop\",\n children: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 93,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 91,\n columnNumber: 5\n }, this);\n}\n\n_c4 = Applications;\n\nfunction App(props) {\n let classNameType = props.NSFW + \"-content\";\n let hrefUrl = \"https://\" + props.url;\n let iconName = \"mdi-\" + props.icon;\n return /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: hrefUrl,\n className: classNameType,\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_item\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_icon\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify icon\",\n \"data-icon\": iconName\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 109,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 108,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_text\",\n children: [/*#__PURE__*/_jsxDEV(\"span\", {\n id: \"app-name\",\n children: props.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 112,\n columnNumber: 13\n }, this), /*#__PURE__*/_jsxDEV(\"span\", {\n id: \"app-address\",\n children: props.url\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 113,\n columnNumber: 13\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 111,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 107,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 106,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 105,\n columnNumber: 5\n }, this);\n}\n\n_c5 = App;\n\nfunction Bookmarks() {\n let bookmarkList = getLinks();\n var items = [];\n\n for (var i = 0; i < bookmarkList.bookmarks.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(LinkGroups, {\n category: bookmarkList.bookmarks[i].category,\n links: bookmarkList.bookmarks[i].links\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 126,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"links\",\n children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n children: \"Bookmarks\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 135,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"links_loop\",\n children: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 136,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 134,\n columnNumber: 5\n }, this);\n}\n\n_c6 = Bookmarks;\n\nfunction LinkGroups(props) {\n var items = [];\n\n for (var i = 0; i < props.links.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(LinkItem, {\n link: props.links[i]\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 147,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"links_item\",\n children: [/*#__PURE__*/_jsxDEV(\"h4\", {\n children: props.category\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 155,\n columnNumber: 7\n }, this), items]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 154,\n columnNumber: 5\n }, this);\n}\n\n_c7 = LinkGroups;\n\nfunction LinkItem(props) {\n return /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: props.link.url,\n className: \"theme_color-border theme_text-select\",\n children: props.link.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 164,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 163,\n columnNumber: 5\n }, this);\n}\n\n_c8 = LinkItem;\n\nfunction ModalMenu() {\n var providers = getProviders();\n var items = [];\n\n for (var i = 0; i < providers.providers.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(Provider, {\n provider: providers.providers[i]\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 174,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"modal\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n children: [/*#__PURE__*/_jsxDEV(\"header\", {\n id: \"modal-header\",\n children: [/*#__PURE__*/_jsxDEV(\"h1\", {\n children: \"Options\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 184,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n href: \"#\",\n title: \"Close\",\n className: \"modal-close\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-close\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 186,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 185,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 183,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"h2\", {\n children: \"Color themes\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 190,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"modal-theme\",\n children: [/*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"blackboard\",\n className: \"theme-button theme-blackboard\",\n onClick: updateTheme,\n children: \"Blackboard\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 193,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"gazette\",\n className: \"theme-button theme-gazette\",\n onClick: updateTheme,\n children: \"Gazette\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 194,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"espresso\",\n className: \"theme-button theme-espresso\",\n onClick: updateTheme,\n children: \"Espresso\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 195,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cab\",\n className: \"theme-button theme-cab\",\n onClick: updateTheme,\n children: \"Cab\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 196,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cloud\",\n className: \"theme-button theme-cloud\",\n onClick: updateTheme,\n children: \"Cloud\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 197,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"lime\",\n className: \"theme-button theme-lime\",\n onClick: updateTheme,\n children: \"Lime\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 198,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"passion\",\n className: \"theme-button theme-passion\",\n onClick: updateTheme,\n children: \"Passion\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 199,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"blues\",\n className: \"theme-button theme-blues\",\n onClick: updateTheme,\n children: \"Blues\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 200,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"chalk\",\n className: \"theme-button theme-chalk\",\n onClick: updateTheme,\n children: \"Chalk\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 201,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"tron\",\n className: \"theme-button theme-tron\",\n onClick: updateTheme,\n children: \"Tron\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 202,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"paper\",\n className: \"theme-button theme-paper\",\n onClick: updateTheme,\n children: \"Paper\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 203,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cyberpunk\",\n className: \"theme-button theme-cyberpunk\",\n onClick: updateTheme,\n children: \"Cyberpunk\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 204,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"quadra\",\n className: \"theme-button theme-panam\",\n onClick: updateTheme,\n children: \"Quadra\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 205,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"panam\",\n className: \"theme-button theme-panam\",\n onClick: updateTheme,\n children: \"Panam\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 206,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"touch\",\n className: \"theme-button theme-touch\",\n onClick: updateTheme,\n children: \"Touch\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 207,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"peek\",\n className: \"theme-button theme-peek\",\n onClick: updateTheme,\n children: \"Peek\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 208,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 192,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"h2\", {\n children: \"Search options\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 212,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"providers\",\n children: /*#__PURE__*/_jsxDEV(\"table\", {\n children: /*#__PURE__*/_jsxDEV(\"tbody\", {\n children: [/*#__PURE__*/_jsxDEV(\"tr\", {\n children: [/*#__PURE__*/_jsxDEV(\"th\", {\n children: \"Website\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 217,\n columnNumber: 19\n }, this), /*#__PURE__*/_jsxDEV(\"th\", {\n children: \"Prefix\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 218,\n columnNumber: 19\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 216,\n columnNumber: 17\n }, this), items]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 215,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 214,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 213,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"header\", {\n id: \"modal-footer\",\n children: [/*#__PURE__*/_jsxDEV(\"a\", {\n href: \"https://github.com/jeroenpardon/\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-github-box\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 226,\n columnNumber: 54\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 226,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n href: \"https://materialdesignicons.com/\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-material-design\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 227,\n columnNumber: 54\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 227,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"sneaky\",\n children: [/*#__PURE__*/_jsxDEV(\"input\", {\n type: \"checkbox\",\n id: \"contenttype\",\n onChange: \"nsfw(this)\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 228,\n columnNumber: 35\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n for: \"contenttype\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-domino-mask\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 229,\n columnNumber: 36\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 229,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 228,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 225,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 182,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 181,\n columnNumber: 5\n }, this);\n}\n\n_c9 = ModalMenu;\n\nfunction Provider(props) {\n return /*#__PURE__*/_jsxDEV(\"tr\", {\n children: [/*#__PURE__*/_jsxDEV(\"td\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: props.provider.url,\n children: props.provider.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 239,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 239,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"td\", {\n children: props.provider.prefix\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 240,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 238,\n columnNumber: 5\n }, this);\n}\n\n_c10 = Provider;\n\nfunction ModalInit() {\n return /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"modal_init\",\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n className: \"btn\",\n href: \"#modal\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify icon\",\n \"data-icon\": \"mdi-xbox-controller-menu\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 249,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 248,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 247,\n columnNumber: 5\n }, this);\n}\n\n_c11 = ModalInit;\nReactDOM.render( /*#__PURE__*/_jsxDEV(Homepage, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 256,\n columnNumber: 3\n}, this), document.getElementById('root')); //Functions below this line are for calculating data for\n//other functions\n\nfunction date() {\n let currentDate = new Date();\n let dateOptions = {\n weekday: \"long\",\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\"\n };\n let date = currentDate.toLocaleDateString(\"en-GB\", dateOptions);\n return date;\n}\n\nfunction fixDigits(k) {\n if (k < 10) {\n return \"0\" + k;\n } else {\n return k;\n }\n}\n\nfunction greet() {\n let currentTime = new Date();\n let greet = Math.floor(currentTime.getHours() / 6);\n let easterEggChance = Math.floor(Math.random() * 100);\n\n let greetings = require('./messages.json');\n\n let timeBased = [];\n let easterEggs = [];\n\n for (var i = 0; i < greetings.messages.length; i++) {\n if (greetings.messages[i].easteregg === \"FALSE\") {\n timeBased = timeBased.concat(greetings.messages[i]);\n } else {\n easterEggs = easterEggs.concat(greetings.messages[i]);\n }\n }\n\n if (easterEggChance > 10) {\n return timeBased[greet].message;\n } else {\n let easterEggText = Math.floor(Math.random() * easterEggs.length);\n return easterEggs[easterEggText].message;\n }\n}\n\nfunction Clock() {\n _s();\n\n const [date, setDate] = useState(new Date());\n\n function refreshClock() {\n setDate(new Date());\n }\n\n useEffect(() => {\n const timerId = setInterval(refreshClock, 1000);\n return function cleanup() {\n clearInterval(timerId);\n };\n }, []);\n var hour = date.getHours();\n var minutes = date.getMinutes(); //var seconds = date.getSeconds();\n\n var midday = \"AM\";\n midday = hour >= 12 ? \"PM\" : \"AM\";\n hour = hour === 0 ? 12 : hour > 12 ? hour - 12 : hour;\n minutes = fixDigits(minutes); //seconds = fixDigits(seconds);\n\n let time = hour + \":\" + minutes + \" \" + midday;\n return /*#__PURE__*/_jsxDEV(\"h2\", {\n id: \"clock\",\n children: time\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 327,\n columnNumber: 5\n }, this);\n}\n\n_s(Clock, \"Gqi45WOZhU2c0BLYX0HoJeiR0fk=\");\n\n_c12 = Clock;\n\nfunction getApps() {\n let applications = require('./apps.json');\n\n return applications;\n}\n\nfunction getLinks() {\n let links = require('./links.json');\n\n return links;\n}\n\nfunction getProviders() {\n let providers = require('./providers.json');\n\n return providers;\n}\n\nfunction getThemes() {\n let themes = require('./themes.json');\n\n return themes;\n}\n\nfunction updateTheme(e) {\n var themes = getThemes();\n var themeName = e.target.innerHTML.toLowerCase();\n var index = themes.themes.findIndex(function (item, i) {\n return item.name === themeName;\n });\n console.log(themes.themes[index]);\n localStorage.setItem(\"image-background\", themes.themes[index].imagebackground);\n localStorage.setItem(\"color-background\", themes.themes[index].colorbackground);\n localStorage.setItem(\"color-search-background\", themes.themes[index].colorserachbackground);\n localStorage.setItem(\"color-text-pri\", themes.themes[index].colortextpri);\n localStorage.setItem(\"color-text-acc\", themes.themes[index].colortextacc);\n localStorage.setItem(\"color-border\", themes.themes[index].colorborder); //document.documentElement.style.setProperty(prop, `var(--${themeName}${prop.substring(10)})`);\n\n setTheme();\n}\n\nfunction setTheme() {\n setValueFromLocalStorage('image-background');\n setValueFromLocalStorage('color-background');\n setValueFromLocalStorage('color-search-background');\n setValueFromLocalStorage('color-text-pri');\n setValueFromLocalStorage('color-text-acc');\n setValueFromLocalStorage('color-border');\n setValueFromLocalStorage('content-display');\n}\n\nfunction handleKeyPress(e) {\n var sindex = 0;\n var cycle = false;\n var key = e.keyCode || e.which;\n var text = e.target.value.replaceAll(\"+\", \"%2B\");\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n\n if (key == 13) {\n // Search functions\n search(text);\n }\n\n if (key == 9) {\n // Tab Completion Functions\n e.preventDefault();\n e.stopPropagation();\n\n if (text[0] === ';') {\n switch (option) {\n case 't':\n var streamers = ['admiralbahroo', 'moonmoon_ow', 'witwix'];\n\n if (!subtext || cycle) {\n cycle = true;\n if (sindex > streamers.length - 1) sindex = 0;\n document.getElementById(\"keywords\").value = ';t ' + streamers[sindex++];\n return;\n }\n\n for (var streamer of streamers) {\n if (subtext === streamer.substr(0, subtext.length)) {\n document.getElementById(\"keywords\").value = ';t ' + streamer;\n return;\n }\n }\n\n break;\n }\n }\n }\n\n if (key == 32) {\n //Space to go to search\n updateLabel(text);\n }\n\n sindex = 0;\n cycle = false;\n updateLabel(text);\n}\n\nfunction updateLabel(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n\n if (text[0] === '/') {\n // if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n document.getElementById(\"searchType\").innerHTML = \"Allmusic search\";\n break;\n\n case \"d\":\n document.getElementById(\"searchType\").innerHTML = \"Duck Duck Go search\";\n break;\n\n case \"di\":\n document.getElementById(\"searchType\").innerHTML = \"Discogs search\";\n break;\n\n case \"i\":\n document.getElementById(\"searchType\").innerHTML = \"IMDB search\";\n break;\n\n case \"m\":\n document.getElementById(\"searchType\").innerHTML = \"TheMovieDB search\";\n break;\n\n case \"r\":\n document.getElementById(\"searchType\").innerHTML = \"Reddit search\";\n break;\n\n case \"q\":\n document.getElementById(\"searchType\").innerHTML = \"Qwant search\";\n break;\n\n case \"so\":\n document.getElementById(\"searchType\").innerHTML = \"Soundcloud search\";\n break;\n\n case \"s\":\n document.getElementById(\"searchType\").innerHTML = \"Spotify search\";\n break;\n\n case \"tv\":\n document.getElementById(\"searchType\").innerHTML = \"TheTVDB search\";\n break;\n\n case \"t\":\n document.getElementById(\"searchType\").innerHTML = \"Trakt search\";\n break;\n\n case \"y\":\n document.getElementById(\"searchType\").innerHTML = \"YouTube search\";\n break;\n\n case \"w\":\n document.getElementById(\"searchType\").innerHTML = \"Wikipedia search\";\n break;\n\n case \"p\":\n document.getElementById(\"searchType\").innerHTML = \"Plex search\";\n break;\n\n case \"rt\":\n document.getElementById(\"searchType\").innerHTML = \"Rotten Tomatoes search\";\n break;\n\n default:\n document.getElementById(\"searchType\").innerHTML = \"Invalid search\";\n break;\n }\n } else {\n document.getElementById(\"searchType\").innerHTML = \"Google search\";\n }\n}\n\nfunction search(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n\n if (text[0] === '/') {\n if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n window.location = \"https://www.allmusic.com/search/all/\" + subtext;\n break;\n\n case \"d\":\n window.location = \"https://duckduckgo.com/?q=\" + subtext;\n break;\n\n case \"di\":\n window.location = \"https://www.discogs.com/search/?q=\" + subtext;\n break;\n\n case \"i\":\n window.location = \"https://www.imdb.com/find?q=\" + subtext;\n break;\n\n case \"m\":\n window.location = \"https://www.themoviedb.org/search?query=\" + subtext;\n break;\n\n case \"r\":\n window.location = \"https://www.reddit.com/search?q=\" + subtext;\n break;\n\n case \"q\":\n window.location = \"https://www.qwant.com/?q=\" + subtext;\n break;\n\n case \"so\":\n window.location = \"https://soundcloud.com/search?q=\" + subtext;\n break;\n\n case \"s\":\n window.location = \"https://open.spotify.com/search/results/\" + subtext;\n break;\n\n case \"t\":\n window.location = \"https://trakt.tv/search?query=\" + subtext;\n break;\n\n case \"tv\":\n window.location = \"https://www.thetvdb.com/search?query=\" + subtext;\n break;\n\n case \"y\":\n window.location = \"https://www.youtube.com/results?search_query=\" + subtext;\n break;\n\n case \"w\":\n window.location = \"https://en.wikipedia.org/w/index.php?search=\" + subtext;\n break;\n\n case \"p\":\n window.location = \"https://app.plex.tv/desktop/#!/search?query=\" + subtext;\n break;\n\n case \"rt\":\n window.location = \"https://www.rottentomatoes.com/search?search=\" + subtext;\n break;\n }\n } else {\n var option = text.substr(1);\n\n switch (option) {\n case \"d\":\n window.location = \"https://www.duckduckgo.com\";\n break;\n\n case \"y\":\n window.location = \"https://www.youtube.com\";\n break;\n\n case \"r\":\n window.location = \"https://reddit.com\";\n break;\n\n case \"s\":\n window.location = \"https://open.spotify.com\";\n break;\n }\n }\n } else if (validURL(text)) {\n if (containsProtocol(text)) window.location = text;else window.location = \"https://\" + text;\n } else {\n window.location = \"https://www.google.com/search?q=\" + text;\n }\n} // Source: https://stackoverflow.com/questions/5717093/check-if-a-javascript-string-is-a-url\n\n\nfunction validURL(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/)?' + // protocol\n '((([a-z\\\\d]([a-z\\\\d-]*[a-z\\\\d])*)\\\\.)+[a-z]{2,}|' + // domain name\n '((\\\\d{1,3}\\\\.){3}\\\\d{1,3}))' + // OR ip (v4) address\n '(\\\\:\\\\d+)?(\\\\/[-a-z\\\\d%_.~+]*)*' + // port and path\n '(\\\\?[;&a-z\\\\d%_.~+=-]*)?' + // query string\n '(\\\\#[-a-z\\\\d_]*)?$', 'i'); // fragment locator\n\n return !!pattern.test(str);\n}\n\nfunction containsProtocol(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/){1}.*', 'i');\n return !!pattern.test(str);\n}\n\nString.prototype.replaceAll = function (search, replacement) {\n var target = this;\n return target.split(search).join(replacement);\n};\n\nvar _c, _c2, _c3, _c4, _c5, _c6, _c7, _c8, _c9, _c10, _c11, _c12;\n\n$RefreshReg$(_c, \"Homepage\");\n$RefreshReg$(_c2, \"Search\");\n$RefreshReg$(_c3, \"Header\");\n$RefreshReg$(_c4, \"Applications\");\n$RefreshReg$(_c5, \"App\");\n$RefreshReg$(_c6, \"Bookmarks\");\n$RefreshReg$(_c7, \"LinkGroups\");\n$RefreshReg$(_c8, \"LinkItem\");\n$RefreshReg$(_c9, \"ModalMenu\");\n$RefreshReg$(_c10, \"Provider\");\n$RefreshReg$(_c11, \"ModalInit\");\n$RefreshReg$(_c12, \"Clock\");","map":{"version":3,"sources":["/home/seanedmunds/dev/home-page/src/index.js"],"names":["React","useState","useEffect","ReactDOM","setValueFromLocalStorage","property","value","localStorage","getItem","setValue","document","documentElement","style","setProperty","input","querySelector","replace","Homepage","date","greet","Search","handleKeyPress","Header","props","Applications","appList","getApps","items","i","apps","length","push","name","url","icon","NSFW","App","classNameType","hrefUrl","iconName","Bookmarks","bookmarkList","getLinks","bookmarks","category","links","LinkGroups","LinkItem","link","ModalMenu","providers","getProviders","updateTheme","Provider","provider","prefix","ModalInit","render","getElementById","currentDate","Date","dateOptions","weekday","year","month","day","toLocaleDateString","fixDigits","k","currentTime","Math","floor","getHours","easterEggChance","random","greetings","require","timeBased","easterEggs","messages","easteregg","concat","message","easterEggText","Clock","setDate","refreshClock","timerId","setInterval","cleanup","clearInterval","hour","minutes","getMinutes","midday","time","applications","getThemes","themes","e","themeName","target","innerHTML","toLowerCase","index","findIndex","item","console","log","setItem","imagebackground","colorbackground","colorserachbackground","colortextpri","colortextacc","colorborder","setTheme","sindex","cycle","key","keyCode","which","text","replaceAll","option","substr","indexOf","subtext","search","preventDefault","stopPropagation","streamers","streamer","updateLabel","window","location","validURL","containsProtocol","str","pattern","RegExp","test","String","prototype","replacement","split","join"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { useState, useEffect } from 'react';\nimport ReactDOM from 'react-dom';\n//import { unstable_createPortal } from 'react-dom';\nimport './index.css';\n\nconst setValueFromLocalStorage = property => {\n let value = localStorage.getItem(property);\n setValue(property, value);\n};\nconst setValue = (property, value) => {\n if (value) {\n document.documentElement.style.setProperty(`--${property}`, value);\n\n const input = document.querySelector(`#${property}`);\n if (input) {\n value = value.replace('px', '');\n input.value = value;\n }\n }\n};\n\nfunction Homepage() {\n return (\n \n \n \n
\n \n \n
\n \n \n \n
\n \n \n
\n \n \n
\n \n );\n}\n\nfunction Search() {\n return (\n \n )\n}\n\nfunction Header(props) {\n return (\n \n );\n}\n\nfunction Applications() {\n let appList = getApps();\n var items = [];\n for (var i = 0; i < appList.apps.length; i++) {\n items.push(\n \n );\n }\n return (\n \n Applications
\n \n {items}\n
\n \n );\n}\n\nfunction App(props) {\n let classNameType = props.NSFW + \"-content\";\n let hrefUrl = \"https://\" + props.url;\n let iconName = \"mdi-\" + props.icon;\n return (\n \n );\n}\n\nfunction Bookmarks() {\n let bookmarkList = getLinks();\n var items = [];\n for (var i = 0; i < bookmarkList.bookmarks.length; i++) {\n items.push(\n \n );\n }\n return (\n \n Bookmarks
\n \n {items}\n
\n \n );\n}\n\nfunction LinkGroups(props) {\n var items = [];\n for (var i = 0; i < props.links.length; i++) {\n items.push(\n \n );\n }\n return (\n \n
{props.category}
\n {items}\n \n );\n}\n\nfunction LinkItem(props) {\n return (\n \n );\n}\n\nfunction ModalMenu() {\n var providers = getProviders();\n var items = [];\n for (var i = 0; i < providers.providers.length; i++) {\n items.push(\n \n );\n }\n return (\n \n \n \n\n
Color themes
\n\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n\n\n
Search options
\n
\n \n \n \n | Website | \n Prefix | \n
\n {items}\n \n
\n \n\n \n
\n \n );\n}\n\nfunction Provider(props) {\n return (\n \n | {props.provider.name} | \n {props.provider.prefix} | \n
\n );\n}\n\nfunction ModalInit() {\n return (\n \n );\n}\n\nReactDOM.render(\n ,\n document.getElementById('root')\n);\n\n//Functions below this line are for calculating data for\n//other functions\n\nfunction date() {\n let currentDate = new Date();\n let dateOptions = {\n weekday: \"long\",\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\"\n };\n let date = currentDate.toLocaleDateString(\"en-GB\", dateOptions);\n return date;\n}\nfunction fixDigits(k) {\n if (k < 10) {\n return \"0\" + k;\n }\n else {\n return k;\n }\n}\nfunction greet() {\n let currentTime = new Date();\n let greet = Math.floor(currentTime.getHours() / 6);\n let easterEggChance = Math.floor(Math.random() * 100);\n let greetings = require('./messages.json');\n let timeBased = [];\n let easterEggs = [];\n for (var i = 0; i < greetings.messages.length; i++) {\n if (greetings.messages[i].easteregg === \"FALSE\") {\n timeBased = timeBased.concat(greetings.messages[i]);\n } else {\n easterEggs = easterEggs.concat(greetings.messages[i]);\n }\n }\n if (easterEggChance > 10) {\n return timeBased[greet].message;\n } else {\n let easterEggText = Math.floor(Math.random() * easterEggs.length);\n return easterEggs[easterEggText].message;\n }\n}\nfunction Clock() {\n const [date, setDate] = useState(new Date());\n\n function refreshClock() {\n setDate(new Date());\n }\n useEffect(() => {\n const timerId = setInterval(refreshClock, 1000);\n return function cleanup() {\n clearInterval(timerId);\n };\n }, []);\n\n var hour = date.getHours();\n var minutes = date.getMinutes();\n //var seconds = date.getSeconds();\n var midday = \"AM\";\n midday = (hour >= 12) ? \"PM\" : \"AM\";\n hour = (hour === 0) ? 12 : ((hour > 12) ? (hour - 12) : hour);\n minutes = fixDigits(minutes);\n //seconds = fixDigits(seconds);\n let time = hour + \":\" + minutes + \" \" + midday;\n\n return (\n {time}
\n\n );\n}\nfunction getApps() {\n let applications = require('./apps.json');\n return applications;\n}\nfunction getLinks() {\n let links = require('./links.json');\n return links;\n}\nfunction getProviders() {\n let providers = require('./providers.json');\n return providers;\n}\nfunction getThemes() {\n let themes = require('./themes.json');\n return themes;\n}\n\nfunction updateTheme(e) {\n var themes = getThemes();\n var themeName = e.target.innerHTML.toLowerCase();\n var index = themes.themes.findIndex(function(item, i){\n return item.name === themeName\n });\n console.log(themes.themes[index]);\n localStorage.setItem(\"image-background\", themes.themes[index].imagebackground);\n localStorage.setItem(\"color-background\", themes.themes[index].colorbackground);\n localStorage.setItem(\"color-search-background\", themes.themes[index].colorserachbackground);\n localStorage.setItem(\"color-text-pri\",themes.themes[index].colortextpri);\n localStorage.setItem(\"color-text-acc\", themes.themes[index].colortextacc);\n localStorage.setItem(\"color-border\", themes.themes[index].colorborder);\n \n //document.documentElement.style.setProperty(prop, `var(--${themeName}${prop.substring(10)})`);\n setTheme();\n}\n\nfunction setTheme() {\n setValueFromLocalStorage('image-background');\n setValueFromLocalStorage('color-background');\n setValueFromLocalStorage('color-search-background');\n setValueFromLocalStorage('color-text-pri');\n setValueFromLocalStorage('color-text-acc');\n setValueFromLocalStorage('color-border');\n setValueFromLocalStorage('content-display');\n}\n\nfunction handleKeyPress(e) {\n var sindex = 0;\n var cycle = false;\n var key = e.keyCode || e.which;\n var text = e.target.value.replaceAll(\"+\", \"%2B\");\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n if (key == 13) { // Search functions\n search(text);\n }\n if (key == 9) { // Tab Completion Functions\n e.preventDefault();\n e.stopPropagation();\n if (text[0] === ';') {\n switch (option) {\n case 't':\n var streamers = ['admiralbahroo', 'moonmoon_ow', 'witwix'];\n if (!subtext || cycle) {\n cycle = true;\n if (sindex > streamers.length - 1) sindex = 0;\n document.getElementById(\"keywords\").value = ';t ' + streamers[sindex++];\n return;\n }\n for (var streamer of streamers) {\n if (subtext === streamer.substr(0, subtext.length)) {\n document.getElementById(\"keywords\").value = ';t ' + streamer;\n return;\n }\n }\n break;\n }\n }\n }\n if(key == 32){ //Space to go to search\nupdateLabel(text);\n }\n sindex = 0;\n cycle = false;\n updateLabel(text);\n}\n\nfunction updateLabel(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n if (text[0] === '/') {\n// if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n document.getElementById(\"searchType\").innerHTML = \"Allmusic search\";\n break;\n case \"d\":\n document.getElementById(\"searchType\").innerHTML = \"Duck Duck Go search\";\n break;\n case \"di\":\n document.getElementById(\"searchType\").innerHTML = \"Discogs search\";\n break;\n case \"i\":\n document.getElementById(\"searchType\").innerHTML = \"IMDB search\";\n break;\n case \"m\":\n document.getElementById(\"searchType\").innerHTML = \"TheMovieDB search\";\n break;\n case \"r\":\n document.getElementById(\"searchType\").innerHTML = \"Reddit search\";\n break;\n case \"q\":\n document.getElementById(\"searchType\").innerHTML = \"Qwant search\";\n break;\n case \"so\":\n document.getElementById(\"searchType\").innerHTML = \"Soundcloud search\";\n break;\n case \"s\":\n document.getElementById(\"searchType\").innerHTML = \"Spotify search\";\n break;\n case \"tv\":\n document.getElementById(\"searchType\").innerHTML = \"TheTVDB search\";\n break;\n case \"t\":\n document.getElementById(\"searchType\").innerHTML = \"Trakt search\";\n break;\n case \"y\":\n document.getElementById(\"searchType\").innerHTML = \"YouTube search\";\n break;\n case \"w\":\n document.getElementById(\"searchType\").innerHTML = \"Wikipedia search\";\n break;\n case \"p\":\n document.getElementById(\"searchType\").innerHTML = \"Plex search\";\n break;\n case \"rt\":\n document.getElementById(\"searchType\").innerHTML = \"Rotten Tomatoes search\";\n break;\n default:\n document.getElementById(\"searchType\").innerHTML = \"Invalid search\";\n break;\n }\n}else {\n document.getElementById(\"searchType\").innerHTML = \"Google search\";\n }\n}\n\nfunction search(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n if (text[0] === '/') {\n if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n window.location = \"https://www.allmusic.com/search/all/\" + subtext;\n break;\n case \"d\":\n window.location = \"https://duckduckgo.com/?q=\" + subtext;\n break;\n case \"di\":\n window.location = \"https://www.discogs.com/search/?q=\" + subtext;\n break;\n case \"i\":\n window.location = \"https://www.imdb.com/find?q=\" + subtext;\n break;\n case \"m\":\n window.location = \"https://www.themoviedb.org/search?query=\" + subtext;\n break;\n case \"r\":\n window.location = \"https://www.reddit.com/search?q=\" + subtext;\n break;\n case \"q\":\n window.location = \"https://www.qwant.com/?q=\" + subtext;\n break;\n case \"so\":\n window.location = \"https://soundcloud.com/search?q=\" + subtext;\n break;\n case \"s\":\n window.location = \"https://open.spotify.com/search/results/\" + subtext;\n break;\n case \"t\":\n window.location = \"https://trakt.tv/search?query=\" + subtext;\n break;\n case \"tv\":\n window.location = \"https://www.thetvdb.com/search?query=\" + subtext;\n break;\n case \"y\":\n window.location = \"https://www.youtube.com/results?search_query=\" + subtext;\n break;\n case \"w\":\n window.location = \"https://en.wikipedia.org/w/index.php?search=\" + subtext;\n break;\n case \"p\":\n window.location = \"https://app.plex.tv/desktop/#!/search?query=\" + subtext;\n break;\n case \"rt\":\n window.location = \"https://www.rottentomatoes.com/search?search=\" + subtext;\n break;\n }\n } else {\n var option = text.substr(1);\n switch (option) {\n case \"d\":\n window.location = \"https://www.duckduckgo.com\";\n break;\n case \"y\":\n window.location = \"https://www.youtube.com\";\n break;\n case \"r\":\n window.location = \"https://reddit.com\";\n break;\n case \"s\":\n window.location = \"https://open.spotify.com\";\n break;\n }\n }\n } else if (validURL(text)) {\n if (containsProtocol(text))\n window.location = text;\n else\n window.location = \"https://\" + text;\n } else {\n window.location = \"https://www.google.com/search?q=\" + text;\n }\n}\n\n// Source: https://stackoverflow.com/questions/5717093/check-if-a-javascript-string-is-a-url\nfunction validURL(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/)?' + // protocol\n '((([a-z\\\\d]([a-z\\\\d-]*[a-z\\\\d])*)\\\\.)+[a-z]{2,}|' + // domain name\n '((\\\\d{1,3}\\\\.){3}\\\\d{1,3}))' + // OR ip (v4) address\n '(\\\\:\\\\d+)?(\\\\/[-a-z\\\\d%_.~+]*)*' + // port and path\n '(\\\\?[;&a-z\\\\d%_.~+=-]*)?' + // query string\n '(\\\\#[-a-z\\\\d_]*)?$', 'i'); // fragment locator\n return !!pattern.test(str);\n}\n\nfunction containsProtocol(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/){1}.*', 'i');\n return !!pattern.test(str);\n}\n\nString.prototype.replaceAll = function(search, replacement) {\n var target = this;\n return target.split(search).join(replacement);\n};"]},"metadata":{},"sourceType":"module"}
\ No newline at end of file
diff --git a/node_modules/.cache/babel-loader/743932e1253850a5d2f20febc2978b9e.json b/node_modules/.cache/babel-loader/743932e1253850a5d2f20febc2978b9e.json
new file mode 100644
index 00000000..0ea56d97
--- /dev/null
+++ b/node_modules/.cache/babel-loader/743932e1253850a5d2f20febc2978b9e.json
@@ -0,0 +1 @@
+{"ast":null,"code":"var _jsxFileName = \"/home/seanedmunds/dev/home-page/src/index.js\",\n _s = $RefreshSig$();\n\nimport React from 'react';\nimport { useState, useEffect } from 'react';\nimport ReactDOM from 'react-dom'; //import { unstable_createPortal } from 'react-dom';\n\nimport './index.css';\nimport { jsxDEV as _jsxDEV } from \"react/jsx-dev-runtime\";\n\nfunction Homepage() {\n return /*#__PURE__*/_jsxDEV(\"main\", {\n id: \"container\",\n className: \"fade\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Search, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 11,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 10,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Header, {\n date: date(),\n greet: greet()\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 14,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 13,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Applications, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 20,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 19,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Bookmarks, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 23,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 22,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(ModalMenu, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 26,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 25,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(ModalInit, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 29,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 28,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 9,\n columnNumber: 5\n }, this);\n}\n\n_c = Homepage;\n\nfunction Search() {\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"search\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"abackground\",\n children: [/*#__PURE__*/_jsxDEV(\"input\", {\n name: \"keywords\",\n type: \"text\",\n className: \"keyword\",\n id: \"keywords\",\n size: \"50\",\n spellCheck: \"true\",\n placeholder: \"\"\n /*onFocus={this.placeholder = \"\"} onBlur={this.placeholder = ''}*/\n ,\n autoComplete: \"off\",\n autoFocus: true,\n onKeyUp: handleKeyPress\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 39,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n id: \"searchType\",\n className: \"Input-label\",\n children: \"Google search\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 40,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 38,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 37,\n columnNumber: 5\n }, this);\n}\n\n_c2 = Search;\n\nfunction Header(props) {\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"header\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n id: \"greeting_block\",\n children: /*#__PURE__*/_jsxDEV(\"h1\", {\n id: \"header_greet\",\n children: props.greet\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 50,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 49,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"date_block\",\n children: [/*#__PURE__*/_jsxDEV(\"h2\", {\n id: \"header_date\",\n children: props.date\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 53,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(Clock, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 54,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 52,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 48,\n columnNumber: 5\n }, this);\n}\n\n_c3 = Header;\n\nfunction Applications() {\n let appList = getApps();\n var items = [];\n\n for (var i = 0; i < appList.apps.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(App, {\n name: appList.apps[i].name,\n url: appList.apps[i].url,\n icon: appList.apps[i].icon,\n NSFW: appList.apps[i].NSFW\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 65,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"apps\",\n children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n children: \"Applications\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 76,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"apps_loop\",\n children: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 77,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 75,\n columnNumber: 5\n }, this);\n}\n\n_c4 = Applications;\n\nfunction App(props) {\n let classNameType = props.NSFW + \"-content\";\n let hrefUrl = \"https://\" + props.url;\n let iconName = \"mdi-\" + props.icon;\n return /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: hrefUrl,\n className: classNameType,\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_item\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_icon\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify icon\",\n \"data-icon\": iconName\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 93,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 92,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_text\",\n children: [/*#__PURE__*/_jsxDEV(\"span\", {\n id: \"app-name\",\n children: props.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 96,\n columnNumber: 13\n }, this), /*#__PURE__*/_jsxDEV(\"span\", {\n id: \"app-address\",\n children: props.url\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 97,\n columnNumber: 13\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 95,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 91,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 90,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 89,\n columnNumber: 5\n }, this);\n}\n\n_c5 = App;\n\nfunction Bookmarks() {\n let bookmarkList = getLinks();\n var items = [];\n\n for (var i = 0; i < bookmarkList.bookmarks.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(LinkGroups, {\n category: bookmarkList.bookmarks[i].category,\n links: bookmarkList.bookmarks[i].links\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 110,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"links\",\n children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n children: \"Bookmarks\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 119,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"links_loop\",\n children: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 120,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 118,\n columnNumber: 5\n }, this);\n}\n\n_c6 = Bookmarks;\n\nfunction LinkGroups(props) {\n var items = [];\n\n for (var i = 0; i < props.links.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(LinkItem, {\n link: props.links[i]\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 131,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"links_item\",\n children: [/*#__PURE__*/_jsxDEV(\"h4\", {\n children: props.category\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 139,\n columnNumber: 7\n }, this), items]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 138,\n columnNumber: 5\n }, this);\n}\n\n_c7 = LinkGroups;\n\nfunction LinkItem(props) {\n return /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: props.link.url,\n className: \"theme_color-border theme_text-select\",\n children: props.link.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 148,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 147,\n columnNumber: 5\n }, this);\n}\n\n_c8 = LinkItem;\n\nfunction ModalMenu() {\n var providers = getProviders();\n var items = [];\n\n for (var i = 0; i < providers.providers.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(Provider, {\n provider: providers.providers[i]\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 158,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"modal\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n children: [/*#__PURE__*/_jsxDEV(\"header\", {\n id: \"modal-header\",\n children: [/*#__PURE__*/_jsxDEV(\"h1\", {\n children: \"Options\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 168,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n href: \"#\",\n title: \"Close\",\n className: \"modal-close\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-close\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 170,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 169,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 167,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"h2\", {\n children: \"Color themes\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 174,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"modal-theme\",\n children: [/*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"blackboard\",\n className: \"theme-button theme-blackboard\",\n onClick: updateTheme,\n children: \"Blackboard\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 177,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"gazette\",\n className: \"theme-button theme-gazette\",\n children: \"Gazette\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 178,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"espresso\",\n className: \"theme-button theme-espresso\",\n children: \"Espresso\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 179,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cab\",\n className: \"theme-button theme-cab\",\n children: \"Cab\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 180,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cloud\",\n className: \"theme-button theme-cloud\",\n children: \"Cloud\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 181,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"lime\",\n className: \"theme-button theme-lime\",\n children: \"Lime\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 182,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"passion\",\n className: \"theme-button theme-passion\",\n children: \"Passion\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 183,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"blues\",\n className: \"theme-button theme-blues\",\n children: \"Blues\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 184,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"chalk\",\n className: \"theme-button theme-chalk\",\n children: \"Chalk\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 185,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"tron\",\n className: \"theme-button theme-tron\",\n children: \"Tron\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 186,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"paper\",\n className: \"theme-button theme-paper\",\n children: \"Paper\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 187,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cyberpunk\",\n className: \"theme-button theme-cyberpunk\",\n children: \"Cyberpunk\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 188,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"quadra\",\n className: \"theme-button theme-panam\",\n children: \"Quadra\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 189,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"panam\",\n className: \"theme-button theme-panam\",\n children: \"Panam\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 190,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"touch\",\n className: \"theme-button theme-touch\",\n children: \"Touch\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 191,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"peek\",\n className: \"theme-button theme-peek\",\n children: \"Peek\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 192,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 176,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"h2\", {\n children: \"Search options\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 196,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"providers\",\n children: /*#__PURE__*/_jsxDEV(\"table\", {\n children: /*#__PURE__*/_jsxDEV(\"tbody\", {\n children: [/*#__PURE__*/_jsxDEV(\"tr\", {\n children: [/*#__PURE__*/_jsxDEV(\"th\", {\n children: \"Website\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 201,\n columnNumber: 19\n }, this), /*#__PURE__*/_jsxDEV(\"th\", {\n children: \"Prefix\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 202,\n columnNumber: 19\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 200,\n columnNumber: 17\n }, this), items]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 199,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 198,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 197,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"header\", {\n id: \"modal-footer\",\n children: [/*#__PURE__*/_jsxDEV(\"a\", {\n href: \"https://github.com/jeroenpardon/\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-github-box\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 210,\n columnNumber: 54\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 210,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n href: \"https://materialdesignicons.com/\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-material-design\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 211,\n columnNumber: 54\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 211,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"sneaky\",\n children: [/*#__PURE__*/_jsxDEV(\"input\", {\n type: \"checkbox\",\n id: \"contenttype\",\n onChange: \"nsfw(this)\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 212,\n columnNumber: 35\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n for: \"contenttype\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-domino-mask\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 213,\n columnNumber: 36\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 213,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 212,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 209,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 166,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 165,\n columnNumber: 5\n }, this);\n}\n\n_c9 = ModalMenu;\n\nfunction Provider(props) {\n return /*#__PURE__*/_jsxDEV(\"tr\", {\n children: [/*#__PURE__*/_jsxDEV(\"td\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: props.provider.url,\n children: props.provider.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 223,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 223,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"td\", {\n children: props.provider.prefix\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 224,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 222,\n columnNumber: 5\n }, this);\n}\n\n_c10 = Provider;\n\nfunction ModalInit() {\n return /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"modal_init\",\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n className: \"btn\",\n href: \"#modal\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify icon\",\n \"data-icon\": \"mdi-xbox-controller-menu\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 233,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 232,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 231,\n columnNumber: 5\n }, this);\n}\n\n_c11 = ModalInit;\nReactDOM.render( /*#__PURE__*/_jsxDEV(Homepage, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 240,\n columnNumber: 3\n}, this), document.getElementById('root')); //Functions below this line are for calculating data for\n//other functions\n\nfunction date() {\n let currentDate = new Date();\n let dateOptions = {\n weekday: \"long\",\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\"\n };\n let date = currentDate.toLocaleDateString(\"en-GB\", dateOptions);\n return date;\n}\n\nfunction fixDigits(k) {\n if (k < 10) {\n return \"0\" + k;\n } else {\n return k;\n }\n}\n\nfunction greet() {\n let currentTime = new Date();\n let greet = Math.floor(currentTime.getHours() / 6);\n let easterEggChance = Math.floor(Math.random() * 100);\n\n let greetings = require('./messages.json');\n\n let timeBased = [];\n let easterEggs = [];\n\n for (var i = 0; i < greetings.messages.length; i++) {\n if (greetings.messages[i].easteregg === \"FALSE\") {\n timeBased = timeBased.concat(greetings.messages[i]);\n } else {\n easterEggs = easterEggs.concat(greetings.messages[i]);\n }\n }\n\n if (easterEggChance > 10) {\n return timeBased[greet].message;\n } else {\n let easterEggText = Math.floor(Math.random() * easterEggs.length);\n return easterEggs[easterEggText].message;\n }\n}\n\nfunction Clock() {\n _s();\n\n const [date, setDate] = useState(new Date());\n\n function refreshClock() {\n setDate(new Date());\n }\n\n useEffect(() => {\n const timerId = setInterval(refreshClock, 1000);\n return function cleanup() {\n clearInterval(timerId);\n };\n }, []);\n var hour = date.getHours();\n var minutes = date.getMinutes(); //var seconds = date.getSeconds();\n\n var midday = \"AM\";\n midday = hour >= 12 ? \"PM\" : \"AM\";\n hour = hour === 0 ? 12 : hour > 12 ? hour - 12 : hour;\n minutes = fixDigits(minutes); //seconds = fixDigits(seconds);\n\n let time = hour + \":\" + minutes + \" \" + midday;\n return /*#__PURE__*/_jsxDEV(\"h2\", {\n id: \"clock\",\n children: time\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 311,\n columnNumber: 5\n }, this);\n}\n\n_s(Clock, \"Gqi45WOZhU2c0BLYX0HoJeiR0fk=\");\n\n_c12 = Clock;\n\nfunction getApps() {\n let applications = require('./apps.json');\n\n return applications;\n}\n\nfunction getLinks() {\n let links = require('./links.json');\n\n return links;\n}\n\nfunction getProviders() {\n let providers = require('./providers.json');\n\n return providers;\n}\n\nfunction getThemes() {\n let themes = require('./themes.json');\n\n return themes;\n}\n\nfunction updateTheme() {\n var themes = getThemes().themes;\n}\n\nfunction handleKeyPress(e) {\n var sindex = 0;\n var cycle = false;\n var key = e.keyCode || e.which;\n var text = e.target.value.replaceAll(\"+\", \"%2B\");\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n\n if (key == 13) {\n // Search functions\n search(text);\n }\n\n if (key == 9) {\n // Tab Completion Functions\n e.preventDefault();\n e.stopPropagation();\n\n if (text[0] === ';') {\n switch (option) {\n case 't':\n var streamers = ['admiralbahroo', 'moonmoon_ow', 'witwix'];\n\n if (!subtext || cycle) {\n cycle = true;\n if (sindex > streamers.length - 1) sindex = 0;\n document.getElementById(\"keywords\").value = ';t ' + streamers[sindex++];\n return;\n }\n\n for (var streamer of streamers) {\n if (subtext === streamer.substr(0, subtext.length)) {\n document.getElementById(\"keywords\").value = ';t ' + streamer;\n return;\n }\n }\n\n break;\n }\n }\n }\n\n if (key == 32) {\n //Space to go to search\n updateLabel(text);\n }\n\n sindex = 0;\n cycle = false;\n updateLabel(text);\n}\n\nfunction updateLabel(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n\n if (text[0] === '/') {\n // if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n document.getElementById(\"searchType\").innerHTML = \"Allmusic search\";\n break;\n\n case \"d\":\n document.getElementById(\"searchType\").innerHTML = \"Duck Duck Go search\";\n break;\n\n case \"di\":\n document.getElementById(\"searchType\").innerHTML = \"Discogs search\";\n break;\n\n case \"i\":\n document.getElementById(\"searchType\").innerHTML = \"IMDB search\";\n break;\n\n case \"m\":\n document.getElementById(\"searchType\").innerHTML = \"TheMovieDB search\";\n break;\n\n case \"r\":\n document.getElementById(\"searchType\").innerHTML = \"Reddit search\";\n break;\n\n case \"q\":\n document.getElementById(\"searchType\").innerHTML = \"Qwant search\";\n break;\n\n case \"so\":\n document.getElementById(\"searchType\").innerHTML = \"Soundcloud search\";\n break;\n\n case \"s\":\n document.getElementById(\"searchType\").innerHTML = \"Spotify search\";\n break;\n\n case \"tv\":\n document.getElementById(\"searchType\").innerHTML = \"TheTVDB search\";\n break;\n\n case \"t\":\n document.getElementById(\"searchType\").innerHTML = \"Trakt search\";\n break;\n\n case \"y\":\n document.getElementById(\"searchType\").innerHTML = \"YouTube search\";\n break;\n\n case \"w\":\n document.getElementById(\"searchType\").innerHTML = \"Wikipedia search\";\n break;\n\n case \"p\":\n document.getElementById(\"searchType\").innerHTML = \"Plex search\";\n break;\n\n case \"rt\":\n document.getElementById(\"searchType\").innerHTML = \"Rotten Tomatoes search\";\n break;\n\n default:\n document.getElementById(\"searchType\").innerHTML = \"Invalid search\";\n break;\n }\n } else {\n document.getElementById(\"searchType\").innerHTML = \"Google search\";\n }\n}\n\nfunction search(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n\n if (text[0] === '/') {\n if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n window.location = \"https://www.allmusic.com/search/all/\" + subtext;\n break;\n\n case \"d\":\n window.location = \"https://duckduckgo.com/?q=\" + subtext;\n break;\n\n case \"di\":\n window.location = \"https://www.discogs.com/search/?q=\" + subtext;\n break;\n\n case \"i\":\n window.location = \"https://www.imdb.com/find?q=\" + subtext;\n break;\n\n case \"m\":\n window.location = \"https://www.themoviedb.org/search?query=\" + subtext;\n break;\n\n case \"r\":\n window.location = \"https://www.reddit.com/search?q=\" + subtext;\n break;\n\n case \"q\":\n window.location = \"https://www.qwant.com/?q=\" + subtext;\n break;\n\n case \"so\":\n window.location = \"https://soundcloud.com/search?q=\" + subtext;\n break;\n\n case \"s\":\n window.location = \"https://open.spotify.com/search/results/\" + subtext;\n break;\n\n case \"t\":\n window.location = \"https://trakt.tv/search?query=\" + subtext;\n break;\n\n case \"tv\":\n window.location = \"https://www.thetvdb.com/search?query=\" + subtext;\n break;\n\n case \"y\":\n window.location = \"https://www.youtube.com/results?search_query=\" + subtext;\n break;\n\n case \"w\":\n window.location = \"https://en.wikipedia.org/w/index.php?search=\" + subtext;\n break;\n\n case \"p\":\n window.location = \"https://app.plex.tv/desktop/#!/search?query=\" + subtext;\n break;\n\n case \"rt\":\n window.location = \"https://www.rottentomatoes.com/search?search=\" + subtext;\n break;\n }\n } else {\n var option = text.substr(1);\n\n switch (option) {\n case \"d\":\n window.location = \"https://www.duckduckgo.com\";\n break;\n\n case \"y\":\n window.location = \"https://www.youtube.com\";\n break;\n\n case \"r\":\n window.location = \"https://reddit.com\";\n break;\n\n case \"s\":\n window.location = \"https://open.spotify.com\";\n break;\n }\n }\n } else if (validURL(text)) {\n if (containsProtocol(text)) window.location = text;else window.location = \"https://\" + text;\n } else {\n window.location = \"https://www.google.com/search?q=\" + text;\n }\n} // Source: https://stackoverflow.com/questions/5717093/check-if-a-javascript-string-is-a-url\n\n\nfunction validURL(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/)?' + // protocol\n '((([a-z\\\\d]([a-z\\\\d-]*[a-z\\\\d])*)\\\\.)+[a-z]{2,}|' + // domain name\n '((\\\\d{1,3}\\\\.){3}\\\\d{1,3}))' + // OR ip (v4) address\n '(\\\\:\\\\d+)?(\\\\/[-a-z\\\\d%_.~+]*)*' + // port and path\n '(\\\\?[;&a-z\\\\d%_.~+=-]*)?' + // query string\n '(\\\\#[-a-z\\\\d_]*)?$', 'i'); // fragment locator\n\n return !!pattern.test(str);\n}\n\nfunction containsProtocol(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/){1}.*', 'i');\n return !!pattern.test(str);\n}\n\nString.prototype.replaceAll = function (search, replacement) {\n var target = this;\n return target.split(search).join(replacement);\n};\n\nvar _c, _c2, _c3, _c4, _c5, _c6, _c7, _c8, _c9, _c10, _c11, _c12;\n\n$RefreshReg$(_c, \"Homepage\");\n$RefreshReg$(_c2, \"Search\");\n$RefreshReg$(_c3, \"Header\");\n$RefreshReg$(_c4, \"Applications\");\n$RefreshReg$(_c5, \"App\");\n$RefreshReg$(_c6, \"Bookmarks\");\n$RefreshReg$(_c7, \"LinkGroups\");\n$RefreshReg$(_c8, \"LinkItem\");\n$RefreshReg$(_c9, \"ModalMenu\");\n$RefreshReg$(_c10, \"Provider\");\n$RefreshReg$(_c11, \"ModalInit\");\n$RefreshReg$(_c12, \"Clock\");","map":{"version":3,"sources":["/home/seanedmunds/dev/home-page/src/index.js"],"names":["React","useState","useEffect","ReactDOM","Homepage","date","greet","Search","handleKeyPress","Header","props","Applications","appList","getApps","items","i","apps","length","push","name","url","icon","NSFW","App","classNameType","hrefUrl","iconName","Bookmarks","bookmarkList","getLinks","bookmarks","category","links","LinkGroups","LinkItem","link","ModalMenu","providers","getProviders","updateTheme","Provider","provider","prefix","ModalInit","render","document","getElementById","currentDate","Date","dateOptions","weekday","year","month","day","toLocaleDateString","fixDigits","k","currentTime","Math","floor","getHours","easterEggChance","random","greetings","require","timeBased","easterEggs","messages","easteregg","concat","message","easterEggText","Clock","setDate","refreshClock","timerId","setInterval","cleanup","clearInterval","hour","minutes","getMinutes","midday","time","applications","getThemes","themes","e","sindex","cycle","key","keyCode","which","text","target","value","replaceAll","option","substr","indexOf","subtext","search","preventDefault","stopPropagation","streamers","streamer","updateLabel","innerHTML","window","location","validURL","containsProtocol","str","pattern","RegExp","test","String","prototype","replacement","split","join"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { useState, useEffect } from 'react';\nimport ReactDOM from 'react-dom';\n//import { unstable_createPortal } from 'react-dom';\nimport './index.css';\n\nfunction Homepage() {\n return (\n \n \n \n
\n \n \n
\n \n \n \n
\n \n \n
\n \n \n
\n \n );\n}\n\nfunction Search() {\n return (\n \n )\n}\n\nfunction Header(props) {\n return (\n \n );\n}\n\nfunction Applications() {\n let appList = getApps();\n var items = [];\n for (var i = 0; i < appList.apps.length; i++) {\n items.push(\n \n );\n }\n return (\n \n Applications
\n \n {items}\n
\n \n );\n}\n\nfunction App(props) {\n let classNameType = props.NSFW + \"-content\";\n let hrefUrl = \"https://\" + props.url;\n let iconName = \"mdi-\" + props.icon;\n return (\n \n );\n}\n\nfunction Bookmarks() {\n let bookmarkList = getLinks();\n var items = [];\n for (var i = 0; i < bookmarkList.bookmarks.length; i++) {\n items.push(\n \n );\n }\n return (\n \n Bookmarks
\n \n {items}\n
\n \n );\n}\n\nfunction LinkGroups(props) {\n var items = [];\n for (var i = 0; i < props.links.length; i++) {\n items.push(\n \n );\n }\n return (\n \n
{props.category}
\n {items}\n \n );\n}\n\nfunction LinkItem(props) {\n return (\n \n );\n}\n\nfunction ModalMenu() {\n var providers = getProviders();\n var items = [];\n for (var i = 0; i < providers.providers.length; i++) {\n items.push(\n \n );\n }\n return (\n \n \n \n\n
Color themes
\n\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n\n\n
Search options
\n
\n \n \n \n | Website | \n Prefix | \n
\n {items}\n \n
\n \n\n \n
\n \n );\n}\n\nfunction Provider(props) {\n return (\n \n | {props.provider.name} | \n {props.provider.prefix} | \n
\n );\n}\n\nfunction ModalInit() {\n return (\n \n );\n}\n\nReactDOM.render(\n ,\n document.getElementById('root')\n);\n\n//Functions below this line are for calculating data for\n//other functions\n\nfunction date() {\n let currentDate = new Date();\n let dateOptions = {\n weekday: \"long\",\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\"\n };\n let date = currentDate.toLocaleDateString(\"en-GB\", dateOptions);\n return date;\n}\nfunction fixDigits(k) {\n if (k < 10) {\n return \"0\" + k;\n }\n else {\n return k;\n }\n}\nfunction greet() {\n let currentTime = new Date();\n let greet = Math.floor(currentTime.getHours() / 6);\n let easterEggChance = Math.floor(Math.random() * 100);\n let greetings = require('./messages.json');\n let timeBased = [];\n let easterEggs = [];\n for (var i = 0; i < greetings.messages.length; i++) {\n if (greetings.messages[i].easteregg === \"FALSE\") {\n timeBased = timeBased.concat(greetings.messages[i]);\n } else {\n easterEggs = easterEggs.concat(greetings.messages[i]);\n }\n }\n if (easterEggChance > 10) {\n return timeBased[greet].message;\n } else {\n let easterEggText = Math.floor(Math.random() * easterEggs.length);\n return easterEggs[easterEggText].message;\n }\n}\nfunction Clock() {\n const [date, setDate] = useState(new Date());\n\n function refreshClock() {\n setDate(new Date());\n }\n useEffect(() => {\n const timerId = setInterval(refreshClock, 1000);\n return function cleanup() {\n clearInterval(timerId);\n };\n }, []);\n\n var hour = date.getHours();\n var minutes = date.getMinutes();\n //var seconds = date.getSeconds();\n var midday = \"AM\";\n midday = (hour >= 12) ? \"PM\" : \"AM\";\n hour = (hour === 0) ? 12 : ((hour > 12) ? (hour - 12) : hour);\n minutes = fixDigits(minutes);\n //seconds = fixDigits(seconds);\n let time = hour + \":\" + minutes + \" \" + midday;\n\n return (\n {time}
\n\n );\n}\nfunction getApps() {\n let applications = require('./apps.json');\n return applications;\n}\nfunction getLinks() {\n let links = require('./links.json');\n return links;\n}\nfunction getProviders() {\n let providers = require('./providers.json');\n return providers;\n}\nfunction getThemes() {\n let themes = require('./themes.json');\n return themes;\n}\n\nfunction updateTheme() {\n var themes = getThemes().themes;\n\n}\n\nfunction handleKeyPress(e) {\n var sindex = 0;\n var cycle = false;\n var key = e.keyCode || e.which;\n var text = e.target.value.replaceAll(\"+\", \"%2B\");\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n if (key == 13) { // Search functions\n search(text);\n }\n if (key == 9) { // Tab Completion Functions\n e.preventDefault();\n e.stopPropagation();\n if (text[0] === ';') {\n switch (option) {\n case 't':\n var streamers = ['admiralbahroo', 'moonmoon_ow', 'witwix'];\n if (!subtext || cycle) {\n cycle = true;\n if (sindex > streamers.length - 1) sindex = 0;\n document.getElementById(\"keywords\").value = ';t ' + streamers[sindex++];\n return;\n }\n for (var streamer of streamers) {\n if (subtext === streamer.substr(0, subtext.length)) {\n document.getElementById(\"keywords\").value = ';t ' + streamer;\n return;\n }\n }\n break;\n }\n }\n }\n if(key == 32){ //Space to go to search\nupdateLabel(text);\n }\n sindex = 0;\n cycle = false;\n updateLabel(text);\n}\n\nfunction updateLabel(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n if (text[0] === '/') {\n// if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n document.getElementById(\"searchType\").innerHTML = \"Allmusic search\";\n break;\n case \"d\":\n document.getElementById(\"searchType\").innerHTML = \"Duck Duck Go search\";\n break;\n case \"di\":\n document.getElementById(\"searchType\").innerHTML = \"Discogs search\";\n break;\n case \"i\":\n document.getElementById(\"searchType\").innerHTML = \"IMDB search\";\n break;\n case \"m\":\n document.getElementById(\"searchType\").innerHTML = \"TheMovieDB search\";\n break;\n case \"r\":\n document.getElementById(\"searchType\").innerHTML = \"Reddit search\";\n break;\n case \"q\":\n document.getElementById(\"searchType\").innerHTML = \"Qwant search\";\n break;\n case \"so\":\n document.getElementById(\"searchType\").innerHTML = \"Soundcloud search\";\n break;\n case \"s\":\n document.getElementById(\"searchType\").innerHTML = \"Spotify search\";\n break;\n case \"tv\":\n document.getElementById(\"searchType\").innerHTML = \"TheTVDB search\";\n break;\n case \"t\":\n document.getElementById(\"searchType\").innerHTML = \"Trakt search\";\n break;\n case \"y\":\n document.getElementById(\"searchType\").innerHTML = \"YouTube search\";\n break;\n case \"w\":\n document.getElementById(\"searchType\").innerHTML = \"Wikipedia search\";\n break;\n case \"p\":\n document.getElementById(\"searchType\").innerHTML = \"Plex search\";\n break;\n case \"rt\":\n document.getElementById(\"searchType\").innerHTML = \"Rotten Tomatoes search\";\n break;\n default:\n document.getElementById(\"searchType\").innerHTML = \"Invalid search\";\n break;\n }\n}else {\n document.getElementById(\"searchType\").innerHTML = \"Google search\";\n }\n}\n\nfunction search(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n if (text[0] === '/') {\n if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n window.location = \"https://www.allmusic.com/search/all/\" + subtext;\n break;\n case \"d\":\n window.location = \"https://duckduckgo.com/?q=\" + subtext;\n break;\n case \"di\":\n window.location = \"https://www.discogs.com/search/?q=\" + subtext;\n break;\n case \"i\":\n window.location = \"https://www.imdb.com/find?q=\" + subtext;\n break;\n case \"m\":\n window.location = \"https://www.themoviedb.org/search?query=\" + subtext;\n break;\n case \"r\":\n window.location = \"https://www.reddit.com/search?q=\" + subtext;\n break;\n case \"q\":\n window.location = \"https://www.qwant.com/?q=\" + subtext;\n break;\n case \"so\":\n window.location = \"https://soundcloud.com/search?q=\" + subtext;\n break;\n case \"s\":\n window.location = \"https://open.spotify.com/search/results/\" + subtext;\n break;\n case \"t\":\n window.location = \"https://trakt.tv/search?query=\" + subtext;\n break;\n case \"tv\":\n window.location = \"https://www.thetvdb.com/search?query=\" + subtext;\n break;\n case \"y\":\n window.location = \"https://www.youtube.com/results?search_query=\" + subtext;\n break;\n case \"w\":\n window.location = \"https://en.wikipedia.org/w/index.php?search=\" + subtext;\n break;\n case \"p\":\n window.location = \"https://app.plex.tv/desktop/#!/search?query=\" + subtext;\n break;\n case \"rt\":\n window.location = \"https://www.rottentomatoes.com/search?search=\" + subtext;\n break;\n }\n } else {\n var option = text.substr(1);\n switch (option) {\n case \"d\":\n window.location = \"https://www.duckduckgo.com\";\n break;\n case \"y\":\n window.location = \"https://www.youtube.com\";\n break;\n case \"r\":\n window.location = \"https://reddit.com\";\n break;\n case \"s\":\n window.location = \"https://open.spotify.com\";\n break;\n }\n }\n } else if (validURL(text)) {\n if (containsProtocol(text))\n window.location = text;\n else\n window.location = \"https://\" + text;\n } else {\n window.location = \"https://www.google.com/search?q=\" + text;\n }\n}\n\n// Source: https://stackoverflow.com/questions/5717093/check-if-a-javascript-string-is-a-url\nfunction validURL(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/)?' + // protocol\n '((([a-z\\\\d]([a-z\\\\d-]*[a-z\\\\d])*)\\\\.)+[a-z]{2,}|' + // domain name\n '((\\\\d{1,3}\\\\.){3}\\\\d{1,3}))' + // OR ip (v4) address\n '(\\\\:\\\\d+)?(\\\\/[-a-z\\\\d%_.~+]*)*' + // port and path\n '(\\\\?[;&a-z\\\\d%_.~+=-]*)?' + // query string\n '(\\\\#[-a-z\\\\d_]*)?$', 'i'); // fragment locator\n return !!pattern.test(str);\n}\n\nfunction containsProtocol(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/){1}.*', 'i');\n return !!pattern.test(str);\n}\n\nString.prototype.replaceAll = function(search, replacement) {\n var target = this;\n return target.split(search).join(replacement);\n};"]},"metadata":{},"sourceType":"module"}
\ No newline at end of file
diff --git a/node_modules/.cache/babel-loader/782cb141171b280529349746b94e3b34.json b/node_modules/.cache/babel-loader/782cb141171b280529349746b94e3b34.json
new file mode 100644
index 00000000..74047a97
--- /dev/null
+++ b/node_modules/.cache/babel-loader/782cb141171b280529349746b94e3b34.json
@@ -0,0 +1 @@
+{"ast":null,"code":"var _jsxFileName = \"/home/seanedmunds/dev/home-page/src/index.js\",\n _s = $RefreshSig$();\n\nimport React from 'react';\nimport { useState, useEffect } from 'react';\nimport ReactDOM from 'react-dom';\nimport './index.css';\nimport { jsxDEV as _jsxDEV } from \"react/jsx-dev-runtime\";\n\nconst setValueFromLocalStorage = property => {\n let value = localStorage.getItem(property);\n setValue(property, value);\n};\n\nconst setValue = (property, value) => {\n if (value) {\n document.documentElement.style.setProperty(`--${property}`, value);\n const input = document.querySelector(`#${property}`);\n\n if (input) {\n value = value.replace('px', '');\n input.value = value;\n }\n }\n};\n\nfunction Homepage() {\n setTheme();\n return /*#__PURE__*/_jsxDEV(\"main\", {\n id: \"container\",\n className: \"fade\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Search, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 28,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 27,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Header, {\n date: date(),\n greet: greet()\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 31,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 30,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Applications, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 37,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 36,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Bookmarks, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 40,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 39,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(ModalMenu, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 43,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 42,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(ModalInit, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 46,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 45,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 26,\n columnNumber: 5\n }, this);\n}\n\n_c = Homepage;\n\nfunction Search() {\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"search\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"abackground\",\n children: [/*#__PURE__*/_jsxDEV(\"input\", {\n name: \"keywords\",\n type: \"text\",\n className: \"keyword\",\n id: \"keywords\",\n size: \"50\",\n spellCheck: \"true\",\n placeholder: \"\"\n /*onFocus={this.placeholder = \"\"} onBlur={this.placeholder = ''}*/\n ,\n autoComplete: \"off\",\n autoFocus: true,\n onKeyUp: handleKeyPress\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 56,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n id: \"searchType\",\n className: \"Input-label\",\n children: \"Google search\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 57,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 55,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 54,\n columnNumber: 5\n }, this);\n}\n\n_c2 = Search;\n\nfunction Header(props) {\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"header\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n id: \"greeting_block\",\n children: /*#__PURE__*/_jsxDEV(\"h1\", {\n id: \"header_greet\",\n children: props.greet\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 67,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 66,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"date_block\",\n children: [/*#__PURE__*/_jsxDEV(\"h2\", {\n id: \"header_date\",\n children: props.date\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 70,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(Clock, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 71,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 69,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 65,\n columnNumber: 5\n }, this);\n}\n\n_c3 = Header;\n\nfunction Applications() {\n let appList = getApps();\n var items = [];\n\n for (var i = 0; i < appList.apps.length; i++) {\n var safe = appList.apps[i].NSFW;\n var NSFWEnabled = localStorage.getItem(\"contenttype\");\n\n if (safe === \"SAFE\") {\n items.push( /*#__PURE__*/_jsxDEV(App, {\n name: appList.apps[i].name,\n url: appList.apps[i].url,\n icon: appList.apps[i].icon,\n NSFW: appList.apps[i].NSFW\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 85,\n columnNumber: 9\n }, this));\n } else if (safe === \"NSFW\" && NSFWEnabled) {\n items.push( /*#__PURE__*/_jsxDEV(App, {\n name: appList.apps[i].name,\n url: appList.apps[i].url,\n icon: appList.apps[i].icon,\n NSFW: appList.apps[i].NSFW\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 95,\n columnNumber: 9\n }, this));\n } else {}\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"apps\",\n children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n children: \"Applications\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 110,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"apps_loop\",\n children: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 111,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 109,\n columnNumber: 5\n }, this);\n}\n\n_c4 = Applications;\n\nfunction App(props) {\n let classNameType = props.NSFW + \"-content\";\n let hrefUrl = \"https://\" + props.url;\n let iconName = \"mdi-\" + props.icon;\n return /*#__PURE__*/_jsxDEV(\"div\", {\n className: classNameType,\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: hrefUrl,\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_item\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_icon\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify icon\",\n \"data-icon\": iconName\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 128,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 127,\n columnNumber: 13\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_text\",\n children: [/*#__PURE__*/_jsxDEV(\"span\", {\n id: \"app-name\",\n children: props.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 131,\n columnNumber: 15\n }, this), /*#__PURE__*/_jsxDEV(\"span\", {\n id: \"app-address\",\n children: props.url\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 132,\n columnNumber: 15\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 130,\n columnNumber: 13\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 126,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 125,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 124,\n columnNumber: 7\n }, this);\n}\n\n_c5 = App;\n\nfunction Bookmarks() {\n let bookmarkList = getLinks();\n var items = [];\n\n for (var i = 0; i < bookmarkList.bookmarks.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(LinkGroups, {\n category: bookmarkList.bookmarks[i].category,\n links: bookmarkList.bookmarks[i].links\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 145,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"links\",\n children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n children: \"Bookmarks\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 154,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"links_loop\",\n children: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 155,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 153,\n columnNumber: 5\n }, this);\n}\n\n_c6 = Bookmarks;\n\nfunction LinkGroups(props) {\n var items = [];\n\n for (var i = 0; i < props.links.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(LinkItem, {\n link: props.links[i]\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 166,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"links_item\",\n children: [/*#__PURE__*/_jsxDEV(\"h4\", {\n children: props.category\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 174,\n columnNumber: 7\n }, this), items]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 173,\n columnNumber: 5\n }, this);\n}\n\n_c7 = LinkGroups;\n\nfunction LinkItem(props) {\n return /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: props.link.url,\n className: \"theme_color-border theme_text-select\",\n children: props.link.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 183,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 182,\n columnNumber: 5\n }, this);\n}\n\n_c8 = LinkItem;\n\nfunction ModalMenu() {\n var providers = getProviders();\n var items = [];\n var isChecked = localStorage.getItem(\"contenttype\");\n console.log(localStorage.getItem(\"contenttype\"));\n\n for (var i = 0; i < providers.providers.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(Provider, {\n provider: providers.providers[i]\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 195,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"modal\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n children: [/*#__PURE__*/_jsxDEV(\"header\", {\n id: \"modal-header\",\n children: [/*#__PURE__*/_jsxDEV(\"h1\", {\n children: \"Options\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 205,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n href: \"#\",\n title: \"Close\",\n className: \"modal-close\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-close\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 207,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 206,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 204,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"h2\", {\n children: \"Color themes\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 211,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"modal-theme\",\n children: [/*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"blackboard\",\n className: \"theme-button theme-blackboard\",\n onClick: updateTheme,\n children: \"Blackboard\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 214,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"gazette\",\n className: \"theme-button theme-gazette\",\n onClick: updateTheme,\n children: \"Gazette\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 215,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"espresso\",\n className: \"theme-button theme-espresso\",\n onClick: updateTheme,\n children: \"Espresso\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 216,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cab\",\n className: \"theme-button theme-cab\",\n onClick: updateTheme,\n children: \"Cab\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 217,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cloud\",\n className: \"theme-button theme-cloud\",\n onClick: updateTheme,\n children: \"Cloud\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 218,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"lime\",\n className: \"theme-button theme-lime\",\n onClick: updateTheme,\n children: \"Lime\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 219,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"passion\",\n className: \"theme-button theme-passion\",\n onClick: updateTheme,\n children: \"Passion\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 220,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"blues\",\n className: \"theme-button theme-blues\",\n onClick: updateTheme,\n children: \"Blues\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 221,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"chalk\",\n className: \"theme-button theme-chalk\",\n onClick: updateTheme,\n children: \"Chalk\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 222,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"tron\",\n className: \"theme-button theme-tron\",\n onClick: updateTheme,\n children: \"Tron\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 223,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"paper\",\n className: \"theme-button theme-paper\",\n onClick: updateTheme,\n children: \"Paper\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 224,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cyberpunk\",\n className: \"theme-button theme-cyberpunk\",\n onClick: updateTheme,\n children: \"Cyberpunk\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 225,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"quadra\",\n className: \"theme-button theme-panam\",\n onClick: updateTheme,\n children: \"Quadra\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 226,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"panam\",\n className: \"theme-button theme-panam\",\n onClick: updateTheme,\n children: \"Panam\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 227,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"touch\",\n className: \"theme-button theme-touch\",\n onClick: updateTheme,\n children: \"Touch\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 228,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"peek\",\n className: \"theme-button theme-peek\",\n onClick: updateTheme,\n children: \"Peek\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 229,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 213,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"h2\", {\n children: \"Search options\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 233,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"providers\",\n children: /*#__PURE__*/_jsxDEV(\"table\", {\n children: /*#__PURE__*/_jsxDEV(\"tbody\", {\n children: [/*#__PURE__*/_jsxDEV(\"tr\", {\n children: [/*#__PURE__*/_jsxDEV(\"th\", {\n children: \"Website\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 238,\n columnNumber: 19\n }, this), /*#__PURE__*/_jsxDEV(\"th\", {\n children: \"Prefix\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 239,\n columnNumber: 19\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 237,\n columnNumber: 17\n }, this), items]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 236,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 235,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 234,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"header\", {\n id: \"modal-footer\",\n children: [/*#__PURE__*/_jsxDEV(\"a\", {\n href: \"https://github.com/jeroenpardon/\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-github-box\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 247,\n columnNumber: 54\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 247,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n href: \"https://materialdesignicons.com/\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-material-design\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 248,\n columnNumber: 54\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 248,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(HideButton, {\n checked: isChecked\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 249,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 246,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 203,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 202,\n columnNumber: 5\n }, this);\n}\n\n_c9 = ModalMenu;\n\nfunction HideButton(props) {\n console.log(props.checked);\n return /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"sneaky\",\n children: [/*#__PURE__*/_jsxDEV(\"input\", {\n type: \"checkbox\",\n id: \"contenttype\",\n onChange: udpateDisplayedItems,\n defaultChecked: true\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 261,\n columnNumber: 29\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n for: \"contenttype\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-domino-mask\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 262,\n columnNumber: 30\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 262,\n columnNumber: 5\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 261,\n columnNumber: 5\n }, this);\n}\n\n_c10 = HideButton;\n\nfunction Provider(props) {\n return /*#__PURE__*/_jsxDEV(\"tr\", {\n children: [/*#__PURE__*/_jsxDEV(\"td\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: props.provider.url,\n children: props.provider.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 269,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 269,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"td\", {\n children: props.provider.prefix\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 270,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 268,\n columnNumber: 5\n }, this);\n}\n\n_c11 = Provider;\n\nfunction ModalInit() {\n setDisplayedItems();\n return /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"modal_init\",\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n className: \"btn\",\n href: \"#modal\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify icon\",\n \"data-icon\": \"mdi-xbox-controller-menu\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 280,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 279,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 278,\n columnNumber: 5\n }, this);\n}\n\n_c12 = ModalInit;\nReactDOM.render( /*#__PURE__*/_jsxDEV(Homepage, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 287,\n columnNumber: 3\n}, this), document.getElementById('root')); //Functions below this line are for calculating data for\n//other functions\n\nfunction date() {\n let currentDate = new Date();\n let dateOptions = {\n weekday: \"long\",\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\"\n };\n let date = currentDate.toLocaleDateString(\"en-GB\", dateOptions);\n return date;\n}\n\nfunction fixDigits(k) {\n if (k < 10) {\n return \"0\" + k;\n } else {\n return k;\n }\n}\n\nfunction greet() {\n let currentTime = new Date();\n let greet = Math.floor(currentTime.getHours() / 6);\n let easterEggChance = Math.floor(Math.random() * 100);\n\n let greetings = require('./messages.json');\n\n let timeBased = [];\n let easterEggs = [];\n\n for (var i = 0; i < greetings.messages.length; i++) {\n if (greetings.messages[i].easteregg === \"FALSE\") {\n timeBased = timeBased.concat(greetings.messages[i]);\n } else {\n easterEggs = easterEggs.concat(greetings.messages[i]);\n }\n }\n\n if (easterEggChance > 10) {\n return timeBased[greet].message;\n } else {\n let easterEggText = Math.floor(Math.random() * easterEggs.length);\n return easterEggs[easterEggText].message;\n }\n}\n\nfunction Clock() {\n _s();\n\n const [date, setDate] = useState(new Date());\n\n function refreshClock() {\n setDate(new Date());\n }\n\n useEffect(() => {\n const timerId = setInterval(refreshClock, 1000);\n return function cleanup() {\n clearInterval(timerId);\n };\n }, []);\n var hour = date.getHours();\n var minutes = date.getMinutes(); //var seconds = date.getSeconds();\n\n var midday = \"AM\";\n midday = hour >= 12 ? \"PM\" : \"AM\";\n hour = hour === 0 ? 12 : hour > 12 ? hour - 12 : hour;\n minutes = fixDigits(minutes); //seconds = fixDigits(seconds);\n\n let time = hour + \":\" + minutes + \" \" + midday;\n return /*#__PURE__*/_jsxDEV(\"h2\", {\n id: \"clock\",\n children: time\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 358,\n columnNumber: 5\n }, this);\n}\n\n_s(Clock, \"Gqi45WOZhU2c0BLYX0HoJeiR0fk=\");\n\n_c13 = Clock;\n\nfunction getApps() {\n let applications = require('./apps.json');\n\n return applications;\n}\n\nfunction getLinks() {\n let links = require('./links.json');\n\n return links;\n}\n\nfunction getProviders() {\n let providers = require('./providers.json');\n\n return providers;\n}\n\nfunction getThemes() {\n let themes = require('./themes.json');\n\n return themes;\n}\n\nfunction updateTheme(e) {\n var themes = getThemes();\n var themeName = e.target.innerHTML.toLowerCase();\n var index = themes.themes.findIndex(function (item, i) {\n return item.name === themeName;\n });\n localStorage.setItem(\"image-background\", themes.themes[index].imagebackground);\n localStorage.setItem(\"color-background\", themes.themes[index].colorbackground);\n localStorage.setItem(\"color-search-background\", themes.themes[index].colorserachbackground);\n localStorage.setItem(\"color-text-pri\", themes.themes[index].colortextpri);\n localStorage.setItem(\"color-text-acc\", themes.themes[index].colortextacc);\n localStorage.setItem(\"color-border\", themes.themes[index].colorborder); //document.documentElement.style.setProperty(prop, `var(--${themeName}${prop.substring(10)})`);\n\n setTheme();\n}\n\nfunction setTheme() {\n setValueFromLocalStorage('image-background');\n setValueFromLocalStorage('color-background');\n setValueFromLocalStorage('color-search-background');\n setValueFromLocalStorage('color-text-pri');\n setValueFromLocalStorage('color-text-acc');\n setValueFromLocalStorage('color-border');\n setValueFromLocalStorage('content-display');\n}\n\nfunction handleKeyPress(e) {\n var sindex = 0;\n var cycle = false;\n var key = e.keyCode || e.which;\n var text = e.target.value.replaceAll(\"+\", \"%2B\");\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n\n if (key == 13) {\n // Search functions\n search(text);\n }\n\n if (key == 9) {\n // Tab Completion Functions\n e.preventDefault();\n e.stopPropagation();\n\n if (text[0] === ';') {\n switch (option) {\n case 't':\n var streamers = ['admiralbahroo', 'moonmoon_ow', 'witwix'];\n\n if (!subtext || cycle) {\n cycle = true;\n if (sindex > streamers.length - 1) sindex = 0;\n document.getElementById(\"keywords\").value = ';t ' + streamers[sindex++];\n return;\n }\n\n for (var streamer of streamers) {\n if (subtext === streamer.substr(0, subtext.length)) {\n document.getElementById(\"keywords\").value = ';t ' + streamer;\n return;\n }\n }\n\n break;\n }\n }\n }\n\n if (key == 32) {\n //Space to go to search\n updateLabel(text);\n }\n\n sindex = 0;\n cycle = false;\n updateLabel(text);\n}\n\nfunction updateLabel(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n\n if (text[0] === '/') {\n // if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n document.getElementById(\"searchType\").innerHTML = \"Allmusic search\";\n break;\n\n case \"d\":\n document.getElementById(\"searchType\").innerHTML = \"Duck Duck Go search\";\n break;\n\n case \"di\":\n document.getElementById(\"searchType\").innerHTML = \"Discogs search\";\n break;\n\n case \"i\":\n document.getElementById(\"searchType\").innerHTML = \"IMDB search\";\n break;\n\n case \"m\":\n document.getElementById(\"searchType\").innerHTML = \"TheMovieDB search\";\n break;\n\n case \"r\":\n document.getElementById(\"searchType\").innerHTML = \"Reddit search\";\n break;\n\n case \"q\":\n document.getElementById(\"searchType\").innerHTML = \"Qwant search\";\n break;\n\n case \"so\":\n document.getElementById(\"searchType\").innerHTML = \"Soundcloud search\";\n break;\n\n case \"s\":\n document.getElementById(\"searchType\").innerHTML = \"Spotify search\";\n break;\n\n case \"tv\":\n document.getElementById(\"searchType\").innerHTML = \"TheTVDB search\";\n break;\n\n case \"t\":\n document.getElementById(\"searchType\").innerHTML = \"Trakt search\";\n break;\n\n case \"y\":\n document.getElementById(\"searchType\").innerHTML = \"YouTube search\";\n break;\n\n case \"w\":\n document.getElementById(\"searchType\").innerHTML = \"Wikipedia search\";\n break;\n\n case \"p\":\n document.getElementById(\"searchType\").innerHTML = \"Plex search\";\n break;\n\n case \"rt\":\n document.getElementById(\"searchType\").innerHTML = \"Rotten Tomatoes search\";\n break;\n\n default:\n document.getElementById(\"searchType\").innerHTML = \"Invalid search\";\n break;\n }\n } else {\n document.getElementById(\"searchType\").innerHTML = \"Google search\";\n }\n}\n\nfunction search(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n\n if (text[0] === '/') {\n if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n window.location = \"https://www.allmusic.com/search/all/\" + subtext;\n break;\n\n case \"d\":\n window.location = \"https://duckduckgo.com/?q=\" + subtext;\n break;\n\n case \"di\":\n window.location = \"https://www.discogs.com/search/?q=\" + subtext;\n break;\n\n case \"i\":\n window.location = \"https://www.imdb.com/find?q=\" + subtext;\n break;\n\n case \"m\":\n window.location = \"https://www.themoviedb.org/search?query=\" + subtext;\n break;\n\n case \"r\":\n window.location = \"https://www.reddit.com/search?q=\" + subtext;\n break;\n\n case \"q\":\n window.location = \"https://www.qwant.com/?q=\" + subtext;\n break;\n\n case \"so\":\n window.location = \"https://soundcloud.com/search?q=\" + subtext;\n break;\n\n case \"s\":\n window.location = \"https://open.spotify.com/search/results/\" + subtext;\n break;\n\n case \"t\":\n window.location = \"https://trakt.tv/search?query=\" + subtext;\n break;\n\n case \"tv\":\n window.location = \"https://www.thetvdb.com/search?query=\" + subtext;\n break;\n\n case \"y\":\n window.location = \"https://www.youtube.com/results?search_query=\" + subtext;\n break;\n\n case \"w\":\n window.location = \"https://en.wikipedia.org/w/index.php?search=\" + subtext;\n break;\n\n case \"p\":\n window.location = \"https://app.plex.tv/desktop/#!/search?query=\" + subtext;\n break;\n\n case \"rt\":\n window.location = \"https://www.rottentomatoes.com/search?search=\" + subtext;\n break;\n }\n } else {\n var option = text.substr(1);\n\n switch (option) {\n case \"d\":\n window.location = \"https://www.duckduckgo.com\";\n break;\n\n case \"y\":\n window.location = \"https://www.youtube.com\";\n break;\n\n case \"r\":\n window.location = \"https://reddit.com\";\n break;\n\n case \"s\":\n window.location = \"https://open.spotify.com\";\n break;\n }\n }\n } else if (validURL(text)) {\n if (containsProtocol(text)) window.location = text;else window.location = \"https://\" + text;\n } else {\n window.location = \"https://www.google.com/search?q=\" + text;\n }\n}\n\nfunction validURL(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/)?' + // protocol\n '((([a-z\\\\d]([a-z\\\\d-]*[a-z\\\\d])*)\\\\.)+[a-z]{2,}|' + // domain name\n '((\\\\d{1,3}\\\\.){3}\\\\d{1,3}))' + // OR ip (v4) address\n '(\\\\:\\\\d+)?(\\\\/[-a-z\\\\d%_.~+]*)*' + // port and path\n '(\\\\?[;&a-z\\\\d%_.~+=-]*)?' + // query string\n '(\\\\#[-a-z\\\\d_]*)?$', 'i'); // fragment locator\n\n return !!pattern.test(str);\n}\n\nfunction containsProtocol(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/){1}.*', 'i');\n return !!pattern.test(str);\n}\n\nString.prototype.replaceAll = function (search, replacement) {\n var target = this;\n return target.split(search).join(replacement);\n};\n\nfunction udpateDisplayedItems(e) {\n localStorage.setItem('contenttype', e.target.checked);\n\n if (e.target.checked) {\n localStorage.setItem('content-display', 'none');\n } else {\n localStorage.setItem('content-display', 'block');\n }\n\n setDisplayedItems();\n}\n\nfunction setDisplayedItems() {\n setValueFromLocalStorage('contenttype');\n setValueFromLocalStorage('content-display');\n}\n\nvar _c, _c2, _c3, _c4, _c5, _c6, _c7, _c8, _c9, _c10, _c11, _c12, _c13;\n\n$RefreshReg$(_c, \"Homepage\");\n$RefreshReg$(_c2, \"Search\");\n$RefreshReg$(_c3, \"Header\");\n$RefreshReg$(_c4, \"Applications\");\n$RefreshReg$(_c5, \"App\");\n$RefreshReg$(_c6, \"Bookmarks\");\n$RefreshReg$(_c7, \"LinkGroups\");\n$RefreshReg$(_c8, \"LinkItem\");\n$RefreshReg$(_c9, \"ModalMenu\");\n$RefreshReg$(_c10, \"HideButton\");\n$RefreshReg$(_c11, \"Provider\");\n$RefreshReg$(_c12, \"ModalInit\");\n$RefreshReg$(_c13, \"Clock\");","map":{"version":3,"sources":["/home/seanedmunds/dev/home-page/src/index.js"],"names":["React","useState","useEffect","ReactDOM","setValueFromLocalStorage","property","value","localStorage","getItem","setValue","document","documentElement","style","setProperty","input","querySelector","replace","Homepage","setTheme","date","greet","Search","handleKeyPress","Header","props","Applications","appList","getApps","items","i","apps","length","safe","NSFW","NSFWEnabled","push","name","url","icon","App","classNameType","hrefUrl","iconName","Bookmarks","bookmarkList","getLinks","bookmarks","category","links","LinkGroups","LinkItem","link","ModalMenu","providers","getProviders","isChecked","console","log","updateTheme","HideButton","checked","udpateDisplayedItems","Provider","provider","prefix","ModalInit","setDisplayedItems","render","getElementById","currentDate","Date","dateOptions","weekday","year","month","day","toLocaleDateString","fixDigits","k","currentTime","Math","floor","getHours","easterEggChance","random","greetings","require","timeBased","easterEggs","messages","easteregg","concat","message","easterEggText","Clock","setDate","refreshClock","timerId","setInterval","cleanup","clearInterval","hour","minutes","getMinutes","midday","time","applications","getThemes","themes","e","themeName","target","innerHTML","toLowerCase","index","findIndex","item","setItem","imagebackground","colorbackground","colorserachbackground","colortextpri","colortextacc","colorborder","sindex","cycle","key","keyCode","which","text","replaceAll","option","substr","indexOf","subtext","search","preventDefault","stopPropagation","streamers","streamer","updateLabel","window","location","validURL","containsProtocol","str","pattern","RegExp","test","String","prototype","replacement","split","join"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { useState, useEffect } from 'react';\nimport ReactDOM from 'react-dom';\nimport './index.css';\n\nconst setValueFromLocalStorage = property => {\n let value = localStorage.getItem(property);\n setValue(property, value);\n};\nconst setValue = (property, value) => {\n if (value) {\n document.documentElement.style.setProperty(`--${property}`, value);\n\n const input = document.querySelector(`#${property}`);\n if (input) {\n value = value.replace('px', '');\n input.value = value;\n }\n }\n};\n\nfunction Homepage() {\n setTheme();\n \n return (\n \n \n \n
\n \n \n
\n \n \n \n
\n \n \n
\n \n \n
\n \n );\n}\n\nfunction Search() {\n return (\n \n )\n}\n\nfunction Header(props) {\n return (\n \n );\n}\n\nfunction Applications() {\n let appList = getApps();\n var items = [];\n for (var i = 0; i < appList.apps.length; i++) {\n var safe = appList.apps[i].NSFW;\n var NSFWEnabled = localStorage.getItem(\"contenttype\");\n if (safe === \"SAFE\") {\n items.push(\n \n );\n } else if (safe === \"NSFW\" && NSFWEnabled) {\n items.push(\n \n );\n } else {\n \n }\n \n }\n return (\n \n Applications
\n \n {items}\n
\n \n );\n}\n\nfunction App(props) {\n \n let classNameType = props.NSFW + \"-content\";\n let hrefUrl = \"https://\" + props.url;\n let iconName = \"mdi-\" + props.icon;\n return (\n \n );\n}\n\nfunction Bookmarks() {\n let bookmarkList = getLinks();\n var items = [];\n for (var i = 0; i < bookmarkList.bookmarks.length; i++) {\n items.push(\n \n );\n }\n return (\n \n Bookmarks
\n \n {items}\n
\n \n );\n}\n\nfunction LinkGroups(props) {\n var items = [];\n for (var i = 0; i < props.links.length; i++) {\n items.push(\n \n );\n }\n return (\n \n
{props.category}
\n {items}\n \n );\n}\n\nfunction LinkItem(props) {\n return (\n \n );\n}\n\nfunction ModalMenu() {\n var providers = getProviders();\n var items = [];\n var isChecked = localStorage.getItem(\"contenttype\");\n console.log(localStorage.getItem(\"contenttype\"));\n for (var i = 0; i < providers.providers.length; i++) {\n items.push(\n \n );\n }\n return (\n \n \n \n\n
Color themes
\n\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n\n\n
Search options
\n
\n \n \n \n | Website | \n Prefix | \n
\n {items}\n \n
\n \n\n \n
\n \n );\n}\n\nfunction HideButton(props) {\n console.log(props.checked);\n return (\n \n
\n );\n}\n\nfunction Provider(props) {\n return (\n \n | {props.provider.name} | \n {props.provider.prefix} | \n
\n );\n}\n\nfunction ModalInit() {\n setDisplayedItems();\n return (\n \n );\n}\n\nReactDOM.render(\n ,\n document.getElementById('root')\n);\n\n//Functions below this line are for calculating data for\n//other functions\n\nfunction date() {\n let currentDate = new Date();\n let dateOptions = {\n weekday: \"long\",\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\"\n };\n let date = currentDate.toLocaleDateString(\"en-GB\", dateOptions);\n return date;\n}\nfunction fixDigits(k) {\n if (k < 10) {\n return \"0\" + k;\n }\n else {\n return k;\n }\n}\nfunction greet() {\n let currentTime = new Date();\n let greet = Math.floor(currentTime.getHours() / 6);\n let easterEggChance = Math.floor(Math.random() * 100);\n let greetings = require('./messages.json');\n let timeBased = [];\n let easterEggs = [];\n for (var i = 0; i < greetings.messages.length; i++) {\n if (greetings.messages[i].easteregg === \"FALSE\") {\n timeBased = timeBased.concat(greetings.messages[i]);\n } else {\n easterEggs = easterEggs.concat(greetings.messages[i]);\n }\n }\n if (easterEggChance > 10) {\n return timeBased[greet].message;\n } else {\n let easterEggText = Math.floor(Math.random() * easterEggs.length);\n return easterEggs[easterEggText].message;\n }\n}\nfunction Clock() {\n const [date, setDate] = useState(new Date());\n\n function refreshClock() {\n setDate(new Date());\n }\n useEffect(() => {\n const timerId = setInterval(refreshClock, 1000);\n return function cleanup() {\n clearInterval(timerId);\n };\n }, []);\n\n var hour = date.getHours();\n var minutes = date.getMinutes();\n //var seconds = date.getSeconds();\n var midday = \"AM\";\n midday = (hour >= 12) ? \"PM\" : \"AM\";\n hour = (hour === 0) ? 12 : ((hour > 12) ? (hour - 12) : hour);\n minutes = fixDigits(minutes);\n //seconds = fixDigits(seconds);\n let time = hour + \":\" + minutes + \" \" + midday;\n\n return (\n {time}
\n\n );\n}\nfunction getApps() {\n let applications = require('./apps.json');\n return applications;\n}\nfunction getLinks() {\n let links = require('./links.json');\n return links;\n}\nfunction getProviders() {\n let providers = require('./providers.json');\n return providers;\n}\nfunction getThemes() {\n let themes = require('./themes.json');\n return themes;\n}\nfunction updateTheme(e) {\n var themes = getThemes();\n var themeName = e.target.innerHTML.toLowerCase();\n var index = themes.themes.findIndex(function(item, i){\n return item.name === themeName;\n });\n localStorage.setItem(\"image-background\", themes.themes[index].imagebackground);\n localStorage.setItem(\"color-background\", themes.themes[index].colorbackground);\n localStorage.setItem(\"color-search-background\", themes.themes[index].colorserachbackground);\n localStorage.setItem(\"color-text-pri\",themes.themes[index].colortextpri);\n localStorage.setItem(\"color-text-acc\", themes.themes[index].colortextacc);\n localStorage.setItem(\"color-border\", themes.themes[index].colorborder);\n \n //document.documentElement.style.setProperty(prop, `var(--${themeName}${prop.substring(10)})`);\n setTheme();\n}\nfunction setTheme() {\n setValueFromLocalStorage('image-background');\n setValueFromLocalStorage('color-background');\n setValueFromLocalStorage('color-search-background');\n setValueFromLocalStorage('color-text-pri');\n setValueFromLocalStorage('color-text-acc');\n setValueFromLocalStorage('color-border');\n setValueFromLocalStorage('content-display');\n}\nfunction handleKeyPress(e) {\n var sindex = 0;\n var cycle = false;\n var key = e.keyCode || e.which;\n var text = e.target.value.replaceAll(\"+\", \"%2B\");\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n if (key == 13) { // Search functions\n search(text);\n }\n if (key == 9) { // Tab Completion Functions\n e.preventDefault();\n e.stopPropagation();\n if (text[0] === ';') {\n switch (option) {\n case 't':\n var streamers = ['admiralbahroo', 'moonmoon_ow', 'witwix'];\n if (!subtext || cycle) {\n cycle = true;\n if (sindex > streamers.length - 1) sindex = 0;\n document.getElementById(\"keywords\").value = ';t ' + streamers[sindex++];\n return;\n }\n for (var streamer of streamers) {\n if (subtext === streamer.substr(0, subtext.length)) {\n document.getElementById(\"keywords\").value = ';t ' + streamer;\n return;\n }\n }\n break;\n }\n }\n }\n if(key == 32){ //Space to go to search\nupdateLabel(text);\n }\n sindex = 0;\n cycle = false;\n updateLabel(text);\n}\nfunction updateLabel(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n if (text[0] === '/') {\n// if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n document.getElementById(\"searchType\").innerHTML = \"Allmusic search\";\n break;\n case \"d\":\n document.getElementById(\"searchType\").innerHTML = \"Duck Duck Go search\";\n break;\n case \"di\":\n document.getElementById(\"searchType\").innerHTML = \"Discogs search\";\n break;\n case \"i\":\n document.getElementById(\"searchType\").innerHTML = \"IMDB search\";\n break;\n case \"m\":\n document.getElementById(\"searchType\").innerHTML = \"TheMovieDB search\";\n break;\n case \"r\":\n document.getElementById(\"searchType\").innerHTML = \"Reddit search\";\n break;\n case \"q\":\n document.getElementById(\"searchType\").innerHTML = \"Qwant search\";\n break;\n case \"so\":\n document.getElementById(\"searchType\").innerHTML = \"Soundcloud search\";\n break;\n case \"s\":\n document.getElementById(\"searchType\").innerHTML = \"Spotify search\";\n break;\n case \"tv\":\n document.getElementById(\"searchType\").innerHTML = \"TheTVDB search\";\n break;\n case \"t\":\n document.getElementById(\"searchType\").innerHTML = \"Trakt search\";\n break;\n case \"y\":\n document.getElementById(\"searchType\").innerHTML = \"YouTube search\";\n break;\n case \"w\":\n document.getElementById(\"searchType\").innerHTML = \"Wikipedia search\";\n break;\n case \"p\":\n document.getElementById(\"searchType\").innerHTML = \"Plex search\";\n break;\n case \"rt\":\n document.getElementById(\"searchType\").innerHTML = \"Rotten Tomatoes search\";\n break;\n default:\n document.getElementById(\"searchType\").innerHTML = \"Invalid search\";\n break;\n }\n}else {\n document.getElementById(\"searchType\").innerHTML = \"Google search\";\n }\n}\nfunction search(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n if (text[0] === '/') {\n if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n window.location = \"https://www.allmusic.com/search/all/\" + subtext;\n break;\n case \"d\":\n window.location = \"https://duckduckgo.com/?q=\" + subtext;\n break;\n case \"di\":\n window.location = \"https://www.discogs.com/search/?q=\" + subtext;\n break;\n case \"i\":\n window.location = \"https://www.imdb.com/find?q=\" + subtext;\n break;\n case \"m\":\n window.location = \"https://www.themoviedb.org/search?query=\" + subtext;\n break;\n case \"r\":\n window.location = \"https://www.reddit.com/search?q=\" + subtext;\n break;\n case \"q\":\n window.location = \"https://www.qwant.com/?q=\" + subtext;\n break;\n case \"so\":\n window.location = \"https://soundcloud.com/search?q=\" + subtext;\n break;\n case \"s\":\n window.location = \"https://open.spotify.com/search/results/\" + subtext;\n break;\n case \"t\":\n window.location = \"https://trakt.tv/search?query=\" + subtext;\n break;\n case \"tv\":\n window.location = \"https://www.thetvdb.com/search?query=\" + subtext;\n break;\n case \"y\":\n window.location = \"https://www.youtube.com/results?search_query=\" + subtext;\n break;\n case \"w\":\n window.location = \"https://en.wikipedia.org/w/index.php?search=\" + subtext;\n break;\n case \"p\":\n window.location = \"https://app.plex.tv/desktop/#!/search?query=\" + subtext;\n break;\n case \"rt\":\n window.location = \"https://www.rottentomatoes.com/search?search=\" + subtext;\n break;\n }\n } else {\n var option = text.substr(1);\n switch (option) {\n case \"d\":\n window.location = \"https://www.duckduckgo.com\";\n break;\n case \"y\":\n window.location = \"https://www.youtube.com\";\n break;\n case \"r\":\n window.location = \"https://reddit.com\";\n break;\n case \"s\":\n window.location = \"https://open.spotify.com\";\n break;\n }\n }\n } else if (validURL(text)) {\n if (containsProtocol(text))\n window.location = text;\n else\n window.location = \"https://\" + text;\n } else {\n window.location = \"https://www.google.com/search?q=\" + text;\n }\n}\nfunction validURL(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/)?' + // protocol\n '((([a-z\\\\d]([a-z\\\\d-]*[a-z\\\\d])*)\\\\.)+[a-z]{2,}|' + // domain name\n '((\\\\d{1,3}\\\\.){3}\\\\d{1,3}))' + // OR ip (v4) address\n '(\\\\:\\\\d+)?(\\\\/[-a-z\\\\d%_.~+]*)*' + // port and path\n '(\\\\?[;&a-z\\\\d%_.~+=-]*)?' + // query string\n '(\\\\#[-a-z\\\\d_]*)?$', 'i'); // fragment locator\n return !!pattern.test(str);\n}\nfunction containsProtocol(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/){1}.*', 'i');\n return !!pattern.test(str);\n}\nString.prototype.replaceAll = function(search, replacement) {\n var target = this;\n return target.split(search).join(replacement);\n};\nfunction udpateDisplayedItems(e) {\n localStorage.setItem('contenttype', e.target.checked);\n if (e.target.checked) {\n localStorage.setItem('content-display', 'none');\n } else {\n localStorage.setItem('content-display', 'block');\n }\n setDisplayedItems();\n}\nfunction setDisplayedItems() {\n setValueFromLocalStorage('contenttype');\n setValueFromLocalStorage('content-display');\n}"]},"metadata":{},"sourceType":"module"}
\ No newline at end of file
diff --git a/node_modules/.cache/babel-loader/7afb43b64394e4093c0918dda63fd15a.json b/node_modules/.cache/babel-loader/7afb43b64394e4093c0918dda63fd15a.json
new file mode 100644
index 00000000..a971e4c8
--- /dev/null
+++ b/node_modules/.cache/babel-loader/7afb43b64394e4093c0918dda63fd15a.json
@@ -0,0 +1 @@
+{"ast":null,"code":"var _jsxFileName = \"/home/seanedmunds/dev/home-page/src/index.js\",\n _s = $RefreshSig$();\n\nimport React from 'react';\nimport { useState, useEffect } from 'react';\nimport ReactDOM from 'react-dom';\nimport './index.css';\nimport { jsxDEV as _jsxDEV } from \"react/jsx-dev-runtime\";\n\nconst setValueFromLocalStorage = property => {\n let value = localStorage.getItem(property);\n setValue(property, value);\n};\n\nconst setValue = (property, value) => {\n if (value) {\n document.documentElement.style.setProperty(`--${property}`, value);\n const input = document.querySelector(`#${property}`);\n\n if (input) {\n value = value.replace('px', '');\n input.value = value;\n }\n }\n};\n\nfunction Homepage() {\n setTheme();\n return /*#__PURE__*/_jsxDEV(\"main\", {\n id: \"container\",\n className: \"fade\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Search, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 30,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 29,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Header, {\n date: date(),\n greet: greet()\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 33,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 32,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Applications, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 39,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 38,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Bookmarks, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 42,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 41,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(ModalMenu, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 45,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 44,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(ModalInit, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 48,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 47,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 28,\n columnNumber: 5\n }, this);\n}\n\n_c = Homepage;\n\nfunction Search() {\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"search\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"abackground\",\n children: [/*#__PURE__*/_jsxDEV(\"input\", {\n name: \"keywords\",\n type: \"text\",\n className: \"keyword\",\n id: \"keywords\",\n size: \"50\",\n spellCheck: \"true\",\n placeholder: \"\"\n /*onFocus={this.placeholder = \"\"} onBlur={this.placeholder = ''}*/\n ,\n autoComplete: \"off\",\n autoFocus: true,\n onKeyUp: handleKeyPress\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 58,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n id: \"searchType\",\n className: \"Input-label\",\n children: \"Google search\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 59,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 57,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 56,\n columnNumber: 5\n }, this);\n}\n\n_c2 = Search;\n\nfunction Header(props) {\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"header\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n id: \"greeting_block\",\n children: /*#__PURE__*/_jsxDEV(\"h1\", {\n id: \"header_greet\",\n children: props.greet\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 69,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 68,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"date_block\",\n children: [/*#__PURE__*/_jsxDEV(\"h2\", {\n id: \"header_date\",\n children: props.date\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 72,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(Clock, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 73,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 71,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 67,\n columnNumber: 5\n }, this);\n}\n\n_c3 = Header;\n\nfunction Applications() {\n let appList = getApps();\n var items = [];\n\n for (var i = 0; i < appList.apps.length; i++) {\n var safe = appList.apps[i].NSFW;\n var NSFWEnabled = localStorage.getItem(\"contenttype\");\n\n if (safe === \"SAFE\") {\n items.push( /*#__PURE__*/_jsxDEV(App, {\n name: appList.apps[i].name,\n url: appList.apps[i].url,\n icon: appList.apps[i].icon,\n NSFW: appList.apps[i].NSFW\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 87,\n columnNumber: 9\n }, this));\n } else if (safe === \"NSFW\" && NSFWEnabled) {\n items.push( /*#__PURE__*/_jsxDEV(App, {\n name: appList.apps[i].name,\n url: appList.apps[i].url,\n icon: appList.apps[i].icon,\n NSFW: appList.apps[i].NSFW\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 97,\n columnNumber: 9\n }, this));\n } else {}\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"apps\",\n children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n children: \"Applications\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 112,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"apps_loop\",\n children: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 113,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 111,\n columnNumber: 5\n }, this);\n}\n\n_c4 = Applications;\n\nfunction App(props) {\n let classNameType = props.NSFW + \"-content\";\n let hrefUrl = \"https://\" + props.url;\n let iconName = \"mdi-\" + props.icon;\n return /*#__PURE__*/_jsxDEV(\"div\", {\n className: classNameType,\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: hrefUrl,\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_item\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_icon\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify icon\",\n \"data-icon\": iconName\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 130,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 129,\n columnNumber: 13\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_text\",\n children: [/*#__PURE__*/_jsxDEV(\"span\", {\n id: \"app-name\",\n children: props.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 133,\n columnNumber: 15\n }, this), /*#__PURE__*/_jsxDEV(\"span\", {\n id: \"app-address\",\n children: props.url\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 134,\n columnNumber: 15\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 132,\n columnNumber: 13\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 128,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 127,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 126,\n columnNumber: 7\n }, this);\n}\n\n_c5 = App;\n\nfunction Bookmarks() {\n let bookmarkList = getLinks();\n var items = [];\n\n for (var i = 0; i < bookmarkList.bookmarks.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(LinkGroups, {\n category: bookmarkList.bookmarks[i].category,\n links: bookmarkList.bookmarks[i].links\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 147,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"links\",\n children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n children: \"Bookmarks\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 156,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"links_loop\",\n children: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 157,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 155,\n columnNumber: 5\n }, this);\n}\n\n_c6 = Bookmarks;\n\nfunction LinkGroups(props) {\n var items = [];\n\n for (var i = 0; i < props.links.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(LinkItem, {\n link: props.links[i]\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 168,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"links_item\",\n children: [/*#__PURE__*/_jsxDEV(\"h4\", {\n children: props.category\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 176,\n columnNumber: 7\n }, this), items]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 175,\n columnNumber: 5\n }, this);\n}\n\n_c7 = LinkGroups;\n\nfunction LinkItem(props) {\n return /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: props.link.url,\n className: \"theme_color-border theme_text-select\",\n children: props.link.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 185,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 184,\n columnNumber: 5\n }, this);\n}\n\n_c8 = LinkItem;\n\nfunction ModalMenu() {\n var providers = getProviders();\n var items = [];\n\n for (var i = 0; i < providers.providers.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(Provider, {\n provider: providers.providers[i]\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 195,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"modal\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n children: [/*#__PURE__*/_jsxDEV(\"header\", {\n id: \"modal-header\",\n children: [/*#__PURE__*/_jsxDEV(\"h1\", {\n children: \"Options\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 205,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n href: \"#\",\n title: \"Close\",\n className: \"modal-close\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-close\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 207,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 206,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 204,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"h2\", {\n children: \"Color themes\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 211,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"modal-theme\",\n children: [/*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"blackboard\",\n className: \"theme-button theme-blackboard\",\n onClick: updateTheme,\n children: \"Blackboard\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 214,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"gazette\",\n className: \"theme-button theme-gazette\",\n onClick: updateTheme,\n children: \"Gazette\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 215,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"espresso\",\n className: \"theme-button theme-espresso\",\n onClick: updateTheme,\n children: \"Espresso\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 216,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cab\",\n className: \"theme-button theme-cab\",\n onClick: updateTheme,\n children: \"Cab\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 217,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cloud\",\n className: \"theme-button theme-cloud\",\n onClick: updateTheme,\n children: \"Cloud\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 218,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"lime\",\n className: \"theme-button theme-lime\",\n onClick: updateTheme,\n children: \"Lime\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 219,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"passion\",\n className: \"theme-button theme-passion\",\n onClick: updateTheme,\n children: \"Passion\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 220,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"blues\",\n className: \"theme-button theme-blues\",\n onClick: updateTheme,\n children: \"Blues\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 221,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"chalk\",\n className: \"theme-button theme-chalk\",\n onClick: updateTheme,\n children: \"Chalk\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 222,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"tron\",\n className: \"theme-button theme-tron\",\n onClick: updateTheme,\n children: \"Tron\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 223,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"paper\",\n className: \"theme-button theme-paper\",\n onClick: updateTheme,\n children: \"Paper\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 224,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cyberpunk\",\n className: \"theme-button theme-cyberpunk\",\n onClick: updateTheme,\n children: \"Cyberpunk\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 225,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"quadra\",\n className: \"theme-button theme-panam\",\n onClick: updateTheme,\n children: \"Quadra\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 226,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"panam\",\n className: \"theme-button theme-panam\",\n onClick: updateTheme,\n children: \"Panam\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 227,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"touch\",\n className: \"theme-button theme-touch\",\n onClick: updateTheme,\n children: \"Touch\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 228,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"peek\",\n className: \"theme-button theme-peek\",\n onClick: updateTheme,\n children: \"Peek\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 229,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 213,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"h2\", {\n children: \"Search options\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 233,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"providers\",\n children: /*#__PURE__*/_jsxDEV(\"table\", {\n children: /*#__PURE__*/_jsxDEV(\"tbody\", {\n children: [/*#__PURE__*/_jsxDEV(\"tr\", {\n children: [/*#__PURE__*/_jsxDEV(\"th\", {\n children: \"Website\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 238,\n columnNumber: 19\n }, this), /*#__PURE__*/_jsxDEV(\"th\", {\n children: \"Prefix\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 239,\n columnNumber: 19\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 237,\n columnNumber: 17\n }, this), items]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 236,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 235,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 234,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"header\", {\n id: \"modal-footer\",\n children: [/*#__PURE__*/_jsxDEV(\"a\", {\n href: \"https://github.com/jeroenpardon/\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-github-box\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 247,\n columnNumber: 54\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 247,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n href: \"https://materialdesignicons.com/\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-material-design\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 248,\n columnNumber: 54\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 248,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"sneaky\",\n children: [/*#__PURE__*/_jsxDEV(\"input\", {\n type: \"checkbox\",\n id: \"contenttype\",\n checked: setBoxCheckedFromLocalStorage('contenttype'),\n onChange: udpateDisplayedItems\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 249,\n columnNumber: 35\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n for: \"contenttype\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-domino-mask\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 250,\n columnNumber: 36\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 250,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 249,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 246,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 203,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 202,\n columnNumber: 5\n }, this);\n}\n\n_c9 = ModalMenu;\n\nfunction Provider(props) {\n return /*#__PURE__*/_jsxDEV(\"tr\", {\n children: [/*#__PURE__*/_jsxDEV(\"td\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: props.provider.url,\n children: props.provider.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 260,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 260,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"td\", {\n children: props.provider.prefix\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 261,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 259,\n columnNumber: 5\n }, this);\n}\n\n_c10 = Provider;\n\nfunction ModalInit() {\n setDisplayedItems();\n return /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"modal_init\",\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n className: \"btn\",\n href: \"#modal\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify icon\",\n \"data-icon\": \"mdi-xbox-controller-menu\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 271,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 270,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 269,\n columnNumber: 5\n }, this);\n}\n\n_c11 = ModalInit;\nReactDOM.render( /*#__PURE__*/_jsxDEV(Homepage, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 278,\n columnNumber: 3\n}, this), document.getElementById('root')); //Functions below this line are for calculating data for\n//other functions\n\nfunction date() {\n let currentDate = new Date();\n let dateOptions = {\n weekday: \"long\",\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\"\n };\n let date = currentDate.toLocaleDateString(\"en-GB\", dateOptions);\n return date;\n}\n\nfunction fixDigits(k) {\n if (k < 10) {\n return \"0\" + k;\n } else {\n return k;\n }\n}\n\nfunction greet() {\n let currentTime = new Date();\n let greet = Math.floor(currentTime.getHours() / 6);\n let easterEggChance = Math.floor(Math.random() * 100);\n\n let greetings = require('./messages.json');\n\n let timeBased = [];\n let easterEggs = [];\n\n for (var i = 0; i < greetings.messages.length; i++) {\n if (greetings.messages[i].easteregg === \"FALSE\") {\n timeBased = timeBased.concat(greetings.messages[i]);\n } else {\n easterEggs = easterEggs.concat(greetings.messages[i]);\n }\n }\n\n if (easterEggChance > 10) {\n return timeBased[greet].message;\n } else {\n let easterEggText = Math.floor(Math.random() * easterEggs.length);\n return easterEggs[easterEggText].message;\n }\n}\n\nfunction Clock() {\n _s();\n\n const [date, setDate] = useState(new Date());\n\n function refreshClock() {\n setDate(new Date());\n }\n\n useEffect(() => {\n const timerId = setInterval(refreshClock, 1000);\n return function cleanup() {\n clearInterval(timerId);\n };\n }, []);\n var hour = date.getHours();\n var minutes = date.getMinutes(); //var seconds = date.getSeconds();\n\n var midday = \"AM\";\n midday = hour >= 12 ? \"PM\" : \"AM\";\n hour = hour === 0 ? 12 : hour > 12 ? hour - 12 : hour;\n minutes = fixDigits(minutes); //seconds = fixDigits(seconds);\n\n let time = hour + \":\" + minutes + \" \" + midday;\n return /*#__PURE__*/_jsxDEV(\"h2\", {\n id: \"clock\",\n children: time\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 349,\n columnNumber: 5\n }, this);\n}\n\n_s(Clock, \"Gqi45WOZhU2c0BLYX0HoJeiR0fk=\");\n\n_c12 = Clock;\n\nfunction getApps() {\n let applications = require('./apps.json');\n\n return applications;\n}\n\nfunction getLinks() {\n let links = require('./links.json');\n\n return links;\n}\n\nfunction getProviders() {\n let providers = require('./providers.json');\n\n return providers;\n}\n\nfunction getThemes() {\n let themes = require('./themes.json');\n\n return themes;\n}\n\nfunction updateTheme(e) {\n var themes = getThemes();\n var themeName = e.target.innerHTML.toLowerCase();\n var index = themes.themes.findIndex(function (item, i) {\n return item.name === themeName;\n });\n localStorage.setItem(\"image-background\", themes.themes[index].imagebackground);\n localStorage.setItem(\"color-background\", themes.themes[index].colorbackground);\n localStorage.setItem(\"color-search-background\", themes.themes[index].colorserachbackground);\n localStorage.setItem(\"color-text-pri\", themes.themes[index].colortextpri);\n localStorage.setItem(\"color-text-acc\", themes.themes[index].colortextacc);\n localStorage.setItem(\"color-border\", themes.themes[index].colorborder); //document.documentElement.style.setProperty(prop, `var(--${themeName}${prop.substring(10)})`);\n\n setTheme();\n}\n\nfunction setTheme() {\n setValueFromLocalStorage('image-background');\n setValueFromLocalStorage('color-background');\n setValueFromLocalStorage('color-search-background');\n setValueFromLocalStorage('color-text-pri');\n setValueFromLocalStorage('color-text-acc');\n setValueFromLocalStorage('color-border');\n setValueFromLocalStorage('content-display');\n}\n\nfunction handleKeyPress(e) {\n var sindex = 0;\n var cycle = false;\n var key = e.keyCode || e.which;\n var text = e.target.value.replaceAll(\"+\", \"%2B\");\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n\n if (key == 13) {\n // Search functions\n search(text);\n }\n\n if (key == 9) {\n // Tab Completion Functions\n e.preventDefault();\n e.stopPropagation();\n\n if (text[0] === ';') {\n switch (option) {\n case 't':\n var streamers = ['admiralbahroo', 'moonmoon_ow', 'witwix'];\n\n if (!subtext || cycle) {\n cycle = true;\n if (sindex > streamers.length - 1) sindex = 0;\n document.getElementById(\"keywords\").value = ';t ' + streamers[sindex++];\n return;\n }\n\n for (var streamer of streamers) {\n if (subtext === streamer.substr(0, subtext.length)) {\n document.getElementById(\"keywords\").value = ';t ' + streamer;\n return;\n }\n }\n\n break;\n }\n }\n }\n\n if (key == 32) {\n //Space to go to search\n updateLabel(text);\n }\n\n sindex = 0;\n cycle = false;\n updateLabel(text);\n}\n\nfunction updateLabel(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n\n if (text[0] === '/') {\n // if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n document.getElementById(\"searchType\").innerHTML = \"Allmusic search\";\n break;\n\n case \"d\":\n document.getElementById(\"searchType\").innerHTML = \"Duck Duck Go search\";\n break;\n\n case \"di\":\n document.getElementById(\"searchType\").innerHTML = \"Discogs search\";\n break;\n\n case \"i\":\n document.getElementById(\"searchType\").innerHTML = \"IMDB search\";\n break;\n\n case \"m\":\n document.getElementById(\"searchType\").innerHTML = \"TheMovieDB search\";\n break;\n\n case \"r\":\n document.getElementById(\"searchType\").innerHTML = \"Reddit search\";\n break;\n\n case \"q\":\n document.getElementById(\"searchType\").innerHTML = \"Qwant search\";\n break;\n\n case \"so\":\n document.getElementById(\"searchType\").innerHTML = \"Soundcloud search\";\n break;\n\n case \"s\":\n document.getElementById(\"searchType\").innerHTML = \"Spotify search\";\n break;\n\n case \"tv\":\n document.getElementById(\"searchType\").innerHTML = \"TheTVDB search\";\n break;\n\n case \"t\":\n document.getElementById(\"searchType\").innerHTML = \"Trakt search\";\n break;\n\n case \"y\":\n document.getElementById(\"searchType\").innerHTML = \"YouTube search\";\n break;\n\n case \"w\":\n document.getElementById(\"searchType\").innerHTML = \"Wikipedia search\";\n break;\n\n case \"p\":\n document.getElementById(\"searchType\").innerHTML = \"Plex search\";\n break;\n\n case \"rt\":\n document.getElementById(\"searchType\").innerHTML = \"Rotten Tomatoes search\";\n break;\n\n default:\n document.getElementById(\"searchType\").innerHTML = \"Invalid search\";\n break;\n }\n } else {\n document.getElementById(\"searchType\").innerHTML = \"Google search\";\n }\n}\n\nfunction search(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n\n if (text[0] === '/') {\n if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n window.location = \"https://www.allmusic.com/search/all/\" + subtext;\n break;\n\n case \"d\":\n window.location = \"https://duckduckgo.com/?q=\" + subtext;\n break;\n\n case \"di\":\n window.location = \"https://www.discogs.com/search/?q=\" + subtext;\n break;\n\n case \"i\":\n window.location = \"https://www.imdb.com/find?q=\" + subtext;\n break;\n\n case \"m\":\n window.location = \"https://www.themoviedb.org/search?query=\" + subtext;\n break;\n\n case \"r\":\n window.location = \"https://www.reddit.com/search?q=\" + subtext;\n break;\n\n case \"q\":\n window.location = \"https://www.qwant.com/?q=\" + subtext;\n break;\n\n case \"so\":\n window.location = \"https://soundcloud.com/search?q=\" + subtext;\n break;\n\n case \"s\":\n window.location = \"https://open.spotify.com/search/results/\" + subtext;\n break;\n\n case \"t\":\n window.location = \"https://trakt.tv/search?query=\" + subtext;\n break;\n\n case \"tv\":\n window.location = \"https://www.thetvdb.com/search?query=\" + subtext;\n break;\n\n case \"y\":\n window.location = \"https://www.youtube.com/results?search_query=\" + subtext;\n break;\n\n case \"w\":\n window.location = \"https://en.wikipedia.org/w/index.php?search=\" + subtext;\n break;\n\n case \"p\":\n window.location = \"https://app.plex.tv/desktop/#!/search?query=\" + subtext;\n break;\n\n case \"rt\":\n window.location = \"https://www.rottentomatoes.com/search?search=\" + subtext;\n break;\n }\n } else {\n var option = text.substr(1);\n\n switch (option) {\n case \"d\":\n window.location = \"https://www.duckduckgo.com\";\n break;\n\n case \"y\":\n window.location = \"https://www.youtube.com\";\n break;\n\n case \"r\":\n window.location = \"https://reddit.com\";\n break;\n\n case \"s\":\n window.location = \"https://open.spotify.com\";\n break;\n }\n }\n } else if (validURL(text)) {\n if (containsProtocol(text)) window.location = text;else window.location = \"https://\" + text;\n } else {\n window.location = \"https://www.google.com/search?q=\" + text;\n }\n}\n\nfunction validURL(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/)?' + // protocol\n '((([a-z\\\\d]([a-z\\\\d-]*[a-z\\\\d])*)\\\\.)+[a-z]{2,}|' + // domain name\n '((\\\\d{1,3}\\\\.){3}\\\\d{1,3}))' + // OR ip (v4) address\n '(\\\\:\\\\d+)?(\\\\/[-a-z\\\\d%_.~+]*)*' + // port and path\n '(\\\\?[;&a-z\\\\d%_.~+=-]*)?' + // query string\n '(\\\\#[-a-z\\\\d_]*)?$', 'i'); // fragment locator\n\n return !!pattern.test(str);\n}\n\nfunction containsProtocol(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/){1}.*', 'i');\n return !!pattern.test(str);\n}\n\nString.prototype.replaceAll = function (search, replacement) {\n var target = this;\n return target.split(search).join(replacement);\n};\n\nfunction udpateDisplayedItems(e) {\n console.log(e);\n localStorage.setItem('contenttype', e.target.checked);\n\n if (e.target.checked) {\n localStorage.setItem('content-display', 'none');\n } else {\n localStorage.setItem('content-display', 'block');\n }\n\n setDisplayedItems();\n}\n\nfunction setDisplayedItems() {\n setValueFromLocalStorage('contenttype');\n setValueFromLocalStorage('content-display');\n}\n\nvar _c, _c2, _c3, _c4, _c5, _c6, _c7, _c8, _c9, _c10, _c11, _c12;\n\n$RefreshReg$(_c, \"Homepage\");\n$RefreshReg$(_c2, \"Search\");\n$RefreshReg$(_c3, \"Header\");\n$RefreshReg$(_c4, \"Applications\");\n$RefreshReg$(_c5, \"App\");\n$RefreshReg$(_c6, \"Bookmarks\");\n$RefreshReg$(_c7, \"LinkGroups\");\n$RefreshReg$(_c8, \"LinkItem\");\n$RefreshReg$(_c9, \"ModalMenu\");\n$RefreshReg$(_c10, \"Provider\");\n$RefreshReg$(_c11, \"ModalInit\");\n$RefreshReg$(_c12, \"Clock\");","map":{"version":3,"sources":["/home/seanedmunds/dev/home-page/src/index.js"],"names":["React","useState","useEffect","ReactDOM","setValueFromLocalStorage","property","value","localStorage","getItem","setValue","document","documentElement","style","setProperty","input","querySelector","replace","Homepage","setTheme","date","greet","Search","handleKeyPress","Header","props","Applications","appList","getApps","items","i","apps","length","safe","NSFW","NSFWEnabled","push","name","url","icon","App","classNameType","hrefUrl","iconName","Bookmarks","bookmarkList","getLinks","bookmarks","category","links","LinkGroups","LinkItem","link","ModalMenu","providers","getProviders","updateTheme","setBoxCheckedFromLocalStorage","udpateDisplayedItems","Provider","provider","prefix","ModalInit","setDisplayedItems","render","getElementById","currentDate","Date","dateOptions","weekday","year","month","day","toLocaleDateString","fixDigits","k","currentTime","Math","floor","getHours","easterEggChance","random","greetings","require","timeBased","easterEggs","messages","easteregg","concat","message","easterEggText","Clock","setDate","refreshClock","timerId","setInterval","cleanup","clearInterval","hour","minutes","getMinutes","midday","time","applications","getThemes","themes","e","themeName","target","innerHTML","toLowerCase","index","findIndex","item","setItem","imagebackground","colorbackground","colorserachbackground","colortextpri","colortextacc","colorborder","sindex","cycle","key","keyCode","which","text","replaceAll","option","substr","indexOf","subtext","search","preventDefault","stopPropagation","streamers","streamer","updateLabel","window","location","validURL","containsProtocol","str","pattern","RegExp","test","String","prototype","replacement","split","join","console","log","checked"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { useState, useEffect } from 'react';\nimport ReactDOM from 'react-dom';\nimport './index.css';\n\nconst setValueFromLocalStorage = property => {\n let value = localStorage.getItem(property);\n setValue(property, value);\n};\nconst setValue = (property, value) => {\n if (value) {\n document.documentElement.style.setProperty(`--${property}`, value);\n\n const input = document.querySelector(`#${property}`);\n if (input) {\n value = value.replace('px', '');\n input.value = value;\n }\n }\n};\n\n\n\nfunction Homepage() {\n setTheme();\n \n return (\n \n \n \n
\n \n \n
\n \n \n \n
\n \n \n
\n \n \n
\n \n );\n}\n\nfunction Search() {\n return (\n \n )\n}\n\nfunction Header(props) {\n return (\n \n );\n}\n\nfunction Applications() {\n let appList = getApps();\n var items = [];\n for (var i = 0; i < appList.apps.length; i++) {\n var safe = appList.apps[i].NSFW;\n var NSFWEnabled = localStorage.getItem(\"contenttype\");\n if (safe === \"SAFE\") {\n items.push(\n \n );\n } else if (safe === \"NSFW\" && NSFWEnabled) {\n items.push(\n \n );\n } else {\n \n }\n \n }\n return (\n \n Applications
\n \n {items}\n
\n \n );\n}\n\nfunction App(props) {\n \n let classNameType = props.NSFW + \"-content\";\n let hrefUrl = \"https://\" + props.url;\n let iconName = \"mdi-\" + props.icon;\n return (\n \n );\n}\n\nfunction Bookmarks() {\n let bookmarkList = getLinks();\n var items = [];\n for (var i = 0; i < bookmarkList.bookmarks.length; i++) {\n items.push(\n \n );\n }\n return (\n \n Bookmarks
\n \n {items}\n
\n \n );\n}\n\nfunction LinkGroups(props) {\n var items = [];\n for (var i = 0; i < props.links.length; i++) {\n items.push(\n \n );\n }\n return (\n \n
{props.category}
\n {items}\n \n );\n}\n\nfunction LinkItem(props) {\n return (\n \n );\n}\n\nfunction ModalMenu() {\n var providers = getProviders();\n var items = [];\n for (var i = 0; i < providers.providers.length; i++) {\n items.push(\n \n );\n }\n return (\n \n \n \n\n
Color themes
\n\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n\n\n
Search options
\n
\n \n \n \n | Website | \n Prefix | \n
\n {items}\n \n
\n \n\n \n
\n \n );\n}\n\nfunction Provider(props) {\n return (\n \n | {props.provider.name} | \n {props.provider.prefix} | \n
\n );\n}\n\nfunction ModalInit() {\n setDisplayedItems();\n return (\n \n );\n}\n\nReactDOM.render(\n ,\n document.getElementById('root')\n);\n\n//Functions below this line are for calculating data for\n//other functions\n\nfunction date() {\n let currentDate = new Date();\n let dateOptions = {\n weekday: \"long\",\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\"\n };\n let date = currentDate.toLocaleDateString(\"en-GB\", dateOptions);\n return date;\n}\nfunction fixDigits(k) {\n if (k < 10) {\n return \"0\" + k;\n }\n else {\n return k;\n }\n}\nfunction greet() {\n let currentTime = new Date();\n let greet = Math.floor(currentTime.getHours() / 6);\n let easterEggChance = Math.floor(Math.random() * 100);\n let greetings = require('./messages.json');\n let timeBased = [];\n let easterEggs = [];\n for (var i = 0; i < greetings.messages.length; i++) {\n if (greetings.messages[i].easteregg === \"FALSE\") {\n timeBased = timeBased.concat(greetings.messages[i]);\n } else {\n easterEggs = easterEggs.concat(greetings.messages[i]);\n }\n }\n if (easterEggChance > 10) {\n return timeBased[greet].message;\n } else {\n let easterEggText = Math.floor(Math.random() * easterEggs.length);\n return easterEggs[easterEggText].message;\n }\n}\nfunction Clock() {\n const [date, setDate] = useState(new Date());\n\n function refreshClock() {\n setDate(new Date());\n }\n useEffect(() => {\n const timerId = setInterval(refreshClock, 1000);\n return function cleanup() {\n clearInterval(timerId);\n };\n }, []);\n\n var hour = date.getHours();\n var minutes = date.getMinutes();\n //var seconds = date.getSeconds();\n var midday = \"AM\";\n midday = (hour >= 12) ? \"PM\" : \"AM\";\n hour = (hour === 0) ? 12 : ((hour > 12) ? (hour - 12) : hour);\n minutes = fixDigits(minutes);\n //seconds = fixDigits(seconds);\n let time = hour + \":\" + minutes + \" \" + midday;\n\n return (\n {time}
\n\n );\n}\nfunction getApps() {\n let applications = require('./apps.json');\n return applications;\n}\nfunction getLinks() {\n let links = require('./links.json');\n return links;\n}\nfunction getProviders() {\n let providers = require('./providers.json');\n return providers;\n}\nfunction getThemes() {\n let themes = require('./themes.json');\n return themes;\n}\nfunction updateTheme(e) {\n var themes = getThemes();\n var themeName = e.target.innerHTML.toLowerCase();\n var index = themes.themes.findIndex(function(item, i){\n return item.name === themeName\n });\n localStorage.setItem(\"image-background\", themes.themes[index].imagebackground);\n localStorage.setItem(\"color-background\", themes.themes[index].colorbackground);\n localStorage.setItem(\"color-search-background\", themes.themes[index].colorserachbackground);\n localStorage.setItem(\"color-text-pri\",themes.themes[index].colortextpri);\n localStorage.setItem(\"color-text-acc\", themes.themes[index].colortextacc);\n localStorage.setItem(\"color-border\", themes.themes[index].colorborder);\n \n //document.documentElement.style.setProperty(prop, `var(--${themeName}${prop.substring(10)})`);\n setTheme();\n}\nfunction setTheme() {\n setValueFromLocalStorage('image-background');\n setValueFromLocalStorage('color-background');\n setValueFromLocalStorage('color-search-background');\n setValueFromLocalStorage('color-text-pri');\n setValueFromLocalStorage('color-text-acc');\n setValueFromLocalStorage('color-border');\n setValueFromLocalStorage('content-display');\n}\nfunction handleKeyPress(e) {\n var sindex = 0;\n var cycle = false;\n var key = e.keyCode || e.which;\n var text = e.target.value.replaceAll(\"+\", \"%2B\");\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n if (key == 13) { // Search functions\n search(text);\n }\n if (key == 9) { // Tab Completion Functions\n e.preventDefault();\n e.stopPropagation();\n if (text[0] === ';') {\n switch (option) {\n case 't':\n var streamers = ['admiralbahroo', 'moonmoon_ow', 'witwix'];\n if (!subtext || cycle) {\n cycle = true;\n if (sindex > streamers.length - 1) sindex = 0;\n document.getElementById(\"keywords\").value = ';t ' + streamers[sindex++];\n return;\n }\n for (var streamer of streamers) {\n if (subtext === streamer.substr(0, subtext.length)) {\n document.getElementById(\"keywords\").value = ';t ' + streamer;\n return;\n }\n }\n break;\n }\n }\n }\n if(key == 32){ //Space to go to search\nupdateLabel(text);\n }\n sindex = 0;\n cycle = false;\n updateLabel(text);\n}\nfunction updateLabel(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n if (text[0] === '/') {\n// if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n document.getElementById(\"searchType\").innerHTML = \"Allmusic search\";\n break;\n case \"d\":\n document.getElementById(\"searchType\").innerHTML = \"Duck Duck Go search\";\n break;\n case \"di\":\n document.getElementById(\"searchType\").innerHTML = \"Discogs search\";\n break;\n case \"i\":\n document.getElementById(\"searchType\").innerHTML = \"IMDB search\";\n break;\n case \"m\":\n document.getElementById(\"searchType\").innerHTML = \"TheMovieDB search\";\n break;\n case \"r\":\n document.getElementById(\"searchType\").innerHTML = \"Reddit search\";\n break;\n case \"q\":\n document.getElementById(\"searchType\").innerHTML = \"Qwant search\";\n break;\n case \"so\":\n document.getElementById(\"searchType\").innerHTML = \"Soundcloud search\";\n break;\n case \"s\":\n document.getElementById(\"searchType\").innerHTML = \"Spotify search\";\n break;\n case \"tv\":\n document.getElementById(\"searchType\").innerHTML = \"TheTVDB search\";\n break;\n case \"t\":\n document.getElementById(\"searchType\").innerHTML = \"Trakt search\";\n break;\n case \"y\":\n document.getElementById(\"searchType\").innerHTML = \"YouTube search\";\n break;\n case \"w\":\n document.getElementById(\"searchType\").innerHTML = \"Wikipedia search\";\n break;\n case \"p\":\n document.getElementById(\"searchType\").innerHTML = \"Plex search\";\n break;\n case \"rt\":\n document.getElementById(\"searchType\").innerHTML = \"Rotten Tomatoes search\";\n break;\n default:\n document.getElementById(\"searchType\").innerHTML = \"Invalid search\";\n break;\n }\n}else {\n document.getElementById(\"searchType\").innerHTML = \"Google search\";\n }\n}\nfunction search(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n if (text[0] === '/') {\n if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n window.location = \"https://www.allmusic.com/search/all/\" + subtext;\n break;\n case \"d\":\n window.location = \"https://duckduckgo.com/?q=\" + subtext;\n break;\n case \"di\":\n window.location = \"https://www.discogs.com/search/?q=\" + subtext;\n break;\n case \"i\":\n window.location = \"https://www.imdb.com/find?q=\" + subtext;\n break;\n case \"m\":\n window.location = \"https://www.themoviedb.org/search?query=\" + subtext;\n break;\n case \"r\":\n window.location = \"https://www.reddit.com/search?q=\" + subtext;\n break;\n case \"q\":\n window.location = \"https://www.qwant.com/?q=\" + subtext;\n break;\n case \"so\":\n window.location = \"https://soundcloud.com/search?q=\" + subtext;\n break;\n case \"s\":\n window.location = \"https://open.spotify.com/search/results/\" + subtext;\n break;\n case \"t\":\n window.location = \"https://trakt.tv/search?query=\" + subtext;\n break;\n case \"tv\":\n window.location = \"https://www.thetvdb.com/search?query=\" + subtext;\n break;\n case \"y\":\n window.location = \"https://www.youtube.com/results?search_query=\" + subtext;\n break;\n case \"w\":\n window.location = \"https://en.wikipedia.org/w/index.php?search=\" + subtext;\n break;\n case \"p\":\n window.location = \"https://app.plex.tv/desktop/#!/search?query=\" + subtext;\n break;\n case \"rt\":\n window.location = \"https://www.rottentomatoes.com/search?search=\" + subtext;\n break;\n }\n } else {\n var option = text.substr(1);\n switch (option) {\n case \"d\":\n window.location = \"https://www.duckduckgo.com\";\n break;\n case \"y\":\n window.location = \"https://www.youtube.com\";\n break;\n case \"r\":\n window.location = \"https://reddit.com\";\n break;\n case \"s\":\n window.location = \"https://open.spotify.com\";\n break;\n }\n }\n } else if (validURL(text)) {\n if (containsProtocol(text))\n window.location = text;\n else\n window.location = \"https://\" + text;\n } else {\n window.location = \"https://www.google.com/search?q=\" + text;\n }\n}\nfunction validURL(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/)?' + // protocol\n '((([a-z\\\\d]([a-z\\\\d-]*[a-z\\\\d])*)\\\\.)+[a-z]{2,}|' + // domain name\n '((\\\\d{1,3}\\\\.){3}\\\\d{1,3}))' + // OR ip (v4) address\n '(\\\\:\\\\d+)?(\\\\/[-a-z\\\\d%_.~+]*)*' + // port and path\n '(\\\\?[;&a-z\\\\d%_.~+=-]*)?' + // query string\n '(\\\\#[-a-z\\\\d_]*)?$', 'i'); // fragment locator\n return !!pattern.test(str);\n}\nfunction containsProtocol(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/){1}.*', 'i');\n return !!pattern.test(str);\n}\nString.prototype.replaceAll = function(search, replacement) {\n var target = this;\n return target.split(search).join(replacement);\n};\nfunction udpateDisplayedItems(e) {\n console.log(e);\n localStorage.setItem('contenttype', e.target.checked);\n if (e.target.checked) {\n localStorage.setItem('content-display', 'none');\n } else {\n localStorage.setItem('content-display', 'block');\n }\n setDisplayedItems();\n}\nfunction setDisplayedItems() {\n setValueFromLocalStorage('contenttype');\n setValueFromLocalStorage('content-display');\n}"]},"metadata":{},"sourceType":"module"}
\ No newline at end of file
diff --git a/node_modules/.cache/babel-loader/7c087888f68e84532acb61a39a060797.json b/node_modules/.cache/babel-loader/7c087888f68e84532acb61a39a060797.json
new file mode 100644
index 00000000..f4f94414
--- /dev/null
+++ b/node_modules/.cache/babel-loader/7c087888f68e84532acb61a39a060797.json
@@ -0,0 +1 @@
+{"ast":null,"code":"var _jsxFileName = \"/home/seanedmunds/dev/home-page/src/index.js\",\n _s = $RefreshSig$();\n\nimport React from 'react';\nimport { useState, useEffect } from 'react';\nimport ReactDOM from 'react-dom'; //import { unstable_createPortal } from 'react-dom';\n\nimport './index.css';\nimport { jsxDEV as _jsxDEV } from \"react/jsx-dev-runtime\";\n\nfunction Homepage() {\n return /*#__PURE__*/_jsxDEV(\"main\", {\n id: \"container\",\n className: \"fade\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Search, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 11,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 10,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Header, {\n date: date(),\n greet: greet()\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 14,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 13,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Applications, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 20,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 19,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Bookmarks, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 23,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 22,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(ModalMenu, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 26,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 25,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(ModalInit, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 29,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 28,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 9,\n columnNumber: 5\n }, this);\n}\n\n_c = Homepage;\n\nfunction Search() {\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"search\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"abackground\",\n children: [/*#__PURE__*/_jsxDEV(\"input\", {\n name: \"keywords\",\n type: \"text\",\n className: \"keyword\",\n id: \"keywords\",\n size: \"50\",\n spellCheck: \"true\",\n placeholder: \"\"\n /*onFocus={this.placeholder = \"\"} onBlur={this.placeholder = ''}*/\n ,\n autoComplete: \"off\",\n autoFocus: true,\n onKeyUp: handleKeyPress\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 39,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n id: \"searchType\",\n className: \"Input-label\",\n children: \"Google search\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 40,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 38,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 37,\n columnNumber: 5\n }, this);\n}\n\n_c2 = Search;\n\nfunction Header(props) {\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"header\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n id: \"greeting_block\",\n children: /*#__PURE__*/_jsxDEV(\"h1\", {\n id: \"header_greet\",\n children: props.greet\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 50,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 49,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"date_block\",\n children: [/*#__PURE__*/_jsxDEV(\"h2\", {\n id: \"header_date\",\n children: props.date\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 53,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(Clock, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 54,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 52,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 48,\n columnNumber: 5\n }, this);\n}\n\n_c3 = Header;\n\nfunction Applications() {\n let appList = getApps();\n var items = [];\n\n for (var i = 0; i < appList.apps.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(App, {\n name: appList.apps[i].name,\n url: appList.apps[i].url,\n icon: appList.apps[i].icon,\n NSFW: appList.apps[i].NSFW\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 65,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"apps\",\n children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n children: \"Applications\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 76,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"apps_loop\",\n children: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 77,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 75,\n columnNumber: 5\n }, this);\n}\n\n_c4 = Applications;\n\nfunction App(props) {\n let classNameType = props.NSFW + \"-content\";\n let hrefUrl = \"https://\" + props.url;\n let iconName = \"mdi-\" + props.icon;\n return /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: hrefUrl,\n className: classNameType,\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_item\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_icon\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify icon\",\n \"data-icon\": iconName\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 93,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 92,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_text\",\n children: [/*#__PURE__*/_jsxDEV(\"span\", {\n id: \"app-name\",\n children: props.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 96,\n columnNumber: 13\n }, this), /*#__PURE__*/_jsxDEV(\"span\", {\n id: \"app-address\",\n children: props.url\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 97,\n columnNumber: 13\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 95,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 91,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 90,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 89,\n columnNumber: 5\n }, this);\n}\n\n_c5 = App;\n\nfunction Bookmarks() {\n let bookmarkList = getLinks();\n var items = [];\n\n for (var i = 0; i < bookmarkList.bookmarks.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(LinkGroups, {\n category: bookmarkList.bookmarks[i].category,\n links: bookmarkList.bookmarks[i].links\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 110,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"links\",\n children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n children: \"Bookmarks\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 119,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"links_loop\",\n children: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 120,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 118,\n columnNumber: 5\n }, this);\n}\n\n_c6 = Bookmarks;\n\nfunction LinkGroups(props) {\n var items = [];\n\n for (var i = 0; i < props.links.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(LinkItem, {\n link: props.links[i]\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 131,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"links_item\",\n children: [/*#__PURE__*/_jsxDEV(\"h4\", {\n children: props.category\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 139,\n columnNumber: 7\n }, this), items]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 138,\n columnNumber: 5\n }, this);\n}\n\n_c7 = LinkGroups;\n\nfunction LinkItem(props) {\n return /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: props.link.url,\n className: \"theme_color-border theme_text-select\",\n children: props.link.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 148,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 147,\n columnNumber: 5\n }, this);\n}\n\n_c8 = LinkItem;\n\nfunction ModalMenu() {\n var providers = getProviders();\n var items = [];\n\n for (var i = 0; i < providers.providers.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(Provider, {\n provider: providers.providers[i]\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 158,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"modal\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n children: [/*#__PURE__*/_jsxDEV(\"header\", {\n id: \"modal-header\",\n children: [/*#__PURE__*/_jsxDEV(\"h1\", {\n children: \"Options\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 168,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n href: \"#\",\n title: \"Close\",\n className: \"modal-close\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-close\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 170,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 169,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 167,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"h2\", {\n children: \"Color themes\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 174,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"modal-theme\",\n children: [/*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"blackboard\",\n className: \"theme-button theme-blackboard\",\n onClick: updateTheme,\n children: \"Blackboard\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 177,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"gazette\",\n className: \"theme-button theme-gazette\",\n children: \"Gazette\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 178,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"espresso\",\n className: \"theme-button theme-espresso\",\n children: \"Espresso\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 179,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cab\",\n className: \"theme-button theme-cab\",\n children: \"Cab\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 180,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cloud\",\n className: \"theme-button theme-cloud\",\n children: \"Cloud\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 181,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"lime\",\n className: \"theme-button theme-lime\",\n children: \"Lime\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 182,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"passion\",\n className: \"theme-button theme-passion\",\n children: \"Passion\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 183,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"blues\",\n className: \"theme-button theme-blues\",\n children: \"Blues\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 184,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"chalk\",\n className: \"theme-button theme-chalk\",\n children: \"Chalk\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 185,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"tron\",\n className: \"theme-button theme-tron\",\n children: \"Tron\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 186,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"paper\",\n className: \"theme-button theme-paper\",\n children: \"Paper\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 187,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cyberpunk\",\n className: \"theme-button theme-cyberpunk\",\n children: \"Cyberpunk\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 188,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"quadra\",\n className: \"theme-button theme-panam\",\n children: \"Quadra\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 189,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"panam\",\n className: \"theme-button theme-panam\",\n children: \"Panam\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 190,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"touch\",\n className: \"theme-button theme-touch\",\n children: \"Touch\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 191,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"peek\",\n className: \"theme-button theme-peek\",\n children: \"Peek\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 192,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 176,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"h2\", {\n children: \"Search options\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 196,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"providers\",\n children: /*#__PURE__*/_jsxDEV(\"table\", {\n children: /*#__PURE__*/_jsxDEV(\"tbody\", {\n children: [/*#__PURE__*/_jsxDEV(\"tr\", {\n children: [/*#__PURE__*/_jsxDEV(\"th\", {\n children: \"Website\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 201,\n columnNumber: 19\n }, this), /*#__PURE__*/_jsxDEV(\"th\", {\n children: \"Prefix\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 202,\n columnNumber: 19\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 200,\n columnNumber: 17\n }, this), items]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 199,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 198,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 197,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"header\", {\n id: \"modal-footer\",\n children: [/*#__PURE__*/_jsxDEV(\"a\", {\n href: \"https://github.com/jeroenpardon/\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-github-box\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 210,\n columnNumber: 54\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 210,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n href: \"https://materialdesignicons.com/\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-material-design\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 211,\n columnNumber: 54\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 211,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"sneaky\",\n children: [/*#__PURE__*/_jsxDEV(\"input\", {\n type: \"checkbox\",\n id: \"contenttype\",\n onChange: \"nsfw(this)\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 212,\n columnNumber: 35\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n for: \"contenttype\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-domino-mask\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 213,\n columnNumber: 36\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 213,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 212,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 209,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 166,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 165,\n columnNumber: 5\n }, this);\n}\n\n_c9 = ModalMenu;\n\nfunction Provider(props) {\n return /*#__PURE__*/_jsxDEV(\"tr\", {\n children: [/*#__PURE__*/_jsxDEV(\"td\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: props.provider.url,\n children: props.provider.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 223,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 223,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"td\", {\n children: props.provider.prefix\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 224,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 222,\n columnNumber: 5\n }, this);\n}\n\n_c10 = Provider;\n\nfunction ModalInit() {\n return /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"modal_init\",\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n className: \"btn\",\n href: \"#modal\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify icon\",\n \"data-icon\": \"mdi-xbox-controller-menu\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 233,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 232,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 231,\n columnNumber: 5\n }, this);\n}\n\n_c11 = ModalInit;\nReactDOM.render( /*#__PURE__*/_jsxDEV(Homepage, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 240,\n columnNumber: 3\n}, this), document.getElementById('root')); //Functions below this line are for calculating data for\n//other functions\n\nfunction date() {\n let currentDate = new Date();\n let dateOptions = {\n weekday: \"long\",\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\"\n };\n let date = currentDate.toLocaleDateString(\"en-GB\", dateOptions);\n return date;\n}\n\nfunction fixDigits(k) {\n if (k < 10) {\n return \"0\" + k;\n } else {\n return k;\n }\n}\n\nfunction greet() {\n let currentTime = new Date();\n let greet = Math.floor(currentTime.getHours() / 6);\n let easterEggChance = Math.floor(Math.random() * 100);\n\n let greetings = require('./messages.json');\n\n let timeBased = [];\n let easterEggs = [];\n\n for (var i = 0; i < greetings.messages.length; i++) {\n if (greetings.messages[i].easteregg === \"FALSE\") {\n timeBased = timeBased.concat(greetings.messages[i]);\n } else {\n easterEggs = easterEggs.concat(greetings.messages[i]);\n }\n }\n\n if (easterEggChance > 10) {\n return timeBased[greet].message;\n } else {\n let easterEggText = Math.floor(Math.random() * easterEggs.length);\n return easterEggs[easterEggText].message;\n }\n}\n\nfunction Clock() {\n _s();\n\n const [date, setDate] = useState(new Date());\n\n function refreshClock() {\n setDate(new Date());\n }\n\n useEffect(() => {\n const timerId = setInterval(refreshClock, 1000);\n return function cleanup() {\n clearInterval(timerId);\n };\n }, []);\n var hour = date.getHours();\n var minutes = date.getMinutes(); //var seconds = date.getSeconds();\n\n var midday = \"AM\";\n midday = hour >= 12 ? \"PM\" : \"AM\";\n hour = hour === 0 ? 12 : hour > 12 ? hour - 12 : hour;\n minutes = fixDigits(minutes); //seconds = fixDigits(seconds);\n\n let time = hour + \":\" + minutes + \" \" + midday;\n return /*#__PURE__*/_jsxDEV(\"h2\", {\n id: \"clock\",\n children: time\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 311,\n columnNumber: 5\n }, this);\n}\n\n_s(Clock, \"Gqi45WOZhU2c0BLYX0HoJeiR0fk=\");\n\n_c12 = Clock;\n\nfunction getApps() {\n let applications = require('./apps.json');\n\n return applications;\n}\n\nfunction getLinks() {\n let links = require('./links.json');\n\n return links;\n}\n\nfunction getProviders() {\n let providers = require('./providers.json');\n\n return providers;\n}\n\nfunction getThemes() {\n let themes = require('./themes.json');\n\n return themes;\n}\n\nfunction updateTheme(e) {\n var themes = getThemes();\n var themeName = e.target.innerHTML.toLowerCase();\n var index = themes.themes.findIndex(function (item, i) {\n return item.name === themeName;\n });\n console.log(themes.themes[index]);\n localStorage.setItem(\"image-background\", themes.themes[index].imagebackground);\n localStorage.setItem(\"color-background\", themes.themes[index].colorbackground);\n localStorage.setItem(\"color-search-background\", themes.themes[index].colorserachbackground);\n localStorage.setItem(\"color-text-pri\", themes.themes[index].colortextpri);\n localStorage.setItem(\"color-text-acc\", themes.themes[index].colortextacc);\n localStorage.setItem(\"color-border\", themes.themes[index].colorborder);\n}\n\nfunction handleKeyPress(e) {\n var sindex = 0;\n var cycle = false;\n var key = e.keyCode || e.which;\n var text = e.target.value.replaceAll(\"+\", \"%2B\");\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n\n if (key == 13) {\n // Search functions\n search(text);\n }\n\n if (key == 9) {\n // Tab Completion Functions\n e.preventDefault();\n e.stopPropagation();\n\n if (text[0] === ';') {\n switch (option) {\n case 't':\n var streamers = ['admiralbahroo', 'moonmoon_ow', 'witwix'];\n\n if (!subtext || cycle) {\n cycle = true;\n if (sindex > streamers.length - 1) sindex = 0;\n document.getElementById(\"keywords\").value = ';t ' + streamers[sindex++];\n return;\n }\n\n for (var streamer of streamers) {\n if (subtext === streamer.substr(0, subtext.length)) {\n document.getElementById(\"keywords\").value = ';t ' + streamer;\n return;\n }\n }\n\n break;\n }\n }\n }\n\n if (key == 32) {\n //Space to go to search\n updateLabel(text);\n }\n\n sindex = 0;\n cycle = false;\n updateLabel(text);\n}\n\nfunction updateLabel(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n\n if (text[0] === '/') {\n // if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n document.getElementById(\"searchType\").innerHTML = \"Allmusic search\";\n break;\n\n case \"d\":\n document.getElementById(\"searchType\").innerHTML = \"Duck Duck Go search\";\n break;\n\n case \"di\":\n document.getElementById(\"searchType\").innerHTML = \"Discogs search\";\n break;\n\n case \"i\":\n document.getElementById(\"searchType\").innerHTML = \"IMDB search\";\n break;\n\n case \"m\":\n document.getElementById(\"searchType\").innerHTML = \"TheMovieDB search\";\n break;\n\n case \"r\":\n document.getElementById(\"searchType\").innerHTML = \"Reddit search\";\n break;\n\n case \"q\":\n document.getElementById(\"searchType\").innerHTML = \"Qwant search\";\n break;\n\n case \"so\":\n document.getElementById(\"searchType\").innerHTML = \"Soundcloud search\";\n break;\n\n case \"s\":\n document.getElementById(\"searchType\").innerHTML = \"Spotify search\";\n break;\n\n case \"tv\":\n document.getElementById(\"searchType\").innerHTML = \"TheTVDB search\";\n break;\n\n case \"t\":\n document.getElementById(\"searchType\").innerHTML = \"Trakt search\";\n break;\n\n case \"y\":\n document.getElementById(\"searchType\").innerHTML = \"YouTube search\";\n break;\n\n case \"w\":\n document.getElementById(\"searchType\").innerHTML = \"Wikipedia search\";\n break;\n\n case \"p\":\n document.getElementById(\"searchType\").innerHTML = \"Plex search\";\n break;\n\n case \"rt\":\n document.getElementById(\"searchType\").innerHTML = \"Rotten Tomatoes search\";\n break;\n\n default:\n document.getElementById(\"searchType\").innerHTML = \"Invalid search\";\n break;\n }\n } else {\n document.getElementById(\"searchType\").innerHTML = \"Google search\";\n }\n}\n\nfunction search(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n\n if (text[0] === '/') {\n if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n window.location = \"https://www.allmusic.com/search/all/\" + subtext;\n break;\n\n case \"d\":\n window.location = \"https://duckduckgo.com/?q=\" + subtext;\n break;\n\n case \"di\":\n window.location = \"https://www.discogs.com/search/?q=\" + subtext;\n break;\n\n case \"i\":\n window.location = \"https://www.imdb.com/find?q=\" + subtext;\n break;\n\n case \"m\":\n window.location = \"https://www.themoviedb.org/search?query=\" + subtext;\n break;\n\n case \"r\":\n window.location = \"https://www.reddit.com/search?q=\" + subtext;\n break;\n\n case \"q\":\n window.location = \"https://www.qwant.com/?q=\" + subtext;\n break;\n\n case \"so\":\n window.location = \"https://soundcloud.com/search?q=\" + subtext;\n break;\n\n case \"s\":\n window.location = \"https://open.spotify.com/search/results/\" + subtext;\n break;\n\n case \"t\":\n window.location = \"https://trakt.tv/search?query=\" + subtext;\n break;\n\n case \"tv\":\n window.location = \"https://www.thetvdb.com/search?query=\" + subtext;\n break;\n\n case \"y\":\n window.location = \"https://www.youtube.com/results?search_query=\" + subtext;\n break;\n\n case \"w\":\n window.location = \"https://en.wikipedia.org/w/index.php?search=\" + subtext;\n break;\n\n case \"p\":\n window.location = \"https://app.plex.tv/desktop/#!/search?query=\" + subtext;\n break;\n\n case \"rt\":\n window.location = \"https://www.rottentomatoes.com/search?search=\" + subtext;\n break;\n }\n } else {\n var option = text.substr(1);\n\n switch (option) {\n case \"d\":\n window.location = \"https://www.duckduckgo.com\";\n break;\n\n case \"y\":\n window.location = \"https://www.youtube.com\";\n break;\n\n case \"r\":\n window.location = \"https://reddit.com\";\n break;\n\n case \"s\":\n window.location = \"https://open.spotify.com\";\n break;\n }\n }\n } else if (validURL(text)) {\n if (containsProtocol(text)) window.location = text;else window.location = \"https://\" + text;\n } else {\n window.location = \"https://www.google.com/search?q=\" + text;\n }\n} // Source: https://stackoverflow.com/questions/5717093/check-if-a-javascript-string-is-a-url\n\n\nfunction validURL(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/)?' + // protocol\n '((([a-z\\\\d]([a-z\\\\d-]*[a-z\\\\d])*)\\\\.)+[a-z]{2,}|' + // domain name\n '((\\\\d{1,3}\\\\.){3}\\\\d{1,3}))' + // OR ip (v4) address\n '(\\\\:\\\\d+)?(\\\\/[-a-z\\\\d%_.~+]*)*' + // port and path\n '(\\\\?[;&a-z\\\\d%_.~+=-]*)?' + // query string\n '(\\\\#[-a-z\\\\d_]*)?$', 'i'); // fragment locator\n\n return !!pattern.test(str);\n}\n\nfunction containsProtocol(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/){1}.*', 'i');\n return !!pattern.test(str);\n}\n\nString.prototype.replaceAll = function (search, replacement) {\n var target = this;\n return target.split(search).join(replacement);\n};\n\nvar _c, _c2, _c3, _c4, _c5, _c6, _c7, _c8, _c9, _c10, _c11, _c12;\n\n$RefreshReg$(_c, \"Homepage\");\n$RefreshReg$(_c2, \"Search\");\n$RefreshReg$(_c3, \"Header\");\n$RefreshReg$(_c4, \"Applications\");\n$RefreshReg$(_c5, \"App\");\n$RefreshReg$(_c6, \"Bookmarks\");\n$RefreshReg$(_c7, \"LinkGroups\");\n$RefreshReg$(_c8, \"LinkItem\");\n$RefreshReg$(_c9, \"ModalMenu\");\n$RefreshReg$(_c10, \"Provider\");\n$RefreshReg$(_c11, \"ModalInit\");\n$RefreshReg$(_c12, \"Clock\");","map":{"version":3,"sources":["/home/seanedmunds/dev/home-page/src/index.js"],"names":["React","useState","useEffect","ReactDOM","Homepage","date","greet","Search","handleKeyPress","Header","props","Applications","appList","getApps","items","i","apps","length","push","name","url","icon","NSFW","App","classNameType","hrefUrl","iconName","Bookmarks","bookmarkList","getLinks","bookmarks","category","links","LinkGroups","LinkItem","link","ModalMenu","providers","getProviders","updateTheme","Provider","provider","prefix","ModalInit","render","document","getElementById","currentDate","Date","dateOptions","weekday","year","month","day","toLocaleDateString","fixDigits","k","currentTime","Math","floor","getHours","easterEggChance","random","greetings","require","timeBased","easterEggs","messages","easteregg","concat","message","easterEggText","Clock","setDate","refreshClock","timerId","setInterval","cleanup","clearInterval","hour","minutes","getMinutes","midday","time","applications","getThemes","themes","e","themeName","target","innerHTML","toLowerCase","index","findIndex","item","console","log","localStorage","setItem","imagebackground","colorbackground","colorserachbackground","colortextpri","colortextacc","colorborder","sindex","cycle","key","keyCode","which","text","value","replaceAll","option","substr","indexOf","subtext","search","preventDefault","stopPropagation","streamers","streamer","updateLabel","window","location","validURL","containsProtocol","str","pattern","RegExp","test","String","prototype","replacement","split","join"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { useState, useEffect } from 'react';\nimport ReactDOM from 'react-dom';\n//import { unstable_createPortal } from 'react-dom';\nimport './index.css';\n\nfunction Homepage() {\n return (\n \n \n \n
\n \n \n
\n \n \n \n
\n \n \n
\n \n \n
\n \n );\n}\n\nfunction Search() {\n return (\n \n )\n}\n\nfunction Header(props) {\n return (\n \n );\n}\n\nfunction Applications() {\n let appList = getApps();\n var items = [];\n for (var i = 0; i < appList.apps.length; i++) {\n items.push(\n \n );\n }\n return (\n \n Applications
\n \n {items}\n
\n \n );\n}\n\nfunction App(props) {\n let classNameType = props.NSFW + \"-content\";\n let hrefUrl = \"https://\" + props.url;\n let iconName = \"mdi-\" + props.icon;\n return (\n \n );\n}\n\nfunction Bookmarks() {\n let bookmarkList = getLinks();\n var items = [];\n for (var i = 0; i < bookmarkList.bookmarks.length; i++) {\n items.push(\n \n );\n }\n return (\n \n Bookmarks
\n \n {items}\n
\n \n );\n}\n\nfunction LinkGroups(props) {\n var items = [];\n for (var i = 0; i < props.links.length; i++) {\n items.push(\n \n );\n }\n return (\n \n
{props.category}
\n {items}\n \n );\n}\n\nfunction LinkItem(props) {\n return (\n \n );\n}\n\nfunction ModalMenu() {\n var providers = getProviders();\n var items = [];\n for (var i = 0; i < providers.providers.length; i++) {\n items.push(\n \n );\n }\n return (\n \n \n \n\n
Color themes
\n\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n\n\n
Search options
\n
\n \n \n \n | Website | \n Prefix | \n
\n {items}\n \n
\n \n\n \n
\n \n );\n}\n\nfunction Provider(props) {\n return (\n \n | {props.provider.name} | \n {props.provider.prefix} | \n
\n );\n}\n\nfunction ModalInit() {\n return (\n \n );\n}\n\nReactDOM.render(\n ,\n document.getElementById('root')\n);\n\n//Functions below this line are for calculating data for\n//other functions\n\nfunction date() {\n let currentDate = new Date();\n let dateOptions = {\n weekday: \"long\",\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\"\n };\n let date = currentDate.toLocaleDateString(\"en-GB\", dateOptions);\n return date;\n}\nfunction fixDigits(k) {\n if (k < 10) {\n return \"0\" + k;\n }\n else {\n return k;\n }\n}\nfunction greet() {\n let currentTime = new Date();\n let greet = Math.floor(currentTime.getHours() / 6);\n let easterEggChance = Math.floor(Math.random() * 100);\n let greetings = require('./messages.json');\n let timeBased = [];\n let easterEggs = [];\n for (var i = 0; i < greetings.messages.length; i++) {\n if (greetings.messages[i].easteregg === \"FALSE\") {\n timeBased = timeBased.concat(greetings.messages[i]);\n } else {\n easterEggs = easterEggs.concat(greetings.messages[i]);\n }\n }\n if (easterEggChance > 10) {\n return timeBased[greet].message;\n } else {\n let easterEggText = Math.floor(Math.random() * easterEggs.length);\n return easterEggs[easterEggText].message;\n }\n}\nfunction Clock() {\n const [date, setDate] = useState(new Date());\n\n function refreshClock() {\n setDate(new Date());\n }\n useEffect(() => {\n const timerId = setInterval(refreshClock, 1000);\n return function cleanup() {\n clearInterval(timerId);\n };\n }, []);\n\n var hour = date.getHours();\n var minutes = date.getMinutes();\n //var seconds = date.getSeconds();\n var midday = \"AM\";\n midday = (hour >= 12) ? \"PM\" : \"AM\";\n hour = (hour === 0) ? 12 : ((hour > 12) ? (hour - 12) : hour);\n minutes = fixDigits(minutes);\n //seconds = fixDigits(seconds);\n let time = hour + \":\" + minutes + \" \" + midday;\n\n return (\n {time}
\n\n );\n}\nfunction getApps() {\n let applications = require('./apps.json');\n return applications;\n}\nfunction getLinks() {\n let links = require('./links.json');\n return links;\n}\nfunction getProviders() {\n let providers = require('./providers.json');\n return providers;\n}\nfunction getThemes() {\n let themes = require('./themes.json');\n return themes;\n}\n\nfunction updateTheme(e) {\n var themes = getThemes();\n var themeName = e.target.innerHTML.toLowerCase();\n var index = themes.themes.findIndex(function(item, i){\n return item.name === themeName\n });\n console.log(themes.themes[index]);\n localStorage.setItem(\"image-background\", themes.themes[index].imagebackground);\n localStorage.setItem(\"color-background\", themes.themes[index].colorbackground);\n localStorage.setItem(\"color-search-background\", themes.themes[index].colorserachbackground);\n localStorage.setItem(\"color-text-pri\",themes.themes[index].colortextpri);\n localStorage.setItem(\"color-text-acc\", themes.themes[index].colortextacc);\n localStorage.setItem(\"color-border\", themes.themes[index].colorborder);\n \n}\n\nfunction handleKeyPress(e) {\n var sindex = 0;\n var cycle = false;\n var key = e.keyCode || e.which;\n var text = e.target.value.replaceAll(\"+\", \"%2B\");\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n if (key == 13) { // Search functions\n search(text);\n }\n if (key == 9) { // Tab Completion Functions\n e.preventDefault();\n e.stopPropagation();\n if (text[0] === ';') {\n switch (option) {\n case 't':\n var streamers = ['admiralbahroo', 'moonmoon_ow', 'witwix'];\n if (!subtext || cycle) {\n cycle = true;\n if (sindex > streamers.length - 1) sindex = 0;\n document.getElementById(\"keywords\").value = ';t ' + streamers[sindex++];\n return;\n }\n for (var streamer of streamers) {\n if (subtext === streamer.substr(0, subtext.length)) {\n document.getElementById(\"keywords\").value = ';t ' + streamer;\n return;\n }\n }\n break;\n }\n }\n }\n if(key == 32){ //Space to go to search\nupdateLabel(text);\n }\n sindex = 0;\n cycle = false;\n updateLabel(text);\n}\n\nfunction updateLabel(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n if (text[0] === '/') {\n// if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n document.getElementById(\"searchType\").innerHTML = \"Allmusic search\";\n break;\n case \"d\":\n document.getElementById(\"searchType\").innerHTML = \"Duck Duck Go search\";\n break;\n case \"di\":\n document.getElementById(\"searchType\").innerHTML = \"Discogs search\";\n break;\n case \"i\":\n document.getElementById(\"searchType\").innerHTML = \"IMDB search\";\n break;\n case \"m\":\n document.getElementById(\"searchType\").innerHTML = \"TheMovieDB search\";\n break;\n case \"r\":\n document.getElementById(\"searchType\").innerHTML = \"Reddit search\";\n break;\n case \"q\":\n document.getElementById(\"searchType\").innerHTML = \"Qwant search\";\n break;\n case \"so\":\n document.getElementById(\"searchType\").innerHTML = \"Soundcloud search\";\n break;\n case \"s\":\n document.getElementById(\"searchType\").innerHTML = \"Spotify search\";\n break;\n case \"tv\":\n document.getElementById(\"searchType\").innerHTML = \"TheTVDB search\";\n break;\n case \"t\":\n document.getElementById(\"searchType\").innerHTML = \"Trakt search\";\n break;\n case \"y\":\n document.getElementById(\"searchType\").innerHTML = \"YouTube search\";\n break;\n case \"w\":\n document.getElementById(\"searchType\").innerHTML = \"Wikipedia search\";\n break;\n case \"p\":\n document.getElementById(\"searchType\").innerHTML = \"Plex search\";\n break;\n case \"rt\":\n document.getElementById(\"searchType\").innerHTML = \"Rotten Tomatoes search\";\n break;\n default:\n document.getElementById(\"searchType\").innerHTML = \"Invalid search\";\n break;\n }\n}else {\n document.getElementById(\"searchType\").innerHTML = \"Google search\";\n }\n}\n\nfunction search(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n if (text[0] === '/') {\n if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n window.location = \"https://www.allmusic.com/search/all/\" + subtext;\n break;\n case \"d\":\n window.location = \"https://duckduckgo.com/?q=\" + subtext;\n break;\n case \"di\":\n window.location = \"https://www.discogs.com/search/?q=\" + subtext;\n break;\n case \"i\":\n window.location = \"https://www.imdb.com/find?q=\" + subtext;\n break;\n case \"m\":\n window.location = \"https://www.themoviedb.org/search?query=\" + subtext;\n break;\n case \"r\":\n window.location = \"https://www.reddit.com/search?q=\" + subtext;\n break;\n case \"q\":\n window.location = \"https://www.qwant.com/?q=\" + subtext;\n break;\n case \"so\":\n window.location = \"https://soundcloud.com/search?q=\" + subtext;\n break;\n case \"s\":\n window.location = \"https://open.spotify.com/search/results/\" + subtext;\n break;\n case \"t\":\n window.location = \"https://trakt.tv/search?query=\" + subtext;\n break;\n case \"tv\":\n window.location = \"https://www.thetvdb.com/search?query=\" + subtext;\n break;\n case \"y\":\n window.location = \"https://www.youtube.com/results?search_query=\" + subtext;\n break;\n case \"w\":\n window.location = \"https://en.wikipedia.org/w/index.php?search=\" + subtext;\n break;\n case \"p\":\n window.location = \"https://app.plex.tv/desktop/#!/search?query=\" + subtext;\n break;\n case \"rt\":\n window.location = \"https://www.rottentomatoes.com/search?search=\" + subtext;\n break;\n }\n } else {\n var option = text.substr(1);\n switch (option) {\n case \"d\":\n window.location = \"https://www.duckduckgo.com\";\n break;\n case \"y\":\n window.location = \"https://www.youtube.com\";\n break;\n case \"r\":\n window.location = \"https://reddit.com\";\n break;\n case \"s\":\n window.location = \"https://open.spotify.com\";\n break;\n }\n }\n } else if (validURL(text)) {\n if (containsProtocol(text))\n window.location = text;\n else\n window.location = \"https://\" + text;\n } else {\n window.location = \"https://www.google.com/search?q=\" + text;\n }\n}\n\n// Source: https://stackoverflow.com/questions/5717093/check-if-a-javascript-string-is-a-url\nfunction validURL(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/)?' + // protocol\n '((([a-z\\\\d]([a-z\\\\d-]*[a-z\\\\d])*)\\\\.)+[a-z]{2,}|' + // domain name\n '((\\\\d{1,3}\\\\.){3}\\\\d{1,3}))' + // OR ip (v4) address\n '(\\\\:\\\\d+)?(\\\\/[-a-z\\\\d%_.~+]*)*' + // port and path\n '(\\\\?[;&a-z\\\\d%_.~+=-]*)?' + // query string\n '(\\\\#[-a-z\\\\d_]*)?$', 'i'); // fragment locator\n return !!pattern.test(str);\n}\n\nfunction containsProtocol(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/){1}.*', 'i');\n return !!pattern.test(str);\n}\n\nString.prototype.replaceAll = function(search, replacement) {\n var target = this;\n return target.split(search).join(replacement);\n};"]},"metadata":{},"sourceType":"module"}
\ No newline at end of file
diff --git a/node_modules/.cache/babel-loader/7c0c7848faa0f35825c032bd62ec0b11.json b/node_modules/.cache/babel-loader/7c0c7848faa0f35825c032bd62ec0b11.json
new file mode 100644
index 00000000..b2246957
--- /dev/null
+++ b/node_modules/.cache/babel-loader/7c0c7848faa0f35825c032bd62ec0b11.json
@@ -0,0 +1 @@
+{"ast":null,"code":"var _jsxFileName = \"/home/seanedmunds/dev/home-page/src/index.js\",\n _s = $RefreshSig$();\n\nimport React from 'react';\nimport { useState, useEffect } from 'react';\nimport ReactDOM from 'react-dom'; //import { unstable_createPortal } from 'react-dom';\n\nimport './index.css';\nimport { jsxDEV as _jsxDEV } from \"react/jsx-dev-runtime\";\n\nfunction Homepage() {\n return /*#__PURE__*/_jsxDEV(\"main\", {\n id: \"container\",\n className: \"fade\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Search, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 11,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 10,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Header, {\n date: date(),\n greet: greet()\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 14,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 13,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Applications, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 20,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 19,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Bookmarks, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 23,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 22,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(ModalMenu, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 26,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 25,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(ModalInit, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 29,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 28,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 9,\n columnNumber: 5\n }, this);\n}\n\n_c = Homepage;\n\nfunction Search() {\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"search\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"abackground\",\n children: [/*#__PURE__*/_jsxDEV(\"input\", {\n name: \"keywords\",\n type: \"text\",\n className: \"keyword\",\n id: \"keywords\",\n size: \"50\",\n spellCheck: \"true\",\n placeholder: \"\"\n /*onFocus={this.placeholder = \"\"} onBlur={this.placeholder = ''}*/\n ,\n autoComplete: \"off\",\n autoFocus: \"true\",\n onKeyUp: handleKeyPress()\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 39,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n id: \"searchType\",\n className: \"Input-label\",\n children: \"Google search\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 40,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 38,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 37,\n columnNumber: 5\n }, this);\n}\n\n_c2 = Search;\n\nfunction Header(props) {\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"header\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n id: \"greeting_block\",\n children: /*#__PURE__*/_jsxDEV(\"h1\", {\n id: \"header_greet\",\n children: props.greet\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 50,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 49,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"date_block\",\n children: [/*#__PURE__*/_jsxDEV(\"h2\", {\n id: \"header_date\",\n children: props.date\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 53,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(Clock, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 54,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 52,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 48,\n columnNumber: 5\n }, this);\n}\n\n_c3 = Header;\n\nfunction Applications() {\n let appList = getApps();\n var items = [];\n\n for (var i = 0; i < appList.apps.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(App, {\n name: appList.apps[i].name,\n url: appList.apps[i].url,\n icon: appList.apps[i].icon,\n NSFW: appList.apps[i].NSFW\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 65,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"apps\",\n children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n children: \"Applications\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 76,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"apps_loop\",\n children: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 77,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 75,\n columnNumber: 5\n }, this);\n}\n\n_c4 = Applications;\n\nfunction App(props) {\n let classNameType = props.NSFW + \"-content\";\n let hrefUrl = \"https://\" + props.url;\n let iconName = \"mdi-\" + props.icon;\n return /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: hrefUrl,\n className: classNameType,\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_item\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_icon\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify icon\",\n \"data-icon\": iconName\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 93,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 92,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_text\",\n children: [/*#__PURE__*/_jsxDEV(\"span\", {\n id: \"app-name\",\n children: props.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 96,\n columnNumber: 13\n }, this), /*#__PURE__*/_jsxDEV(\"span\", {\n id: \"app-address\",\n children: props.url\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 97,\n columnNumber: 13\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 95,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 91,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 90,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 89,\n columnNumber: 5\n }, this);\n}\n\n_c5 = App;\n\nfunction Bookmarks() {\n let bookmarkList = getLinks();\n var items = [];\n\n for (var i = 0; i < bookmarkList.bookmarks.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(LinkGroups, {\n category: bookmarkList.bookmarks[i].category,\n links: bookmarkList.bookmarks[i].links\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 110,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"links\",\n children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n children: \"Bookmarks\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 119,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"links_loop\",\n children: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 120,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 118,\n columnNumber: 5\n }, this);\n}\n\n_c6 = Bookmarks;\n\nfunction LinkGroups(props) {\n var items = [];\n\n for (var i = 0; i < props.links.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(LinkItem, {\n link: props.links[i]\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 131,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"links_item\",\n children: [/*#__PURE__*/_jsxDEV(\"h4\", {\n children: props.category\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 139,\n columnNumber: 7\n }, this), items]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 138,\n columnNumber: 5\n }, this);\n}\n\n_c7 = LinkGroups;\n\nfunction LinkItem(props) {\n return /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: props.link.url,\n className: \"theme_color-border theme_text-select\",\n children: props.link.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 148,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 147,\n columnNumber: 5\n }, this);\n}\n\n_c8 = LinkItem;\n\nfunction ModalMenu() {\n var providers = getProviders();\n var items = [];\n\n for (var i = 0; i < providers.providers.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(Provider, {\n provider: providers.providers[i]\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 158,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"modal\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n children: [/*#__PURE__*/_jsxDEV(\"header\", {\n id: \"modal-header\",\n children: [/*#__PURE__*/_jsxDEV(\"h1\", {\n children: \"Options\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 168,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n href: \"#\",\n title: \"Close\",\n className: \"modal-close\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-close\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 170,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 169,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 167,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"h2\", {\n children: \"Color themes\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 174,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"modal-theme\",\n children: [/*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"blackboard\",\n className: \"theme-button theme-blackboard\",\n children: \"Blackboard\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 177,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"gazette\",\n className: \"theme-button theme-gazette\",\n children: \"Gazette\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 178,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"espresso\",\n className: \"theme-button theme-espresso\",\n children: \"Espresso\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 179,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cab\",\n className: \"theme-button theme-cab\",\n children: \"Cab\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 180,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cloud\",\n className: \"theme-button theme-cloud\",\n children: \"Cloud\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 181,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"lime\",\n className: \"theme-button theme-lime\",\n children: \"Lime\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 182,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"passion\",\n className: \"theme-button theme-passion\",\n children: \"Passion\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 183,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"blues\",\n className: \"theme-button theme-blues\",\n children: \"Blues\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 184,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"chalk\",\n className: \"theme-button theme-chalk\",\n children: \"Chalk\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 185,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"tron\",\n className: \"theme-button theme-tron\",\n children: \"Tron\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 186,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"paper\",\n className: \"theme-button theme-paper\",\n children: \"Paper\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 187,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cyberpunk\",\n className: \"theme-button theme-cyberpunk\",\n children: \"Cyberpunk\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 188,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"quadra\",\n className: \"theme-button theme-panam\",\n children: \"Quadra\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 189,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"panam\",\n className: \"theme-button theme-panam\",\n children: \"Panam\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 190,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"touch\",\n className: \"theme-button theme-touch\",\n children: \"Touch\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 191,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"peek\",\n className: \"theme-button theme-peek\",\n children: \"Peek\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 192,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 176,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"h2\", {\n children: \"Search options\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 196,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"providers\",\n children: /*#__PURE__*/_jsxDEV(\"table\", {\n children: /*#__PURE__*/_jsxDEV(\"tbody\", {\n children: [/*#__PURE__*/_jsxDEV(\"tr\", {\n children: [/*#__PURE__*/_jsxDEV(\"th\", {\n children: \"Website\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 201,\n columnNumber: 19\n }, this), /*#__PURE__*/_jsxDEV(\"th\", {\n children: \"Prefix\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 202,\n columnNumber: 19\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 200,\n columnNumber: 17\n }, this), items]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 199,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 198,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 197,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"header\", {\n id: \"modal-footer\",\n children: [/*#__PURE__*/_jsxDEV(\"a\", {\n href: \"https://github.com/jeroenpardon/\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-github-box\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 210,\n columnNumber: 54\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 210,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n href: \"https://materialdesignicons.com/\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-material-design\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 211,\n columnNumber: 54\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 211,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"sneaky\",\n children: [/*#__PURE__*/_jsxDEV(\"input\", {\n type: \"checkbox\",\n id: \"contenttype\",\n onChange: \"nsfw(this)\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 212,\n columnNumber: 35\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n for: \"contenttype\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-domino-mask\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 213,\n columnNumber: 36\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 213,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 212,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 209,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 166,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 165,\n columnNumber: 5\n }, this);\n}\n\n_c9 = ModalMenu;\n\nfunction Provider(props) {\n return /*#__PURE__*/_jsxDEV(\"tr\", {\n children: [/*#__PURE__*/_jsxDEV(\"td\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: props.provider.url,\n children: props.provider.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 223,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 223,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"td\", {\n children: props.provider.prefix\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 224,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 222,\n columnNumber: 5\n }, this);\n}\n\n_c10 = Provider;\n\nfunction ModalInit() {\n return /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"modal_init\",\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n className: \"btn\",\n href: \"#modal\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify icon\",\n \"data-icon\": \"mdi-xbox-controller-menu\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 233,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 232,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 231,\n columnNumber: 5\n }, this);\n}\n\n_c11 = ModalInit;\nReactDOM.render( /*#__PURE__*/_jsxDEV(Homepage, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 240,\n columnNumber: 3\n}, this), document.getElementById('root')); //Functions below this line are for calculating data for\n//other functions\n\nfunction date() {\n let currentDate = new Date();\n let dateOptions = {\n weekday: \"long\",\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\"\n };\n let date = currentDate.toLocaleDateString(\"en-GB\", dateOptions);\n return date;\n}\n\nfunction fixDigits(k) {\n if (k < 10) {\n return \"0\" + k;\n } else {\n return k;\n }\n}\n\nfunction greet() {\n let currentTime = new Date();\n let greet = Math.floor(currentTime.getHours() / 6);\n let easterEggChance = Math.floor(Math.random() * 100);\n\n let greetings = require('./messages.json');\n\n let timeBased = [];\n let easterEggs = [];\n\n for (var i = 0; i < greetings.messages.length; i++) {\n if (greetings.messages[i].easteregg === \"FALSE\") {\n timeBased = timeBased.concat(greetings.messages[i]);\n } else {\n easterEggs = easterEggs.concat(greetings.messages[i]);\n }\n }\n\n if (easterEggChance > 10) {\n return timeBased[greet].message;\n } else {\n let easterEggText = Math.floor(Math.random() * easterEggs.length);\n return easterEggs[easterEggText].message;\n }\n}\n\nfunction Clock() {\n _s();\n\n const [date, setDate] = useState(new Date());\n\n function refreshClock() {\n setDate(new Date());\n }\n\n useEffect(() => {\n const timerId = setInterval(refreshClock, 1000);\n return function cleanup() {\n clearInterval(timerId);\n };\n }, []);\n var hour = date.getHours();\n var minutes = date.getMinutes(); //var seconds = date.getSeconds();\n\n var midday = \"AM\";\n midday = hour >= 12 ? \"PM\" : \"AM\";\n hour = hour === 0 ? 12 : hour > 12 ? hour - 12 : hour;\n minutes = fixDigits(minutes); //seconds = fixDigits(seconds);\n\n let time = hour + \":\" + minutes + \" \" + midday;\n return /*#__PURE__*/_jsxDEV(\"h2\", {\n id: \"clock\",\n children: time\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 311,\n columnNumber: 5\n }, this);\n}\n\n_s(Clock, \"Gqi45WOZhU2c0BLYX0HoJeiR0fk=\");\n\n_c12 = Clock;\n\nfunction getApps() {\n let applications = require('./apps.json');\n\n return applications;\n}\n\nfunction getLinks() {\n let links = require('./links.json');\n\n return links;\n}\n\nfunction getProviders() {\n let providers = require('./providers.json');\n\n return providers;\n}\n\nfunction handleKeyPress(e) {\n var sindex = 0;\n var cycle = false;\n var key = e.keyCode || e.which;\n var text = document.getElementById(\"keywords\").value.replaceAll(\"+\", \"%2B\");\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n\n if (key == 13) {\n // Search functions\n search(text);\n }\n\n if (key == 9) {\n // Tab Completion Functions\n e.preventDefault();\n e.stopPropagation();\n\n if (text[0] === ';') {\n switch (option) {\n case 't':\n var streamers = ['admiralbahroo', 'moonmoon_ow', 'witwix'];\n\n if (!subtext || cycle) {\n cycle = true;\n if (sindex > streamers.length - 1) sindex = 0;\n document.getElementById(\"keywords\").value = ';t ' + streamers[sindex++];\n return;\n }\n\n for (var streamer of streamers) {\n if (subtext === streamer.substr(0, subtext.length)) {\n document.getElementById(\"keywords\").value = ';t ' + streamer;\n return;\n }\n }\n\n break;\n }\n }\n }\n\n if (key == 32) {\n //Space to go to search\n updateLabel(text);\n }\n\n sindex = 0;\n cycle = false;\n updateLabel(text);\n}\n\nfunction updateLabel(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n\n if (text[0] === '/') {\n // if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n document.getElementById(\"searchType\").innerHTML = \"Allmusic search\";\n break;\n\n case \"d\":\n document.getElementById(\"searchType\").innerHTML = \"Duck Duck Go search\";\n break;\n\n case \"di\":\n document.getElementById(\"searchType\").innerHTML = \"Discogs search\";\n break;\n\n case \"i\":\n document.getElementById(\"searchType\").innerHTML = \"IMDB search\";\n break;\n\n case \"m\":\n document.getElementById(\"searchType\").innerHTML = \"TheMovieDB search\";\n break;\n\n case \"r\":\n document.getElementById(\"searchType\").innerHTML = \"Reddit search\";\n break;\n\n case \"q\":\n document.getElementById(\"searchType\").innerHTML = \"Qwant search\";\n break;\n\n case \"so\":\n document.getElementById(\"searchType\").innerHTML = \"Soundcloud search\";\n break;\n\n case \"s\":\n document.getElementById(\"searchType\").innerHTML = \"Spotify search\";\n break;\n\n case \"tv\":\n document.getElementById(\"searchType\").innerHTML = \"TheTVDB search\";\n break;\n\n case \"t\":\n document.getElementById(\"searchType\").innerHTML = \"Trakt search\";\n break;\n\n case \"y\":\n document.getElementById(\"searchType\").innerHTML = \"YouTube search\";\n break;\n\n case \"w\":\n document.getElementById(\"searchType\").innerHTML = \"Wikipedia search\";\n break;\n\n case \"p\":\n document.getElementById(\"searchType\").innerHTML = \"Plex search\";\n break;\n\n case \"rt\":\n document.getElementById(\"searchType\").innerHTML = \"Rotten Tomatoes search\";\n break;\n\n default:\n document.getElementById(\"searchType\").innerHTML = \"Invalid search\";\n break;\n }\n } else {\n document.getElementById(\"searchType\").innerHTML = \"Google search\";\n }\n}\n\nfunction search(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n\n if (text[0] === '/') {\n if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n window.location = \"https://www.allmusic.com/search/all/\" + subtext;\n break;\n\n case \"d\":\n window.location = \"https://duckduckgo.com/?q=\" + subtext;\n break;\n\n case \"di\":\n window.location = \"https://www.discogs.com/search/?q=\" + subtext;\n break;\n\n case \"i\":\n window.location = \"https://www.imdb.com/find?q=\" + subtext;\n break;\n\n case \"m\":\n window.location = \"https://www.themoviedb.org/search?query=\" + subtext;\n break;\n\n case \"r\":\n window.location = \"https://www.reddit.com/search?q=\" + subtext;\n break;\n\n case \"q\":\n window.location = \"https://www.qwant.com/?q=\" + subtext;\n break;\n\n case \"so\":\n window.location = \"https://soundcloud.com/search?q=\" + subtext;\n break;\n\n case \"s\":\n window.location = \"https://open.spotify.com/search/results/\" + subtext;\n break;\n\n case \"t\":\n window.location = \"https://trakt.tv/search?query=\" + subtext;\n break;\n\n case \"tv\":\n window.location = \"https://www.thetvdb.com/search?query=\" + subtext;\n break;\n\n case \"y\":\n window.location = \"https://www.youtube.com/results?search_query=\" + subtext;\n break;\n\n case \"w\":\n window.location = \"https://en.wikipedia.org/w/index.php?search=\" + subtext;\n break;\n\n case \"p\":\n window.location = \"https://app.plex.tv/desktop/#!/search?query=\" + subtext;\n break;\n\n case \"rt\":\n window.location = \"https://www.rottentomatoes.com/search?search=\" + subtext;\n break;\n }\n } else {\n var option = text.substr(1);\n\n switch (option) {\n case \"d\":\n window.location = \"https://www.duckduckgo.com\";\n break;\n\n case \"y\":\n window.location = \"https://www.youtube.com\";\n break;\n\n case \"r\":\n window.location = \"https://reddit.com\";\n break;\n\n case \"s\":\n window.location = \"https://open.spotify.com\";\n break;\n }\n }\n } else if (validURL(text)) {\n if (containsProtocol(text)) window.location = text;else window.location = \"https://\" + text;\n } else {\n window.location = \"https://www.google.com/search?q=\" + text;\n }\n} // Source: https://stackoverflow.com/questions/5717093/check-if-a-javascript-string-is-a-url\n\n\nfunction validURL(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/)?' + // protocol\n '((([a-z\\\\d]([a-z\\\\d-]*[a-z\\\\d])*)\\\\.)+[a-z]{2,}|' + // domain name\n '((\\\\d{1,3}\\\\.){3}\\\\d{1,3}))' + // OR ip (v4) address\n '(\\\\:\\\\d+)?(\\\\/[-a-z\\\\d%_.~+]*)*' + // port and path\n '(\\\\?[;&a-z\\\\d%_.~+=-]*)?' + // query string\n '(\\\\#[-a-z\\\\d_]*)?$', 'i'); // fragment locator\n\n return !!pattern.test(str);\n}\n\nfunction containsProtocol(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/){1}.*', 'i');\n return !!pattern.test(str);\n}\n\nString.prototype.replaceAll = function (search, replacement) {\n var target = this;\n return target.split(search).join(replacement);\n};\n\nvar _c, _c2, _c3, _c4, _c5, _c6, _c7, _c8, _c9, _c10, _c11, _c12;\n\n$RefreshReg$(_c, \"Homepage\");\n$RefreshReg$(_c2, \"Search\");\n$RefreshReg$(_c3, \"Header\");\n$RefreshReg$(_c4, \"Applications\");\n$RefreshReg$(_c5, \"App\");\n$RefreshReg$(_c6, \"Bookmarks\");\n$RefreshReg$(_c7, \"LinkGroups\");\n$RefreshReg$(_c8, \"LinkItem\");\n$RefreshReg$(_c9, \"ModalMenu\");\n$RefreshReg$(_c10, \"Provider\");\n$RefreshReg$(_c11, \"ModalInit\");\n$RefreshReg$(_c12, \"Clock\");","map":{"version":3,"sources":["/home/seanedmunds/dev/home-page/src/index.js"],"names":["React","useState","useEffect","ReactDOM","Homepage","date","greet","Search","handleKeyPress","Header","props","Applications","appList","getApps","items","i","apps","length","push","name","url","icon","NSFW","App","classNameType","hrefUrl","iconName","Bookmarks","bookmarkList","getLinks","bookmarks","category","links","LinkGroups","LinkItem","link","ModalMenu","providers","getProviders","Provider","provider","prefix","ModalInit","render","document","getElementById","currentDate","Date","dateOptions","weekday","year","month","day","toLocaleDateString","fixDigits","k","currentTime","Math","floor","getHours","easterEggChance","random","greetings","require","timeBased","easterEggs","messages","easteregg","concat","message","easterEggText","Clock","setDate","refreshClock","timerId","setInterval","cleanup","clearInterval","hour","minutes","getMinutes","midday","time","applications","e","sindex","cycle","key","keyCode","which","text","value","replaceAll","option","substr","indexOf","subtext","search","preventDefault","stopPropagation","streamers","streamer","updateLabel","innerHTML","window","location","validURL","containsProtocol","str","pattern","RegExp","test","String","prototype","replacement","target","split","join"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { useState, useEffect } from 'react';\nimport ReactDOM from 'react-dom';\n//import { unstable_createPortal } from 'react-dom';\nimport './index.css';\n\nfunction Homepage() {\n return (\n \n \n \n
\n \n \n
\n \n \n \n
\n \n \n
\n \n \n
\n \n );\n}\n\nfunction Search() {\n return (\n \n )\n}\n\nfunction Header(props) {\n return (\n \n );\n}\n\nfunction Applications() {\n let appList = getApps();\n var items = [];\n for (var i = 0; i < appList.apps.length; i++) {\n items.push(\n \n );\n }\n return (\n \n Applications
\n \n {items}\n
\n \n );\n}\n\nfunction App(props) {\n let classNameType = props.NSFW + \"-content\";\n let hrefUrl = \"https://\" + props.url;\n let iconName = \"mdi-\" + props.icon;\n return (\n \n );\n}\n\nfunction Bookmarks() {\n let bookmarkList = getLinks();\n var items = [];\n for (var i = 0; i < bookmarkList.bookmarks.length; i++) {\n items.push(\n \n );\n }\n return (\n \n Bookmarks
\n \n {items}\n
\n \n );\n}\n\nfunction LinkGroups(props) {\n var items = [];\n for (var i = 0; i < props.links.length; i++) {\n items.push(\n \n );\n }\n return (\n \n
{props.category}
\n {items}\n \n );\n}\n\nfunction LinkItem(props) {\n return (\n \n );\n}\n\nfunction ModalMenu() {\n var providers = getProviders();\n var items = [];\n for (var i = 0; i < providers.providers.length; i++) {\n items.push(\n \n );\n }\n return (\n \n \n \n\n
Color themes
\n\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n\n\n
Search options
\n
\n \n \n \n | Website | \n Prefix | \n
\n {items}\n \n
\n \n\n \n
\n \n );\n}\n\nfunction Provider(props) {\n return (\n \n | {props.provider.name} | \n {props.provider.prefix} | \n
\n );\n}\n\nfunction ModalInit() {\n return (\n \n );\n}\n\nReactDOM.render(\n ,\n document.getElementById('root')\n);\n\n//Functions below this line are for calculating data for\n//other functions\n\nfunction date() {\n let currentDate = new Date();\n let dateOptions = {\n weekday: \"long\",\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\"\n };\n let date = currentDate.toLocaleDateString(\"en-GB\", dateOptions);\n return date;\n}\nfunction fixDigits(k) {\n if (k < 10) {\n return \"0\" + k;\n }\n else {\n return k;\n }\n}\nfunction greet() {\n let currentTime = new Date();\n let greet = Math.floor(currentTime.getHours() / 6);\n let easterEggChance = Math.floor(Math.random() * 100);\n let greetings = require('./messages.json');\n let timeBased = [];\n let easterEggs = [];\n for (var i = 0; i < greetings.messages.length; i++) {\n if (greetings.messages[i].easteregg === \"FALSE\") {\n timeBased = timeBased.concat(greetings.messages[i]);\n } else {\n easterEggs = easterEggs.concat(greetings.messages[i]);\n }\n }\n if (easterEggChance > 10) {\n return timeBased[greet].message;\n } else {\n let easterEggText = Math.floor(Math.random() * easterEggs.length);\n return easterEggs[easterEggText].message;\n }\n}\nfunction Clock() {\n const [date, setDate] = useState(new Date());\n\n function refreshClock() {\n setDate(new Date());\n }\n useEffect(() => {\n const timerId = setInterval(refreshClock, 1000);\n return function cleanup() {\n clearInterval(timerId);\n };\n }, []);\n\n var hour = date.getHours();\n var minutes = date.getMinutes();\n //var seconds = date.getSeconds();\n var midday = \"AM\";\n midday = (hour >= 12) ? \"PM\" : \"AM\";\n hour = (hour === 0) ? 12 : ((hour > 12) ? (hour - 12) : hour);\n minutes = fixDigits(minutes);\n //seconds = fixDigits(seconds);\n let time = hour + \":\" + minutes + \" \" + midday;\n\n return (\n {time}
\n\n );\n}\nfunction getApps() {\n let applications = require('./apps.json');\n return applications;\n}\nfunction getLinks() {\n let links = require('./links.json');\n return links;\n}\nfunction getProviders() {\n let providers = require('./providers.json');\n return providers;\n}\n\nfunction handleKeyPress(e) {\n var sindex = 0;\n var cycle = false;\n var key = e.keyCode || e.which;\n var text = document.getElementById(\"keywords\").value.replaceAll(\"+\", \"%2B\");\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n if (key == 13) { // Search functions\n search(text);\n }\n if (key == 9) { // Tab Completion Functions\n e.preventDefault();\n e.stopPropagation();\n if (text[0] === ';') {\n switch (option) {\n case 't':\n var streamers = ['admiralbahroo', 'moonmoon_ow', 'witwix'];\n if (!subtext || cycle) {\n cycle = true;\n if (sindex > streamers.length - 1) sindex = 0;\n document.getElementById(\"keywords\").value = ';t ' + streamers[sindex++];\n return;\n }\n for (var streamer of streamers) {\n if (subtext === streamer.substr(0, subtext.length)) {\n document.getElementById(\"keywords\").value = ';t ' + streamer;\n return;\n }\n }\n break;\n }\n }\n }\n if(key == 32){ //Space to go to search\nupdateLabel(text);\n }\n sindex = 0;\n cycle = false;\n updateLabel(text);\n}\n\nfunction updateLabel(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n if (text[0] === '/') {\n// if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n document.getElementById(\"searchType\").innerHTML = \"Allmusic search\";\n break;\n case \"d\":\n document.getElementById(\"searchType\").innerHTML = \"Duck Duck Go search\";\n break;\n case \"di\":\n document.getElementById(\"searchType\").innerHTML = \"Discogs search\";\n break;\n case \"i\":\n document.getElementById(\"searchType\").innerHTML = \"IMDB search\";\n break;\n case \"m\":\n document.getElementById(\"searchType\").innerHTML = \"TheMovieDB search\";\n break;\n case \"r\":\n document.getElementById(\"searchType\").innerHTML = \"Reddit search\";\n break;\n case \"q\":\n document.getElementById(\"searchType\").innerHTML = \"Qwant search\";\n break;\n case \"so\":\n document.getElementById(\"searchType\").innerHTML = \"Soundcloud search\";\n break;\n case \"s\":\n document.getElementById(\"searchType\").innerHTML = \"Spotify search\";\n break;\n case \"tv\":\n document.getElementById(\"searchType\").innerHTML = \"TheTVDB search\";\n break;\n case \"t\":\n document.getElementById(\"searchType\").innerHTML = \"Trakt search\";\n break;\n case \"y\":\n document.getElementById(\"searchType\").innerHTML = \"YouTube search\";\n break;\n case \"w\":\n document.getElementById(\"searchType\").innerHTML = \"Wikipedia search\";\n break;\n case \"p\":\n document.getElementById(\"searchType\").innerHTML = \"Plex search\";\n break;\n case \"rt\":\n document.getElementById(\"searchType\").innerHTML = \"Rotten Tomatoes search\";\n break;\n default:\n document.getElementById(\"searchType\").innerHTML = \"Invalid search\";\n break;\n }\n}else {\n document.getElementById(\"searchType\").innerHTML = \"Google search\";\n }\n}\n\nfunction search(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n if (text[0] === '/') {\n if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n window.location = \"https://www.allmusic.com/search/all/\" + subtext;\n break;\n case \"d\":\n window.location = \"https://duckduckgo.com/?q=\" + subtext;\n break;\n case \"di\":\n window.location = \"https://www.discogs.com/search/?q=\" + subtext;\n break;\n case \"i\":\n window.location = \"https://www.imdb.com/find?q=\" + subtext;\n break;\n case \"m\":\n window.location = \"https://www.themoviedb.org/search?query=\" + subtext;\n break;\n case \"r\":\n window.location = \"https://www.reddit.com/search?q=\" + subtext;\n break;\n case \"q\":\n window.location = \"https://www.qwant.com/?q=\" + subtext;\n break;\n case \"so\":\n window.location = \"https://soundcloud.com/search?q=\" + subtext;\n break;\n case \"s\":\n window.location = \"https://open.spotify.com/search/results/\" + subtext;\n break;\n case \"t\":\n window.location = \"https://trakt.tv/search?query=\" + subtext;\n break;\n case \"tv\":\n window.location = \"https://www.thetvdb.com/search?query=\" + subtext;\n break;\n case \"y\":\n window.location = \"https://www.youtube.com/results?search_query=\" + subtext;\n break;\n case \"w\":\n window.location = \"https://en.wikipedia.org/w/index.php?search=\" + subtext;\n break;\n case \"p\":\n window.location = \"https://app.plex.tv/desktop/#!/search?query=\" + subtext;\n break;\n case \"rt\":\n window.location = \"https://www.rottentomatoes.com/search?search=\" + subtext;\n break;\n }\n } else {\n var option = text.substr(1);\n switch (option) {\n case \"d\":\n window.location = \"https://www.duckduckgo.com\";\n break;\n case \"y\":\n window.location = \"https://www.youtube.com\";\n break;\n case \"r\":\n window.location = \"https://reddit.com\";\n break;\n case \"s\":\n window.location = \"https://open.spotify.com\";\n break;\n }\n }\n } else if (validURL(text)) {\n if (containsProtocol(text))\n window.location = text;\n else\n window.location = \"https://\" + text;\n } else {\n window.location = \"https://www.google.com/search?q=\" + text;\n }\n}\n\n// Source: https://stackoverflow.com/questions/5717093/check-if-a-javascript-string-is-a-url\nfunction validURL(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/)?' + // protocol\n '((([a-z\\\\d]([a-z\\\\d-]*[a-z\\\\d])*)\\\\.)+[a-z]{2,}|' + // domain name\n '((\\\\d{1,3}\\\\.){3}\\\\d{1,3}))' + // OR ip (v4) address\n '(\\\\:\\\\d+)?(\\\\/[-a-z\\\\d%_.~+]*)*' + // port and path\n '(\\\\?[;&a-z\\\\d%_.~+=-]*)?' + // query string\n '(\\\\#[-a-z\\\\d_]*)?$', 'i'); // fragment locator\n return !!pattern.test(str);\n}\n\nfunction containsProtocol(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/){1}.*', 'i');\n return !!pattern.test(str);\n}\n\nString.prototype.replaceAll = function(search, replacement) {\n var target = this;\n return target.split(search).join(replacement);\n};"]},"metadata":{},"sourceType":"module"}
\ No newline at end of file
diff --git a/node_modules/.cache/babel-loader/7c53b652e70c16c12fdbdb66353c59b3.json b/node_modules/.cache/babel-loader/7c53b652e70c16c12fdbdb66353c59b3.json
new file mode 100644
index 00000000..effbe40a
--- /dev/null
+++ b/node_modules/.cache/babel-loader/7c53b652e70c16c12fdbdb66353c59b3.json
@@ -0,0 +1 @@
+{"ast":null,"code":"var _jsxFileName = \"/home/seanedmunds/dev/home-page/src/index.js\",\n _s = $RefreshSig$();\n\nimport React from 'react';\nimport { useState, useEffect } from 'react';\nimport ReactDOM from 'react-dom'; //import { unstable_createPortal } from 'react-dom';\n\nimport './index.css';\nimport { jsxDEV as _jsxDEV } from \"react/jsx-dev-runtime\";\n\nconst setValueFromLocalStorage = property => {\n let value = localStorage.getItem(property);\n setValue(property, value);\n};\n\nconst setValue = (property, value) => {\n if (value) {\n document.documentElement.style.setProperty(`--${property}`, value);\n const input = document.querySelector(`#${property}`);\n\n if (input) {\n value = value.replace('px', '');\n input.value = value;\n }\n }\n};\n\nfunction Homepage() {\n setTheme();\n var boxChecked = localStorage.getItem(\"contenttype\");\n return /*#__PURE__*/_jsxDEV(\"main\", {\n id: \"container\",\n className: \"fade\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Search, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 29,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 28,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Header, {\n date: date(),\n greet: greet()\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 32,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 31,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Applications, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 38,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 37,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Bookmarks, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 41,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 40,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(ModalMenu, {\n checked: boxChecked\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 44,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 43,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(ModalInit, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 49,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 48,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 27,\n columnNumber: 5\n }, this);\n}\n\n_c = Homepage;\n\nfunction Search() {\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"search\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"abackground\",\n children: [/*#__PURE__*/_jsxDEV(\"input\", {\n name: \"keywords\",\n type: \"text\",\n className: \"keyword\",\n id: \"keywords\",\n size: \"50\",\n spellCheck: \"true\",\n placeholder: \"\"\n /*onFocus={this.placeholder = \"\"} onBlur={this.placeholder = ''}*/\n ,\n autoComplete: \"off\",\n autoFocus: true,\n onKeyUp: handleKeyPress\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 59,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n id: \"searchType\",\n className: \"Input-label\",\n children: \"Google search\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 60,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 58,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 57,\n columnNumber: 5\n }, this);\n}\n\n_c2 = Search;\n\nfunction Header(props) {\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"header\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n id: \"greeting_block\",\n children: /*#__PURE__*/_jsxDEV(\"h1\", {\n id: \"header_greet\",\n children: props.greet\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 70,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 69,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"date_block\",\n children: [/*#__PURE__*/_jsxDEV(\"h2\", {\n id: \"header_date\",\n children: props.date\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 73,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(Clock, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 74,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 72,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 68,\n columnNumber: 5\n }, this);\n}\n\n_c3 = Header;\n\nfunction Applications() {\n let appList = getApps();\n var items = [];\n\n for (var i = 0; i < appList.apps.length; i++) {\n var safe = appList.apps[i].NSFW;\n var NSFWEnabled = localStorage.getItem(\"contenttype\");\n\n if (safe === \"SAFE\") {\n items.push( /*#__PURE__*/_jsxDEV(App, {\n name: appList.apps[i].name,\n url: appList.apps[i].url,\n icon: appList.apps[i].icon,\n NSFW: appList.apps[i].NSFW\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 88,\n columnNumber: 9\n }, this));\n } else if (safe === \"NSFW\" && NSFWEnabled) {\n items.push( /*#__PURE__*/_jsxDEV(App, {\n name: appList.apps[i].name,\n url: appList.apps[i].url,\n icon: appList.apps[i].icon,\n NSFW: appList.apps[i].NSFW\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 98,\n columnNumber: 9\n }, this));\n } else {}\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"apps\",\n children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n children: \"Applications\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 113,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"apps_loop\",\n children: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 114,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 112,\n columnNumber: 5\n }, this);\n}\n\n_c4 = Applications;\n\nfunction App(props) {\n let classNameType = props.NSFW + \"-content\";\n let hrefUrl = \"https://\" + props.url;\n let iconName = \"mdi-\" + props.icon;\n return /*#__PURE__*/_jsxDEV(\"div\", {\n className: classNameType,\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: hrefUrl,\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_item\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_icon\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify icon\",\n \"data-icon\": iconName\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 131,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 130,\n columnNumber: 13\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_text\",\n children: [/*#__PURE__*/_jsxDEV(\"span\", {\n id: \"app-name\",\n children: props.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 134,\n columnNumber: 15\n }, this), /*#__PURE__*/_jsxDEV(\"span\", {\n id: \"app-address\",\n children: props.url\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 135,\n columnNumber: 15\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 133,\n columnNumber: 13\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 129,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 128,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 127,\n columnNumber: 7\n }, this);\n}\n\n_c5 = App;\n\nfunction Bookmarks() {\n let bookmarkList = getLinks();\n var items = [];\n\n for (var i = 0; i < bookmarkList.bookmarks.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(LinkGroups, {\n category: bookmarkList.bookmarks[i].category,\n links: bookmarkList.bookmarks[i].links\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 148,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"links\",\n children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n children: \"Bookmarks\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 157,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"links_loop\",\n children: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 158,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 156,\n columnNumber: 5\n }, this);\n}\n\n_c6 = Bookmarks;\n\nfunction LinkGroups(props) {\n var items = [];\n\n for (var i = 0; i < props.links.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(LinkItem, {\n link: props.links[i]\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 169,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"links_item\",\n children: [/*#__PURE__*/_jsxDEV(\"h4\", {\n children: props.category\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 177,\n columnNumber: 7\n }, this), items]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 176,\n columnNumber: 5\n }, this);\n}\n\n_c7 = LinkGroups;\n\nfunction LinkItem(props) {\n return /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: props.link.url,\n className: \"theme_color-border theme_text-select\",\n children: props.link.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 186,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 185,\n columnNumber: 5\n }, this);\n}\n\n_c8 = LinkItem;\n\nfunction ModalMenu(props) {\n var providers = getProviders();\n var items = [];\n console.log(props);\n\n for (var i = 0; i < providers.providers.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(Provider, {\n provider: providers.providers[i]\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 197,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"modal\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n children: [/*#__PURE__*/_jsxDEV(\"header\", {\n id: \"modal-header\",\n children: [/*#__PURE__*/_jsxDEV(\"h1\", {\n children: \"Options\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 207,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n href: \"#\",\n title: \"Close\",\n className: \"modal-close\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-close\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 209,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 208,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 206,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"h2\", {\n children: \"Color themes\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 213,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"modal-theme\",\n children: [/*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"blackboard\",\n className: \"theme-button theme-blackboard\",\n onClick: updateTheme,\n children: \"Blackboard\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 216,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"gazette\",\n className: \"theme-button theme-gazette\",\n onClick: updateTheme,\n children: \"Gazette\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 217,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"espresso\",\n className: \"theme-button theme-espresso\",\n onClick: updateTheme,\n children: \"Espresso\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 218,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cab\",\n className: \"theme-button theme-cab\",\n onClick: updateTheme,\n children: \"Cab\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 219,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cloud\",\n className: \"theme-button theme-cloud\",\n onClick: updateTheme,\n children: \"Cloud\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 220,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"lime\",\n className: \"theme-button theme-lime\",\n onClick: updateTheme,\n children: \"Lime\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 221,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"passion\",\n className: \"theme-button theme-passion\",\n onClick: updateTheme,\n children: \"Passion\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 222,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"blues\",\n className: \"theme-button theme-blues\",\n onClick: updateTheme,\n children: \"Blues\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 223,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"chalk\",\n className: \"theme-button theme-chalk\",\n onClick: updateTheme,\n children: \"Chalk\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 224,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"tron\",\n className: \"theme-button theme-tron\",\n onClick: updateTheme,\n children: \"Tron\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 225,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"paper\",\n className: \"theme-button theme-paper\",\n onClick: updateTheme,\n children: \"Paper\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 226,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cyberpunk\",\n className: \"theme-button theme-cyberpunk\",\n onClick: updateTheme,\n children: \"Cyberpunk\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 227,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"quadra\",\n className: \"theme-button theme-panam\",\n onClick: updateTheme,\n children: \"Quadra\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 228,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"panam\",\n className: \"theme-button theme-panam\",\n onClick: updateTheme,\n children: \"Panam\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 229,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"touch\",\n className: \"theme-button theme-touch\",\n onClick: updateTheme,\n children: \"Touch\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 230,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"peek\",\n className: \"theme-button theme-peek\",\n onClick: updateTheme,\n children: \"Peek\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 231,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 215,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"h2\", {\n children: \"Search options\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 235,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"providers\",\n children: /*#__PURE__*/_jsxDEV(\"table\", {\n children: /*#__PURE__*/_jsxDEV(\"tbody\", {\n children: [/*#__PURE__*/_jsxDEV(\"tr\", {\n children: [/*#__PURE__*/_jsxDEV(\"th\", {\n children: \"Website\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 240,\n columnNumber: 19\n }, this), /*#__PURE__*/_jsxDEV(\"th\", {\n children: \"Prefix\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 241,\n columnNumber: 19\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 239,\n columnNumber: 17\n }, this), items]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 238,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 237,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 236,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"header\", {\n id: \"modal-footer\",\n children: [/*#__PURE__*/_jsxDEV(\"a\", {\n href: \"https://github.com/jeroenpardon/\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-github-box\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 249,\n columnNumber: 54\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 249,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n href: \"https://materialdesignicons.com/\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-material-design\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 250,\n columnNumber: 54\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 250,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"sneaky\",\n children: [/*#__PURE__*/_jsxDEV(\"input\", {\n type: \"checkbox\",\n id: \"contenttype\",\n checked: props.checked,\n onChange: udpateDisplayedItems\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 251,\n columnNumber: 35\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n for: \"contenttype\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-domino-mask\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 252,\n columnNumber: 36\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 252,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 251,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 248,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 205,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 204,\n columnNumber: 5\n }, this);\n}\n\n_c9 = ModalMenu;\n\nfunction Provider(props) {\n return /*#__PURE__*/_jsxDEV(\"tr\", {\n children: [/*#__PURE__*/_jsxDEV(\"td\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: props.provider.url,\n children: props.provider.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 262,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 262,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"td\", {\n children: props.provider.prefix\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 263,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 261,\n columnNumber: 5\n }, this);\n}\n\n_c10 = Provider;\n\nfunction ModalInit() {\n setDisplayedItems();\n return /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"modal_init\",\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n className: \"btn\",\n href: \"#modal\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify icon\",\n \"data-icon\": \"mdi-xbox-controller-menu\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 273,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 272,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 271,\n columnNumber: 5\n }, this);\n}\n\n_c11 = ModalInit;\nReactDOM.render( /*#__PURE__*/_jsxDEV(Homepage, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 280,\n columnNumber: 3\n}, this), document.getElementById('root')); //Functions below this line are for calculating data for\n//other functions\n\nfunction date() {\n let currentDate = new Date();\n let dateOptions = {\n weekday: \"long\",\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\"\n };\n let date = currentDate.toLocaleDateString(\"en-GB\", dateOptions);\n return date;\n}\n\nfunction fixDigits(k) {\n if (k < 10) {\n return \"0\" + k;\n } else {\n return k;\n }\n}\n\nfunction greet() {\n let currentTime = new Date();\n let greet = Math.floor(currentTime.getHours() / 6);\n let easterEggChance = Math.floor(Math.random() * 100);\n\n let greetings = require('./messages.json');\n\n let timeBased = [];\n let easterEggs = [];\n\n for (var i = 0; i < greetings.messages.length; i++) {\n if (greetings.messages[i].easteregg === \"FALSE\") {\n timeBased = timeBased.concat(greetings.messages[i]);\n } else {\n easterEggs = easterEggs.concat(greetings.messages[i]);\n }\n }\n\n if (easterEggChance > 10) {\n return timeBased[greet].message;\n } else {\n let easterEggText = Math.floor(Math.random() * easterEggs.length);\n return easterEggs[easterEggText].message;\n }\n}\n\nfunction Clock() {\n _s();\n\n const [date, setDate] = useState(new Date());\n\n function refreshClock() {\n setDate(new Date());\n }\n\n useEffect(() => {\n const timerId = setInterval(refreshClock, 1000);\n return function cleanup() {\n clearInterval(timerId);\n };\n }, []);\n var hour = date.getHours();\n var minutes = date.getMinutes(); //var seconds = date.getSeconds();\n\n var midday = \"AM\";\n midday = hour >= 12 ? \"PM\" : \"AM\";\n hour = hour === 0 ? 12 : hour > 12 ? hour - 12 : hour;\n minutes = fixDigits(minutes); //seconds = fixDigits(seconds);\n\n let time = hour + \":\" + minutes + \" \" + midday;\n return /*#__PURE__*/_jsxDEV(\"h2\", {\n id: \"clock\",\n children: time\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 351,\n columnNumber: 5\n }, this);\n}\n\n_s(Clock, \"Gqi45WOZhU2c0BLYX0HoJeiR0fk=\");\n\n_c12 = Clock;\n\nfunction getApps() {\n let applications = require('./apps.json');\n\n return applications;\n}\n\nfunction getLinks() {\n let links = require('./links.json');\n\n return links;\n}\n\nfunction getProviders() {\n let providers = require('./providers.json');\n\n return providers;\n}\n\nfunction getThemes() {\n let themes = require('./themes.json');\n\n return themes;\n}\n\nfunction updateTheme(e) {\n var themes = getThemes();\n var themeName = e.target.innerHTML.toLowerCase();\n var index = themes.themes.findIndex(function (item, i) {\n return item.name === themeName;\n });\n localStorage.setItem(\"image-background\", themes.themes[index].imagebackground);\n localStorage.setItem(\"color-background\", themes.themes[index].colorbackground);\n localStorage.setItem(\"color-search-background\", themes.themes[index].colorserachbackground);\n localStorage.setItem(\"color-text-pri\", themes.themes[index].colortextpri);\n localStorage.setItem(\"color-text-acc\", themes.themes[index].colortextacc);\n localStorage.setItem(\"color-border\", themes.themes[index].colorborder); //document.documentElement.style.setProperty(prop, `var(--${themeName}${prop.substring(10)})`);\n\n setTheme();\n}\n\nfunction setTheme() {\n setValueFromLocalStorage('image-background');\n setValueFromLocalStorage('color-background');\n setValueFromLocalStorage('color-search-background');\n setValueFromLocalStorage('color-text-pri');\n setValueFromLocalStorage('color-text-acc');\n setValueFromLocalStorage('color-border');\n setValueFromLocalStorage('content-display');\n}\n\nfunction handleKeyPress(e) {\n var sindex = 0;\n var cycle = false;\n var key = e.keyCode || e.which;\n var text = e.target.value.replaceAll(\"+\", \"%2B\");\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n\n if (key == 13) {\n // Search functions\n search(text);\n }\n\n if (key == 9) {\n // Tab Completion Functions\n e.preventDefault();\n e.stopPropagation();\n\n if (text[0] === ';') {\n switch (option) {\n case 't':\n var streamers = ['admiralbahroo', 'moonmoon_ow', 'witwix'];\n\n if (!subtext || cycle) {\n cycle = true;\n if (sindex > streamers.length - 1) sindex = 0;\n document.getElementById(\"keywords\").value = ';t ' + streamers[sindex++];\n return;\n }\n\n for (var streamer of streamers) {\n if (subtext === streamer.substr(0, subtext.length)) {\n document.getElementById(\"keywords\").value = ';t ' + streamer;\n return;\n }\n }\n\n break;\n }\n }\n }\n\n if (key == 32) {\n //Space to go to search\n updateLabel(text);\n }\n\n sindex = 0;\n cycle = false;\n updateLabel(text);\n}\n\nfunction updateLabel(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n\n if (text[0] === '/') {\n // if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n document.getElementById(\"searchType\").innerHTML = \"Allmusic search\";\n break;\n\n case \"d\":\n document.getElementById(\"searchType\").innerHTML = \"Duck Duck Go search\";\n break;\n\n case \"di\":\n document.getElementById(\"searchType\").innerHTML = \"Discogs search\";\n break;\n\n case \"i\":\n document.getElementById(\"searchType\").innerHTML = \"IMDB search\";\n break;\n\n case \"m\":\n document.getElementById(\"searchType\").innerHTML = \"TheMovieDB search\";\n break;\n\n case \"r\":\n document.getElementById(\"searchType\").innerHTML = \"Reddit search\";\n break;\n\n case \"q\":\n document.getElementById(\"searchType\").innerHTML = \"Qwant search\";\n break;\n\n case \"so\":\n document.getElementById(\"searchType\").innerHTML = \"Soundcloud search\";\n break;\n\n case \"s\":\n document.getElementById(\"searchType\").innerHTML = \"Spotify search\";\n break;\n\n case \"tv\":\n document.getElementById(\"searchType\").innerHTML = \"TheTVDB search\";\n break;\n\n case \"t\":\n document.getElementById(\"searchType\").innerHTML = \"Trakt search\";\n break;\n\n case \"y\":\n document.getElementById(\"searchType\").innerHTML = \"YouTube search\";\n break;\n\n case \"w\":\n document.getElementById(\"searchType\").innerHTML = \"Wikipedia search\";\n break;\n\n case \"p\":\n document.getElementById(\"searchType\").innerHTML = \"Plex search\";\n break;\n\n case \"rt\":\n document.getElementById(\"searchType\").innerHTML = \"Rotten Tomatoes search\";\n break;\n\n default:\n document.getElementById(\"searchType\").innerHTML = \"Invalid search\";\n break;\n }\n } else {\n document.getElementById(\"searchType\").innerHTML = \"Google search\";\n }\n}\n\nfunction search(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n\n if (text[0] === '/') {\n if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n window.location = \"https://www.allmusic.com/search/all/\" + subtext;\n break;\n\n case \"d\":\n window.location = \"https://duckduckgo.com/?q=\" + subtext;\n break;\n\n case \"di\":\n window.location = \"https://www.discogs.com/search/?q=\" + subtext;\n break;\n\n case \"i\":\n window.location = \"https://www.imdb.com/find?q=\" + subtext;\n break;\n\n case \"m\":\n window.location = \"https://www.themoviedb.org/search?query=\" + subtext;\n break;\n\n case \"r\":\n window.location = \"https://www.reddit.com/search?q=\" + subtext;\n break;\n\n case \"q\":\n window.location = \"https://www.qwant.com/?q=\" + subtext;\n break;\n\n case \"so\":\n window.location = \"https://soundcloud.com/search?q=\" + subtext;\n break;\n\n case \"s\":\n window.location = \"https://open.spotify.com/search/results/\" + subtext;\n break;\n\n case \"t\":\n window.location = \"https://trakt.tv/search?query=\" + subtext;\n break;\n\n case \"tv\":\n window.location = \"https://www.thetvdb.com/search?query=\" + subtext;\n break;\n\n case \"y\":\n window.location = \"https://www.youtube.com/results?search_query=\" + subtext;\n break;\n\n case \"w\":\n window.location = \"https://en.wikipedia.org/w/index.php?search=\" + subtext;\n break;\n\n case \"p\":\n window.location = \"https://app.plex.tv/desktop/#!/search?query=\" + subtext;\n break;\n\n case \"rt\":\n window.location = \"https://www.rottentomatoes.com/search?search=\" + subtext;\n break;\n }\n } else {\n var option = text.substr(1);\n\n switch (option) {\n case \"d\":\n window.location = \"https://www.duckduckgo.com\";\n break;\n\n case \"y\":\n window.location = \"https://www.youtube.com\";\n break;\n\n case \"r\":\n window.location = \"https://reddit.com\";\n break;\n\n case \"s\":\n window.location = \"https://open.spotify.com\";\n break;\n }\n }\n } else if (validURL(text)) {\n if (containsProtocol(text)) window.location = text;else window.location = \"https://\" + text;\n } else {\n window.location = \"https://www.google.com/search?q=\" + text;\n }\n}\n\nfunction validURL(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/)?' + // protocol\n '((([a-z\\\\d]([a-z\\\\d-]*[a-z\\\\d])*)\\\\.)+[a-z]{2,}|' + // domain name\n '((\\\\d{1,3}\\\\.){3}\\\\d{1,3}))' + // OR ip (v4) address\n '(\\\\:\\\\d+)?(\\\\/[-a-z\\\\d%_.~+]*)*' + // port and path\n '(\\\\?[;&a-z\\\\d%_.~+=-]*)?' + // query string\n '(\\\\#[-a-z\\\\d_]*)?$', 'i'); // fragment locator\n\n return !!pattern.test(str);\n}\n\nfunction containsProtocol(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/){1}.*', 'i');\n return !!pattern.test(str);\n}\n\nString.prototype.replaceAll = function (search, replacement) {\n var target = this;\n return target.split(search).join(replacement);\n};\n\nfunction udpateDisplayedItems(e) {\n localStorage.setItem('contenttype', e.target.checked);\n\n if (e.target.checked) {\n localStorage.setItem('content-display', 'none');\n } else {\n localStorage.setItem('content-display', 'block');\n }\n\n setDisplayedItems();\n}\n\nfunction setDisplayedItems() {\n setValueFromLocalStorage('contenttype');\n setValueFromLocalStorage('content-display');\n}\n\nvar _c, _c2, _c3, _c4, _c5, _c6, _c7, _c8, _c9, _c10, _c11, _c12;\n\n$RefreshReg$(_c, \"Homepage\");\n$RefreshReg$(_c2, \"Search\");\n$RefreshReg$(_c3, \"Header\");\n$RefreshReg$(_c4, \"Applications\");\n$RefreshReg$(_c5, \"App\");\n$RefreshReg$(_c6, \"Bookmarks\");\n$RefreshReg$(_c7, \"LinkGroups\");\n$RefreshReg$(_c8, \"LinkItem\");\n$RefreshReg$(_c9, \"ModalMenu\");\n$RefreshReg$(_c10, \"Provider\");\n$RefreshReg$(_c11, \"ModalInit\");\n$RefreshReg$(_c12, \"Clock\");","map":{"version":3,"sources":["/home/seanedmunds/dev/home-page/src/index.js"],"names":["React","useState","useEffect","ReactDOM","setValueFromLocalStorage","property","value","localStorage","getItem","setValue","document","documentElement","style","setProperty","input","querySelector","replace","Homepage","setTheme","boxChecked","date","greet","Search","handleKeyPress","Header","props","Applications","appList","getApps","items","i","apps","length","safe","NSFW","NSFWEnabled","push","name","url","icon","App","classNameType","hrefUrl","iconName","Bookmarks","bookmarkList","getLinks","bookmarks","category","links","LinkGroups","LinkItem","link","ModalMenu","providers","getProviders","console","log","updateTheme","checked","udpateDisplayedItems","Provider","provider","prefix","ModalInit","setDisplayedItems","render","getElementById","currentDate","Date","dateOptions","weekday","year","month","day","toLocaleDateString","fixDigits","k","currentTime","Math","floor","getHours","easterEggChance","random","greetings","require","timeBased","easterEggs","messages","easteregg","concat","message","easterEggText","Clock","setDate","refreshClock","timerId","setInterval","cleanup","clearInterval","hour","minutes","getMinutes","midday","time","applications","getThemes","themes","e","themeName","target","innerHTML","toLowerCase","index","findIndex","item","setItem","imagebackground","colorbackground","colorserachbackground","colortextpri","colortextacc","colorborder","sindex","cycle","key","keyCode","which","text","replaceAll","option","substr","indexOf","subtext","search","preventDefault","stopPropagation","streamers","streamer","updateLabel","window","location","validURL","containsProtocol","str","pattern","RegExp","test","String","prototype","replacement","split","join"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { useState, useEffect } from 'react';\nimport ReactDOM from 'react-dom';\n//import { unstable_createPortal } from 'react-dom';\nimport './index.css';\n\nconst setValueFromLocalStorage = property => {\n let value = localStorage.getItem(property);\n setValue(property, value);\n};\nconst setValue = (property, value) => {\n if (value) {\n document.documentElement.style.setProperty(`--${property}`, value);\n\n const input = document.querySelector(`#${property}`);\n if (input) {\n value = value.replace('px', '');\n input.value = value;\n }\n }\n};\n\nfunction Homepage() {\n setTheme();\n var boxChecked = localStorage.getItem(\"contenttype\");\n return (\n \n \n \n
\n \n \n
\n \n \n \n
\n \n \n
\n \n \n
\n \n );\n}\n\nfunction Search() {\n return (\n \n )\n}\n\nfunction Header(props) {\n return (\n \n );\n}\n\nfunction Applications() {\n let appList = getApps();\n var items = [];\n for (var i = 0; i < appList.apps.length; i++) {\n var safe = appList.apps[i].NSFW;\n var NSFWEnabled = localStorage.getItem(\"contenttype\");\n if (safe === \"SAFE\") {\n items.push(\n \n );\n } else if (safe === \"NSFW\" && NSFWEnabled) {\n items.push(\n \n );\n } else {\n \n }\n \n }\n return (\n \n Applications
\n \n {items}\n
\n \n );\n}\n\nfunction App(props) {\n \n let classNameType = props.NSFW + \"-content\";\n let hrefUrl = \"https://\" + props.url;\n let iconName = \"mdi-\" + props.icon;\n return (\n \n );\n}\n\nfunction Bookmarks() {\n let bookmarkList = getLinks();\n var items = [];\n for (var i = 0; i < bookmarkList.bookmarks.length; i++) {\n items.push(\n \n );\n }\n return (\n \n Bookmarks
\n \n {items}\n
\n \n );\n}\n\nfunction LinkGroups(props) {\n var items = [];\n for (var i = 0; i < props.links.length; i++) {\n items.push(\n \n );\n }\n return (\n \n
{props.category}
\n {items}\n \n );\n}\n\nfunction LinkItem(props) {\n return (\n \n );\n}\n\nfunction ModalMenu(props) {\n var providers = getProviders();\n var items = [];\n console.log(props);\n for (var i = 0; i < providers.providers.length; i++) {\n items.push(\n \n );\n }\n return (\n \n \n \n\n
Color themes
\n\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n\n\n
Search options
\n
\n \n \n \n | Website | \n Prefix | \n
\n {items}\n \n
\n \n\n \n
\n \n );\n}\n\nfunction Provider(props) {\n return (\n \n | {props.provider.name} | \n {props.provider.prefix} | \n
\n );\n}\n\nfunction ModalInit() {\n setDisplayedItems();\n return (\n \n );\n}\n\nReactDOM.render(\n ,\n document.getElementById('root')\n);\n\n//Functions below this line are for calculating data for\n//other functions\n\nfunction date() {\n let currentDate = new Date();\n let dateOptions = {\n weekday: \"long\",\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\"\n };\n let date = currentDate.toLocaleDateString(\"en-GB\", dateOptions);\n return date;\n}\nfunction fixDigits(k) {\n if (k < 10) {\n return \"0\" + k;\n }\n else {\n return k;\n }\n}\nfunction greet() {\n let currentTime = new Date();\n let greet = Math.floor(currentTime.getHours() / 6);\n let easterEggChance = Math.floor(Math.random() * 100);\n let greetings = require('./messages.json');\n let timeBased = [];\n let easterEggs = [];\n for (var i = 0; i < greetings.messages.length; i++) {\n if (greetings.messages[i].easteregg === \"FALSE\") {\n timeBased = timeBased.concat(greetings.messages[i]);\n } else {\n easterEggs = easterEggs.concat(greetings.messages[i]);\n }\n }\n if (easterEggChance > 10) {\n return timeBased[greet].message;\n } else {\n let easterEggText = Math.floor(Math.random() * easterEggs.length);\n return easterEggs[easterEggText].message;\n }\n}\nfunction Clock() {\n const [date, setDate] = useState(new Date());\n\n function refreshClock() {\n setDate(new Date());\n }\n useEffect(() => {\n const timerId = setInterval(refreshClock, 1000);\n return function cleanup() {\n clearInterval(timerId);\n };\n }, []);\n\n var hour = date.getHours();\n var minutes = date.getMinutes();\n //var seconds = date.getSeconds();\n var midday = \"AM\";\n midday = (hour >= 12) ? \"PM\" : \"AM\";\n hour = (hour === 0) ? 12 : ((hour > 12) ? (hour - 12) : hour);\n minutes = fixDigits(minutes);\n //seconds = fixDigits(seconds);\n let time = hour + \":\" + minutes + \" \" + midday;\n\n return (\n {time}
\n\n );\n}\nfunction getApps() {\n let applications = require('./apps.json');\n return applications;\n}\nfunction getLinks() {\n let links = require('./links.json');\n return links;\n}\nfunction getProviders() {\n let providers = require('./providers.json');\n return providers;\n}\nfunction getThemes() {\n let themes = require('./themes.json');\n return themes;\n}\nfunction updateTheme(e) {\n var themes = getThemes();\n var themeName = e.target.innerHTML.toLowerCase();\n var index = themes.themes.findIndex(function(item, i){\n return item.name === themeName\n });\n localStorage.setItem(\"image-background\", themes.themes[index].imagebackground);\n localStorage.setItem(\"color-background\", themes.themes[index].colorbackground);\n localStorage.setItem(\"color-search-background\", themes.themes[index].colorserachbackground);\n localStorage.setItem(\"color-text-pri\",themes.themes[index].colortextpri);\n localStorage.setItem(\"color-text-acc\", themes.themes[index].colortextacc);\n localStorage.setItem(\"color-border\", themes.themes[index].colorborder);\n \n //document.documentElement.style.setProperty(prop, `var(--${themeName}${prop.substring(10)})`);\n setTheme();\n}\nfunction setTheme() {\n setValueFromLocalStorage('image-background');\n setValueFromLocalStorage('color-background');\n setValueFromLocalStorage('color-search-background');\n setValueFromLocalStorage('color-text-pri');\n setValueFromLocalStorage('color-text-acc');\n setValueFromLocalStorage('color-border');\n setValueFromLocalStorage('content-display');\n}\nfunction handleKeyPress(e) {\n var sindex = 0;\n var cycle = false;\n var key = e.keyCode || e.which;\n var text = e.target.value.replaceAll(\"+\", \"%2B\");\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n if (key == 13) { // Search functions\n search(text);\n }\n if (key == 9) { // Tab Completion Functions\n e.preventDefault();\n e.stopPropagation();\n if (text[0] === ';') {\n switch (option) {\n case 't':\n var streamers = ['admiralbahroo', 'moonmoon_ow', 'witwix'];\n if (!subtext || cycle) {\n cycle = true;\n if (sindex > streamers.length - 1) sindex = 0;\n document.getElementById(\"keywords\").value = ';t ' + streamers[sindex++];\n return;\n }\n for (var streamer of streamers) {\n if (subtext === streamer.substr(0, subtext.length)) {\n document.getElementById(\"keywords\").value = ';t ' + streamer;\n return;\n }\n }\n break;\n }\n }\n }\n if(key == 32){ //Space to go to search\nupdateLabel(text);\n }\n sindex = 0;\n cycle = false;\n updateLabel(text);\n}\nfunction updateLabel(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n if (text[0] === '/') {\n// if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n document.getElementById(\"searchType\").innerHTML = \"Allmusic search\";\n break;\n case \"d\":\n document.getElementById(\"searchType\").innerHTML = \"Duck Duck Go search\";\n break;\n case \"di\":\n document.getElementById(\"searchType\").innerHTML = \"Discogs search\";\n break;\n case \"i\":\n document.getElementById(\"searchType\").innerHTML = \"IMDB search\";\n break;\n case \"m\":\n document.getElementById(\"searchType\").innerHTML = \"TheMovieDB search\";\n break;\n case \"r\":\n document.getElementById(\"searchType\").innerHTML = \"Reddit search\";\n break;\n case \"q\":\n document.getElementById(\"searchType\").innerHTML = \"Qwant search\";\n break;\n case \"so\":\n document.getElementById(\"searchType\").innerHTML = \"Soundcloud search\";\n break;\n case \"s\":\n document.getElementById(\"searchType\").innerHTML = \"Spotify search\";\n break;\n case \"tv\":\n document.getElementById(\"searchType\").innerHTML = \"TheTVDB search\";\n break;\n case \"t\":\n document.getElementById(\"searchType\").innerHTML = \"Trakt search\";\n break;\n case \"y\":\n document.getElementById(\"searchType\").innerHTML = \"YouTube search\";\n break;\n case \"w\":\n document.getElementById(\"searchType\").innerHTML = \"Wikipedia search\";\n break;\n case \"p\":\n document.getElementById(\"searchType\").innerHTML = \"Plex search\";\n break;\n case \"rt\":\n document.getElementById(\"searchType\").innerHTML = \"Rotten Tomatoes search\";\n break;\n default:\n document.getElementById(\"searchType\").innerHTML = \"Invalid search\";\n break;\n }\n}else {\n document.getElementById(\"searchType\").innerHTML = \"Google search\";\n }\n}\nfunction search(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n if (text[0] === '/') {\n if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n window.location = \"https://www.allmusic.com/search/all/\" + subtext;\n break;\n case \"d\":\n window.location = \"https://duckduckgo.com/?q=\" + subtext;\n break;\n case \"di\":\n window.location = \"https://www.discogs.com/search/?q=\" + subtext;\n break;\n case \"i\":\n window.location = \"https://www.imdb.com/find?q=\" + subtext;\n break;\n case \"m\":\n window.location = \"https://www.themoviedb.org/search?query=\" + subtext;\n break;\n case \"r\":\n window.location = \"https://www.reddit.com/search?q=\" + subtext;\n break;\n case \"q\":\n window.location = \"https://www.qwant.com/?q=\" + subtext;\n break;\n case \"so\":\n window.location = \"https://soundcloud.com/search?q=\" + subtext;\n break;\n case \"s\":\n window.location = \"https://open.spotify.com/search/results/\" + subtext;\n break;\n case \"t\":\n window.location = \"https://trakt.tv/search?query=\" + subtext;\n break;\n case \"tv\":\n window.location = \"https://www.thetvdb.com/search?query=\" + subtext;\n break;\n case \"y\":\n window.location = \"https://www.youtube.com/results?search_query=\" + subtext;\n break;\n case \"w\":\n window.location = \"https://en.wikipedia.org/w/index.php?search=\" + subtext;\n break;\n case \"p\":\n window.location = \"https://app.plex.tv/desktop/#!/search?query=\" + subtext;\n break;\n case \"rt\":\n window.location = \"https://www.rottentomatoes.com/search?search=\" + subtext;\n break;\n }\n } else {\n var option = text.substr(1);\n switch (option) {\n case \"d\":\n window.location = \"https://www.duckduckgo.com\";\n break;\n case \"y\":\n window.location = \"https://www.youtube.com\";\n break;\n case \"r\":\n window.location = \"https://reddit.com\";\n break;\n case \"s\":\n window.location = \"https://open.spotify.com\";\n break;\n }\n }\n } else if (validURL(text)) {\n if (containsProtocol(text))\n window.location = text;\n else\n window.location = \"https://\" + text;\n } else {\n window.location = \"https://www.google.com/search?q=\" + text;\n }\n}\nfunction validURL(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/)?' + // protocol\n '((([a-z\\\\d]([a-z\\\\d-]*[a-z\\\\d])*)\\\\.)+[a-z]{2,}|' + // domain name\n '((\\\\d{1,3}\\\\.){3}\\\\d{1,3}))' + // OR ip (v4) address\n '(\\\\:\\\\d+)?(\\\\/[-a-z\\\\d%_.~+]*)*' + // port and path\n '(\\\\?[;&a-z\\\\d%_.~+=-]*)?' + // query string\n '(\\\\#[-a-z\\\\d_]*)?$', 'i'); // fragment locator\n return !!pattern.test(str);\n}\nfunction containsProtocol(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/){1}.*', 'i');\n return !!pattern.test(str);\n}\nString.prototype.replaceAll = function(search, replacement) {\n var target = this;\n return target.split(search).join(replacement);\n};\nfunction udpateDisplayedItems(e) {\n localStorage.setItem('contenttype', e.target.checked);\n if (e.target.checked) {\n localStorage.setItem('content-display', 'none');\n } else {\n localStorage.setItem('content-display', 'block');\n }\n setDisplayedItems();\n}\nfunction setDisplayedItems() {\n setValueFromLocalStorage('contenttype');\n setValueFromLocalStorage('content-display');\n}"]},"metadata":{},"sourceType":"module"}
\ No newline at end of file
diff --git a/node_modules/.cache/babel-loader/7caa3161bb12b772fb16cb2798f798f1.json b/node_modules/.cache/babel-loader/7caa3161bb12b772fb16cb2798f798f1.json
new file mode 100644
index 00000000..1add5873
--- /dev/null
+++ b/node_modules/.cache/babel-loader/7caa3161bb12b772fb16cb2798f798f1.json
@@ -0,0 +1 @@
+{"ast":null,"code":"var _jsxFileName = \"/home/seanedmunds/dev/home-page/src/index.js\",\n _s = $RefreshSig$();\n\nimport React from 'react';\nimport { useState, useEffect } from 'react';\nimport ReactDOM from 'react-dom';\nimport './index.css';\nimport { jsxDEV as _jsxDEV } from \"react/jsx-dev-runtime\";\n\nconst setValueFromLocalStorage = property => {\n let value = localStorage.getItem(property);\n setValue(property, value);\n};\n\nconst setValue = (property, value) => {\n if (value) {\n document.documentElement.style.setProperty(`--${property}`, value);\n const input = document.querySelector(`#${property}`);\n\n if (input) {\n value = value.replace('px', '');\n input.value = value;\n }\n }\n};\n\nfunction Homepage() {\n setTheme();\n return /*#__PURE__*/_jsxDEV(\"main\", {\n id: \"container\",\n className: \"fade\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Search, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 28,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 27,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Header, {\n date: date(),\n greet: greet()\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 31,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 30,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Applications, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 37,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 36,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Bookmarks, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 40,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 39,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(ModalMenu, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 43,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 42,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(ModalInit, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 46,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 45,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 26,\n columnNumber: 5\n }, this);\n}\n\n_c = Homepage;\n\nfunction Search() {\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"search\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"abackground\",\n children: [/*#__PURE__*/_jsxDEV(\"input\", {\n name: \"keywords\",\n type: \"text\",\n className: \"keyword\",\n id: \"keywords\",\n size: \"50\",\n spellCheck: \"true\",\n placeholder: \"\"\n /*onFocus={this.placeholder = \"\"} onBlur={this.placeholder = ''}*/\n ,\n autoComplete: \"off\",\n autoFocus: true,\n onKeyUp: handleKeyPress\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 56,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n id: \"searchType\",\n className: \"Input-label\",\n children: \"Google search\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 57,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 55,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 54,\n columnNumber: 5\n }, this);\n}\n\n_c2 = Search;\n\nfunction Header(props) {\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"header\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n id: \"greeting_block\",\n children: /*#__PURE__*/_jsxDEV(\"h1\", {\n id: \"header_greet\",\n children: props.greet\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 67,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 66,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"date_block\",\n children: [/*#__PURE__*/_jsxDEV(\"h2\", {\n id: \"header_date\",\n children: props.date\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 70,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(Clock, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 71,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 69,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 65,\n columnNumber: 5\n }, this);\n}\n\n_c3 = Header;\n\nfunction Applications() {\n let appList = getApps();\n var items = [];\n\n for (var i = 0; i < appList.apps.length; i++) {\n var safe = appList.apps[i].NSFW;\n var NSFWEnabled = localStorage.getItem(\"contenttype\");\n\n if (safe === \"SAFE\") {\n items.push( /*#__PURE__*/_jsxDEV(App, {\n name: appList.apps[i].name,\n url: appList.apps[i].url,\n icon: appList.apps[i].icon,\n NSFW: appList.apps[i].NSFW\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 85,\n columnNumber: 9\n }, this));\n } else if (safe === \"NSFW\" && NSFWEnabled) {\n items.push( /*#__PURE__*/_jsxDEV(App, {\n name: appList.apps[i].name,\n url: appList.apps[i].url,\n icon: appList.apps[i].icon,\n NSFW: appList.apps[i].NSFW\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 95,\n columnNumber: 9\n }, this));\n } else {}\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"apps\",\n children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n children: \"Applications\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 110,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"apps_loop\",\n children: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 111,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 109,\n columnNumber: 5\n }, this);\n}\n\n_c4 = Applications;\n\nfunction App(props) {\n let classNameType = props.NSFW + \"-content\";\n let hrefUrl = \"https://\" + props.url;\n let iconName = \"mdi-\" + props.icon;\n return /*#__PURE__*/_jsxDEV(\"div\", {\n className: classNameType,\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: hrefUrl,\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_item\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_icon\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify icon\",\n \"data-icon\": iconName\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 128,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 127,\n columnNumber: 13\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_text\",\n children: [/*#__PURE__*/_jsxDEV(\"span\", {\n id: \"app-name\",\n children: props.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 131,\n columnNumber: 15\n }, this), /*#__PURE__*/_jsxDEV(\"span\", {\n id: \"app-address\",\n children: props.url\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 132,\n columnNumber: 15\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 130,\n columnNumber: 13\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 126,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 125,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 124,\n columnNumber: 7\n }, this);\n}\n\n_c5 = App;\n\nfunction Bookmarks() {\n let bookmarkList = getLinks();\n var items = [];\n\n for (var i = 0; i < bookmarkList.bookmarks.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(LinkGroups, {\n category: bookmarkList.bookmarks[i].category,\n links: bookmarkList.bookmarks[i].links\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 145,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"links\",\n children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n children: \"Bookmarks\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 154,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"links_loop\",\n children: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 155,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 153,\n columnNumber: 5\n }, this);\n}\n\n_c6 = Bookmarks;\n\nfunction LinkGroups(props) {\n var items = [];\n\n for (var i = 0; i < props.links.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(LinkItem, {\n link: props.links[i]\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 166,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"links_item\",\n children: [/*#__PURE__*/_jsxDEV(\"h4\", {\n children: props.category\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 174,\n columnNumber: 7\n }, this), items]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 173,\n columnNumber: 5\n }, this);\n}\n\n_c7 = LinkGroups;\n\nfunction LinkItem(props) {\n return /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: props.link.url,\n className: \"theme_color-border theme_text-select\",\n children: props.link.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 183,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 182,\n columnNumber: 5\n }, this);\n}\n\n_c8 = LinkItem;\n\nfunction ModalMenu() {\n var providers = getProviders();\n var items = [];\n var isChecked = localStorage.getItem(\"contenttype\");\n console.log(localStorage.getItem(\"contenttype\"));\n\n for (var i = 0; i < providers.providers.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(Provider, {\n provider: providers.providers[i]\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 195,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"modal\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n children: [/*#__PURE__*/_jsxDEV(\"header\", {\n id: \"modal-header\",\n children: [/*#__PURE__*/_jsxDEV(\"h1\", {\n children: \"Options\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 205,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n href: \"#\",\n title: \"Close\",\n className: \"modal-close\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-close\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 207,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 206,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 204,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"h2\", {\n children: \"Color themes\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 211,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"modal-theme\",\n children: [/*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"blackboard\",\n className: \"theme-button theme-blackboard\",\n onClick: updateTheme,\n children: \"Blackboard\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 214,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"gazette\",\n className: \"theme-button theme-gazette\",\n onClick: updateTheme,\n children: \"Gazette\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 215,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"espresso\",\n className: \"theme-button theme-espresso\",\n onClick: updateTheme,\n children: \"Espresso\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 216,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cab\",\n className: \"theme-button theme-cab\",\n onClick: updateTheme,\n children: \"Cab\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 217,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cloud\",\n className: \"theme-button theme-cloud\",\n onClick: updateTheme,\n children: \"Cloud\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 218,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"lime\",\n className: \"theme-button theme-lime\",\n onClick: updateTheme,\n children: \"Lime\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 219,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"passion\",\n className: \"theme-button theme-passion\",\n onClick: updateTheme,\n children: \"Passion\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 220,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"blues\",\n className: \"theme-button theme-blues\",\n onClick: updateTheme,\n children: \"Blues\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 221,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"chalk\",\n className: \"theme-button theme-chalk\",\n onClick: updateTheme,\n children: \"Chalk\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 222,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"tron\",\n className: \"theme-button theme-tron\",\n onClick: updateTheme,\n children: \"Tron\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 223,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"paper\",\n className: \"theme-button theme-paper\",\n onClick: updateTheme,\n children: \"Paper\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 224,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cyberpunk\",\n className: \"theme-button theme-cyberpunk\",\n onClick: updateTheme,\n children: \"Cyberpunk\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 225,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"quadra\",\n className: \"theme-button theme-panam\",\n onClick: updateTheme,\n children: \"Quadra\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 226,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"panam\",\n className: \"theme-button theme-panam\",\n onClick: updateTheme,\n children: \"Panam\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 227,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"touch\",\n className: \"theme-button theme-touch\",\n onClick: updateTheme,\n children: \"Touch\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 228,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"peek\",\n className: \"theme-button theme-peek\",\n onClick: updateTheme,\n children: \"Peek\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 229,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 213,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"h2\", {\n children: \"Search options\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 233,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"providers\",\n children: /*#__PURE__*/_jsxDEV(\"table\", {\n children: /*#__PURE__*/_jsxDEV(\"tbody\", {\n children: [/*#__PURE__*/_jsxDEV(\"tr\", {\n children: [/*#__PURE__*/_jsxDEV(\"th\", {\n children: \"Website\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 238,\n columnNumber: 19\n }, this), /*#__PURE__*/_jsxDEV(\"th\", {\n children: \"Prefix\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 239,\n columnNumber: 19\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 237,\n columnNumber: 17\n }, this), items]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 236,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 235,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 234,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"header\", {\n id: \"modal-footer\",\n children: [/*#__PURE__*/_jsxDEV(\"a\", {\n href: \"https://github.com/jeroenpardon/\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-github-box\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 247,\n columnNumber: 54\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 247,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n href: \"https://materialdesignicons.com/\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-material-design\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 248,\n columnNumber: 54\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 248,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(HideButton, {\n checked: isChecked\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 249,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 246,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 203,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 202,\n columnNumber: 5\n }, this);\n}\n\n_c9 = ModalMenu;\n\nfunction HideButton(props) {\n console.log(props.checked);\n return /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"sneaky\",\n children: [/*#__PURE__*/_jsxDEV(\"input\", {\n type: \"checkbox\",\n id: \"contenttype\",\n onChange: udpateDisplayedItems,\n defaultChecked: false\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 261,\n columnNumber: 29\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n for: \"contenttype\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-domino-mask\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 262,\n columnNumber: 30\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 262,\n columnNumber: 5\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 261,\n columnNumber: 5\n }, this);\n}\n\n_c10 = HideButton;\n\nfunction Provider(props) {\n return /*#__PURE__*/_jsxDEV(\"tr\", {\n children: [/*#__PURE__*/_jsxDEV(\"td\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: props.provider.url,\n children: props.provider.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 269,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 269,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"td\", {\n children: props.provider.prefix\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 270,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 268,\n columnNumber: 5\n }, this);\n}\n\n_c11 = Provider;\n\nfunction ModalInit() {\n setDisplayedItems();\n return /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"modal_init\",\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n className: \"btn\",\n href: \"#modal\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify icon\",\n \"data-icon\": \"mdi-xbox-controller-menu\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 280,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 279,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 278,\n columnNumber: 5\n }, this);\n}\n\n_c12 = ModalInit;\nReactDOM.render( /*#__PURE__*/_jsxDEV(Homepage, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 287,\n columnNumber: 3\n}, this), document.getElementById('root')); //Functions below this line are for calculating data for\n//other functions\n\nfunction date() {\n let currentDate = new Date();\n let dateOptions = {\n weekday: \"long\",\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\"\n };\n let date = currentDate.toLocaleDateString(\"en-GB\", dateOptions);\n return date;\n}\n\nfunction fixDigits(k) {\n if (k < 10) {\n return \"0\" + k;\n } else {\n return k;\n }\n}\n\nfunction greet() {\n let currentTime = new Date();\n let greet = Math.floor(currentTime.getHours() / 6);\n let easterEggChance = Math.floor(Math.random() * 100);\n\n let greetings = require('./messages.json');\n\n let timeBased = [];\n let easterEggs = [];\n\n for (var i = 0; i < greetings.messages.length; i++) {\n if (greetings.messages[i].easteregg === \"FALSE\") {\n timeBased = timeBased.concat(greetings.messages[i]);\n } else {\n easterEggs = easterEggs.concat(greetings.messages[i]);\n }\n }\n\n if (easterEggChance > 10) {\n return timeBased[greet].message;\n } else {\n let easterEggText = Math.floor(Math.random() * easterEggs.length);\n return easterEggs[easterEggText].message;\n }\n}\n\nfunction Clock() {\n _s();\n\n const [date, setDate] = useState(new Date());\n\n function refreshClock() {\n setDate(new Date());\n }\n\n useEffect(() => {\n const timerId = setInterval(refreshClock, 1000);\n return function cleanup() {\n clearInterval(timerId);\n };\n }, []);\n var hour = date.getHours();\n var minutes = date.getMinutes(); //var seconds = date.getSeconds();\n\n var midday = \"AM\";\n midday = hour >= 12 ? \"PM\" : \"AM\";\n hour = hour === 0 ? 12 : hour > 12 ? hour - 12 : hour;\n minutes = fixDigits(minutes); //seconds = fixDigits(seconds);\n\n let time = hour + \":\" + minutes + \" \" + midday;\n return /*#__PURE__*/_jsxDEV(\"h2\", {\n id: \"clock\",\n children: time\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 358,\n columnNumber: 5\n }, this);\n}\n\n_s(Clock, \"Gqi45WOZhU2c0BLYX0HoJeiR0fk=\");\n\n_c13 = Clock;\n\nfunction getApps() {\n let applications = require('./apps.json');\n\n return applications;\n}\n\nfunction getLinks() {\n let links = require('./links.json');\n\n return links;\n}\n\nfunction getProviders() {\n let providers = require('./providers.json');\n\n return providers;\n}\n\nfunction getThemes() {\n let themes = require('./themes.json');\n\n return themes;\n}\n\nfunction updateTheme(e) {\n var themes = getThemes();\n var themeName = e.target.innerHTML.toLowerCase();\n var index = themes.themes.findIndex(function (item, i) {\n return item.name === themeName;\n });\n localStorage.setItem(\"image-background\", themes.themes[index].imagebackground);\n localStorage.setItem(\"color-background\", themes.themes[index].colorbackground);\n localStorage.setItem(\"color-search-background\", themes.themes[index].colorserachbackground);\n localStorage.setItem(\"color-text-pri\", themes.themes[index].colortextpri);\n localStorage.setItem(\"color-text-acc\", themes.themes[index].colortextacc);\n localStorage.setItem(\"color-border\", themes.themes[index].colorborder); //document.documentElement.style.setProperty(prop, `var(--${themeName}${prop.substring(10)})`);\n\n setTheme();\n}\n\nfunction setTheme() {\n setValueFromLocalStorage('image-background');\n setValueFromLocalStorage('color-background');\n setValueFromLocalStorage('color-search-background');\n setValueFromLocalStorage('color-text-pri');\n setValueFromLocalStorage('color-text-acc');\n setValueFromLocalStorage('color-border');\n setValueFromLocalStorage('content-display');\n}\n\nfunction handleKeyPress(e) {\n var sindex = 0;\n var cycle = false;\n var key = e.keyCode || e.which;\n var text = e.target.value.replaceAll(\"+\", \"%2B\");\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n\n if (key == 13) {\n // Search functions\n search(text);\n }\n\n if (key == 9) {\n // Tab Completion Functions\n e.preventDefault();\n e.stopPropagation();\n\n if (text[0] === ';') {\n switch (option) {\n case 't':\n var streamers = ['admiralbahroo', 'moonmoon_ow', 'witwix'];\n\n if (!subtext || cycle) {\n cycle = true;\n if (sindex > streamers.length - 1) sindex = 0;\n document.getElementById(\"keywords\").value = ';t ' + streamers[sindex++];\n return;\n }\n\n for (var streamer of streamers) {\n if (subtext === streamer.substr(0, subtext.length)) {\n document.getElementById(\"keywords\").value = ';t ' + streamer;\n return;\n }\n }\n\n break;\n }\n }\n }\n\n if (key == 32) {\n //Space to go to search\n updateLabel(text);\n }\n\n sindex = 0;\n cycle = false;\n updateLabel(text);\n}\n\nfunction updateLabel(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n\n if (text[0] === '/') {\n // if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n document.getElementById(\"searchType\").innerHTML = \"Allmusic search\";\n break;\n\n case \"d\":\n document.getElementById(\"searchType\").innerHTML = \"Duck Duck Go search\";\n break;\n\n case \"di\":\n document.getElementById(\"searchType\").innerHTML = \"Discogs search\";\n break;\n\n case \"i\":\n document.getElementById(\"searchType\").innerHTML = \"IMDB search\";\n break;\n\n case \"m\":\n document.getElementById(\"searchType\").innerHTML = \"TheMovieDB search\";\n break;\n\n case \"r\":\n document.getElementById(\"searchType\").innerHTML = \"Reddit search\";\n break;\n\n case \"q\":\n document.getElementById(\"searchType\").innerHTML = \"Qwant search\";\n break;\n\n case \"so\":\n document.getElementById(\"searchType\").innerHTML = \"Soundcloud search\";\n break;\n\n case \"s\":\n document.getElementById(\"searchType\").innerHTML = \"Spotify search\";\n break;\n\n case \"tv\":\n document.getElementById(\"searchType\").innerHTML = \"TheTVDB search\";\n break;\n\n case \"t\":\n document.getElementById(\"searchType\").innerHTML = \"Trakt search\";\n break;\n\n case \"y\":\n document.getElementById(\"searchType\").innerHTML = \"YouTube search\";\n break;\n\n case \"w\":\n document.getElementById(\"searchType\").innerHTML = \"Wikipedia search\";\n break;\n\n case \"p\":\n document.getElementById(\"searchType\").innerHTML = \"Plex search\";\n break;\n\n case \"rt\":\n document.getElementById(\"searchType\").innerHTML = \"Rotten Tomatoes search\";\n break;\n\n default:\n document.getElementById(\"searchType\").innerHTML = \"Invalid search\";\n break;\n }\n } else {\n document.getElementById(\"searchType\").innerHTML = \"Google search\";\n }\n}\n\nfunction search(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n\n if (text[0] === '/') {\n if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n window.location = \"https://www.allmusic.com/search/all/\" + subtext;\n break;\n\n case \"d\":\n window.location = \"https://duckduckgo.com/?q=\" + subtext;\n break;\n\n case \"di\":\n window.location = \"https://www.discogs.com/search/?q=\" + subtext;\n break;\n\n case \"i\":\n window.location = \"https://www.imdb.com/find?q=\" + subtext;\n break;\n\n case \"m\":\n window.location = \"https://www.themoviedb.org/search?query=\" + subtext;\n break;\n\n case \"r\":\n window.location = \"https://www.reddit.com/search?q=\" + subtext;\n break;\n\n case \"q\":\n window.location = \"https://www.qwant.com/?q=\" + subtext;\n break;\n\n case \"so\":\n window.location = \"https://soundcloud.com/search?q=\" + subtext;\n break;\n\n case \"s\":\n window.location = \"https://open.spotify.com/search/results/\" + subtext;\n break;\n\n case \"t\":\n window.location = \"https://trakt.tv/search?query=\" + subtext;\n break;\n\n case \"tv\":\n window.location = \"https://www.thetvdb.com/search?query=\" + subtext;\n break;\n\n case \"y\":\n window.location = \"https://www.youtube.com/results?search_query=\" + subtext;\n break;\n\n case \"w\":\n window.location = \"https://en.wikipedia.org/w/index.php?search=\" + subtext;\n break;\n\n case \"p\":\n window.location = \"https://app.plex.tv/desktop/#!/search?query=\" + subtext;\n break;\n\n case \"rt\":\n window.location = \"https://www.rottentomatoes.com/search?search=\" + subtext;\n break;\n }\n } else {\n var option = text.substr(1);\n\n switch (option) {\n case \"d\":\n window.location = \"https://www.duckduckgo.com\";\n break;\n\n case \"y\":\n window.location = \"https://www.youtube.com\";\n break;\n\n case \"r\":\n window.location = \"https://reddit.com\";\n break;\n\n case \"s\":\n window.location = \"https://open.spotify.com\";\n break;\n }\n }\n } else if (validURL(text)) {\n if (containsProtocol(text)) window.location = text;else window.location = \"https://\" + text;\n } else {\n window.location = \"https://www.google.com/search?q=\" + text;\n }\n}\n\nfunction validURL(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/)?' + // protocol\n '((([a-z\\\\d]([a-z\\\\d-]*[a-z\\\\d])*)\\\\.)+[a-z]{2,}|' + // domain name\n '((\\\\d{1,3}\\\\.){3}\\\\d{1,3}))' + // OR ip (v4) address\n '(\\\\:\\\\d+)?(\\\\/[-a-z\\\\d%_.~+]*)*' + // port and path\n '(\\\\?[;&a-z\\\\d%_.~+=-]*)?' + // query string\n '(\\\\#[-a-z\\\\d_]*)?$', 'i'); // fragment locator\n\n return !!pattern.test(str);\n}\n\nfunction containsProtocol(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/){1}.*', 'i');\n return !!pattern.test(str);\n}\n\nString.prototype.replaceAll = function (search, replacement) {\n var target = this;\n return target.split(search).join(replacement);\n};\n\nfunction udpateDisplayedItems(e) {\n localStorage.setItem('contenttype', e.target.checked);\n\n if (e.target.checked) {\n localStorage.setItem('content-display', 'none');\n } else {\n localStorage.setItem('content-display', 'block');\n }\n\n setDisplayedItems();\n}\n\nfunction setDisplayedItems() {\n setValueFromLocalStorage('contenttype');\n setValueFromLocalStorage('content-display');\n}\n\nvar _c, _c2, _c3, _c4, _c5, _c6, _c7, _c8, _c9, _c10, _c11, _c12, _c13;\n\n$RefreshReg$(_c, \"Homepage\");\n$RefreshReg$(_c2, \"Search\");\n$RefreshReg$(_c3, \"Header\");\n$RefreshReg$(_c4, \"Applications\");\n$RefreshReg$(_c5, \"App\");\n$RefreshReg$(_c6, \"Bookmarks\");\n$RefreshReg$(_c7, \"LinkGroups\");\n$RefreshReg$(_c8, \"LinkItem\");\n$RefreshReg$(_c9, \"ModalMenu\");\n$RefreshReg$(_c10, \"HideButton\");\n$RefreshReg$(_c11, \"Provider\");\n$RefreshReg$(_c12, \"ModalInit\");\n$RefreshReg$(_c13, \"Clock\");","map":{"version":3,"sources":["/home/seanedmunds/dev/home-page/src/index.js"],"names":["React","useState","useEffect","ReactDOM","setValueFromLocalStorage","property","value","localStorage","getItem","setValue","document","documentElement","style","setProperty","input","querySelector","replace","Homepage","setTheme","date","greet","Search","handleKeyPress","Header","props","Applications","appList","getApps","items","i","apps","length","safe","NSFW","NSFWEnabled","push","name","url","icon","App","classNameType","hrefUrl","iconName","Bookmarks","bookmarkList","getLinks","bookmarks","category","links","LinkGroups","LinkItem","link","ModalMenu","providers","getProviders","isChecked","console","log","updateTheme","HideButton","checked","udpateDisplayedItems","Provider","provider","prefix","ModalInit","setDisplayedItems","render","getElementById","currentDate","Date","dateOptions","weekday","year","month","day","toLocaleDateString","fixDigits","k","currentTime","Math","floor","getHours","easterEggChance","random","greetings","require","timeBased","easterEggs","messages","easteregg","concat","message","easterEggText","Clock","setDate","refreshClock","timerId","setInterval","cleanup","clearInterval","hour","minutes","getMinutes","midday","time","applications","getThemes","themes","e","themeName","target","innerHTML","toLowerCase","index","findIndex","item","setItem","imagebackground","colorbackground","colorserachbackground","colortextpri","colortextacc","colorborder","sindex","cycle","key","keyCode","which","text","replaceAll","option","substr","indexOf","subtext","search","preventDefault","stopPropagation","streamers","streamer","updateLabel","window","location","validURL","containsProtocol","str","pattern","RegExp","test","String","prototype","replacement","split","join"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { useState, useEffect } from 'react';\nimport ReactDOM from 'react-dom';\nimport './index.css';\n\nconst setValueFromLocalStorage = property => {\n let value = localStorage.getItem(property);\n setValue(property, value);\n};\nconst setValue = (property, value) => {\n if (value) {\n document.documentElement.style.setProperty(`--${property}`, value);\n\n const input = document.querySelector(`#${property}`);\n if (input) {\n value = value.replace('px', '');\n input.value = value;\n }\n }\n};\n\nfunction Homepage() {\n setTheme();\n \n return (\n \n \n \n
\n \n \n
\n \n \n \n
\n \n \n
\n \n \n
\n \n );\n}\n\nfunction Search() {\n return (\n \n )\n}\n\nfunction Header(props) {\n return (\n \n );\n}\n\nfunction Applications() {\n let appList = getApps();\n var items = [];\n for (var i = 0; i < appList.apps.length; i++) {\n var safe = appList.apps[i].NSFW;\n var NSFWEnabled = localStorage.getItem(\"contenttype\");\n if (safe === \"SAFE\") {\n items.push(\n \n );\n } else if (safe === \"NSFW\" && NSFWEnabled) {\n items.push(\n \n );\n } else {\n \n }\n \n }\n return (\n \n Applications
\n \n {items}\n
\n \n );\n}\n\nfunction App(props) {\n \n let classNameType = props.NSFW + \"-content\";\n let hrefUrl = \"https://\" + props.url;\n let iconName = \"mdi-\" + props.icon;\n return (\n \n );\n}\n\nfunction Bookmarks() {\n let bookmarkList = getLinks();\n var items = [];\n for (var i = 0; i < bookmarkList.bookmarks.length; i++) {\n items.push(\n \n );\n }\n return (\n \n Bookmarks
\n \n {items}\n
\n \n );\n}\n\nfunction LinkGroups(props) {\n var items = [];\n for (var i = 0; i < props.links.length; i++) {\n items.push(\n \n );\n }\n return (\n \n
{props.category}
\n {items}\n \n );\n}\n\nfunction LinkItem(props) {\n return (\n \n );\n}\n\nfunction ModalMenu() {\n var providers = getProviders();\n var items = [];\n var isChecked = localStorage.getItem(\"contenttype\");\n console.log(localStorage.getItem(\"contenttype\"));\n for (var i = 0; i < providers.providers.length; i++) {\n items.push(\n \n );\n }\n return (\n \n \n \n\n
Color themes
\n\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n\n\n
Search options
\n
\n \n \n \n | Website | \n Prefix | \n
\n {items}\n \n
\n \n\n \n
\n \n );\n}\n\nfunction HideButton(props) {\n console.log(props.checked);\n return (\n \n
\n );\n}\n\nfunction Provider(props) {\n return (\n \n | {props.provider.name} | \n {props.provider.prefix} | \n
\n );\n}\n\nfunction ModalInit() {\n setDisplayedItems();\n return (\n \n );\n}\n\nReactDOM.render(\n ,\n document.getElementById('root')\n);\n\n//Functions below this line are for calculating data for\n//other functions\n\nfunction date() {\n let currentDate = new Date();\n let dateOptions = {\n weekday: \"long\",\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\"\n };\n let date = currentDate.toLocaleDateString(\"en-GB\", dateOptions);\n return date;\n}\nfunction fixDigits(k) {\n if (k < 10) {\n return \"0\" + k;\n }\n else {\n return k;\n }\n}\nfunction greet() {\n let currentTime = new Date();\n let greet = Math.floor(currentTime.getHours() / 6);\n let easterEggChance = Math.floor(Math.random() * 100);\n let greetings = require('./messages.json');\n let timeBased = [];\n let easterEggs = [];\n for (var i = 0; i < greetings.messages.length; i++) {\n if (greetings.messages[i].easteregg === \"FALSE\") {\n timeBased = timeBased.concat(greetings.messages[i]);\n } else {\n easterEggs = easterEggs.concat(greetings.messages[i]);\n }\n }\n if (easterEggChance > 10) {\n return timeBased[greet].message;\n } else {\n let easterEggText = Math.floor(Math.random() * easterEggs.length);\n return easterEggs[easterEggText].message;\n }\n}\nfunction Clock() {\n const [date, setDate] = useState(new Date());\n\n function refreshClock() {\n setDate(new Date());\n }\n useEffect(() => {\n const timerId = setInterval(refreshClock, 1000);\n return function cleanup() {\n clearInterval(timerId);\n };\n }, []);\n\n var hour = date.getHours();\n var minutes = date.getMinutes();\n //var seconds = date.getSeconds();\n var midday = \"AM\";\n midday = (hour >= 12) ? \"PM\" : \"AM\";\n hour = (hour === 0) ? 12 : ((hour > 12) ? (hour - 12) : hour);\n minutes = fixDigits(minutes);\n //seconds = fixDigits(seconds);\n let time = hour + \":\" + minutes + \" \" + midday;\n\n return (\n {time}
\n\n );\n}\nfunction getApps() {\n let applications = require('./apps.json');\n return applications;\n}\nfunction getLinks() {\n let links = require('./links.json');\n return links;\n}\nfunction getProviders() {\n let providers = require('./providers.json');\n return providers;\n}\nfunction getThemes() {\n let themes = require('./themes.json');\n return themes;\n}\nfunction updateTheme(e) {\n var themes = getThemes();\n var themeName = e.target.innerHTML.toLowerCase();\n var index = themes.themes.findIndex(function(item, i){\n return item.name === themeName;\n });\n localStorage.setItem(\"image-background\", themes.themes[index].imagebackground);\n localStorage.setItem(\"color-background\", themes.themes[index].colorbackground);\n localStorage.setItem(\"color-search-background\", themes.themes[index].colorserachbackground);\n localStorage.setItem(\"color-text-pri\",themes.themes[index].colortextpri);\n localStorage.setItem(\"color-text-acc\", themes.themes[index].colortextacc);\n localStorage.setItem(\"color-border\", themes.themes[index].colorborder);\n \n //document.documentElement.style.setProperty(prop, `var(--${themeName}${prop.substring(10)})`);\n setTheme();\n}\nfunction setTheme() {\n setValueFromLocalStorage('image-background');\n setValueFromLocalStorage('color-background');\n setValueFromLocalStorage('color-search-background');\n setValueFromLocalStorage('color-text-pri');\n setValueFromLocalStorage('color-text-acc');\n setValueFromLocalStorage('color-border');\n setValueFromLocalStorage('content-display');\n}\nfunction handleKeyPress(e) {\n var sindex = 0;\n var cycle = false;\n var key = e.keyCode || e.which;\n var text = e.target.value.replaceAll(\"+\", \"%2B\");\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n if (key == 13) { // Search functions\n search(text);\n }\n if (key == 9) { // Tab Completion Functions\n e.preventDefault();\n e.stopPropagation();\n if (text[0] === ';') {\n switch (option) {\n case 't':\n var streamers = ['admiralbahroo', 'moonmoon_ow', 'witwix'];\n if (!subtext || cycle) {\n cycle = true;\n if (sindex > streamers.length - 1) sindex = 0;\n document.getElementById(\"keywords\").value = ';t ' + streamers[sindex++];\n return;\n }\n for (var streamer of streamers) {\n if (subtext === streamer.substr(0, subtext.length)) {\n document.getElementById(\"keywords\").value = ';t ' + streamer;\n return;\n }\n }\n break;\n }\n }\n }\n if(key == 32){ //Space to go to search\nupdateLabel(text);\n }\n sindex = 0;\n cycle = false;\n updateLabel(text);\n}\nfunction updateLabel(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n if (text[0] === '/') {\n// if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n document.getElementById(\"searchType\").innerHTML = \"Allmusic search\";\n break;\n case \"d\":\n document.getElementById(\"searchType\").innerHTML = \"Duck Duck Go search\";\n break;\n case \"di\":\n document.getElementById(\"searchType\").innerHTML = \"Discogs search\";\n break;\n case \"i\":\n document.getElementById(\"searchType\").innerHTML = \"IMDB search\";\n break;\n case \"m\":\n document.getElementById(\"searchType\").innerHTML = \"TheMovieDB search\";\n break;\n case \"r\":\n document.getElementById(\"searchType\").innerHTML = \"Reddit search\";\n break;\n case \"q\":\n document.getElementById(\"searchType\").innerHTML = \"Qwant search\";\n break;\n case \"so\":\n document.getElementById(\"searchType\").innerHTML = \"Soundcloud search\";\n break;\n case \"s\":\n document.getElementById(\"searchType\").innerHTML = \"Spotify search\";\n break;\n case \"tv\":\n document.getElementById(\"searchType\").innerHTML = \"TheTVDB search\";\n break;\n case \"t\":\n document.getElementById(\"searchType\").innerHTML = \"Trakt search\";\n break;\n case \"y\":\n document.getElementById(\"searchType\").innerHTML = \"YouTube search\";\n break;\n case \"w\":\n document.getElementById(\"searchType\").innerHTML = \"Wikipedia search\";\n break;\n case \"p\":\n document.getElementById(\"searchType\").innerHTML = \"Plex search\";\n break;\n case \"rt\":\n document.getElementById(\"searchType\").innerHTML = \"Rotten Tomatoes search\";\n break;\n default:\n document.getElementById(\"searchType\").innerHTML = \"Invalid search\";\n break;\n }\n}else {\n document.getElementById(\"searchType\").innerHTML = \"Google search\";\n }\n}\nfunction search(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n if (text[0] === '/') {\n if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n window.location = \"https://www.allmusic.com/search/all/\" + subtext;\n break;\n case \"d\":\n window.location = \"https://duckduckgo.com/?q=\" + subtext;\n break;\n case \"di\":\n window.location = \"https://www.discogs.com/search/?q=\" + subtext;\n break;\n case \"i\":\n window.location = \"https://www.imdb.com/find?q=\" + subtext;\n break;\n case \"m\":\n window.location = \"https://www.themoviedb.org/search?query=\" + subtext;\n break;\n case \"r\":\n window.location = \"https://www.reddit.com/search?q=\" + subtext;\n break;\n case \"q\":\n window.location = \"https://www.qwant.com/?q=\" + subtext;\n break;\n case \"so\":\n window.location = \"https://soundcloud.com/search?q=\" + subtext;\n break;\n case \"s\":\n window.location = \"https://open.spotify.com/search/results/\" + subtext;\n break;\n case \"t\":\n window.location = \"https://trakt.tv/search?query=\" + subtext;\n break;\n case \"tv\":\n window.location = \"https://www.thetvdb.com/search?query=\" + subtext;\n break;\n case \"y\":\n window.location = \"https://www.youtube.com/results?search_query=\" + subtext;\n break;\n case \"w\":\n window.location = \"https://en.wikipedia.org/w/index.php?search=\" + subtext;\n break;\n case \"p\":\n window.location = \"https://app.plex.tv/desktop/#!/search?query=\" + subtext;\n break;\n case \"rt\":\n window.location = \"https://www.rottentomatoes.com/search?search=\" + subtext;\n break;\n }\n } else {\n var option = text.substr(1);\n switch (option) {\n case \"d\":\n window.location = \"https://www.duckduckgo.com\";\n break;\n case \"y\":\n window.location = \"https://www.youtube.com\";\n break;\n case \"r\":\n window.location = \"https://reddit.com\";\n break;\n case \"s\":\n window.location = \"https://open.spotify.com\";\n break;\n }\n }\n } else if (validURL(text)) {\n if (containsProtocol(text))\n window.location = text;\n else\n window.location = \"https://\" + text;\n } else {\n window.location = \"https://www.google.com/search?q=\" + text;\n }\n}\nfunction validURL(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/)?' + // protocol\n '((([a-z\\\\d]([a-z\\\\d-]*[a-z\\\\d])*)\\\\.)+[a-z]{2,}|' + // domain name\n '((\\\\d{1,3}\\\\.){3}\\\\d{1,3}))' + // OR ip (v4) address\n '(\\\\:\\\\d+)?(\\\\/[-a-z\\\\d%_.~+]*)*' + // port and path\n '(\\\\?[;&a-z\\\\d%_.~+=-]*)?' + // query string\n '(\\\\#[-a-z\\\\d_]*)?$', 'i'); // fragment locator\n return !!pattern.test(str);\n}\nfunction containsProtocol(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/){1}.*', 'i');\n return !!pattern.test(str);\n}\nString.prototype.replaceAll = function(search, replacement) {\n var target = this;\n return target.split(search).join(replacement);\n};\nfunction udpateDisplayedItems(e) {\n localStorage.setItem('contenttype', e.target.checked);\n if (e.target.checked) {\n localStorage.setItem('content-display', 'none');\n } else {\n localStorage.setItem('content-display', 'block');\n }\n setDisplayedItems();\n}\nfunction setDisplayedItems() {\n setValueFromLocalStorage('contenttype');\n setValueFromLocalStorage('content-display');\n}"]},"metadata":{},"sourceType":"module"}
\ No newline at end of file
diff --git a/node_modules/.cache/babel-loader/7cf2b6936e270aaf123eacfc0143167a.json b/node_modules/.cache/babel-loader/7cf2b6936e270aaf123eacfc0143167a.json
new file mode 100644
index 00000000..a9b3b74f
--- /dev/null
+++ b/node_modules/.cache/babel-loader/7cf2b6936e270aaf123eacfc0143167a.json
@@ -0,0 +1 @@
+{"ast":null,"code":"var _jsxFileName = \"/home/seanedmunds/dev/home-page/src/index.js\",\n _s = $RefreshSig$();\n\nimport React from 'react';\nimport { useState, useEffect } from 'react';\nimport ReactDOM from 'react-dom'; //import { unstable_createPortal } from 'react-dom';\n\nimport './index.css';\nimport { jsxDEV as _jsxDEV } from \"react/jsx-dev-runtime\";\n\nfunction Homepage() {\n return /*#__PURE__*/_jsxDEV(\"main\", {\n id: \"container\",\n className: \"fade\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Search, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 11,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 10,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Header, {\n date: date(),\n greet: greet()\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 14,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 13,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Applications, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 20,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 19,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Bookmarks, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 23,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 22,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(ModalMenu, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 26,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 25,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(ModalInit, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 29,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 28,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 9,\n columnNumber: 5\n }, this);\n}\n\n_c = Homepage;\n\nfunction Search() {\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"search\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"abackground\",\n children: [/*#__PURE__*/_jsxDEV(\"input\", {\n name: \"keywords\",\n type: \"text\",\n className: \"keyword\",\n id: \"keywords\",\n size: \"50\",\n spellCheck: \"true\",\n placeholder: \"\"\n /*onFocus={this.placeholder = \"\"} onBlur={this.placeholder = ''}*/\n ,\n autoComplete: \"off\",\n autoFocus: \"true\",\n onKeyUp: handleKeyPress\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 39,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n id: \"searchType\",\n className: \"Input-label\",\n children: \"Google search\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 40,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 38,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 37,\n columnNumber: 5\n }, this);\n}\n\n_c2 = Search;\n\nfunction Header(props) {\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"header\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n id: \"greeting_block\",\n children: /*#__PURE__*/_jsxDEV(\"h1\", {\n id: \"header_greet\",\n children: props.greet\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 50,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 49,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"date_block\",\n children: [/*#__PURE__*/_jsxDEV(\"h2\", {\n id: \"header_date\",\n children: props.date\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 53,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(Clock, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 54,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 52,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 48,\n columnNumber: 5\n }, this);\n}\n\n_c3 = Header;\n\nfunction Applications() {\n let appList = getApps();\n var items = [];\n\n for (var i = 0; i < appList.apps.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(App, {\n name: appList.apps[i].name,\n url: appList.apps[i].url,\n icon: appList.apps[i].icon,\n NSFW: appList.apps[i].NSFW\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 65,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"apps\",\n children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n children: \"Applications\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 76,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"apps_loop\",\n children: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 77,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 75,\n columnNumber: 5\n }, this);\n}\n\n_c4 = Applications;\n\nfunction App(props) {\n let classNameType = props.NSFW + \"-content\";\n let hrefUrl = \"https://\" + props.url;\n let iconName = \"mdi-\" + props.icon;\n return /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: hrefUrl,\n className: classNameType,\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_item\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_icon\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify icon\",\n \"data-icon\": iconName\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 93,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 92,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_text\",\n children: [/*#__PURE__*/_jsxDEV(\"span\", {\n id: \"app-name\",\n children: props.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 96,\n columnNumber: 13\n }, this), /*#__PURE__*/_jsxDEV(\"span\", {\n id: \"app-address\",\n children: props.url\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 97,\n columnNumber: 13\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 95,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 91,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 90,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 89,\n columnNumber: 5\n }, this);\n}\n\n_c5 = App;\n\nfunction Bookmarks() {\n let bookmarkList = getLinks();\n var items = [];\n\n for (var i = 0; i < bookmarkList.bookmarks.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(LinkGroups, {\n category: bookmarkList.bookmarks[i].category,\n links: bookmarkList.bookmarks[i].links\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 110,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"links\",\n children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n children: \"Bookmarks\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 119,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"links_loop\",\n children: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 120,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 118,\n columnNumber: 5\n }, this);\n}\n\n_c6 = Bookmarks;\n\nfunction LinkGroups(props) {\n var items = [];\n\n for (var i = 0; i < props.links.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(LinkItem, {\n link: props.links[i]\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 131,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"links_item\",\n children: [/*#__PURE__*/_jsxDEV(\"h4\", {\n children: props.category\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 139,\n columnNumber: 7\n }, this), items]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 138,\n columnNumber: 5\n }, this);\n}\n\n_c7 = LinkGroups;\n\nfunction LinkItem(props) {\n return /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: props.link.url,\n className: \"theme_color-border theme_text-select\",\n children: props.link.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 148,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 147,\n columnNumber: 5\n }, this);\n}\n\n_c8 = LinkItem;\n\nfunction ModalMenu() {\n var providers = getProviders();\n var items = [];\n\n for (var i = 0; i < providers.providers.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(Provider, {\n provider: providers.providers[i]\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 158,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"modal\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n children: [/*#__PURE__*/_jsxDEV(\"header\", {\n id: \"modal-header\",\n children: [/*#__PURE__*/_jsxDEV(\"h1\", {\n children: \"Options\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 168,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n href: \"#\",\n title: \"Close\",\n className: \"modal-close\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-close\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 170,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 169,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 167,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"h2\", {\n children: \"Color themes\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 174,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"modal-theme\",\n children: [/*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"blackboard\",\n className: \"theme-button theme-blackboard\",\n children: \"Blackboard\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 177,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"gazette\",\n className: \"theme-button theme-gazette\",\n children: \"Gazette\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 178,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"espresso\",\n className: \"theme-button theme-espresso\",\n children: \"Espresso\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 179,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cab\",\n className: \"theme-button theme-cab\",\n children: \"Cab\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 180,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cloud\",\n className: \"theme-button theme-cloud\",\n children: \"Cloud\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 181,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"lime\",\n className: \"theme-button theme-lime\",\n children: \"Lime\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 182,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"passion\",\n className: \"theme-button theme-passion\",\n children: \"Passion\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 183,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"blues\",\n className: \"theme-button theme-blues\",\n children: \"Blues\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 184,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"chalk\",\n className: \"theme-button theme-chalk\",\n children: \"Chalk\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 185,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"tron\",\n className: \"theme-button theme-tron\",\n children: \"Tron\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 186,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"paper\",\n className: \"theme-button theme-paper\",\n children: \"Paper\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 187,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cyberpunk\",\n className: \"theme-button theme-cyberpunk\",\n children: \"Cyberpunk\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 188,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"quadra\",\n className: \"theme-button theme-panam\",\n children: \"Quadra\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 189,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"panam\",\n className: \"theme-button theme-panam\",\n children: \"Panam\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 190,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"touch\",\n className: \"theme-button theme-touch\",\n children: \"Touch\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 191,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"peek\",\n className: \"theme-button theme-peek\",\n children: \"Peek\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 192,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 176,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"h2\", {\n children: \"Search options\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 196,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"providers\",\n children: /*#__PURE__*/_jsxDEV(\"table\", {\n children: /*#__PURE__*/_jsxDEV(\"tbody\", {\n children: [/*#__PURE__*/_jsxDEV(\"tr\", {\n children: [/*#__PURE__*/_jsxDEV(\"th\", {\n children: \"Website\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 201,\n columnNumber: 19\n }, this), /*#__PURE__*/_jsxDEV(\"th\", {\n children: \"Prefix\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 202,\n columnNumber: 19\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 200,\n columnNumber: 17\n }, this), items]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 199,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 198,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 197,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"header\", {\n id: \"modal-footer\",\n children: [/*#__PURE__*/_jsxDEV(\"a\", {\n href: \"https://github.com/jeroenpardon/\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-github-box\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 210,\n columnNumber: 54\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 210,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n href: \"https://materialdesignicons.com/\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-material-design\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 211,\n columnNumber: 54\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 211,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"sneaky\",\n children: [/*#__PURE__*/_jsxDEV(\"input\", {\n type: \"checkbox\",\n id: \"contenttype\",\n onChange: \"nsfw(this)\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 212,\n columnNumber: 35\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n for: \"contenttype\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-domino-mask\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 213,\n columnNumber: 36\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 213,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 212,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 209,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 166,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 165,\n columnNumber: 5\n }, this);\n}\n\n_c9 = ModalMenu;\n\nfunction Provider(props) {\n return /*#__PURE__*/_jsxDEV(\"tr\", {\n children: [/*#__PURE__*/_jsxDEV(\"td\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: props.provider.url,\n children: props.provider.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 223,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 223,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"td\", {\n children: props.provider.prefix\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 224,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 222,\n columnNumber: 5\n }, this);\n}\n\n_c10 = Provider;\n\nfunction ModalInit() {\n return /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"modal_init\",\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n className: \"btn\",\n href: \"#modal\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify icon\",\n \"data-icon\": \"mdi-xbox-controller-menu\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 233,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 232,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 231,\n columnNumber: 5\n }, this);\n}\n\n_c11 = ModalInit;\nReactDOM.render( /*#__PURE__*/_jsxDEV(Homepage, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 240,\n columnNumber: 3\n}, this), document.getElementById('root')); //Functions below this line are for calculating data for\n//other functions\n\nfunction date() {\n let currentDate = new Date();\n let dateOptions = {\n weekday: \"long\",\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\"\n };\n let date = currentDate.toLocaleDateString(\"en-GB\", dateOptions);\n return date;\n}\n\nfunction fixDigits(k) {\n if (k < 10) {\n return \"0\" + k;\n } else {\n return k;\n }\n}\n\nfunction greet() {\n let currentTime = new Date();\n let greet = Math.floor(currentTime.getHours() / 6);\n let easterEggChance = Math.floor(Math.random() * 100);\n\n let greetings = require('./messages.json');\n\n let timeBased = [];\n let easterEggs = [];\n\n for (var i = 0; i < greetings.messages.length; i++) {\n if (greetings.messages[i].easteregg === \"FALSE\") {\n timeBased = timeBased.concat(greetings.messages[i]);\n } else {\n easterEggs = easterEggs.concat(greetings.messages[i]);\n }\n }\n\n if (easterEggChance > 10) {\n return timeBased[greet].message;\n } else {\n let easterEggText = Math.floor(Math.random() * easterEggs.length);\n return easterEggs[easterEggText].message;\n }\n}\n\nfunction Clock() {\n _s();\n\n const [date, setDate] = useState(new Date());\n\n function refreshClock() {\n setDate(new Date());\n }\n\n useEffect(() => {\n const timerId = setInterval(refreshClock, 1000);\n return function cleanup() {\n clearInterval(timerId);\n };\n }, []);\n var hour = date.getHours();\n var minutes = date.getMinutes(); //var seconds = date.getSeconds();\n\n var midday = \"AM\";\n midday = hour >= 12 ? \"PM\" : \"AM\";\n hour = hour === 0 ? 12 : hour > 12 ? hour - 12 : hour;\n minutes = fixDigits(minutes); //seconds = fixDigits(seconds);\n\n let time = hour + \":\" + minutes + \" \" + midday;\n return /*#__PURE__*/_jsxDEV(\"h2\", {\n id: \"clock\",\n children: time\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 311,\n columnNumber: 5\n }, this);\n}\n\n_s(Clock, \"Gqi45WOZhU2c0BLYX0HoJeiR0fk=\");\n\n_c12 = Clock;\n\nfunction getApps() {\n let applications = require('./apps.json');\n\n return applications;\n}\n\nfunction getLinks() {\n let links = require('./links.json');\n\n return links;\n}\n\nfunction getProviders() {\n let providers = require('./providers.json');\n\n return providers;\n}\n\nfunction handleKeyPress(e) {\n console.log(e);\n var sindex = 0;\n var cycle = false;\n var key = e.keyCode || e.which;\n var text = e.target.value.replaceAll(\"+\", \"%2B\");\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n\n if (key == 13) {\n // Search functions\n search(text);\n }\n\n if (key == 9) {\n // Tab Completion Functions\n e.preventDefault();\n e.stopPropagation();\n\n if (text[0] === ';') {\n switch (option) {\n case 't':\n var streamers = ['admiralbahroo', 'moonmoon_ow', 'witwix'];\n\n if (!subtext || cycle) {\n cycle = true;\n if (sindex > streamers.length - 1) sindex = 0;\n document.getElementById(\"keywords\").value = ';t ' + streamers[sindex++];\n return;\n }\n\n for (var streamer of streamers) {\n if (subtext === streamer.substr(0, subtext.length)) {\n document.getElementById(\"keywords\").value = ';t ' + streamer;\n return;\n }\n }\n\n break;\n }\n }\n }\n\n if (key == 32) {\n //Space to go to search\n updateLabel(text);\n }\n\n sindex = 0;\n cycle = false;\n updateLabel(text);\n}\n\nfunction updateLabel(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n\n if (text[0] === '/') {\n // if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n document.getElementById(\"searchType\").innerHTML = \"Allmusic search\";\n break;\n\n case \"d\":\n document.getElementById(\"searchType\").innerHTML = \"Duck Duck Go search\";\n break;\n\n case \"di\":\n document.getElementById(\"searchType\").innerHTML = \"Discogs search\";\n break;\n\n case \"i\":\n document.getElementById(\"searchType\").innerHTML = \"IMDB search\";\n break;\n\n case \"m\":\n document.getElementById(\"searchType\").innerHTML = \"TheMovieDB search\";\n break;\n\n case \"r\":\n document.getElementById(\"searchType\").innerHTML = \"Reddit search\";\n break;\n\n case \"q\":\n document.getElementById(\"searchType\").innerHTML = \"Qwant search\";\n break;\n\n case \"so\":\n document.getElementById(\"searchType\").innerHTML = \"Soundcloud search\";\n break;\n\n case \"s\":\n document.getElementById(\"searchType\").innerHTML = \"Spotify search\";\n break;\n\n case \"tv\":\n document.getElementById(\"searchType\").innerHTML = \"TheTVDB search\";\n break;\n\n case \"t\":\n document.getElementById(\"searchType\").innerHTML = \"Trakt search\";\n break;\n\n case \"y\":\n document.getElementById(\"searchType\").innerHTML = \"YouTube search\";\n break;\n\n case \"w\":\n document.getElementById(\"searchType\").innerHTML = \"Wikipedia search\";\n break;\n\n case \"p\":\n document.getElementById(\"searchType\").innerHTML = \"Plex search\";\n break;\n\n case \"rt\":\n document.getElementById(\"searchType\").innerHTML = \"Rotten Tomatoes search\";\n break;\n\n default:\n document.getElementById(\"searchType\").innerHTML = \"Invalid search\";\n break;\n }\n } else {\n document.getElementById(\"searchType\").innerHTML = \"Google search\";\n }\n}\n\nfunction search(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n\n if (text[0] === '/') {\n if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n window.location = \"https://www.allmusic.com/search/all/\" + subtext;\n break;\n\n case \"d\":\n window.location = \"https://duckduckgo.com/?q=\" + subtext;\n break;\n\n case \"di\":\n window.location = \"https://www.discogs.com/search/?q=\" + subtext;\n break;\n\n case \"i\":\n window.location = \"https://www.imdb.com/find?q=\" + subtext;\n break;\n\n case \"m\":\n window.location = \"https://www.themoviedb.org/search?query=\" + subtext;\n break;\n\n case \"r\":\n window.location = \"https://www.reddit.com/search?q=\" + subtext;\n break;\n\n case \"q\":\n window.location = \"https://www.qwant.com/?q=\" + subtext;\n break;\n\n case \"so\":\n window.location = \"https://soundcloud.com/search?q=\" + subtext;\n break;\n\n case \"s\":\n window.location = \"https://open.spotify.com/search/results/\" + subtext;\n break;\n\n case \"t\":\n window.location = \"https://trakt.tv/search?query=\" + subtext;\n break;\n\n case \"tv\":\n window.location = \"https://www.thetvdb.com/search?query=\" + subtext;\n break;\n\n case \"y\":\n window.location = \"https://www.youtube.com/results?search_query=\" + subtext;\n break;\n\n case \"w\":\n window.location = \"https://en.wikipedia.org/w/index.php?search=\" + subtext;\n break;\n\n case \"p\":\n window.location = \"https://app.plex.tv/desktop/#!/search?query=\" + subtext;\n break;\n\n case \"rt\":\n window.location = \"https://www.rottentomatoes.com/search?search=\" + subtext;\n break;\n }\n } else {\n var option = text.substr(1);\n\n switch (option) {\n case \"d\":\n window.location = \"https://www.duckduckgo.com\";\n break;\n\n case \"y\":\n window.location = \"https://www.youtube.com\";\n break;\n\n case \"r\":\n window.location = \"https://reddit.com\";\n break;\n\n case \"s\":\n window.location = \"https://open.spotify.com\";\n break;\n }\n }\n } else if (validURL(text)) {\n if (containsProtocol(text)) window.location = text;else window.location = \"https://\" + text;\n } else {\n window.location = \"https://www.google.com/search?q=\" + text;\n }\n} // Source: https://stackoverflow.com/questions/5717093/check-if-a-javascript-string-is-a-url\n\n\nfunction validURL(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/)?' + // protocol\n '((([a-z\\\\d]([a-z\\\\d-]*[a-z\\\\d])*)\\\\.)+[a-z]{2,}|' + // domain name\n '((\\\\d{1,3}\\\\.){3}\\\\d{1,3}))' + // OR ip (v4) address\n '(\\\\:\\\\d+)?(\\\\/[-a-z\\\\d%_.~+]*)*' + // port and path\n '(\\\\?[;&a-z\\\\d%_.~+=-]*)?' + // query string\n '(\\\\#[-a-z\\\\d_]*)?$', 'i'); // fragment locator\n\n return !!pattern.test(str);\n}\n\nfunction containsProtocol(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/){1}.*', 'i');\n return !!pattern.test(str);\n}\n\nString.prototype.replaceAll = function (search, replacement) {\n var target = this;\n return target.split(search).join(replacement);\n};\n\nvar _c, _c2, _c3, _c4, _c5, _c6, _c7, _c8, _c9, _c10, _c11, _c12;\n\n$RefreshReg$(_c, \"Homepage\");\n$RefreshReg$(_c2, \"Search\");\n$RefreshReg$(_c3, \"Header\");\n$RefreshReg$(_c4, \"Applications\");\n$RefreshReg$(_c5, \"App\");\n$RefreshReg$(_c6, \"Bookmarks\");\n$RefreshReg$(_c7, \"LinkGroups\");\n$RefreshReg$(_c8, \"LinkItem\");\n$RefreshReg$(_c9, \"ModalMenu\");\n$RefreshReg$(_c10, \"Provider\");\n$RefreshReg$(_c11, \"ModalInit\");\n$RefreshReg$(_c12, \"Clock\");","map":{"version":3,"sources":["/home/seanedmunds/dev/home-page/src/index.js"],"names":["React","useState","useEffect","ReactDOM","Homepage","date","greet","Search","handleKeyPress","Header","props","Applications","appList","getApps","items","i","apps","length","push","name","url","icon","NSFW","App","classNameType","hrefUrl","iconName","Bookmarks","bookmarkList","getLinks","bookmarks","category","links","LinkGroups","LinkItem","link","ModalMenu","providers","getProviders","Provider","provider","prefix","ModalInit","render","document","getElementById","currentDate","Date","dateOptions","weekday","year","month","day","toLocaleDateString","fixDigits","k","currentTime","Math","floor","getHours","easterEggChance","random","greetings","require","timeBased","easterEggs","messages","easteregg","concat","message","easterEggText","Clock","setDate","refreshClock","timerId","setInterval","cleanup","clearInterval","hour","minutes","getMinutes","midday","time","applications","e","console","log","sindex","cycle","key","keyCode","which","text","target","value","replaceAll","option","substr","indexOf","subtext","search","preventDefault","stopPropagation","streamers","streamer","updateLabel","innerHTML","window","location","validURL","containsProtocol","str","pattern","RegExp","test","String","prototype","replacement","split","join"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { useState, useEffect } from 'react';\nimport ReactDOM from 'react-dom';\n//import { unstable_createPortal } from 'react-dom';\nimport './index.css';\n\nfunction Homepage() {\n return (\n \n \n \n
\n \n \n
\n \n \n \n
\n \n \n
\n \n \n
\n \n );\n}\n\nfunction Search() {\n return (\n \n )\n}\n\nfunction Header(props) {\n return (\n \n );\n}\n\nfunction Applications() {\n let appList = getApps();\n var items = [];\n for (var i = 0; i < appList.apps.length; i++) {\n items.push(\n \n );\n }\n return (\n \n Applications
\n \n {items}\n
\n \n );\n}\n\nfunction App(props) {\n let classNameType = props.NSFW + \"-content\";\n let hrefUrl = \"https://\" + props.url;\n let iconName = \"mdi-\" + props.icon;\n return (\n \n );\n}\n\nfunction Bookmarks() {\n let bookmarkList = getLinks();\n var items = [];\n for (var i = 0; i < bookmarkList.bookmarks.length; i++) {\n items.push(\n \n );\n }\n return (\n \n Bookmarks
\n \n {items}\n
\n \n );\n}\n\nfunction LinkGroups(props) {\n var items = [];\n for (var i = 0; i < props.links.length; i++) {\n items.push(\n \n );\n }\n return (\n \n
{props.category}
\n {items}\n \n );\n}\n\nfunction LinkItem(props) {\n return (\n \n );\n}\n\nfunction ModalMenu() {\n var providers = getProviders();\n var items = [];\n for (var i = 0; i < providers.providers.length; i++) {\n items.push(\n \n );\n }\n return (\n \n \n \n\n
Color themes
\n\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n\n\n
Search options
\n
\n \n \n \n | Website | \n Prefix | \n
\n {items}\n \n
\n \n\n \n
\n \n );\n}\n\nfunction Provider(props) {\n return (\n \n | {props.provider.name} | \n {props.provider.prefix} | \n
\n );\n}\n\nfunction ModalInit() {\n return (\n \n );\n}\n\nReactDOM.render(\n ,\n document.getElementById('root')\n);\n\n//Functions below this line are for calculating data for\n//other functions\n\nfunction date() {\n let currentDate = new Date();\n let dateOptions = {\n weekday: \"long\",\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\"\n };\n let date = currentDate.toLocaleDateString(\"en-GB\", dateOptions);\n return date;\n}\nfunction fixDigits(k) {\n if (k < 10) {\n return \"0\" + k;\n }\n else {\n return k;\n }\n}\nfunction greet() {\n let currentTime = new Date();\n let greet = Math.floor(currentTime.getHours() / 6);\n let easterEggChance = Math.floor(Math.random() * 100);\n let greetings = require('./messages.json');\n let timeBased = [];\n let easterEggs = [];\n for (var i = 0; i < greetings.messages.length; i++) {\n if (greetings.messages[i].easteregg === \"FALSE\") {\n timeBased = timeBased.concat(greetings.messages[i]);\n } else {\n easterEggs = easterEggs.concat(greetings.messages[i]);\n }\n }\n if (easterEggChance > 10) {\n return timeBased[greet].message;\n } else {\n let easterEggText = Math.floor(Math.random() * easterEggs.length);\n return easterEggs[easterEggText].message;\n }\n}\nfunction Clock() {\n const [date, setDate] = useState(new Date());\n\n function refreshClock() {\n setDate(new Date());\n }\n useEffect(() => {\n const timerId = setInterval(refreshClock, 1000);\n return function cleanup() {\n clearInterval(timerId);\n };\n }, []);\n\n var hour = date.getHours();\n var minutes = date.getMinutes();\n //var seconds = date.getSeconds();\n var midday = \"AM\";\n midday = (hour >= 12) ? \"PM\" : \"AM\";\n hour = (hour === 0) ? 12 : ((hour > 12) ? (hour - 12) : hour);\n minutes = fixDigits(minutes);\n //seconds = fixDigits(seconds);\n let time = hour + \":\" + minutes + \" \" + midday;\n\n return (\n {time}
\n\n );\n}\nfunction getApps() {\n let applications = require('./apps.json');\n return applications;\n}\nfunction getLinks() {\n let links = require('./links.json');\n return links;\n}\nfunction getProviders() {\n let providers = require('./providers.json');\n return providers;\n}\n\nfunction handleKeyPress(e) {\n console.log(e);\n var sindex = 0;\n var cycle = false;\n var key = e.keyCode || e.which;\n var text = e.target.value.replaceAll(\"+\", \"%2B\");\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n if (key == 13) { // Search functions\n search(text);\n }\n if (key == 9) { // Tab Completion Functions\n e.preventDefault();\n e.stopPropagation();\n if (text[0] === ';') {\n switch (option) {\n case 't':\n var streamers = ['admiralbahroo', 'moonmoon_ow', 'witwix'];\n if (!subtext || cycle) {\n cycle = true;\n if (sindex > streamers.length - 1) sindex = 0;\n document.getElementById(\"keywords\").value = ';t ' + streamers[sindex++];\n return;\n }\n for (var streamer of streamers) {\n if (subtext === streamer.substr(0, subtext.length)) {\n document.getElementById(\"keywords\").value = ';t ' + streamer;\n return;\n }\n }\n break;\n }\n }\n }\n if(key == 32){ //Space to go to search\nupdateLabel(text);\n }\n sindex = 0;\n cycle = false;\n updateLabel(text);\n}\n\nfunction updateLabel(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n if (text[0] === '/') {\n// if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n document.getElementById(\"searchType\").innerHTML = \"Allmusic search\";\n break;\n case \"d\":\n document.getElementById(\"searchType\").innerHTML = \"Duck Duck Go search\";\n break;\n case \"di\":\n document.getElementById(\"searchType\").innerHTML = \"Discogs search\";\n break;\n case \"i\":\n document.getElementById(\"searchType\").innerHTML = \"IMDB search\";\n break;\n case \"m\":\n document.getElementById(\"searchType\").innerHTML = \"TheMovieDB search\";\n break;\n case \"r\":\n document.getElementById(\"searchType\").innerHTML = \"Reddit search\";\n break;\n case \"q\":\n document.getElementById(\"searchType\").innerHTML = \"Qwant search\";\n break;\n case \"so\":\n document.getElementById(\"searchType\").innerHTML = \"Soundcloud search\";\n break;\n case \"s\":\n document.getElementById(\"searchType\").innerHTML = \"Spotify search\";\n break;\n case \"tv\":\n document.getElementById(\"searchType\").innerHTML = \"TheTVDB search\";\n break;\n case \"t\":\n document.getElementById(\"searchType\").innerHTML = \"Trakt search\";\n break;\n case \"y\":\n document.getElementById(\"searchType\").innerHTML = \"YouTube search\";\n break;\n case \"w\":\n document.getElementById(\"searchType\").innerHTML = \"Wikipedia search\";\n break;\n case \"p\":\n document.getElementById(\"searchType\").innerHTML = \"Plex search\";\n break;\n case \"rt\":\n document.getElementById(\"searchType\").innerHTML = \"Rotten Tomatoes search\";\n break;\n default:\n document.getElementById(\"searchType\").innerHTML = \"Invalid search\";\n break;\n }\n}else {\n document.getElementById(\"searchType\").innerHTML = \"Google search\";\n }\n}\n\nfunction search(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n if (text[0] === '/') {\n if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n window.location = \"https://www.allmusic.com/search/all/\" + subtext;\n break;\n case \"d\":\n window.location = \"https://duckduckgo.com/?q=\" + subtext;\n break;\n case \"di\":\n window.location = \"https://www.discogs.com/search/?q=\" + subtext;\n break;\n case \"i\":\n window.location = \"https://www.imdb.com/find?q=\" + subtext;\n break;\n case \"m\":\n window.location = \"https://www.themoviedb.org/search?query=\" + subtext;\n break;\n case \"r\":\n window.location = \"https://www.reddit.com/search?q=\" + subtext;\n break;\n case \"q\":\n window.location = \"https://www.qwant.com/?q=\" + subtext;\n break;\n case \"so\":\n window.location = \"https://soundcloud.com/search?q=\" + subtext;\n break;\n case \"s\":\n window.location = \"https://open.spotify.com/search/results/\" + subtext;\n break;\n case \"t\":\n window.location = \"https://trakt.tv/search?query=\" + subtext;\n break;\n case \"tv\":\n window.location = \"https://www.thetvdb.com/search?query=\" + subtext;\n break;\n case \"y\":\n window.location = \"https://www.youtube.com/results?search_query=\" + subtext;\n break;\n case \"w\":\n window.location = \"https://en.wikipedia.org/w/index.php?search=\" + subtext;\n break;\n case \"p\":\n window.location = \"https://app.plex.tv/desktop/#!/search?query=\" + subtext;\n break;\n case \"rt\":\n window.location = \"https://www.rottentomatoes.com/search?search=\" + subtext;\n break;\n }\n } else {\n var option = text.substr(1);\n switch (option) {\n case \"d\":\n window.location = \"https://www.duckduckgo.com\";\n break;\n case \"y\":\n window.location = \"https://www.youtube.com\";\n break;\n case \"r\":\n window.location = \"https://reddit.com\";\n break;\n case \"s\":\n window.location = \"https://open.spotify.com\";\n break;\n }\n }\n } else if (validURL(text)) {\n if (containsProtocol(text))\n window.location = text;\n else\n window.location = \"https://\" + text;\n } else {\n window.location = \"https://www.google.com/search?q=\" + text;\n }\n}\n\n// Source: https://stackoverflow.com/questions/5717093/check-if-a-javascript-string-is-a-url\nfunction validURL(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/)?' + // protocol\n '((([a-z\\\\d]([a-z\\\\d-]*[a-z\\\\d])*)\\\\.)+[a-z]{2,}|' + // domain name\n '((\\\\d{1,3}\\\\.){3}\\\\d{1,3}))' + // OR ip (v4) address\n '(\\\\:\\\\d+)?(\\\\/[-a-z\\\\d%_.~+]*)*' + // port and path\n '(\\\\?[;&a-z\\\\d%_.~+=-]*)?' + // query string\n '(\\\\#[-a-z\\\\d_]*)?$', 'i'); // fragment locator\n return !!pattern.test(str);\n}\n\nfunction containsProtocol(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/){1}.*', 'i');\n return !!pattern.test(str);\n}\n\nString.prototype.replaceAll = function(search, replacement) {\n var target = this;\n return target.split(search).join(replacement);\n};"]},"metadata":{},"sourceType":"module"}
\ No newline at end of file
diff --git a/node_modules/.cache/babel-loader/7e436f6550bec13a53cfb49c10ac95e4.json b/node_modules/.cache/babel-loader/7e436f6550bec13a53cfb49c10ac95e4.json
new file mode 100644
index 00000000..c03b26fc
--- /dev/null
+++ b/node_modules/.cache/babel-loader/7e436f6550bec13a53cfb49c10ac95e4.json
@@ -0,0 +1 @@
+{"ast":null,"code":"var _jsxFileName = \"/home/seanedmunds/dev/home-page/src/index.js\",\n _s = $RefreshSig$();\n\nimport React from 'react';\nimport { useState, useEffect } from 'react';\nimport ReactDOM from 'react-dom'; //import { unstable_createPortal } from 'react-dom';\n\nimport './index.css';\nimport { jsxDEV as _jsxDEV } from \"react/jsx-dev-runtime\";\n\nfunction Homepage() {\n return /*#__PURE__*/_jsxDEV(\"main\", {\n id: \"container\",\n className: \"fade\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Search, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 11,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 10,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Header, {\n date: date(),\n greet: greet()\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 14,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 13,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Applications, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 20,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 19,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Bookmarks, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 23,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 22,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(ModalMenu, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 26,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 25,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(ModalInit, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 29,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 28,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 9,\n columnNumber: 5\n }, this);\n}\n\n_c = Homepage;\n\nfunction Search() {\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"search\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"abackground\",\n children: [/*#__PURE__*/_jsxDEV(\"input\", {\n name: \"keywords\",\n value: \"test\",\n type: \"text\",\n className: \"keyword\",\n id: \"keywords\",\n size: \"50\",\n spellCheck: \"true\",\n placeholder: \"\"\n /*onFocus={this.placeholder = \"\"} onBlur={this.placeholder = ''}*/\n ,\n autoComplete: \"off\",\n autoFocus: \"true\",\n onKeyUp: handleKeyPress(Event, Value)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 39,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n id: \"searchType\",\n className: \"Input-label\",\n children: \"Google search\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 40,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 38,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 37,\n columnNumber: 5\n }, this);\n}\n\n_c2 = Search;\n\nfunction Header(props) {\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"header\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n id: \"greeting_block\",\n children: /*#__PURE__*/_jsxDEV(\"h1\", {\n id: \"header_greet\",\n children: props.greet\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 50,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 49,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"date_block\",\n children: [/*#__PURE__*/_jsxDEV(\"h2\", {\n id: \"header_date\",\n children: props.date\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 53,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(Clock, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 54,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 52,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 48,\n columnNumber: 5\n }, this);\n}\n\n_c3 = Header;\n\nfunction Applications() {\n let appList = getApps();\n var items = [];\n\n for (var i = 0; i < appList.apps.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(App, {\n name: appList.apps[i].name,\n url: appList.apps[i].url,\n icon: appList.apps[i].icon,\n NSFW: appList.apps[i].NSFW\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 65,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"apps\",\n children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n children: \"Applications\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 76,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"apps_loop\",\n children: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 77,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 75,\n columnNumber: 5\n }, this);\n}\n\n_c4 = Applications;\n\nfunction App(props) {\n let classNameType = props.NSFW + \"-content\";\n let hrefUrl = \"https://\" + props.url;\n let iconName = \"mdi-\" + props.icon;\n return /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: hrefUrl,\n className: classNameType,\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_item\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_icon\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify icon\",\n \"data-icon\": iconName\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 93,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 92,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_text\",\n children: [/*#__PURE__*/_jsxDEV(\"span\", {\n id: \"app-name\",\n children: props.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 96,\n columnNumber: 13\n }, this), /*#__PURE__*/_jsxDEV(\"span\", {\n id: \"app-address\",\n children: props.url\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 97,\n columnNumber: 13\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 95,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 91,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 90,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 89,\n columnNumber: 5\n }, this);\n}\n\n_c5 = App;\n\nfunction Bookmarks() {\n let bookmarkList = getLinks();\n var items = [];\n\n for (var i = 0; i < bookmarkList.bookmarks.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(LinkGroups, {\n category: bookmarkList.bookmarks[i].category,\n links: bookmarkList.bookmarks[i].links\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 110,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"links\",\n children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n children: \"Bookmarks\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 119,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"links_loop\",\n children: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 120,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 118,\n columnNumber: 5\n }, this);\n}\n\n_c6 = Bookmarks;\n\nfunction LinkGroups(props) {\n var items = [];\n\n for (var i = 0; i < props.links.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(LinkItem, {\n link: props.links[i]\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 131,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"links_item\",\n children: [/*#__PURE__*/_jsxDEV(\"h4\", {\n children: props.category\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 139,\n columnNumber: 7\n }, this), items]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 138,\n columnNumber: 5\n }, this);\n}\n\n_c7 = LinkGroups;\n\nfunction LinkItem(props) {\n return /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: props.link.url,\n className: \"theme_color-border theme_text-select\",\n children: props.link.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 148,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 147,\n columnNumber: 5\n }, this);\n}\n\n_c8 = LinkItem;\n\nfunction ModalMenu() {\n var providers = getProviders();\n var items = [];\n\n for (var i = 0; i < providers.providers.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(Provider, {\n provider: providers.providers[i]\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 158,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"modal\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n children: [/*#__PURE__*/_jsxDEV(\"header\", {\n id: \"modal-header\",\n children: [/*#__PURE__*/_jsxDEV(\"h1\", {\n children: \"Options\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 168,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n href: \"#\",\n title: \"Close\",\n className: \"modal-close\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-close\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 170,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 169,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 167,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"h2\", {\n children: \"Color themes\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 174,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"modal-theme\",\n children: [/*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"blackboard\",\n className: \"theme-button theme-blackboard\",\n children: \"Blackboard\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 177,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"gazette\",\n className: \"theme-button theme-gazette\",\n children: \"Gazette\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 178,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"espresso\",\n className: \"theme-button theme-espresso\",\n children: \"Espresso\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 179,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cab\",\n className: \"theme-button theme-cab\",\n children: \"Cab\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 180,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cloud\",\n className: \"theme-button theme-cloud\",\n children: \"Cloud\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 181,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"lime\",\n className: \"theme-button theme-lime\",\n children: \"Lime\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 182,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"passion\",\n className: \"theme-button theme-passion\",\n children: \"Passion\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 183,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"blues\",\n className: \"theme-button theme-blues\",\n children: \"Blues\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 184,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"chalk\",\n className: \"theme-button theme-chalk\",\n children: \"Chalk\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 185,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"tron\",\n className: \"theme-button theme-tron\",\n children: \"Tron\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 186,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"paper\",\n className: \"theme-button theme-paper\",\n children: \"Paper\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 187,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cyberpunk\",\n className: \"theme-button theme-cyberpunk\",\n children: \"Cyberpunk\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 188,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"quadra\",\n className: \"theme-button theme-panam\",\n children: \"Quadra\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 189,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"panam\",\n className: \"theme-button theme-panam\",\n children: \"Panam\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 190,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"touch\",\n className: \"theme-button theme-touch\",\n children: \"Touch\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 191,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"peek\",\n className: \"theme-button theme-peek\",\n children: \"Peek\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 192,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 176,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"h2\", {\n children: \"Search options\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 196,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"providers\",\n children: /*#__PURE__*/_jsxDEV(\"table\", {\n children: /*#__PURE__*/_jsxDEV(\"tbody\", {\n children: [/*#__PURE__*/_jsxDEV(\"tr\", {\n children: [/*#__PURE__*/_jsxDEV(\"th\", {\n children: \"Website\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 201,\n columnNumber: 19\n }, this), /*#__PURE__*/_jsxDEV(\"th\", {\n children: \"Prefix\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 202,\n columnNumber: 19\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 200,\n columnNumber: 17\n }, this), items]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 199,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 198,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 197,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"header\", {\n id: \"modal-footer\",\n children: [/*#__PURE__*/_jsxDEV(\"a\", {\n href: \"https://github.com/jeroenpardon/\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-github-box\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 210,\n columnNumber: 54\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 210,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n href: \"https://materialdesignicons.com/\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-material-design\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 211,\n columnNumber: 54\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 211,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"sneaky\",\n children: [/*#__PURE__*/_jsxDEV(\"input\", {\n type: \"checkbox\",\n id: \"contenttype\",\n onChange: \"nsfw(this)\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 212,\n columnNumber: 35\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n for: \"contenttype\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-domino-mask\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 213,\n columnNumber: 36\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 213,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 212,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 209,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 166,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 165,\n columnNumber: 5\n }, this);\n}\n\n_c9 = ModalMenu;\n\nfunction Provider(props) {\n return /*#__PURE__*/_jsxDEV(\"tr\", {\n children: [/*#__PURE__*/_jsxDEV(\"td\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: props.provider.url,\n children: props.provider.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 223,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 223,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"td\", {\n children: props.provider.prefix\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 224,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 222,\n columnNumber: 5\n }, this);\n}\n\n_c10 = Provider;\n\nfunction ModalInit() {\n return /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"modal_init\",\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n className: \"btn\",\n href: \"#modal\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify icon\",\n \"data-icon\": \"mdi-xbox-controller-menu\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 233,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 232,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 231,\n columnNumber: 5\n }, this);\n}\n\n_c11 = ModalInit;\nReactDOM.render( /*#__PURE__*/_jsxDEV(Homepage, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 240,\n columnNumber: 3\n}, this), document.getElementById('root')); //Functions below this line are for calculating data for\n//other functions\n\nfunction date() {\n let currentDate = new Date();\n let dateOptions = {\n weekday: \"long\",\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\"\n };\n let date = currentDate.toLocaleDateString(\"en-GB\", dateOptions);\n return date;\n}\n\nfunction fixDigits(k) {\n if (k < 10) {\n return \"0\" + k;\n } else {\n return k;\n }\n}\n\nfunction greet() {\n let currentTime = new Date();\n let greet = Math.floor(currentTime.getHours() / 6);\n let easterEggChance = Math.floor(Math.random() * 100);\n\n let greetings = require('./messages.json');\n\n let timeBased = [];\n let easterEggs = [];\n\n for (var i = 0; i < greetings.messages.length; i++) {\n if (greetings.messages[i].easteregg === \"FALSE\") {\n timeBased = timeBased.concat(greetings.messages[i]);\n } else {\n easterEggs = easterEggs.concat(greetings.messages[i]);\n }\n }\n\n if (easterEggChance > 10) {\n return timeBased[greet].message;\n } else {\n let easterEggText = Math.floor(Math.random() * easterEggs.length);\n return easterEggs[easterEggText].message;\n }\n}\n\nfunction Clock() {\n _s();\n\n const [date, setDate] = useState(new Date());\n\n function refreshClock() {\n setDate(new Date());\n }\n\n useEffect(() => {\n const timerId = setInterval(refreshClock, 1000);\n return function cleanup() {\n clearInterval(timerId);\n };\n }, []);\n var hour = date.getHours();\n var minutes = date.getMinutes(); //var seconds = date.getSeconds();\n\n var midday = \"AM\";\n midday = hour >= 12 ? \"PM\" : \"AM\";\n hour = hour === 0 ? 12 : hour > 12 ? hour - 12 : hour;\n minutes = fixDigits(minutes); //seconds = fixDigits(seconds);\n\n let time = hour + \":\" + minutes + \" \" + midday;\n return /*#__PURE__*/_jsxDEV(\"h2\", {\n id: \"clock\",\n children: time\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 311,\n columnNumber: 5\n }, this);\n}\n\n_s(Clock, \"Gqi45WOZhU2c0BLYX0HoJeiR0fk=\");\n\n_c12 = Clock;\n\nfunction getApps() {\n let applications = require('./apps.json');\n\n return applications;\n}\n\nfunction getLinks() {\n let links = require('./links.json');\n\n return links;\n}\n\nfunction getProviders() {\n let providers = require('./providers.json');\n\n return providers;\n}\n\nfunction handleKeyPress(e, value) {\n var sindex = 0;\n var cycle = false;\n var key = e.keyCode || e.which;\n var text = value.replaceAll(\"+\", \"%2B\");\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n\n if (key == 13) {\n // Search functions\n search(text);\n }\n\n if (key == 9) {\n // Tab Completion Functions\n e.preventDefault();\n e.stopPropagation();\n\n if (text[0] === ';') {\n switch (option) {\n case 't':\n var streamers = ['admiralbahroo', 'moonmoon_ow', 'witwix'];\n\n if (!subtext || cycle) {\n cycle = true;\n if (sindex > streamers.length - 1) sindex = 0;\n document.getElementById(\"keywords\").value = ';t ' + streamers[sindex++];\n return;\n }\n\n for (var streamer of streamers) {\n if (subtext === streamer.substr(0, subtext.length)) {\n document.getElementById(\"keywords\").value = ';t ' + streamer;\n return;\n }\n }\n\n break;\n }\n }\n }\n\n if (key == 32) {\n //Space to go to search\n updateLabel(text);\n }\n\n sindex = 0;\n cycle = false;\n updateLabel(text);\n}\n\nfunction updateLabel(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n\n if (text[0] === '/') {\n // if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n document.getElementById(\"searchType\").innerHTML = \"Allmusic search\";\n break;\n\n case \"d\":\n document.getElementById(\"searchType\").innerHTML = \"Duck Duck Go search\";\n break;\n\n case \"di\":\n document.getElementById(\"searchType\").innerHTML = \"Discogs search\";\n break;\n\n case \"i\":\n document.getElementById(\"searchType\").innerHTML = \"IMDB search\";\n break;\n\n case \"m\":\n document.getElementById(\"searchType\").innerHTML = \"TheMovieDB search\";\n break;\n\n case \"r\":\n document.getElementById(\"searchType\").innerHTML = \"Reddit search\";\n break;\n\n case \"q\":\n document.getElementById(\"searchType\").innerHTML = \"Qwant search\";\n break;\n\n case \"so\":\n document.getElementById(\"searchType\").innerHTML = \"Soundcloud search\";\n break;\n\n case \"s\":\n document.getElementById(\"searchType\").innerHTML = \"Spotify search\";\n break;\n\n case \"tv\":\n document.getElementById(\"searchType\").innerHTML = \"TheTVDB search\";\n break;\n\n case \"t\":\n document.getElementById(\"searchType\").innerHTML = \"Trakt search\";\n break;\n\n case \"y\":\n document.getElementById(\"searchType\").innerHTML = \"YouTube search\";\n break;\n\n case \"w\":\n document.getElementById(\"searchType\").innerHTML = \"Wikipedia search\";\n break;\n\n case \"p\":\n document.getElementById(\"searchType\").innerHTML = \"Plex search\";\n break;\n\n case \"rt\":\n document.getElementById(\"searchType\").innerHTML = \"Rotten Tomatoes search\";\n break;\n\n default:\n document.getElementById(\"searchType\").innerHTML = \"Invalid search\";\n break;\n }\n } else {\n document.getElementById(\"searchType\").innerHTML = \"Google search\";\n }\n}\n\nfunction search(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n\n if (text[0] === '/') {\n if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n window.location = \"https://www.allmusic.com/search/all/\" + subtext;\n break;\n\n case \"d\":\n window.location = \"https://duckduckgo.com/?q=\" + subtext;\n break;\n\n case \"di\":\n window.location = \"https://www.discogs.com/search/?q=\" + subtext;\n break;\n\n case \"i\":\n window.location = \"https://www.imdb.com/find?q=\" + subtext;\n break;\n\n case \"m\":\n window.location = \"https://www.themoviedb.org/search?query=\" + subtext;\n break;\n\n case \"r\":\n window.location = \"https://www.reddit.com/search?q=\" + subtext;\n break;\n\n case \"q\":\n window.location = \"https://www.qwant.com/?q=\" + subtext;\n break;\n\n case \"so\":\n window.location = \"https://soundcloud.com/search?q=\" + subtext;\n break;\n\n case \"s\":\n window.location = \"https://open.spotify.com/search/results/\" + subtext;\n break;\n\n case \"t\":\n window.location = \"https://trakt.tv/search?query=\" + subtext;\n break;\n\n case \"tv\":\n window.location = \"https://www.thetvdb.com/search?query=\" + subtext;\n break;\n\n case \"y\":\n window.location = \"https://www.youtube.com/results?search_query=\" + subtext;\n break;\n\n case \"w\":\n window.location = \"https://en.wikipedia.org/w/index.php?search=\" + subtext;\n break;\n\n case \"p\":\n window.location = \"https://app.plex.tv/desktop/#!/search?query=\" + subtext;\n break;\n\n case \"rt\":\n window.location = \"https://www.rottentomatoes.com/search?search=\" + subtext;\n break;\n }\n } else {\n var option = text.substr(1);\n\n switch (option) {\n case \"d\":\n window.location = \"https://www.duckduckgo.com\";\n break;\n\n case \"y\":\n window.location = \"https://www.youtube.com\";\n break;\n\n case \"r\":\n window.location = \"https://reddit.com\";\n break;\n\n case \"s\":\n window.location = \"https://open.spotify.com\";\n break;\n }\n }\n } else if (validURL(text)) {\n if (containsProtocol(text)) window.location = text;else window.location = \"https://\" + text;\n } else {\n window.location = \"https://www.google.com/search?q=\" + text;\n }\n} // Source: https://stackoverflow.com/questions/5717093/check-if-a-javascript-string-is-a-url\n\n\nfunction validURL(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/)?' + // protocol\n '((([a-z\\\\d]([a-z\\\\d-]*[a-z\\\\d])*)\\\\.)+[a-z]{2,}|' + // domain name\n '((\\\\d{1,3}\\\\.){3}\\\\d{1,3}))' + // OR ip (v4) address\n '(\\\\:\\\\d+)?(\\\\/[-a-z\\\\d%_.~+]*)*' + // port and path\n '(\\\\?[;&a-z\\\\d%_.~+=-]*)?' + // query string\n '(\\\\#[-a-z\\\\d_]*)?$', 'i'); // fragment locator\n\n return !!pattern.test(str);\n}\n\nfunction containsProtocol(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/){1}.*', 'i');\n return !!pattern.test(str);\n}\n\nString.prototype.replaceAll = function (search, replacement) {\n var target = this;\n return target.split(search).join(replacement);\n};\n\nvar _c, _c2, _c3, _c4, _c5, _c6, _c7, _c8, _c9, _c10, _c11, _c12;\n\n$RefreshReg$(_c, \"Homepage\");\n$RefreshReg$(_c2, \"Search\");\n$RefreshReg$(_c3, \"Header\");\n$RefreshReg$(_c4, \"Applications\");\n$RefreshReg$(_c5, \"App\");\n$RefreshReg$(_c6, \"Bookmarks\");\n$RefreshReg$(_c7, \"LinkGroups\");\n$RefreshReg$(_c8, \"LinkItem\");\n$RefreshReg$(_c9, \"ModalMenu\");\n$RefreshReg$(_c10, \"Provider\");\n$RefreshReg$(_c11, \"ModalInit\");\n$RefreshReg$(_c12, \"Clock\");","map":{"version":3,"sources":["/home/seanedmunds/dev/home-page/src/index.js"],"names":["React","useState","useEffect","ReactDOM","Homepage","date","greet","Search","handleKeyPress","Event","Value","Header","props","Applications","appList","getApps","items","i","apps","length","push","name","url","icon","NSFW","App","classNameType","hrefUrl","iconName","Bookmarks","bookmarkList","getLinks","bookmarks","category","links","LinkGroups","LinkItem","link","ModalMenu","providers","getProviders","Provider","provider","prefix","ModalInit","render","document","getElementById","currentDate","Date","dateOptions","weekday","year","month","day","toLocaleDateString","fixDigits","k","currentTime","Math","floor","getHours","easterEggChance","random","greetings","require","timeBased","easterEggs","messages","easteregg","concat","message","easterEggText","Clock","setDate","refreshClock","timerId","setInterval","cleanup","clearInterval","hour","minutes","getMinutes","midday","time","applications","e","value","sindex","cycle","key","keyCode","which","text","replaceAll","option","substr","indexOf","subtext","search","preventDefault","stopPropagation","streamers","streamer","updateLabel","innerHTML","window","location","validURL","containsProtocol","str","pattern","RegExp","test","String","prototype","replacement","target","split","join"],"mappings":";;;AAAA,OAAOA,KAAP,MAAkB,OAAlB;AACA,SAASC,QAAT,EAAmBC,SAAnB,QAAoC,OAApC;AACA,OAAOC,QAAP,MAAqB,WAArB,C,CACA;;AACA,OAAO,aAAP;;;AAEA,SAASC,QAAT,GAAoB;AAClB,sBACE;AAAM,IAAA,EAAE,EAAC,WAAT;AAAqB,IAAA,SAAS,EAAC,MAA/B;AAAA,4BACI;AAAA,6BACE,QAAC,MAAD;AAAA;AAAA;AAAA;AAAA;AADF;AAAA;AAAA;AAAA;AAAA,YADJ,eAII;AAAA,6BACE,QAAC,MAAD;AACE,QAAA,IAAI,EAAEC,IAAI,EADZ;AAEE,QAAA,KAAK,EAAEC,KAAK;AAFd;AAAA;AAAA;AAAA;AAAA;AADF;AAAA;AAAA;AAAA;AAAA,YAJJ,eAUI;AAAA,6BACE,QAAC,YAAD;AAAA;AAAA;AAAA;AAAA;AADF;AAAA;AAAA;AAAA;AAAA,YAVJ,eAaI;AAAA,6BACE,QAAC,SAAD;AAAA;AAAA;AAAA;AAAA;AADF;AAAA;AAAA;AAAA;AAAA,YAbJ,eAgBI;AAAA,6BACE,QAAC,SAAD;AAAA;AAAA;AAAA;AAAA;AADF;AAAA;AAAA;AAAA;AAAA,YAhBJ,eAmBI;AAAA,6BACE,QAAC,SAAD;AAAA;AAAA;AAAA;AAAA;AADF;AAAA;AAAA;AAAA;AAAA,YAnBJ;AAAA;AAAA;AAAA;AAAA;AAAA,UADF;AAyBD;;KA1BQF,Q;;AA4BT,SAASG,MAAT,GAAkB;AAChB,sBACE;AAAS,IAAA,EAAE,EAAC,QAAZ;AAAA,2BACE;AAAK,MAAA,SAAS,EAAC,aAAf;AAAA,8BACE;AAAO,QAAA,IAAI,EAAC,UAAZ;AAAuB,QAAA,KAAK,EAAC,MAA7B;AAAoC,QAAA,IAAI,EAAC,MAAzC;AAAgD,QAAA,SAAS,EAAC,SAA1D;AAAoE,QAAA,EAAE,EAAC,UAAvE;AAAkF,QAAA,IAAI,EAAC,IAAvF;AAA4F,QAAA,UAAU,EAAC,MAAvG;AAA8G,QAAA,WAAW,EAAC;AAAG;AAA7H;AAAgM,QAAA,YAAY,EAAC,KAA7M;AAAmN,QAAA,SAAS,EAAC,MAA7N;AAAoO,QAAA,OAAO,EAAEC,cAAc,CAACC,KAAD,EAAQC,KAAR;AAA3P;AAAA;AAAA;AAAA;AAAA,cADF,eAEE;AAAO,QAAA,EAAE,EAAC,YAAV;AAAuB,QAAA,SAAS,EAAC,aAAjC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,cAFF;AAAA;AAAA;AAAA;AAAA;AAAA;AADF;AAAA;AAAA;AAAA;AAAA,UADF;AAQD;;MATQH,M;;AAWT,SAASI,MAAT,CAAgBC,KAAhB,EAAuB;AACrB,sBACE;AAAS,IAAA,EAAE,EAAC,QAAZ;AAAA,4BACE;AAAK,MAAA,EAAE,EAAC,gBAAR;AAAA,6BACE;AAAI,QAAA,EAAE,EAAC,cAAP;AAAA,kBAAuBA,KAAK,CAACN;AAA7B;AAAA;AAAA;AAAA;AAAA;AADF;AAAA;AAAA;AAAA;AAAA,YADF,eAIE;AAAK,MAAA,EAAE,EAAC,YAAR;AAAA,8BACE;AAAI,QAAA,EAAE,EAAC,aAAP;AAAA,kBAAsBM,KAAK,CAACP;AAA5B;AAAA;AAAA;AAAA;AAAA,cADF,eAEE,QAAC,KAAD;AAAA;AAAA;AAAA;AAAA,cAFF;AAAA;AAAA;AAAA;AAAA;AAAA,YAJF;AAAA;AAAA;AAAA;AAAA;AAAA,UADF;AAWD;;MAZQM,M;;AAcT,SAASE,YAAT,GAAwB;AACtB,MAAIC,OAAO,GAAGC,OAAO,EAArB;AACA,MAAIC,KAAK,GAAG,EAAZ;;AACA,OAAK,IAAIC,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGH,OAAO,CAACI,IAAR,CAAaC,MAAjC,EAAyCF,CAAC,EAA1C,EAA8C;AAC5CD,IAAAA,KAAK,CAACI,IAAN,eACE,QAAC,GAAD;AAEE,MAAA,IAAI,EAAEN,OAAO,CAACI,IAAR,CAAaD,CAAb,EAAgBI,IAFxB;AAGE,MAAA,GAAG,EAAEP,OAAO,CAACI,IAAR,CAAaD,CAAb,EAAgBK,GAHvB;AAIE,MAAA,IAAI,EAAER,OAAO,CAACI,IAAR,CAAaD,CAAb,EAAgBM,IAJxB;AAKE,MAAA,IAAI,EAAET,OAAO,CAACI,IAAR,CAAaD,CAAb,EAAgBO;AALxB,OACOP,CADP;AAAA;AAAA;AAAA;AAAA,YADF;AASD;;AACD,sBACE;AAAS,IAAA,EAAE,EAAC,MAAZ;AAAA,4BACE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,YADF,eAEE;AAAK,MAAA,EAAE,EAAC,WAAR;AAAA,gBACGD;AADH;AAAA;AAAA;AAAA;AAAA,YAFF;AAAA;AAAA;AAAA;AAAA;AAAA,UADF;AAQD;;MAtBQH,Y;;AAwBT,SAASY,GAAT,CAAab,KAAb,EAAoB;AAClB,MAAIc,aAAa,GAAGd,KAAK,CAACY,IAAN,GAAa,UAAjC;AACA,MAAIG,OAAO,GAAG,aAAaf,KAAK,CAACU,GAAjC;AACA,MAAIM,QAAQ,GAAG,SAAShB,KAAK,CAACW,IAA9B;AACA,sBACE;AAAA,2BACE;AAAG,MAAA,IAAI,EAAEI,OAAT;AAAkB,MAAA,SAAS,EAAED,aAA7B;AAAA,6BACE;AAAK,QAAA,SAAS,EAAC,WAAf;AAAA,gCACE;AAAK,UAAA,SAAS,EAAC,WAAf;AAAA,iCACE;AAAM,YAAA,SAAS,EAAC,cAAhB;AAA+B,yBAAWE;AAA1C;AAAA;AAAA;AAAA;AAAA;AADF;AAAA;AAAA;AAAA;AAAA,gBADF,eAIE;AAAK,UAAA,SAAS,EAAC,WAAf;AAAA,kCACE;AAAM,YAAA,EAAE,EAAC,UAAT;AAAA,sBAAqBhB,KAAK,CAACS;AAA3B;AAAA;AAAA;AAAA;AAAA,kBADF,eAEE;AAAM,YAAA,EAAE,EAAC,aAAT;AAAA,sBAAwBT,KAAK,CAACU;AAA9B;AAAA;AAAA;AAAA;AAAA,kBAFF;AAAA;AAAA;AAAA;AAAA;AAAA,gBAJF;AAAA;AAAA;AAAA;AAAA;AAAA;AADF;AAAA;AAAA;AAAA;AAAA;AADF;AAAA;AAAA;AAAA;AAAA,UADF;AAeD;;MAnBQG,G;;AAqBT,SAASI,SAAT,GAAqB;AACnB,MAAIC,YAAY,GAAGC,QAAQ,EAA3B;AACA,MAAIf,KAAK,GAAG,EAAZ;;AACA,OAAK,IAAIC,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGa,YAAY,CAACE,SAAb,CAAuBb,MAA3C,EAAmDF,CAAC,EAApD,EAAwD;AACtDD,IAAAA,KAAK,CAACI,IAAN,eACE,QAAC,UAAD;AAEE,MAAA,QAAQ,EAAEU,YAAY,CAACE,SAAb,CAAuBf,CAAvB,EAA0BgB,QAFtC;AAGE,MAAA,KAAK,EAAEH,YAAY,CAACE,SAAb,CAAuBf,CAAvB,EAA0BiB;AAHnC,OACOjB,CADP;AAAA;AAAA;AAAA;AAAA,YADF;AAOD;;AACD,sBACE;AAAS,IAAA,EAAE,EAAC,OAAZ;AAAA,4BACE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,YADF,eAEE;AAAK,MAAA,EAAE,EAAC,YAAR;AAAA,gBACKD;AADL;AAAA;AAAA;AAAA;AAAA,YAFF;AAAA;AAAA;AAAA;AAAA;AAAA,UADF;AAQD;;MApBQa,S;;AAsBT,SAASM,UAAT,CAAoBvB,KAApB,EAA2B;AACzB,MAAII,KAAK,GAAG,EAAZ;;AACA,OAAK,IAAIC,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGL,KAAK,CAACsB,KAAN,CAAYf,MAAhC,EAAwCF,CAAC,EAAzC,EAA6C;AAC3CD,IAAAA,KAAK,CAACI,IAAN,eACE,QAAC,QAAD;AAEE,MAAA,IAAI,EAAER,KAAK,CAACsB,KAAN,CAAYjB,CAAZ;AAFR,OACOA,CADP;AAAA;AAAA;AAAA;AAAA,YADF;AAMD;;AACD,sBACE;AAAK,IAAA,EAAE,EAAC,YAAR;AAAA,4BACE;AAAA,gBAAKL,KAAK,CAACqB;AAAX;AAAA;AAAA;AAAA;AAAA,YADF,EAEGjB,KAFH;AAAA;AAAA;AAAA;AAAA;AAAA,UADF;AAMD;;MAhBQmB,U;;AAkBT,SAASC,QAAT,CAAkBxB,KAAlB,EAAyB;AACvB,sBACE;AAAA,2BACE;AAAG,MAAA,IAAI,EAAEA,KAAK,CAACyB,IAAN,CAAWf,GAApB;AAAyB,MAAA,SAAS,EAAC,sCAAnC;AAAA,gBAA2EV,KAAK,CAACyB,IAAN,CAAWhB;AAAtF;AAAA;AAAA;AAAA;AAAA;AADF;AAAA;AAAA;AAAA;AAAA,UADF;AAKD;;MANQe,Q;;AAQT,SAASE,SAAT,GAAqB;AACnB,MAAIC,SAAS,GAAGC,YAAY,EAA5B;AACA,MAAIxB,KAAK,GAAG,EAAZ;;AACA,OAAK,IAAIC,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGsB,SAAS,CAACA,SAAV,CAAoBpB,MAAxC,EAAgDF,CAAC,EAAjD,EAAqD;AACnDD,IAAAA,KAAK,CAACI,IAAN,eACE,QAAC,QAAD;AAEE,MAAA,QAAQ,EAAEmB,SAAS,CAACA,SAAV,CAAoBtB,CAApB;AAFZ,OACOA,CADP;AAAA;AAAA;AAAA;AAAA,YADF;AAMD;;AACD,sBACE;AAAS,IAAA,EAAE,EAAC,OAAZ;AAAA,2BACE;AAAA,8BACE;AAAQ,QAAA,EAAE,EAAC,cAAX;AAAA,gCACE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,gBADF,eAEE;AAAG,UAAA,IAAI,EAAC,GAAR;AAAY,UAAA,KAAK,EAAC,OAAlB;AAA0B,UAAA,SAAS,EAAC,aAApC;AAAA,iCACE;AAAM,YAAA,SAAS,EAAC,SAAhB;AAA0B,yBAAU;AAApC;AAAA;AAAA;AAAA;AAAA;AADF;AAAA;AAAA;AAAA;AAAA,gBAFF;AAAA;AAAA;AAAA;AAAA;AAAA,cADF,eAQE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,cARF,eAUE;AAAK,QAAA,EAAE,EAAC,aAAR;AAAA,gCACE;AAAQ,wBAAW,YAAnB;AAAgC,UAAA,SAAS,EAAC,+BAA1C;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,gBADF,eAEE;AAAQ,wBAAW,SAAnB;AAA6B,UAAA,SAAS,EAAC,4BAAvC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,gBAFF,eAGE;AAAQ,wBAAW,UAAnB;AAA8B,UAAA,SAAS,EAAC,6BAAxC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,gBAHF,eAIE;AAAQ,wBAAW,KAAnB;AAAyB,UAAA,SAAS,EAAC,wBAAnC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,gBAJF,eAKE;AAAQ,wBAAW,OAAnB;AAA2B,UAAA,SAAS,EAAC,0BAArC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,gBALF,eAME;AAAQ,wBAAW,MAAnB;AAA0B,UAAA,SAAS,EAAC,yBAApC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,gBANF,eAOE;AAAQ,wBAAW,SAAnB;AAA6B,UAAA,SAAS,EAAC,4BAAvC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,gBAPF,eAQE;AAAQ,wBAAW,OAAnB;AAA2B,UAAA,SAAS,EAAC,0BAArC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,gBARF,eASE;AAAQ,wBAAW,OAAnB;AAA2B,UAAA,SAAS,EAAC,0BAArC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,gBATF,eAUE;AAAQ,wBAAW,MAAnB;AAA0B,UAAA,SAAS,EAAC,yBAApC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,gBAVF,eAWE;AAAQ,wBAAW,OAAnB;AAA2B,UAAA,SAAS,EAAC,0BAArC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,gBAXF,eAYE;AAAQ,wBAAW,WAAnB;AAA+B,UAAA,SAAS,EAAC,8BAAzC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,gBAZF,eAaE;AAAQ,wBAAW,QAAnB;AAA4B,UAAA,SAAS,EAAC,0BAAtC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,gBAbF,eAcE;AAAQ,wBAAW,OAAnB;AAA2B,UAAA,SAAS,EAAC,0BAArC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,gBAdF,eAeE;AAAQ,wBAAW,OAAnB;AAA2B,UAAA,SAAS,EAAC,0BAArC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,gBAfF,eAgBE;AAAQ,wBAAW,MAAnB;AAA0B,UAAA,SAAS,EAAC,yBAApC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,gBAhBF;AAAA;AAAA;AAAA;AAAA;AAAA,cAVF,eA8BE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,cA9BF,eA+BI;AAAS,QAAA,EAAE,EAAC,WAAZ;AAAA,+BACE;AAAA,iCACE;AAAA,oCACE;AAAA,sCACE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,sBADF,eAEE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,sBAFF;AAAA;AAAA;AAAA;AAAA;AAAA,oBADF,EAKGD,KALH;AAAA;AAAA;AAAA;AAAA;AAAA;AADF;AAAA;AAAA;AAAA;AAAA;AADF;AAAA;AAAA;AAAA;AAAA,cA/BJ,eA2CE;AAAQ,QAAA,EAAE,EAAC,cAAX;AAAA,gCACE;AAAG,UAAA,IAAI,EAAC,kCAAR;AAAA,iCAA2C;AAAM,YAAA,SAAS,EAAC,SAAhB;AAA0B,yBAAU;AAApC;AAAA;AAAA;AAAA;AAAA;AAA3C;AAAA;AAAA;AAAA;AAAA,gBADF,eAEE;AAAG,UAAA,IAAI,EAAC,kCAAR;AAAA,iCAA2C;AAAM,YAAA,SAAS,EAAC,SAAhB;AAA0B,yBAAU;AAApC;AAAA;AAAA;AAAA;AAAA;AAA3C;AAAA;AAAA;AAAA;AAAA,gBAFF,eAGE;AAAK,UAAA,SAAS,EAAC,QAAf;AAAA,kCAAwB;AAAO,YAAA,IAAI,EAAC,UAAZ;AAAuB,YAAA,EAAE,EAAC,aAA1B;AAAwC,YAAA,QAAQ,EAAC;AAAjD;AAAA;AAAA;AAAA;AAAA,kBAAxB,eACA;AAAO,YAAA,GAAG,EAAC,aAAX;AAAA,mCAAyB;AAAM,cAAA,SAAS,EAAC,SAAhB;AAA0B,2BAAU;AAApC;AAAA;AAAA;AAAA;AAAA;AAAzB;AAAA;AAAA;AAAA;AAAA,kBADA;AAAA;AAAA;AAAA;AAAA;AAAA,gBAHF;AAAA;AAAA;AAAA;AAAA;AAAA,cA3CF;AAAA;AAAA;AAAA;AAAA;AAAA;AADF;AAAA;AAAA;AAAA;AAAA,UADF;AAsDD;;MAjEQsB,S;;AAmET,SAASG,QAAT,CAAkB7B,KAAlB,EAAyB;AACvB,sBACE;AAAA,4BACE;AAAA,6BAAI;AAAG,QAAA,IAAI,EAAEA,KAAK,CAAC8B,QAAN,CAAepB,GAAxB;AAAA,kBAA8BV,KAAK,CAAC8B,QAAN,CAAerB;AAA7C;AAAA;AAAA;AAAA;AAAA;AAAJ;AAAA;AAAA;AAAA;AAAA,YADF,eAEE;AAAA,gBAAKT,KAAK,CAAC8B,QAAN,CAAeC;AAApB;AAAA;AAAA;AAAA;AAAA,YAFF;AAAA;AAAA;AAAA;AAAA;AAAA,UADF;AAMD;;OAPQF,Q;;AAST,SAASG,SAAT,GAAqB;AACnB,sBACE;AAAK,IAAA,EAAE,EAAC,YAAR;AAAA,2BACE;AAAG,MAAA,SAAS,EAAC,KAAb;AAAmB,MAAA,IAAI,EAAC,QAAxB;AAAA,6BACE;AAAM,QAAA,SAAS,EAAC,cAAhB;AAA+B,qBAAU;AAAzC;AAAA;AAAA;AAAA;AAAA;AADF;AAAA;AAAA;AAAA;AAAA;AADF;AAAA;AAAA;AAAA;AAAA,UADF;AAOD;;OARQA,S;AAUTzC,QAAQ,CAAC0C,MAAT,eACE,QAAC,QAAD;AAAA;AAAA;AAAA;AAAA,QADF,EAEEC,QAAQ,CAACC,cAAT,CAAwB,MAAxB,CAFF,E,CAKA;AACA;;AAEA,SAAS1C,IAAT,GAAgB;AACd,MAAI2C,WAAW,GAAG,IAAIC,IAAJ,EAAlB;AACA,MAAIC,WAAW,GAAG;AAChBC,IAAAA,OAAO,EAAE,MADO;AAEhBC,IAAAA,IAAI,EAAE,SAFU;AAGhBC,IAAAA,KAAK,EAAE,MAHS;AAIhBC,IAAAA,GAAG,EAAE;AAJW,GAAlB;AAMA,MAAIjD,IAAI,GAAG2C,WAAW,CAACO,kBAAZ,CAA+B,OAA/B,EAAwCL,WAAxC,CAAX;AACA,SAAO7C,IAAP;AACD;;AACD,SAASmD,SAAT,CAAmBC,CAAnB,EAAsB;AACpB,MAAIA,CAAC,GAAG,EAAR,EAAY;AACV,WAAO,MAAMA,CAAb;AACD,GAFD,MAGK;AACH,WAAOA,CAAP;AACD;AACF;;AACD,SAASnD,KAAT,GAAiB;AACf,MAAIoD,WAAW,GAAG,IAAIT,IAAJ,EAAlB;AACA,MAAI3C,KAAK,GAAGqD,IAAI,CAACC,KAAL,CAAWF,WAAW,CAACG,QAAZ,KAAyB,CAApC,CAAZ;AACA,MAAIC,eAAe,GAAGH,IAAI,CAACC,KAAL,CAAWD,IAAI,CAACI,MAAL,KAAgB,GAA3B,CAAtB;;AACA,MAAIC,SAAS,GAAGC,OAAO,CAAC,iBAAD,CAAvB;;AACA,MAAIC,SAAS,GAAG,EAAhB;AACA,MAAIC,UAAU,GAAG,EAAjB;;AACA,OAAK,IAAIlD,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG+C,SAAS,CAACI,QAAV,CAAmBjD,MAAvC,EAA+CF,CAAC,EAAhD,EAAoD;AAClD,QAAI+C,SAAS,CAACI,QAAV,CAAmBnD,CAAnB,EAAsBoD,SAAtB,KAAoC,OAAxC,EAAiD;AAC/CH,MAAAA,SAAS,GAAGA,SAAS,CAACI,MAAV,CAAiBN,SAAS,CAACI,QAAV,CAAmBnD,CAAnB,CAAjB,CAAZ;AACD,KAFD,MAEO;AACLkD,MAAAA,UAAU,GAAGA,UAAU,CAACG,MAAX,CAAkBN,SAAS,CAACI,QAAV,CAAmBnD,CAAnB,CAAlB,CAAb;AACD;AACF;;AACD,MAAI6C,eAAe,GAAG,EAAtB,EAA0B;AACxB,WAAOI,SAAS,CAAC5D,KAAD,CAAT,CAAiBiE,OAAxB;AACD,GAFD,MAEO;AACL,QAAIC,aAAa,GAAGb,IAAI,CAACC,KAAL,CAAWD,IAAI,CAACI,MAAL,KAAgBI,UAAU,CAAChD,MAAtC,CAApB;AACA,WAAOgD,UAAU,CAACK,aAAD,CAAV,CAA0BD,OAAjC;AACD;AACF;;AACD,SAASE,KAAT,GAAiB;AAAA;;AACf,QAAM,CAACpE,IAAD,EAAOqE,OAAP,IAAkBzE,QAAQ,CAAC,IAAIgD,IAAJ,EAAD,CAAhC;;AAEA,WAAS0B,YAAT,GAAwB;AACtBD,IAAAA,OAAO,CAAC,IAAIzB,IAAJ,EAAD,CAAP;AACD;;AACD/C,EAAAA,SAAS,CAAC,MAAM;AACd,UAAM0E,OAAO,GAAGC,WAAW,CAACF,YAAD,EAAe,IAAf,CAA3B;AACA,WAAO,SAASG,OAAT,GAAmB;AACxBC,MAAAA,aAAa,CAACH,OAAD,CAAb;AACD,KAFD;AAGD,GALQ,EAKN,EALM,CAAT;AAOA,MAAII,IAAI,GAAG3E,IAAI,CAACwD,QAAL,EAAX;AACA,MAAIoB,OAAO,GAAG5E,IAAI,CAAC6E,UAAL,EAAd,CAde,CAef;;AACA,MAAIC,MAAM,GAAG,IAAb;AACAA,EAAAA,MAAM,GAAIH,IAAI,IAAI,EAAT,GAAe,IAAf,GAAsB,IAA/B;AACAA,EAAAA,IAAI,GAAIA,IAAI,KAAK,CAAV,GAAe,EAAf,GAAsBA,IAAI,GAAG,EAAR,GAAeA,IAAI,GAAG,EAAtB,GAA4BA,IAAxD;AACAC,EAAAA,OAAO,GAAGzB,SAAS,CAACyB,OAAD,CAAnB,CAnBe,CAoBf;;AACA,MAAIG,IAAI,GAAGJ,IAAI,GAAG,GAAP,GAAaC,OAAb,GAAuB,GAAvB,GAA6BE,MAAxC;AAEA,sBACE;AAAI,IAAA,EAAE,EAAC,OAAP;AAAA,cAAgBC;AAAhB;AAAA;AAAA;AAAA;AAAA,UADF;AAID;;GA3BQX,K;;OAAAA,K;;AA4BT,SAAS1D,OAAT,GAAmB;AACjB,MAAIsE,YAAY,GAAGpB,OAAO,CAAC,aAAD,CAA1B;;AACA,SAAOoB,YAAP;AACD;;AACD,SAAStD,QAAT,GAAoB;AAClB,MAAIG,KAAK,GAAG+B,OAAO,CAAC,cAAD,CAAnB;;AACA,SAAO/B,KAAP;AACD;;AACD,SAASM,YAAT,GAAwB;AACtB,MAAID,SAAS,GAAG0B,OAAO,CAAC,kBAAD,CAAvB;;AACA,SAAO1B,SAAP;AACD;;AAED,SAAS/B,cAAT,CAAwB8E,CAAxB,EAA0BC,KAA1B,EAAiC;AAC/B,MAAIC,MAAM,GAAG,CAAb;AACA,MAAIC,KAAK,GAAG,KAAZ;AACA,MAAIC,GAAG,GAAGJ,CAAC,CAACK,OAAF,IAAaL,CAAC,CAACM,KAAzB;AACA,MAAIC,IAAI,GAAGN,KAAK,CAACO,UAAN,CAAiB,GAAjB,EAAsB,KAAtB,CAAX;AACA,MAAIC,MAAM,GAAGF,IAAI,CAACG,MAAL,CAAY,CAAZ,EAAeH,IAAI,CAACI,OAAL,CAAa,GAAb,IAAoB,CAAnC,KAAyCJ,IAAI,CAACG,MAAL,CAAY,CAAZ,CAAtD;AACA,MAAIE,OAAO,GAAGL,IAAI,CAACG,MAAL,CAAY,IAAID,MAAM,CAAC5E,MAAvB,CAAd;;AACA,MAAIuE,GAAG,IAAI,EAAX,EAAe;AAAE;AACbS,IAAAA,MAAM,CAACN,IAAD,CAAN;AACH;;AACD,MAAIH,GAAG,IAAI,CAAX,EAAc;AAAE;AACZJ,IAAAA,CAAC,CAACc,cAAF;AACAd,IAAAA,CAAC,CAACe,eAAF;;AACA,QAAIR,IAAI,CAAC,CAAD,CAAJ,KAAY,GAAhB,EAAqB;AACjB,cAAQE,MAAR;AACI,aAAK,GAAL;AACI,cAAIO,SAAS,GAAG,CAAC,eAAD,EAAkB,aAAlB,EAAiC,QAAjC,CAAhB;;AACA,cAAI,CAACJ,OAAD,IAAYT,KAAhB,EAAuB;AACnBA,YAAAA,KAAK,GAAG,IAAR;AACA,gBAAID,MAAM,GAAGc,SAAS,CAACnF,MAAV,GAAmB,CAAhC,EAAmCqE,MAAM,GAAG,CAAT;AACnC1C,YAAAA,QAAQ,CAACC,cAAT,CAAwB,UAAxB,EAAoCwC,KAApC,GAA4C,QAAQe,SAAS,CAACd,MAAM,EAAP,CAA7D;AACA;AACH;;AACD,eAAK,IAAIe,QAAT,IAAqBD,SAArB,EAAgC;AAC5B,gBAAIJ,OAAO,KAAKK,QAAQ,CAACP,MAAT,CAAgB,CAAhB,EAAmBE,OAAO,CAAC/E,MAA3B,CAAhB,EAAoD;AAChD2B,cAAAA,QAAQ,CAACC,cAAT,CAAwB,UAAxB,EAAoCwC,KAApC,GAA4C,QAAQgB,QAApD;AACA;AACH;AACJ;;AACD;AAfR;AAiBH;AACJ;;AACD,MAAGb,GAAG,IAAI,EAAV,EAAa;AAAE;AACjBc,IAAAA,WAAW,CAACX,IAAD,CAAX;AACG;;AACDL,EAAAA,MAAM,GAAG,CAAT;AACAC,EAAAA,KAAK,GAAG,KAAR;AACAe,EAAAA,WAAW,CAACX,IAAD,CAAX;AACD;;AAED,SAASW,WAAT,CAAqBX,IAArB,EAA2B;AACzB,MAAIE,MAAM,GAAGF,IAAI,CAACG,MAAL,CAAY,CAAZ,EAAeH,IAAI,CAACI,OAAL,CAAa,GAAb,IAAoB,CAAnC,KAAyCJ,IAAI,CAACG,MAAL,CAAY,CAAZ,CAAtD;;AACA,MAAIH,IAAI,CAAC,CAAD,CAAJ,KAAY,GAAhB,EAAqB;AACvB;AACU,YAAQE,MAAR;AACI,WAAK,IAAL;AACIjD,QAAAA,QAAQ,CAACC,cAAT,CAAwB,YAAxB,EAAsC0D,SAAtC,GAAkD,iBAAlD;AACA;;AAChB,WAAK,GAAL;AACI3D,QAAAA,QAAQ,CAACC,cAAT,CAAwB,YAAxB,EAAsC0D,SAAtC,GAAkD,qBAAlD;AACA;;AACJ,WAAK,IAAL;AACI3D,QAAAA,QAAQ,CAACC,cAAT,CAAwB,YAAxB,EAAsC0D,SAAtC,GAAkD,gBAAlD;AACA;;AACJ,WAAK,GAAL;AACI3D,QAAAA,QAAQ,CAACC,cAAT,CAAwB,YAAxB,EAAsC0D,SAAtC,GAAkD,aAAlD;AACA;;AACJ,WAAK,GAAL;AACI3D,QAAAA,QAAQ,CAACC,cAAT,CAAwB,YAAxB,EAAsC0D,SAAtC,GAAkD,mBAAlD;AACA;;AACJ,WAAK,GAAL;AACI3D,QAAAA,QAAQ,CAACC,cAAT,CAAwB,YAAxB,EAAsC0D,SAAtC,GAAkD,eAAlD;AACA;;AACJ,WAAK,GAAL;AACI3D,QAAAA,QAAQ,CAACC,cAAT,CAAwB,YAAxB,EAAsC0D,SAAtC,GAAkD,cAAlD;AACA;;AACJ,WAAK,IAAL;AACI3D,QAAAA,QAAQ,CAACC,cAAT,CAAwB,YAAxB,EAAsC0D,SAAtC,GAAkD,mBAAlD;AACA;;AACJ,WAAK,GAAL;AACI3D,QAAAA,QAAQ,CAACC,cAAT,CAAwB,YAAxB,EAAsC0D,SAAtC,GAAkD,gBAAlD;AACA;;AACJ,WAAK,IAAL;AACI3D,QAAAA,QAAQ,CAACC,cAAT,CAAwB,YAAxB,EAAsC0D,SAAtC,GAAkD,gBAAlD;AACA;;AACJ,WAAK,GAAL;AACI3D,QAAAA,QAAQ,CAACC,cAAT,CAAwB,YAAxB,EAAsC0D,SAAtC,GAAkD,cAAlD;AACA;;AACJ,WAAK,GAAL;AACI3D,QAAAA,QAAQ,CAACC,cAAT,CAAwB,YAAxB,EAAsC0D,SAAtC,GAAkD,gBAAlD;AACA;;AACJ,WAAK,GAAL;AACI3D,QAAAA,QAAQ,CAACC,cAAT,CAAwB,YAAxB,EAAsC0D,SAAtC,GAAkD,kBAAlD;AACA;;AACJ,WAAK,GAAL;AACI3D,QAAAA,QAAQ,CAACC,cAAT,CAAwB,YAAxB,EAAsC0D,SAAtC,GAAkD,aAAlD;AACA;;AACJ,WAAK,IAAL;AACI3D,QAAAA,QAAQ,CAACC,cAAT,CAAwB,YAAxB,EAAsC0D,SAAtC,GAAkD,wBAAlD;AACA;;AACJ;AACI3D,QAAAA,QAAQ,CAACC,cAAT,CAAwB,YAAxB,EAAsC0D,SAAtC,GAAkD,gBAAlD;AACA;AAhDI;AAkDT,GApDC,MAoDI;AACJ3D,IAAAA,QAAQ,CAACC,cAAT,CAAwB,YAAxB,EAAsC0D,SAAtC,GAAkD,eAAlD;AACC;AACF;;AAED,SAASN,MAAT,CAAgBN,IAAhB,EAAsB;AACpB,MAAIE,MAAM,GAAGF,IAAI,CAACG,MAAL,CAAY,CAAZ,EAAeH,IAAI,CAACI,OAAL,CAAa,GAAb,IAAoB,CAAnC,KAAyCJ,IAAI,CAACG,MAAL,CAAY,CAAZ,CAAtD;AACA,MAAIE,OAAO,GAAGL,IAAI,CAACG,MAAL,CAAY,IAAID,MAAM,CAAC5E,MAAvB,CAAd;;AACA,MAAI0E,IAAI,CAAC,CAAD,CAAJ,KAAY,GAAhB,EAAqB;AACjB,QAAIA,IAAI,CAACI,OAAL,CAAa,GAAb,IAAoB,CAAC,CAAzB,EAA4B;AACxB,cAAQF,MAAR;AACI,aAAK,IAAL;AACIW,UAAAA,MAAM,CAACC,QAAP,GAAkB,yCAAyCT,OAA3D;AACA;;AACJ,aAAK,GAAL;AACIQ,UAAAA,MAAM,CAACC,QAAP,GAAkB,+BAA+BT,OAAjD;AACA;;AACJ,aAAK,IAAL;AACIQ,UAAAA,MAAM,CAACC,QAAP,GAAkB,uCAAuCT,OAAzD;AACA;;AACJ,aAAK,GAAL;AACIQ,UAAAA,MAAM,CAACC,QAAP,GAAkB,iCAAiCT,OAAnD;AACA;;AACJ,aAAK,GAAL;AACIQ,UAAAA,MAAM,CAACC,QAAP,GAAkB,6CAA6CT,OAA/D;AACA;;AACJ,aAAK,GAAL;AACIQ,UAAAA,MAAM,CAACC,QAAP,GAAkB,qCAAqCT,OAAvD;AACA;;AACJ,aAAK,GAAL;AACIQ,UAAAA,MAAM,CAACC,QAAP,GAAkB,8BAA8BT,OAAhD;AACA;;AACJ,aAAK,IAAL;AACIQ,UAAAA,MAAM,CAACC,QAAP,GAAkB,qCAAqCT,OAAvD;AACA;;AACJ,aAAK,GAAL;AACIQ,UAAAA,MAAM,CAACC,QAAP,GAAkB,6CAA6CT,OAA/D;AACA;;AACJ,aAAK,GAAL;AACIQ,UAAAA,MAAM,CAACC,QAAP,GAAkB,mCAAmCT,OAArD;AACA;;AACJ,aAAK,IAAL;AACIQ,UAAAA,MAAM,CAACC,QAAP,GAAkB,0CAA0CT,OAA5D;AACA;;AACJ,aAAK,GAAL;AACIQ,UAAAA,MAAM,CAACC,QAAP,GAAkB,kDAAkDT,OAApE;AACA;;AACJ,aAAK,GAAL;AACIQ,UAAAA,MAAM,CAACC,QAAP,GAAkB,iDAAiDT,OAAnE;AACA;;AACJ,aAAK,GAAL;AACIQ,UAAAA,MAAM,CAACC,QAAP,GAAkB,iDAAiDT,OAAnE;AACA;;AACJ,aAAK,IAAL;AACIQ,UAAAA,MAAM,CAACC,QAAP,GAAkB,kDAAkDT,OAApE;AACA;AA7CR;AA+CH,KAhDD,MAgDO;AACH,UAAIH,MAAM,GAAGF,IAAI,CAACG,MAAL,CAAY,CAAZ,CAAb;;AACA,cAAQD,MAAR;AACI,aAAK,GAAL;AACIW,UAAAA,MAAM,CAACC,QAAP,GAAkB,4BAAlB;AACA;;AACJ,aAAK,GAAL;AACID,UAAAA,MAAM,CAACC,QAAP,GAAkB,yBAAlB;AACA;;AACJ,aAAK,GAAL;AACID,UAAAA,MAAM,CAACC,QAAP,GAAkB,oBAAlB;AACA;;AACJ,aAAK,GAAL;AACID,UAAAA,MAAM,CAACC,QAAP,GAAkB,0BAAlB;AACA;AAZR;AAcH;AACJ,GAlED,MAkEO,IAAIC,QAAQ,CAACf,IAAD,CAAZ,EAAoB;AACvB,QAAIgB,gBAAgB,CAAChB,IAAD,CAApB,EACIa,MAAM,CAACC,QAAP,GAAkBd,IAAlB,CADJ,KAGIa,MAAM,CAACC,QAAP,GAAkB,aAAad,IAA/B;AACP,GALM,MAKA;AACHa,IAAAA,MAAM,CAACC,QAAP,GAAkB,qCAAqCd,IAAvD;AACH;AACF,C,CAED;;;AACA,SAASe,QAAT,CAAkBE,GAAlB,EAAuB;AACrB,MAAIC,OAAO,GAAG,IAAIC,MAAJ,CAAW,sBAAsB;AAC3C,oDADqB,GACgC;AACrD,+BAFqB,GAEW;AAChC,mCAHqB,GAGe;AACpC,4BAJqB,GAIQ;AAC7B,sBALU,EAKY,GALZ,CAAd,CADqB,CAMW;;AAChC,SAAO,CAAC,CAACD,OAAO,CAACE,IAAR,CAAaH,GAAb,CAAT;AACD;;AAED,SAASD,gBAAT,CAA0BC,GAA1B,EAA+B;AAC7B,MAAIC,OAAO,GAAG,IAAIC,MAAJ,CAAW,uBAAX,EAAoC,GAApC,CAAd;AACA,SAAO,CAAC,CAACD,OAAO,CAACE,IAAR,CAAaH,GAAb,CAAT;AACD;;AAEDI,MAAM,CAACC,SAAP,CAAiBrB,UAAjB,GAA8B,UAASK,MAAT,EAAiBiB,WAAjB,EAA8B;AAC1D,MAAIC,MAAM,GAAG,IAAb;AACA,SAAOA,MAAM,CAACC,KAAP,CAAanB,MAAb,EAAqBoB,IAArB,CAA0BH,WAA1B,CAAP;AACD,CAHD","sourcesContent":["import React from 'react';\nimport { useState, useEffect } from 'react';\nimport ReactDOM from 'react-dom';\n//import { unstable_createPortal } from 'react-dom';\nimport './index.css';\n\nfunction Homepage() {\n return (\n \n \n \n
\n \n \n
\n \n \n \n
\n \n \n
\n \n \n
\n \n );\n}\n\nfunction Search() {\n return (\n \n )\n}\n\nfunction Header(props) {\n return (\n \n );\n}\n\nfunction Applications() {\n let appList = getApps();\n var items = [];\n for (var i = 0; i < appList.apps.length; i++) {\n items.push(\n \n );\n }\n return (\n \n Applications
\n \n {items}\n
\n \n );\n}\n\nfunction App(props) {\n let classNameType = props.NSFW + \"-content\";\n let hrefUrl = \"https://\" + props.url;\n let iconName = \"mdi-\" + props.icon;\n return (\n \n );\n}\n\nfunction Bookmarks() {\n let bookmarkList = getLinks();\n var items = [];\n for (var i = 0; i < bookmarkList.bookmarks.length; i++) {\n items.push(\n \n );\n }\n return (\n \n Bookmarks
\n \n {items}\n
\n \n );\n}\n\nfunction LinkGroups(props) {\n var items = [];\n for (var i = 0; i < props.links.length; i++) {\n items.push(\n \n );\n }\n return (\n \n
{props.category}
\n {items}\n \n );\n}\n\nfunction LinkItem(props) {\n return (\n \n );\n}\n\nfunction ModalMenu() {\n var providers = getProviders();\n var items = [];\n for (var i = 0; i < providers.providers.length; i++) {\n items.push(\n \n );\n }\n return (\n \n \n \n\n
Color themes
\n\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n\n\n
Search options
\n
\n \n \n \n | Website | \n Prefix | \n
\n {items}\n \n
\n \n\n \n
\n \n );\n}\n\nfunction Provider(props) {\n return (\n \n | {props.provider.name} | \n {props.provider.prefix} | \n
\n );\n}\n\nfunction ModalInit() {\n return (\n \n );\n}\n\nReactDOM.render(\n ,\n document.getElementById('root')\n);\n\n//Functions below this line are for calculating data for\n//other functions\n\nfunction date() {\n let currentDate = new Date();\n let dateOptions = {\n weekday: \"long\",\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\"\n };\n let date = currentDate.toLocaleDateString(\"en-GB\", dateOptions);\n return date;\n}\nfunction fixDigits(k) {\n if (k < 10) {\n return \"0\" + k;\n }\n else {\n return k;\n }\n}\nfunction greet() {\n let currentTime = new Date();\n let greet = Math.floor(currentTime.getHours() / 6);\n let easterEggChance = Math.floor(Math.random() * 100);\n let greetings = require('./messages.json');\n let timeBased = [];\n let easterEggs = [];\n for (var i = 0; i < greetings.messages.length; i++) {\n if (greetings.messages[i].easteregg === \"FALSE\") {\n timeBased = timeBased.concat(greetings.messages[i]);\n } else {\n easterEggs = easterEggs.concat(greetings.messages[i]);\n }\n }\n if (easterEggChance > 10) {\n return timeBased[greet].message;\n } else {\n let easterEggText = Math.floor(Math.random() * easterEggs.length);\n return easterEggs[easterEggText].message;\n }\n}\nfunction Clock() {\n const [date, setDate] = useState(new Date());\n\n function refreshClock() {\n setDate(new Date());\n }\n useEffect(() => {\n const timerId = setInterval(refreshClock, 1000);\n return function cleanup() {\n clearInterval(timerId);\n };\n }, []);\n\n var hour = date.getHours();\n var minutes = date.getMinutes();\n //var seconds = date.getSeconds();\n var midday = \"AM\";\n midday = (hour >= 12) ? \"PM\" : \"AM\";\n hour = (hour === 0) ? 12 : ((hour > 12) ? (hour - 12) : hour);\n minutes = fixDigits(minutes);\n //seconds = fixDigits(seconds);\n let time = hour + \":\" + minutes + \" \" + midday;\n\n return (\n {time}
\n\n );\n}\nfunction getApps() {\n let applications = require('./apps.json');\n return applications;\n}\nfunction getLinks() {\n let links = require('./links.json');\n return links;\n}\nfunction getProviders() {\n let providers = require('./providers.json');\n return providers;\n}\n\nfunction handleKeyPress(e,value) {\n var sindex = 0;\n var cycle = false;\n var key = e.keyCode || e.which;\n var text = value.replaceAll(\"+\", \"%2B\");\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n if (key == 13) { // Search functions\n search(text);\n }\n if (key == 9) { // Tab Completion Functions\n e.preventDefault();\n e.stopPropagation();\n if (text[0] === ';') {\n switch (option) {\n case 't':\n var streamers = ['admiralbahroo', 'moonmoon_ow', 'witwix'];\n if (!subtext || cycle) {\n cycle = true;\n if (sindex > streamers.length - 1) sindex = 0;\n document.getElementById(\"keywords\").value = ';t ' + streamers[sindex++];\n return;\n }\n for (var streamer of streamers) {\n if (subtext === streamer.substr(0, subtext.length)) {\n document.getElementById(\"keywords\").value = ';t ' + streamer;\n return;\n }\n }\n break;\n }\n }\n }\n if(key == 32){ //Space to go to search\nupdateLabel(text);\n }\n sindex = 0;\n cycle = false;\n updateLabel(text);\n}\n\nfunction updateLabel(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n if (text[0] === '/') {\n// if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n document.getElementById(\"searchType\").innerHTML = \"Allmusic search\";\n break;\n case \"d\":\n document.getElementById(\"searchType\").innerHTML = \"Duck Duck Go search\";\n break;\n case \"di\":\n document.getElementById(\"searchType\").innerHTML = \"Discogs search\";\n break;\n case \"i\":\n document.getElementById(\"searchType\").innerHTML = \"IMDB search\";\n break;\n case \"m\":\n document.getElementById(\"searchType\").innerHTML = \"TheMovieDB search\";\n break;\n case \"r\":\n document.getElementById(\"searchType\").innerHTML = \"Reddit search\";\n break;\n case \"q\":\n document.getElementById(\"searchType\").innerHTML = \"Qwant search\";\n break;\n case \"so\":\n document.getElementById(\"searchType\").innerHTML = \"Soundcloud search\";\n break;\n case \"s\":\n document.getElementById(\"searchType\").innerHTML = \"Spotify search\";\n break;\n case \"tv\":\n document.getElementById(\"searchType\").innerHTML = \"TheTVDB search\";\n break;\n case \"t\":\n document.getElementById(\"searchType\").innerHTML = \"Trakt search\";\n break;\n case \"y\":\n document.getElementById(\"searchType\").innerHTML = \"YouTube search\";\n break;\n case \"w\":\n document.getElementById(\"searchType\").innerHTML = \"Wikipedia search\";\n break;\n case \"p\":\n document.getElementById(\"searchType\").innerHTML = \"Plex search\";\n break;\n case \"rt\":\n document.getElementById(\"searchType\").innerHTML = \"Rotten Tomatoes search\";\n break;\n default:\n document.getElementById(\"searchType\").innerHTML = \"Invalid search\";\n break;\n }\n}else {\n document.getElementById(\"searchType\").innerHTML = \"Google search\";\n }\n}\n\nfunction search(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n if (text[0] === '/') {\n if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n window.location = \"https://www.allmusic.com/search/all/\" + subtext;\n break;\n case \"d\":\n window.location = \"https://duckduckgo.com/?q=\" + subtext;\n break;\n case \"di\":\n window.location = \"https://www.discogs.com/search/?q=\" + subtext;\n break;\n case \"i\":\n window.location = \"https://www.imdb.com/find?q=\" + subtext;\n break;\n case \"m\":\n window.location = \"https://www.themoviedb.org/search?query=\" + subtext;\n break;\n case \"r\":\n window.location = \"https://www.reddit.com/search?q=\" + subtext;\n break;\n case \"q\":\n window.location = \"https://www.qwant.com/?q=\" + subtext;\n break;\n case \"so\":\n window.location = \"https://soundcloud.com/search?q=\" + subtext;\n break;\n case \"s\":\n window.location = \"https://open.spotify.com/search/results/\" + subtext;\n break;\n case \"t\":\n window.location = \"https://trakt.tv/search?query=\" + subtext;\n break;\n case \"tv\":\n window.location = \"https://www.thetvdb.com/search?query=\" + subtext;\n break;\n case \"y\":\n window.location = \"https://www.youtube.com/results?search_query=\" + subtext;\n break;\n case \"w\":\n window.location = \"https://en.wikipedia.org/w/index.php?search=\" + subtext;\n break;\n case \"p\":\n window.location = \"https://app.plex.tv/desktop/#!/search?query=\" + subtext;\n break;\n case \"rt\":\n window.location = \"https://www.rottentomatoes.com/search?search=\" + subtext;\n break;\n }\n } else {\n var option = text.substr(1);\n switch (option) {\n case \"d\":\n window.location = \"https://www.duckduckgo.com\";\n break;\n case \"y\":\n window.location = \"https://www.youtube.com\";\n break;\n case \"r\":\n window.location = \"https://reddit.com\";\n break;\n case \"s\":\n window.location = \"https://open.spotify.com\";\n break;\n }\n }\n } else if (validURL(text)) {\n if (containsProtocol(text))\n window.location = text;\n else\n window.location = \"https://\" + text;\n } else {\n window.location = \"https://www.google.com/search?q=\" + text;\n }\n}\n\n// Source: https://stackoverflow.com/questions/5717093/check-if-a-javascript-string-is-a-url\nfunction validURL(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/)?' + // protocol\n '((([a-z\\\\d]([a-z\\\\d-]*[a-z\\\\d])*)\\\\.)+[a-z]{2,}|' + // domain name\n '((\\\\d{1,3}\\\\.){3}\\\\d{1,3}))' + // OR ip (v4) address\n '(\\\\:\\\\d+)?(\\\\/[-a-z\\\\d%_.~+]*)*' + // port and path\n '(\\\\?[;&a-z\\\\d%_.~+=-]*)?' + // query string\n '(\\\\#[-a-z\\\\d_]*)?$', 'i'); // fragment locator\n return !!pattern.test(str);\n}\n\nfunction containsProtocol(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/){1}.*', 'i');\n return !!pattern.test(str);\n}\n\nString.prototype.replaceAll = function(search, replacement) {\n var target = this;\n return target.split(search).join(replacement);\n};"]},"metadata":{},"sourceType":"module"}
\ No newline at end of file
diff --git a/node_modules/.cache/babel-loader/7e61d5b36084a1fd26f24efca2c3d9b3.json b/node_modules/.cache/babel-loader/7e61d5b36084a1fd26f24efca2c3d9b3.json
new file mode 100644
index 00000000..5c8da032
--- /dev/null
+++ b/node_modules/.cache/babel-loader/7e61d5b36084a1fd26f24efca2c3d9b3.json
@@ -0,0 +1 @@
+{"ast":null,"code":"var _jsxFileName = \"/home/seanedmunds/dev/home-page/src/index.js\",\n _s = $RefreshSig$();\n\nimport React from 'react';\nimport { useState, useEffect } from 'react';\nimport ReactDOM from 'react-dom';\nimport './index.css';\nimport { jsxDEV as _jsxDEV } from \"react/jsx-dev-runtime\";\n\nconst setValueFromLocalStorage = property => {\n let value = localStorage.getItem(property);\n setValue(property, value);\n};\n\nconst setValue = (property, value) => {\n if (value) {\n document.documentElement.style.setProperty(`--${property}`, value);\n const input = document.querySelector(`#${property}`);\n\n if (input) {\n value = value.replace('px', '');\n input.value = value;\n }\n }\n};\n\nfunction Homepage() {\n setTheme();\n return /*#__PURE__*/_jsxDEV(\"main\", {\n id: \"container\",\n className: \"fade\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Search, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 28,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 27,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Header, {\n date: date(),\n greet: greet()\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 31,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 30,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Applications, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 37,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 36,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Bookmarks, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 40,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 39,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(ModalMenu, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 43,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 42,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(ModalInit, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 46,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 45,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 26,\n columnNumber: 5\n }, this);\n}\n\n_c = Homepage;\n\nfunction Search() {\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"search\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"abackground\",\n children: [/*#__PURE__*/_jsxDEV(\"input\", {\n name: \"keywords\",\n type: \"text\",\n className: \"keyword\",\n id: \"keywords\",\n size: \"50\",\n spellCheck: \"true\",\n placeholder: \"\"\n /*onFocus={this.placeholder = \"\"} onBlur={this.placeholder = ''}*/\n ,\n autoComplete: \"off\",\n autoFocus: true,\n onKeyUp: handleKeyPress\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 56,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n id: \"searchType\",\n className: \"Input-label\",\n children: \"Google search\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 57,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 55,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 54,\n columnNumber: 5\n }, this);\n}\n\n_c2 = Search;\n\nfunction Header(props) {\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"header\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n id: \"greeting_block\",\n children: /*#__PURE__*/_jsxDEV(\"h1\", {\n id: \"header_greet\",\n children: props.greet\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 67,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 66,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"date_block\",\n children: [/*#__PURE__*/_jsxDEV(\"h2\", {\n id: \"header_date\",\n children: props.date\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 70,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(Clock, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 71,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 69,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 65,\n columnNumber: 5\n }, this);\n}\n\n_c3 = Header;\n\nfunction Applications() {\n let appList = getApps();\n var items = [];\n\n for (var i = 0; i < appList.apps.length; i++) {\n var safe = appList.apps[i].NSFW;\n var NSFWEnabled = localStorage.getItem(\"contenttype\");\n\n if (safe === \"SAFE\") {\n items.push( /*#__PURE__*/_jsxDEV(App, {\n name: appList.apps[i].name,\n url: appList.apps[i].url,\n icon: appList.apps[i].icon,\n NSFW: appList.apps[i].NSFW\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 85,\n columnNumber: 9\n }, this));\n } else if (safe === \"NSFW\" && NSFWEnabled) {\n items.push( /*#__PURE__*/_jsxDEV(App, {\n name: appList.apps[i].name,\n url: appList.apps[i].url,\n icon: appList.apps[i].icon,\n NSFW: appList.apps[i].NSFW\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 95,\n columnNumber: 9\n }, this));\n } else {}\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"apps\",\n children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n children: \"Applications\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 110,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"apps_loop\",\n children: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 111,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 109,\n columnNumber: 5\n }, this);\n}\n\n_c4 = Applications;\n\nfunction App(props) {\n let classNameType = props.NSFW + \"-content\";\n let hrefUrl = \"https://\" + props.url;\n let iconName = \"mdi-\" + props.icon;\n return /*#__PURE__*/_jsxDEV(\"div\", {\n className: classNameType,\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: hrefUrl,\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_item\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_icon\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify icon\",\n \"data-icon\": iconName\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 128,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 127,\n columnNumber: 13\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_text\",\n children: [/*#__PURE__*/_jsxDEV(\"span\", {\n id: \"app-name\",\n children: props.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 131,\n columnNumber: 15\n }, this), /*#__PURE__*/_jsxDEV(\"span\", {\n id: \"app-address\",\n children: props.url\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 132,\n columnNumber: 15\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 130,\n columnNumber: 13\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 126,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 125,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 124,\n columnNumber: 7\n }, this);\n}\n\n_c5 = App;\n\nfunction Bookmarks() {\n let bookmarkList = getLinks();\n var items = [];\n\n for (var i = 0; i < bookmarkList.bookmarks.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(LinkGroups, {\n category: bookmarkList.bookmarks[i].category,\n links: bookmarkList.bookmarks[i].links\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 145,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"links\",\n children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n children: \"Bookmarks\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 154,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"links_loop\",\n children: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 155,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 153,\n columnNumber: 5\n }, this);\n}\n\n_c6 = Bookmarks;\n\nfunction LinkGroups(props) {\n var items = [];\n\n for (var i = 0; i < props.links.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(LinkItem, {\n link: props.links[i]\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 166,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"links_item\",\n children: [/*#__PURE__*/_jsxDEV(\"h4\", {\n children: props.category\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 174,\n columnNumber: 7\n }, this), items]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 173,\n columnNumber: 5\n }, this);\n}\n\n_c7 = LinkGroups;\n\nfunction LinkItem(props) {\n return /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: props.link.url,\n className: \"theme_color-border theme_text-select\",\n children: props.link.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 183,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 182,\n columnNumber: 5\n }, this);\n}\n\n_c8 = LinkItem;\n\nfunction ModalMenu() {\n var providers = getProviders();\n var items = [];\n\n for (var i = 0; i < providers.providers.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(Provider, {\n provider: providers.providers[i]\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 193,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"modal\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n children: [/*#__PURE__*/_jsxDEV(\"header\", {\n id: \"modal-header\",\n children: [/*#__PURE__*/_jsxDEV(\"h1\", {\n children: \"Options\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 203,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n href: \"#\",\n title: \"Close\",\n className: \"modal-close\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-close\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 205,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 204,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 202,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"h2\", {\n children: \"Color themes\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 209,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"modal-theme\",\n children: [/*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"blackboard\",\n className: \"theme-button theme-blackboard\",\n onClick: updateTheme,\n children: \"Blackboard\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 212,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"gazette\",\n className: \"theme-button theme-gazette\",\n onClick: updateTheme,\n children: \"Gazette\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 213,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"espresso\",\n className: \"theme-button theme-espresso\",\n onClick: updateTheme,\n children: \"Espresso\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 214,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cab\",\n className: \"theme-button theme-cab\",\n onClick: updateTheme,\n children: \"Cab\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 215,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cloud\",\n className: \"theme-button theme-cloud\",\n onClick: updateTheme,\n children: \"Cloud\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 216,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"lime\",\n className: \"theme-button theme-lime\",\n onClick: updateTheme,\n children: \"Lime\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 217,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"passion\",\n className: \"theme-button theme-passion\",\n onClick: updateTheme,\n children: \"Passion\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 218,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"blues\",\n className: \"theme-button theme-blues\",\n onClick: updateTheme,\n children: \"Blues\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 219,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"chalk\",\n className: \"theme-button theme-chalk\",\n onClick: updateTheme,\n children: \"Chalk\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 220,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"tron\",\n className: \"theme-button theme-tron\",\n onClick: updateTheme,\n children: \"Tron\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 221,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"paper\",\n className: \"theme-button theme-paper\",\n onClick: updateTheme,\n children: \"Paper\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 222,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cyberpunk\",\n className: \"theme-button theme-cyberpunk\",\n onClick: updateTheme,\n children: \"Cyberpunk\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 223,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"quadra\",\n className: \"theme-button theme-panam\",\n onClick: updateTheme,\n children: \"Quadra\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 224,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"panam\",\n className: \"theme-button theme-panam\",\n onClick: updateTheme,\n children: \"Panam\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 225,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"touch\",\n className: \"theme-button theme-touch\",\n onClick: updateTheme,\n children: \"Touch\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 226,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"peek\",\n className: \"theme-button theme-peek\",\n onClick: updateTheme,\n children: \"Peek\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 227,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 211,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"h2\", {\n children: \"Search options\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 231,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"providers\",\n children: /*#__PURE__*/_jsxDEV(\"table\", {\n children: /*#__PURE__*/_jsxDEV(\"tbody\", {\n children: [/*#__PURE__*/_jsxDEV(\"tr\", {\n children: [/*#__PURE__*/_jsxDEV(\"th\", {\n children: \"Website\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 236,\n columnNumber: 19\n }, this), /*#__PURE__*/_jsxDEV(\"th\", {\n children: \"Prefix\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 237,\n columnNumber: 19\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 235,\n columnNumber: 17\n }, this), items]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 234,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 233,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 232,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"header\", {\n id: \"modal-footer\",\n children: [/*#__PURE__*/_jsxDEV(\"a\", {\n href: \"https://github.com/jeroenpardon/\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-github-box\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 245,\n columnNumber: 54\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 245,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n href: \"https://materialdesignicons.com/\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-material-design\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 246,\n columnNumber: 54\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 246,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(HideButton, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 247,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 244,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 201,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 200,\n columnNumber: 5\n }, this);\n}\n\n_c9 = ModalMenu;\n\nfunction HideButton() {\n return /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"sneaky\",\n children: [/*#__PURE__*/_jsxDEV(\"input\", {\n type: \"checkbox\",\n id: \"contenttype\",\n checked: setBoxCheckedFromLocalStorage('contenttype'),\n onChange: udpateDisplayedItems\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 257,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n for: \"contenttype\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-domino-mask\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 258,\n columnNumber: 32\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 258,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 256,\n columnNumber: 5\n }, this);\n}\n\n_c10 = HideButton;\n\nfunction Provider(props) {\n return /*#__PURE__*/_jsxDEV(\"tr\", {\n children: [/*#__PURE__*/_jsxDEV(\"td\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: props.provider.url,\n children: props.provider.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 266,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 266,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"td\", {\n children: props.provider.prefix\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 267,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 265,\n columnNumber: 5\n }, this);\n}\n\n_c11 = Provider;\n\nfunction ModalInit() {\n setDisplayedItems();\n return /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"modal_init\",\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n className: \"btn\",\n href: \"#modal\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify icon\",\n \"data-icon\": \"mdi-xbox-controller-menu\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 277,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 276,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 275,\n columnNumber: 5\n }, this);\n}\n\n_c12 = ModalInit;\nReactDOM.render( /*#__PURE__*/_jsxDEV(Homepage, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 284,\n columnNumber: 3\n}, this), document.getElementById('root')); //Functions below this line are for calculating data for\n//other functions\n\nfunction date() {\n let currentDate = new Date();\n let dateOptions = {\n weekday: \"long\",\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\"\n };\n let date = currentDate.toLocaleDateString(\"en-GB\", dateOptions);\n return date;\n}\n\nfunction fixDigits(k) {\n if (k < 10) {\n return \"0\" + k;\n } else {\n return k;\n }\n}\n\nfunction greet() {\n let currentTime = new Date();\n let greet = Math.floor(currentTime.getHours() / 6);\n let easterEggChance = Math.floor(Math.random() * 100);\n\n let greetings = require('./messages.json');\n\n let timeBased = [];\n let easterEggs = [];\n\n for (var i = 0; i < greetings.messages.length; i++) {\n if (greetings.messages[i].easteregg === \"FALSE\") {\n timeBased = timeBased.concat(greetings.messages[i]);\n } else {\n easterEggs = easterEggs.concat(greetings.messages[i]);\n }\n }\n\n if (easterEggChance > 10) {\n return timeBased[greet].message;\n } else {\n let easterEggText = Math.floor(Math.random() * easterEggs.length);\n return easterEggs[easterEggText].message;\n }\n}\n\nfunction Clock() {\n _s();\n\n const [date, setDate] = useState(new Date());\n\n function refreshClock() {\n setDate(new Date());\n }\n\n useEffect(() => {\n const timerId = setInterval(refreshClock, 1000);\n return function cleanup() {\n clearInterval(timerId);\n };\n }, []);\n var hour = date.getHours();\n var minutes = date.getMinutes(); //var seconds = date.getSeconds();\n\n var midday = \"AM\";\n midday = hour >= 12 ? \"PM\" : \"AM\";\n hour = hour === 0 ? 12 : hour > 12 ? hour - 12 : hour;\n minutes = fixDigits(minutes); //seconds = fixDigits(seconds);\n\n let time = hour + \":\" + minutes + \" \" + midday;\n return /*#__PURE__*/_jsxDEV(\"h2\", {\n id: \"clock\",\n children: time\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 355,\n columnNumber: 5\n }, this);\n}\n\n_s(Clock, \"Gqi45WOZhU2c0BLYX0HoJeiR0fk=\");\n\n_c13 = Clock;\n\nfunction getApps() {\n let applications = require('./apps.json');\n\n return applications;\n}\n\nfunction getLinks() {\n let links = require('./links.json');\n\n return links;\n}\n\nfunction getProviders() {\n let providers = require('./providers.json');\n\n return providers;\n}\n\nfunction getThemes() {\n let themes = require('./themes.json');\n\n return themes;\n}\n\nfunction updateTheme(e) {\n var themes = getThemes();\n var themeName = e.target.innerHTML.toLowerCase();\n var index = themes.themes.findIndex(function (item, i) {\n return item.name === themeName;\n });\n localStorage.setItem(\"image-background\", themes.themes[index].imagebackground);\n localStorage.setItem(\"color-background\", themes.themes[index].colorbackground);\n localStorage.setItem(\"color-search-background\", themes.themes[index].colorserachbackground);\n localStorage.setItem(\"color-text-pri\", themes.themes[index].colortextpri);\n localStorage.setItem(\"color-text-acc\", themes.themes[index].colortextacc);\n localStorage.setItem(\"color-border\", themes.themes[index].colorborder); //document.documentElement.style.setProperty(prop, `var(--${themeName}${prop.substring(10)})`);\n\n setTheme();\n}\n\nfunction setTheme() {\n setValueFromLocalStorage('image-background');\n setValueFromLocalStorage('color-background');\n setValueFromLocalStorage('color-search-background');\n setValueFromLocalStorage('color-text-pri');\n setValueFromLocalStorage('color-text-acc');\n setValueFromLocalStorage('color-border');\n setValueFromLocalStorage('content-display');\n}\n\nfunction handleKeyPress(e) {\n var sindex = 0;\n var cycle = false;\n var key = e.keyCode || e.which;\n var text = e.target.value.replaceAll(\"+\", \"%2B\");\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n\n if (key == 13) {\n // Search functions\n search(text);\n }\n\n if (key == 9) {\n // Tab Completion Functions\n e.preventDefault();\n e.stopPropagation();\n\n if (text[0] === ';') {\n switch (option) {\n case 't':\n var streamers = ['admiralbahroo', 'moonmoon_ow', 'witwix'];\n\n if (!subtext || cycle) {\n cycle = true;\n if (sindex > streamers.length - 1) sindex = 0;\n document.getElementById(\"keywords\").value = ';t ' + streamers[sindex++];\n return;\n }\n\n for (var streamer of streamers) {\n if (subtext === streamer.substr(0, subtext.length)) {\n document.getElementById(\"keywords\").value = ';t ' + streamer;\n return;\n }\n }\n\n break;\n }\n }\n }\n\n if (key == 32) {\n //Space to go to search\n updateLabel(text);\n }\n\n sindex = 0;\n cycle = false;\n updateLabel(text);\n}\n\nfunction updateLabel(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n\n if (text[0] === '/') {\n // if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n document.getElementById(\"searchType\").innerHTML = \"Allmusic search\";\n break;\n\n case \"d\":\n document.getElementById(\"searchType\").innerHTML = \"Duck Duck Go search\";\n break;\n\n case \"di\":\n document.getElementById(\"searchType\").innerHTML = \"Discogs search\";\n break;\n\n case \"i\":\n document.getElementById(\"searchType\").innerHTML = \"IMDB search\";\n break;\n\n case \"m\":\n document.getElementById(\"searchType\").innerHTML = \"TheMovieDB search\";\n break;\n\n case \"r\":\n document.getElementById(\"searchType\").innerHTML = \"Reddit search\";\n break;\n\n case \"q\":\n document.getElementById(\"searchType\").innerHTML = \"Qwant search\";\n break;\n\n case \"so\":\n document.getElementById(\"searchType\").innerHTML = \"Soundcloud search\";\n break;\n\n case \"s\":\n document.getElementById(\"searchType\").innerHTML = \"Spotify search\";\n break;\n\n case \"tv\":\n document.getElementById(\"searchType\").innerHTML = \"TheTVDB search\";\n break;\n\n case \"t\":\n document.getElementById(\"searchType\").innerHTML = \"Trakt search\";\n break;\n\n case \"y\":\n document.getElementById(\"searchType\").innerHTML = \"YouTube search\";\n break;\n\n case \"w\":\n document.getElementById(\"searchType\").innerHTML = \"Wikipedia search\";\n break;\n\n case \"p\":\n document.getElementById(\"searchType\").innerHTML = \"Plex search\";\n break;\n\n case \"rt\":\n document.getElementById(\"searchType\").innerHTML = \"Rotten Tomatoes search\";\n break;\n\n default:\n document.getElementById(\"searchType\").innerHTML = \"Invalid search\";\n break;\n }\n } else {\n document.getElementById(\"searchType\").innerHTML = \"Google search\";\n }\n}\n\nfunction search(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n\n if (text[0] === '/') {\n if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n window.location = \"https://www.allmusic.com/search/all/\" + subtext;\n break;\n\n case \"d\":\n window.location = \"https://duckduckgo.com/?q=\" + subtext;\n break;\n\n case \"di\":\n window.location = \"https://www.discogs.com/search/?q=\" + subtext;\n break;\n\n case \"i\":\n window.location = \"https://www.imdb.com/find?q=\" + subtext;\n break;\n\n case \"m\":\n window.location = \"https://www.themoviedb.org/search?query=\" + subtext;\n break;\n\n case \"r\":\n window.location = \"https://www.reddit.com/search?q=\" + subtext;\n break;\n\n case \"q\":\n window.location = \"https://www.qwant.com/?q=\" + subtext;\n break;\n\n case \"so\":\n window.location = \"https://soundcloud.com/search?q=\" + subtext;\n break;\n\n case \"s\":\n window.location = \"https://open.spotify.com/search/results/\" + subtext;\n break;\n\n case \"t\":\n window.location = \"https://trakt.tv/search?query=\" + subtext;\n break;\n\n case \"tv\":\n window.location = \"https://www.thetvdb.com/search?query=\" + subtext;\n break;\n\n case \"y\":\n window.location = \"https://www.youtube.com/results?search_query=\" + subtext;\n break;\n\n case \"w\":\n window.location = \"https://en.wikipedia.org/w/index.php?search=\" + subtext;\n break;\n\n case \"p\":\n window.location = \"https://app.plex.tv/desktop/#!/search?query=\" + subtext;\n break;\n\n case \"rt\":\n window.location = \"https://www.rottentomatoes.com/search?search=\" + subtext;\n break;\n }\n } else {\n var option = text.substr(1);\n\n switch (option) {\n case \"d\":\n window.location = \"https://www.duckduckgo.com\";\n break;\n\n case \"y\":\n window.location = \"https://www.youtube.com\";\n break;\n\n case \"r\":\n window.location = \"https://reddit.com\";\n break;\n\n case \"s\":\n window.location = \"https://open.spotify.com\";\n break;\n }\n }\n } else if (validURL(text)) {\n if (containsProtocol(text)) window.location = text;else window.location = \"https://\" + text;\n } else {\n window.location = \"https://www.google.com/search?q=\" + text;\n }\n}\n\nfunction validURL(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/)?' + // protocol\n '((([a-z\\\\d]([a-z\\\\d-]*[a-z\\\\d])*)\\\\.)+[a-z]{2,}|' + // domain name\n '((\\\\d{1,3}\\\\.){3}\\\\d{1,3}))' + // OR ip (v4) address\n '(\\\\:\\\\d+)?(\\\\/[-a-z\\\\d%_.~+]*)*' + // port and path\n '(\\\\?[;&a-z\\\\d%_.~+=-]*)?' + // query string\n '(\\\\#[-a-z\\\\d_]*)?$', 'i'); // fragment locator\n\n return !!pattern.test(str);\n}\n\nfunction containsProtocol(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/){1}.*', 'i');\n return !!pattern.test(str);\n}\n\nString.prototype.replaceAll = function (search, replacement) {\n var target = this;\n return target.split(search).join(replacement);\n};\n\nfunction udpateDisplayedItems(e) {\n console.log(e);\n localStorage.setItem('contenttype', e.target.checked);\n\n if (e.target.checked) {\n localStorage.setItem('content-display', 'none');\n } else {\n localStorage.setItem('content-display', 'block');\n }\n\n setDisplayedItems();\n}\n\nfunction setDisplayedItems() {\n setValueFromLocalStorage('contenttype');\n setValueFromLocalStorage('content-display');\n}\n\nvar _c, _c2, _c3, _c4, _c5, _c6, _c7, _c8, _c9, _c10, _c11, _c12, _c13;\n\n$RefreshReg$(_c, \"Homepage\");\n$RefreshReg$(_c2, \"Search\");\n$RefreshReg$(_c3, \"Header\");\n$RefreshReg$(_c4, \"Applications\");\n$RefreshReg$(_c5, \"App\");\n$RefreshReg$(_c6, \"Bookmarks\");\n$RefreshReg$(_c7, \"LinkGroups\");\n$RefreshReg$(_c8, \"LinkItem\");\n$RefreshReg$(_c9, \"ModalMenu\");\n$RefreshReg$(_c10, \"HideButton\");\n$RefreshReg$(_c11, \"Provider\");\n$RefreshReg$(_c12, \"ModalInit\");\n$RefreshReg$(_c13, \"Clock\");","map":{"version":3,"sources":["/home/seanedmunds/dev/home-page/src/index.js"],"names":["React","useState","useEffect","ReactDOM","setValueFromLocalStorage","property","value","localStorage","getItem","setValue","document","documentElement","style","setProperty","input","querySelector","replace","Homepage","setTheme","date","greet","Search","handleKeyPress","Header","props","Applications","appList","getApps","items","i","apps","length","safe","NSFW","NSFWEnabled","push","name","url","icon","App","classNameType","hrefUrl","iconName","Bookmarks","bookmarkList","getLinks","bookmarks","category","links","LinkGroups","LinkItem","link","ModalMenu","providers","getProviders","updateTheme","HideButton","setBoxCheckedFromLocalStorage","udpateDisplayedItems","Provider","provider","prefix","ModalInit","setDisplayedItems","render","getElementById","currentDate","Date","dateOptions","weekday","year","month","day","toLocaleDateString","fixDigits","k","currentTime","Math","floor","getHours","easterEggChance","random","greetings","require","timeBased","easterEggs","messages","easteregg","concat","message","easterEggText","Clock","setDate","refreshClock","timerId","setInterval","cleanup","clearInterval","hour","minutes","getMinutes","midday","time","applications","getThemes","themes","e","themeName","target","innerHTML","toLowerCase","index","findIndex","item","setItem","imagebackground","colorbackground","colorserachbackground","colortextpri","colortextacc","colorborder","sindex","cycle","key","keyCode","which","text","replaceAll","option","substr","indexOf","subtext","search","preventDefault","stopPropagation","streamers","streamer","updateLabel","window","location","validURL","containsProtocol","str","pattern","RegExp","test","String","prototype","replacement","split","join","console","log","checked"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { useState, useEffect } from 'react';\nimport ReactDOM from 'react-dom';\nimport './index.css';\n\nconst setValueFromLocalStorage = property => {\n let value = localStorage.getItem(property);\n setValue(property, value);\n};\nconst setValue = (property, value) => {\n if (value) {\n document.documentElement.style.setProperty(`--${property}`, value);\n\n const input = document.querySelector(`#${property}`);\n if (input) {\n value = value.replace('px', '');\n input.value = value;\n }\n }\n};\n\nfunction Homepage() {\n setTheme();\n \n return (\n \n \n \n
\n \n \n
\n \n \n \n
\n \n \n
\n \n \n
\n \n );\n}\n\nfunction Search() {\n return (\n \n )\n}\n\nfunction Header(props) {\n return (\n \n );\n}\n\nfunction Applications() {\n let appList = getApps();\n var items = [];\n for (var i = 0; i < appList.apps.length; i++) {\n var safe = appList.apps[i].NSFW;\n var NSFWEnabled = localStorage.getItem(\"contenttype\");\n if (safe === \"SAFE\") {\n items.push(\n \n );\n } else if (safe === \"NSFW\" && NSFWEnabled) {\n items.push(\n \n );\n } else {\n \n }\n \n }\n return (\n \n Applications
\n \n {items}\n
\n \n );\n}\n\nfunction App(props) {\n \n let classNameType = props.NSFW + \"-content\";\n let hrefUrl = \"https://\" + props.url;\n let iconName = \"mdi-\" + props.icon;\n return (\n \n );\n}\n\nfunction Bookmarks() {\n let bookmarkList = getLinks();\n var items = [];\n for (var i = 0; i < bookmarkList.bookmarks.length; i++) {\n items.push(\n \n );\n }\n return (\n \n Bookmarks
\n \n {items}\n
\n \n );\n}\n\nfunction LinkGroups(props) {\n var items = [];\n for (var i = 0; i < props.links.length; i++) {\n items.push(\n \n );\n }\n return (\n \n
{props.category}
\n {items}\n \n );\n}\n\nfunction LinkItem(props) {\n return (\n \n );\n}\n\nfunction ModalMenu() {\n var providers = getProviders();\n var items = [];\n for (var i = 0; i < providers.providers.length; i++) {\n items.push(\n \n );\n }\n return (\n \n \n \n\n
Color themes
\n\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n\n\n
Search options
\n
\n \n \n \n | Website | \n Prefix | \n
\n {items}\n \n
\n \n\n \n
\n \n );\n}\n\nfunction HideButton() {\n return(\n \n \n \n
\n );\n}\n\nfunction Provider(props) {\n return (\n \n | {props.provider.name} | \n {props.provider.prefix} | \n
\n );\n}\n\nfunction ModalInit() {\n setDisplayedItems();\n return (\n \n );\n}\n\nReactDOM.render(\n ,\n document.getElementById('root')\n);\n\n//Functions below this line are for calculating data for\n//other functions\n\nfunction date() {\n let currentDate = new Date();\n let dateOptions = {\n weekday: \"long\",\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\"\n };\n let date = currentDate.toLocaleDateString(\"en-GB\", dateOptions);\n return date;\n}\nfunction fixDigits(k) {\n if (k < 10) {\n return \"0\" + k;\n }\n else {\n return k;\n }\n}\nfunction greet() {\n let currentTime = new Date();\n let greet = Math.floor(currentTime.getHours() / 6);\n let easterEggChance = Math.floor(Math.random() * 100);\n let greetings = require('./messages.json');\n let timeBased = [];\n let easterEggs = [];\n for (var i = 0; i < greetings.messages.length; i++) {\n if (greetings.messages[i].easteregg === \"FALSE\") {\n timeBased = timeBased.concat(greetings.messages[i]);\n } else {\n easterEggs = easterEggs.concat(greetings.messages[i]);\n }\n }\n if (easterEggChance > 10) {\n return timeBased[greet].message;\n } else {\n let easterEggText = Math.floor(Math.random() * easterEggs.length);\n return easterEggs[easterEggText].message;\n }\n}\nfunction Clock() {\n const [date, setDate] = useState(new Date());\n\n function refreshClock() {\n setDate(new Date());\n }\n useEffect(() => {\n const timerId = setInterval(refreshClock, 1000);\n return function cleanup() {\n clearInterval(timerId);\n };\n }, []);\n\n var hour = date.getHours();\n var minutes = date.getMinutes();\n //var seconds = date.getSeconds();\n var midday = \"AM\";\n midday = (hour >= 12) ? \"PM\" : \"AM\";\n hour = (hour === 0) ? 12 : ((hour > 12) ? (hour - 12) : hour);\n minutes = fixDigits(minutes);\n //seconds = fixDigits(seconds);\n let time = hour + \":\" + minutes + \" \" + midday;\n\n return (\n {time}
\n\n );\n}\nfunction getApps() {\n let applications = require('./apps.json');\n return applications;\n}\nfunction getLinks() {\n let links = require('./links.json');\n return links;\n}\nfunction getProviders() {\n let providers = require('./providers.json');\n return providers;\n}\nfunction getThemes() {\n let themes = require('./themes.json');\n return themes;\n}\nfunction updateTheme(e) {\n var themes = getThemes();\n var themeName = e.target.innerHTML.toLowerCase();\n var index = themes.themes.findIndex(function(item, i){\n return item.name === themeName\n });\n localStorage.setItem(\"image-background\", themes.themes[index].imagebackground);\n localStorage.setItem(\"color-background\", themes.themes[index].colorbackground);\n localStorage.setItem(\"color-search-background\", themes.themes[index].colorserachbackground);\n localStorage.setItem(\"color-text-pri\",themes.themes[index].colortextpri);\n localStorage.setItem(\"color-text-acc\", themes.themes[index].colortextacc);\n localStorage.setItem(\"color-border\", themes.themes[index].colorborder);\n \n //document.documentElement.style.setProperty(prop, `var(--${themeName}${prop.substring(10)})`);\n setTheme();\n}\nfunction setTheme() {\n setValueFromLocalStorage('image-background');\n setValueFromLocalStorage('color-background');\n setValueFromLocalStorage('color-search-background');\n setValueFromLocalStorage('color-text-pri');\n setValueFromLocalStorage('color-text-acc');\n setValueFromLocalStorage('color-border');\n setValueFromLocalStorage('content-display');\n}\nfunction handleKeyPress(e) {\n var sindex = 0;\n var cycle = false;\n var key = e.keyCode || e.which;\n var text = e.target.value.replaceAll(\"+\", \"%2B\");\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n if (key == 13) { // Search functions\n search(text);\n }\n if (key == 9) { // Tab Completion Functions\n e.preventDefault();\n e.stopPropagation();\n if (text[0] === ';') {\n switch (option) {\n case 't':\n var streamers = ['admiralbahroo', 'moonmoon_ow', 'witwix'];\n if (!subtext || cycle) {\n cycle = true;\n if (sindex > streamers.length - 1) sindex = 0;\n document.getElementById(\"keywords\").value = ';t ' + streamers[sindex++];\n return;\n }\n for (var streamer of streamers) {\n if (subtext === streamer.substr(0, subtext.length)) {\n document.getElementById(\"keywords\").value = ';t ' + streamer;\n return;\n }\n }\n break;\n }\n }\n }\n if(key == 32){ //Space to go to search\nupdateLabel(text);\n }\n sindex = 0;\n cycle = false;\n updateLabel(text);\n}\nfunction updateLabel(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n if (text[0] === '/') {\n// if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n document.getElementById(\"searchType\").innerHTML = \"Allmusic search\";\n break;\n case \"d\":\n document.getElementById(\"searchType\").innerHTML = \"Duck Duck Go search\";\n break;\n case \"di\":\n document.getElementById(\"searchType\").innerHTML = \"Discogs search\";\n break;\n case \"i\":\n document.getElementById(\"searchType\").innerHTML = \"IMDB search\";\n break;\n case \"m\":\n document.getElementById(\"searchType\").innerHTML = \"TheMovieDB search\";\n break;\n case \"r\":\n document.getElementById(\"searchType\").innerHTML = \"Reddit search\";\n break;\n case \"q\":\n document.getElementById(\"searchType\").innerHTML = \"Qwant search\";\n break;\n case \"so\":\n document.getElementById(\"searchType\").innerHTML = \"Soundcloud search\";\n break;\n case \"s\":\n document.getElementById(\"searchType\").innerHTML = \"Spotify search\";\n break;\n case \"tv\":\n document.getElementById(\"searchType\").innerHTML = \"TheTVDB search\";\n break;\n case \"t\":\n document.getElementById(\"searchType\").innerHTML = \"Trakt search\";\n break;\n case \"y\":\n document.getElementById(\"searchType\").innerHTML = \"YouTube search\";\n break;\n case \"w\":\n document.getElementById(\"searchType\").innerHTML = \"Wikipedia search\";\n break;\n case \"p\":\n document.getElementById(\"searchType\").innerHTML = \"Plex search\";\n break;\n case \"rt\":\n document.getElementById(\"searchType\").innerHTML = \"Rotten Tomatoes search\";\n break;\n default:\n document.getElementById(\"searchType\").innerHTML = \"Invalid search\";\n break;\n }\n}else {\n document.getElementById(\"searchType\").innerHTML = \"Google search\";\n }\n}\nfunction search(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n if (text[0] === '/') {\n if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n window.location = \"https://www.allmusic.com/search/all/\" + subtext;\n break;\n case \"d\":\n window.location = \"https://duckduckgo.com/?q=\" + subtext;\n break;\n case \"di\":\n window.location = \"https://www.discogs.com/search/?q=\" + subtext;\n break;\n case \"i\":\n window.location = \"https://www.imdb.com/find?q=\" + subtext;\n break;\n case \"m\":\n window.location = \"https://www.themoviedb.org/search?query=\" + subtext;\n break;\n case \"r\":\n window.location = \"https://www.reddit.com/search?q=\" + subtext;\n break;\n case \"q\":\n window.location = \"https://www.qwant.com/?q=\" + subtext;\n break;\n case \"so\":\n window.location = \"https://soundcloud.com/search?q=\" + subtext;\n break;\n case \"s\":\n window.location = \"https://open.spotify.com/search/results/\" + subtext;\n break;\n case \"t\":\n window.location = \"https://trakt.tv/search?query=\" + subtext;\n break;\n case \"tv\":\n window.location = \"https://www.thetvdb.com/search?query=\" + subtext;\n break;\n case \"y\":\n window.location = \"https://www.youtube.com/results?search_query=\" + subtext;\n break;\n case \"w\":\n window.location = \"https://en.wikipedia.org/w/index.php?search=\" + subtext;\n break;\n case \"p\":\n window.location = \"https://app.plex.tv/desktop/#!/search?query=\" + subtext;\n break;\n case \"rt\":\n window.location = \"https://www.rottentomatoes.com/search?search=\" + subtext;\n break;\n }\n } else {\n var option = text.substr(1);\n switch (option) {\n case \"d\":\n window.location = \"https://www.duckduckgo.com\";\n break;\n case \"y\":\n window.location = \"https://www.youtube.com\";\n break;\n case \"r\":\n window.location = \"https://reddit.com\";\n break;\n case \"s\":\n window.location = \"https://open.spotify.com\";\n break;\n }\n }\n } else if (validURL(text)) {\n if (containsProtocol(text))\n window.location = text;\n else\n window.location = \"https://\" + text;\n } else {\n window.location = \"https://www.google.com/search?q=\" + text;\n }\n}\nfunction validURL(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/)?' + // protocol\n '((([a-z\\\\d]([a-z\\\\d-]*[a-z\\\\d])*)\\\\.)+[a-z]{2,}|' + // domain name\n '((\\\\d{1,3}\\\\.){3}\\\\d{1,3}))' + // OR ip (v4) address\n '(\\\\:\\\\d+)?(\\\\/[-a-z\\\\d%_.~+]*)*' + // port and path\n '(\\\\?[;&a-z\\\\d%_.~+=-]*)?' + // query string\n '(\\\\#[-a-z\\\\d_]*)?$', 'i'); // fragment locator\n return !!pattern.test(str);\n}\nfunction containsProtocol(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/){1}.*', 'i');\n return !!pattern.test(str);\n}\nString.prototype.replaceAll = function(search, replacement) {\n var target = this;\n return target.split(search).join(replacement);\n};\nfunction udpateDisplayedItems(e) {\n console.log(e);\n localStorage.setItem('contenttype', e.target.checked);\n if (e.target.checked) {\n localStorage.setItem('content-display', 'none');\n } else {\n localStorage.setItem('content-display', 'block');\n }\n setDisplayedItems();\n}\nfunction setDisplayedItems() {\n setValueFromLocalStorage('contenttype');\n setValueFromLocalStorage('content-display');\n}"]},"metadata":{},"sourceType":"module"}
\ No newline at end of file
diff --git a/node_modules/.cache/babel-loader/82f79a6448cc489252678466921db31c.json b/node_modules/.cache/babel-loader/82f79a6448cc489252678466921db31c.json
new file mode 100644
index 00000000..2e70d0de
--- /dev/null
+++ b/node_modules/.cache/babel-loader/82f79a6448cc489252678466921db31c.json
@@ -0,0 +1 @@
+{"ast":null,"code":"var _jsxFileName = \"/home/seanedmunds/dev/home-page/src/index.js\",\n _s = $RefreshSig$();\n\nimport React from 'react';\nimport { useState, useEffect } from 'react';\nimport ReactDOM from 'react-dom';\nimport './index.css';\nimport { jsxDEV as _jsxDEV } from \"react/jsx-dev-runtime\";\n\nconst setValueFromLocalStorage = property => {\n let value = localStorage.getItem(property);\n setValue(property, value);\n};\n\nconst setValue = (property, value) => {\n if (value) {\n document.documentElement.style.setProperty(`--${property}`, value);\n const input = document.querySelector(`#${property}`);\n\n if (input) {\n value = value.replace('px', '');\n input.value = value;\n }\n }\n};\n\nfunction Homepage() {\n setTheme();\n return /*#__PURE__*/_jsxDEV(\"main\", {\n id: \"container\",\n className: \"fade\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Search, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 28,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 27,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Header, {\n date: date(),\n greet: greet()\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 31,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 30,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Applications, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 37,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 36,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Bookmarks, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 40,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 39,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(ModalMenu, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 43,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 42,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(ModalInit, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 46,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 45,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 26,\n columnNumber: 5\n }, this);\n}\n\n_c = Homepage;\n\nfunction Search() {\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"search\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"abackground\",\n children: [/*#__PURE__*/_jsxDEV(\"input\", {\n name: \"keywords\",\n type: \"text\",\n className: \"keyword\",\n id: \"keywords\",\n size: \"50\",\n spellCheck: \"true\",\n placeholder: \"\"\n /*onFocus={this.placeholder = \"\"} onBlur={this.placeholder = ''}*/\n ,\n autoComplete: \"off\",\n autoFocus: true,\n onKeyUp: handleKeyPress\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 56,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n id: \"searchType\",\n className: \"Input-label\",\n children: \"Google search\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 57,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 55,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 54,\n columnNumber: 5\n }, this);\n}\n\n_c2 = Search;\n\nfunction Header(props) {\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"header\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n id: \"greeting_block\",\n children: /*#__PURE__*/_jsxDEV(\"h1\", {\n id: \"header_greet\",\n children: props.greet\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 67,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 66,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"date_block\",\n children: [/*#__PURE__*/_jsxDEV(\"h2\", {\n id: \"header_date\",\n children: props.date\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 70,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(Clock, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 71,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 69,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 65,\n columnNumber: 5\n }, this);\n}\n\n_c3 = Header;\n\nfunction Applications() {\n let appList = getApps();\n var items = [];\n\n for (var i = 0; i < appList.apps.length; i++) {\n var safe = appList.apps[i].NSFW;\n var NSFWEnabled = localStorage.getItem(\"contenttype\");\n\n if (safe === \"SAFE\") {\n items.push( /*#__PURE__*/_jsxDEV(App, {\n name: appList.apps[i].name,\n url: appList.apps[i].url,\n icon: appList.apps[i].icon,\n NSFW: appList.apps[i].NSFW\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 85,\n columnNumber: 9\n }, this));\n } else if (safe === \"NSFW\" && NSFWEnabled) {\n items.push( /*#__PURE__*/_jsxDEV(App, {\n name: appList.apps[i].name,\n url: appList.apps[i].url,\n icon: appList.apps[i].icon,\n NSFW: appList.apps[i].NSFW\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 95,\n columnNumber: 9\n }, this));\n } else {}\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"apps\",\n children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n children: \"Applications\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 110,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"apps_loop\",\n children: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 111,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 109,\n columnNumber: 5\n }, this);\n}\n\n_c4 = Applications;\n\nfunction App(props) {\n let classNameType = props.NSFW + \"-content\";\n let hrefUrl = \"https://\" + props.url;\n let iconName = \"mdi-\" + props.icon;\n return /*#__PURE__*/_jsxDEV(\"div\", {\n className: classNameType,\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: hrefUrl,\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_item\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_icon\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify icon\",\n \"data-icon\": iconName\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 128,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 127,\n columnNumber: 13\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_text\",\n children: [/*#__PURE__*/_jsxDEV(\"span\", {\n id: \"app-name\",\n children: props.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 131,\n columnNumber: 15\n }, this), /*#__PURE__*/_jsxDEV(\"span\", {\n id: \"app-address\",\n children: props.url\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 132,\n columnNumber: 15\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 130,\n columnNumber: 13\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 126,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 125,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 124,\n columnNumber: 7\n }, this);\n}\n\n_c5 = App;\n\nfunction Bookmarks() {\n let bookmarkList = getLinks();\n var items = [];\n\n for (var i = 0; i < bookmarkList.bookmarks.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(LinkGroups, {\n category: bookmarkList.bookmarks[i].category,\n links: bookmarkList.bookmarks[i].links\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 145,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"links\",\n children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n children: \"Bookmarks\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 154,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"links_loop\",\n children: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 155,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 153,\n columnNumber: 5\n }, this);\n}\n\n_c6 = Bookmarks;\n\nfunction LinkGroups(props) {\n var items = [];\n\n for (var i = 0; i < props.links.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(LinkItem, {\n link: props.links[i]\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 166,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"links_item\",\n children: [/*#__PURE__*/_jsxDEV(\"h4\", {\n children: props.category\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 174,\n columnNumber: 7\n }, this), items]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 173,\n columnNumber: 5\n }, this);\n}\n\n_c7 = LinkGroups;\n\nfunction LinkItem(props) {\n return /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: props.link.url,\n className: \"theme_color-border theme_text-select\",\n children: props.link.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 183,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 182,\n columnNumber: 5\n }, this);\n}\n\n_c8 = LinkItem;\n\nfunction ModalMenu() {\n var providers = getProviders();\n var items = [];\n var isChecked = localStorage.getItem(\"contenttype\");\n\n for (var i = 0; i < providers.providers.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(Provider, {\n provider: providers.providers[i]\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 194,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"modal\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n children: [/*#__PURE__*/_jsxDEV(\"header\", {\n id: \"modal-header\",\n children: [/*#__PURE__*/_jsxDEV(\"h1\", {\n children: \"Options\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 204,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n href: \"#\",\n title: \"Close\",\n className: \"modal-close\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-close\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 206,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 205,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 203,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"h2\", {\n children: \"Color themes\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 210,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"modal-theme\",\n children: [/*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"blackboard\",\n className: \"theme-button theme-blackboard\",\n onClick: updateTheme,\n children: \"Blackboard\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 213,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"gazette\",\n className: \"theme-button theme-gazette\",\n onClick: updateTheme,\n children: \"Gazette\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 214,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"espresso\",\n className: \"theme-button theme-espresso\",\n onClick: updateTheme,\n children: \"Espresso\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 215,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cab\",\n className: \"theme-button theme-cab\",\n onClick: updateTheme,\n children: \"Cab\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 216,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cloud\",\n className: \"theme-button theme-cloud\",\n onClick: updateTheme,\n children: \"Cloud\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 217,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"lime\",\n className: \"theme-button theme-lime\",\n onClick: updateTheme,\n children: \"Lime\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 218,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"passion\",\n className: \"theme-button theme-passion\",\n onClick: updateTheme,\n children: \"Passion\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 219,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"blues\",\n className: \"theme-button theme-blues\",\n onClick: updateTheme,\n children: \"Blues\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 220,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"chalk\",\n className: \"theme-button theme-chalk\",\n onClick: updateTheme,\n children: \"Chalk\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 221,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"tron\",\n className: \"theme-button theme-tron\",\n onClick: updateTheme,\n children: \"Tron\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 222,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"paper\",\n className: \"theme-button theme-paper\",\n onClick: updateTheme,\n children: \"Paper\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 223,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cyberpunk\",\n className: \"theme-button theme-cyberpunk\",\n onClick: updateTheme,\n children: \"Cyberpunk\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 224,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"quadra\",\n className: \"theme-button theme-panam\",\n onClick: updateTheme,\n children: \"Quadra\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 225,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"panam\",\n className: \"theme-button theme-panam\",\n onClick: updateTheme,\n children: \"Panam\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 226,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"touch\",\n className: \"theme-button theme-touch\",\n onClick: updateTheme,\n children: \"Touch\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 227,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"peek\",\n className: \"theme-button theme-peek\",\n onClick: updateTheme,\n children: \"Peek\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 228,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 212,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"h2\", {\n children: \"Search options\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 232,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"providers\",\n children: /*#__PURE__*/_jsxDEV(\"table\", {\n children: /*#__PURE__*/_jsxDEV(\"tbody\", {\n children: [/*#__PURE__*/_jsxDEV(\"tr\", {\n children: [/*#__PURE__*/_jsxDEV(\"th\", {\n children: \"Website\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 237,\n columnNumber: 19\n }, this), /*#__PURE__*/_jsxDEV(\"th\", {\n children: \"Prefix\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 238,\n columnNumber: 19\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 236,\n columnNumber: 17\n }, this), items]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 235,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 234,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 233,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"header\", {\n id: \"modal-footer\",\n children: [/*#__PURE__*/_jsxDEV(\"a\", {\n href: \"https://github.com/jeroenpardon/\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-github-box\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 246,\n columnNumber: 54\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 246,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n href: \"https://materialdesignicons.com/\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-material-design\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 247,\n columnNumber: 54\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 247,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(HideButton, {\n checked: isChecked\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 248,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 245,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 202,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 201,\n columnNumber: 5\n }, this);\n}\n\n_c9 = ModalMenu;\n\nfunction HideButton(props) {\n return /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"sneaky\",\n children: [/*#__PURE__*/_jsxDEV(\"input\", {\n type: \"checkbox\",\n id: \"contenttype\",\n onClick: udpateDisplayedItems,\n defaultChecked: props.checked\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 260,\n columnNumber: 29\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n for: \"contenttype\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-domino-mask\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 261,\n columnNumber: 30\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 261,\n columnNumber: 5\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 260,\n columnNumber: 5\n }, this);\n}\n\n_c10 = HideButton;\n\nfunction Provider(props) {\n return /*#__PURE__*/_jsxDEV(\"tr\", {\n children: [/*#__PURE__*/_jsxDEV(\"td\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: props.provider.url,\n children: props.provider.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 268,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 268,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"td\", {\n children: props.provider.prefix\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 269,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 267,\n columnNumber: 5\n }, this);\n}\n\n_c11 = Provider;\n\nfunction ModalInit() {\n setDisplayedItems();\n return /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"modal_init\",\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n className: \"btn\",\n href: \"#modal\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify icon\",\n \"data-icon\": \"mdi-xbox-controller-menu\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 279,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 278,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 277,\n columnNumber: 5\n }, this);\n}\n\n_c12 = ModalInit;\nReactDOM.render( /*#__PURE__*/_jsxDEV(Homepage, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 286,\n columnNumber: 3\n}, this), document.getElementById('root')); //Functions below this line are for calculating data for\n//other functions\n\nfunction date() {\n let currentDate = new Date();\n let dateOptions = {\n weekday: \"long\",\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\"\n };\n let date = currentDate.toLocaleDateString(\"en-GB\", dateOptions);\n return date;\n}\n\nfunction fixDigits(k) {\n if (k < 10) {\n return \"0\" + k;\n } else {\n return k;\n }\n}\n\nfunction greet() {\n let currentTime = new Date();\n let greet = Math.floor(currentTime.getHours() / 6);\n let easterEggChance = Math.floor(Math.random() * 100);\n\n let greetings = require('./messages.json');\n\n let timeBased = [];\n let easterEggs = [];\n\n for (var i = 0; i < greetings.messages.length; i++) {\n if (greetings.messages[i].easteregg === \"FALSE\") {\n timeBased = timeBased.concat(greetings.messages[i]);\n } else {\n easterEggs = easterEggs.concat(greetings.messages[i]);\n }\n }\n\n if (easterEggChance > 10) {\n return timeBased[greet].message;\n } else {\n let easterEggText = Math.floor(Math.random() * easterEggs.length);\n return easterEggs[easterEggText].message;\n }\n}\n\nfunction Clock() {\n _s();\n\n const [date, setDate] = useState(new Date());\n\n function refreshClock() {\n setDate(new Date());\n }\n\n useEffect(() => {\n const timerId = setInterval(refreshClock, 1000);\n return function cleanup() {\n clearInterval(timerId);\n };\n }, []);\n var hour = date.getHours();\n var minutes = date.getMinutes(); //var seconds = date.getSeconds();\n\n var midday = \"AM\";\n midday = hour >= 12 ? \"PM\" : \"AM\";\n hour = hour === 0 ? 12 : hour > 12 ? hour - 12 : hour;\n minutes = fixDigits(minutes); //seconds = fixDigits(seconds);\n\n let time = hour + \":\" + minutes + \" \" + midday;\n return /*#__PURE__*/_jsxDEV(\"h2\", {\n id: \"clock\",\n children: time\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 357,\n columnNumber: 5\n }, this);\n}\n\n_s(Clock, \"Gqi45WOZhU2c0BLYX0HoJeiR0fk=\");\n\n_c13 = Clock;\n\nfunction getApps() {\n let applications = require('./apps.json');\n\n return applications;\n}\n\nfunction getLinks() {\n let links = require('./links.json');\n\n return links;\n}\n\nfunction getProviders() {\n let providers = require('./providers.json');\n\n return providers;\n}\n\nfunction getThemes() {\n let themes = require('./themes.json');\n\n return themes;\n}\n\nfunction updateTheme(e) {\n var themes = getThemes();\n var themeName = e.target.innerHTML.toLowerCase();\n var index = themes.themes.findIndex(function (item, i) {\n return item.name === themeName;\n });\n localStorage.setItem(\"image-background\", themes.themes[index].imagebackground);\n localStorage.setItem(\"color-background\", themes.themes[index].colorbackground);\n localStorage.setItem(\"color-search-background\", themes.themes[index].colorserachbackground);\n localStorage.setItem(\"color-text-pri\", themes.themes[index].colortextpri);\n localStorage.setItem(\"color-text-acc\", themes.themes[index].colortextacc);\n localStorage.setItem(\"color-border\", themes.themes[index].colorborder); //document.documentElement.style.setProperty(prop, `var(--${themeName}${prop.substring(10)})`);\n\n setTheme();\n}\n\nfunction setTheme() {\n setValueFromLocalStorage('image-background');\n setValueFromLocalStorage('color-background');\n setValueFromLocalStorage('color-search-background');\n setValueFromLocalStorage('color-text-pri');\n setValueFromLocalStorage('color-text-acc');\n setValueFromLocalStorage('color-border');\n setValueFromLocalStorage('content-display');\n}\n\nfunction handleKeyPress(e) {\n var sindex = 0;\n var cycle = false;\n var key = e.keyCode || e.which;\n var text = e.target.value.replaceAll(\"+\", \"%2B\");\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n\n if (key == 13) {\n // Search functions\n search(text);\n }\n\n if (key == 9) {\n // Tab Completion Functions\n e.preventDefault();\n e.stopPropagation();\n\n if (text[0] === ';') {\n switch (option) {\n case 't':\n var streamers = ['admiralbahroo', 'moonmoon_ow', 'witwix'];\n\n if (!subtext || cycle) {\n cycle = true;\n if (sindex > streamers.length - 1) sindex = 0;\n document.getElementById(\"keywords\").value = ';t ' + streamers[sindex++];\n return;\n }\n\n for (var streamer of streamers) {\n if (subtext === streamer.substr(0, subtext.length)) {\n document.getElementById(\"keywords\").value = ';t ' + streamer;\n return;\n }\n }\n\n break;\n }\n }\n }\n\n if (key == 32) {\n //Space to go to search\n updateLabel(text);\n }\n\n sindex = 0;\n cycle = false;\n updateLabel(text);\n}\n\nfunction updateLabel(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n\n if (text[0] === '/') {\n // if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n document.getElementById(\"searchType\").innerHTML = \"Allmusic search\";\n break;\n\n case \"d\":\n document.getElementById(\"searchType\").innerHTML = \"Duck Duck Go search\";\n break;\n\n case \"di\":\n document.getElementById(\"searchType\").innerHTML = \"Discogs search\";\n break;\n\n case \"i\":\n document.getElementById(\"searchType\").innerHTML = \"IMDB search\";\n break;\n\n case \"m\":\n document.getElementById(\"searchType\").innerHTML = \"TheMovieDB search\";\n break;\n\n case \"r\":\n document.getElementById(\"searchType\").innerHTML = \"Reddit search\";\n break;\n\n case \"q\":\n document.getElementById(\"searchType\").innerHTML = \"Qwant search\";\n break;\n\n case \"so\":\n document.getElementById(\"searchType\").innerHTML = \"Soundcloud search\";\n break;\n\n case \"s\":\n document.getElementById(\"searchType\").innerHTML = \"Spotify search\";\n break;\n\n case \"tv\":\n document.getElementById(\"searchType\").innerHTML = \"TheTVDB search\";\n break;\n\n case \"t\":\n document.getElementById(\"searchType\").innerHTML = \"Trakt search\";\n break;\n\n case \"y\":\n document.getElementById(\"searchType\").innerHTML = \"YouTube search\";\n break;\n\n case \"w\":\n document.getElementById(\"searchType\").innerHTML = \"Wikipedia search\";\n break;\n\n case \"p\":\n document.getElementById(\"searchType\").innerHTML = \"Plex search\";\n break;\n\n case \"rt\":\n document.getElementById(\"searchType\").innerHTML = \"Rotten Tomatoes search\";\n break;\n\n default:\n document.getElementById(\"searchType\").innerHTML = \"Invalid search\";\n break;\n }\n } else {\n document.getElementById(\"searchType\").innerHTML = \"Google search\";\n }\n}\n\nfunction search(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n\n if (text[0] === '/') {\n if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n window.location = \"https://www.allmusic.com/search/all/\" + subtext;\n break;\n\n case \"d\":\n window.location = \"https://duckduckgo.com/?q=\" + subtext;\n break;\n\n case \"di\":\n window.location = \"https://www.discogs.com/search/?q=\" + subtext;\n break;\n\n case \"i\":\n window.location = \"https://www.imdb.com/find?q=\" + subtext;\n break;\n\n case \"m\":\n window.location = \"https://www.themoviedb.org/search?query=\" + subtext;\n break;\n\n case \"r\":\n window.location = \"https://www.reddit.com/search?q=\" + subtext;\n break;\n\n case \"q\":\n window.location = \"https://www.qwant.com/?q=\" + subtext;\n break;\n\n case \"so\":\n window.location = \"https://soundcloud.com/search?q=\" + subtext;\n break;\n\n case \"s\":\n window.location = \"https://open.spotify.com/search/results/\" + subtext;\n break;\n\n case \"t\":\n window.location = \"https://trakt.tv/search?query=\" + subtext;\n break;\n\n case \"tv\":\n window.location = \"https://www.thetvdb.com/search?query=\" + subtext;\n break;\n\n case \"y\":\n window.location = \"https://www.youtube.com/results?search_query=\" + subtext;\n break;\n\n case \"w\":\n window.location = \"https://en.wikipedia.org/w/index.php?search=\" + subtext;\n break;\n\n case \"p\":\n window.location = \"https://app.plex.tv/desktop/#!/search?query=\" + subtext;\n break;\n\n case \"rt\":\n window.location = \"https://www.rottentomatoes.com/search?search=\" + subtext;\n break;\n }\n } else {\n var option = text.substr(1);\n\n switch (option) {\n case \"d\":\n window.location = \"https://www.duckduckgo.com\";\n break;\n\n case \"y\":\n window.location = \"https://www.youtube.com\";\n break;\n\n case \"r\":\n window.location = \"https://reddit.com\";\n break;\n\n case \"s\":\n window.location = \"https://open.spotify.com\";\n break;\n }\n }\n } else if (validURL(text)) {\n if (containsProtocol(text)) window.location = text;else window.location = \"https://\" + text;\n } else {\n window.location = \"https://www.google.com/search?q=\" + text;\n }\n}\n\nfunction validURL(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/)?' + // protocol\n '((([a-z\\\\d]([a-z\\\\d-]*[a-z\\\\d])*)\\\\.)+[a-z]{2,}|' + // domain name\n '((\\\\d{1,3}\\\\.){3}\\\\d{1,3}))' + // OR ip (v4) address\n '(\\\\:\\\\d+)?(\\\\/[-a-z\\\\d%_.~+]*)*' + // port and path\n '(\\\\?[;&a-z\\\\d%_.~+=-]*)?' + // query string\n '(\\\\#[-a-z\\\\d_]*)?$', 'i'); // fragment locator\n\n return !!pattern.test(str);\n}\n\nfunction containsProtocol(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/){1}.*', 'i');\n return !!pattern.test(str);\n}\n\nString.prototype.replaceAll = function (search, replacement) {\n var target = this;\n return target.split(search).join(replacement);\n};\n\nfunction udpateDisplayedItems(e) {\n localStorage.setItem('contenttype', e.target.checked);\n\n if (e.target.checked) {\n localStorage.setItem('content-display', 'none');\n } else {\n localStorage.setItem('content-display', 'block');\n }\n\n setDisplayedItems();\n}\n\nfunction setDisplayedItems() {\n setValueFromLocalStorage('contenttype');\n setValueFromLocalStorage('content-display');\n}\n\nvar _c, _c2, _c3, _c4, _c5, _c6, _c7, _c8, _c9, _c10, _c11, _c12, _c13;\n\n$RefreshReg$(_c, \"Homepage\");\n$RefreshReg$(_c2, \"Search\");\n$RefreshReg$(_c3, \"Header\");\n$RefreshReg$(_c4, \"Applications\");\n$RefreshReg$(_c5, \"App\");\n$RefreshReg$(_c6, \"Bookmarks\");\n$RefreshReg$(_c7, \"LinkGroups\");\n$RefreshReg$(_c8, \"LinkItem\");\n$RefreshReg$(_c9, \"ModalMenu\");\n$RefreshReg$(_c10, \"HideButton\");\n$RefreshReg$(_c11, \"Provider\");\n$RefreshReg$(_c12, \"ModalInit\");\n$RefreshReg$(_c13, \"Clock\");","map":{"version":3,"sources":["/home/seanedmunds/dev/home-page/src/index.js"],"names":["React","useState","useEffect","ReactDOM","setValueFromLocalStorage","property","value","localStorage","getItem","setValue","document","documentElement","style","setProperty","input","querySelector","replace","Homepage","setTheme","date","greet","Search","handleKeyPress","Header","props","Applications","appList","getApps","items","i","apps","length","safe","NSFW","NSFWEnabled","push","name","url","icon","App","classNameType","hrefUrl","iconName","Bookmarks","bookmarkList","getLinks","bookmarks","category","links","LinkGroups","LinkItem","link","ModalMenu","providers","getProviders","isChecked","updateTheme","HideButton","udpateDisplayedItems","checked","Provider","provider","prefix","ModalInit","setDisplayedItems","render","getElementById","currentDate","Date","dateOptions","weekday","year","month","day","toLocaleDateString","fixDigits","k","currentTime","Math","floor","getHours","easterEggChance","random","greetings","require","timeBased","easterEggs","messages","easteregg","concat","message","easterEggText","Clock","setDate","refreshClock","timerId","setInterval","cleanup","clearInterval","hour","minutes","getMinutes","midday","time","applications","getThemes","themes","e","themeName","target","innerHTML","toLowerCase","index","findIndex","item","setItem","imagebackground","colorbackground","colorserachbackground","colortextpri","colortextacc","colorborder","sindex","cycle","key","keyCode","which","text","replaceAll","option","substr","indexOf","subtext","search","preventDefault","stopPropagation","streamers","streamer","updateLabel","window","location","validURL","containsProtocol","str","pattern","RegExp","test","String","prototype","replacement","split","join"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { useState, useEffect } from 'react';\nimport ReactDOM from 'react-dom';\nimport './index.css';\n\nconst setValueFromLocalStorage = property => {\n let value = localStorage.getItem(property);\n setValue(property, value);\n};\nconst setValue = (property, value) => {\n if (value) {\n document.documentElement.style.setProperty(`--${property}`, value);\n\n const input = document.querySelector(`#${property}`);\n if (input) {\n value = value.replace('px', '');\n input.value = value;\n }\n }\n};\n\nfunction Homepage() {\n setTheme();\n \n return (\n \n \n \n
\n \n \n
\n \n \n \n
\n \n \n
\n \n \n
\n \n );\n}\n\nfunction Search() {\n return (\n \n )\n}\n\nfunction Header(props) {\n return (\n \n );\n}\n\nfunction Applications() {\n let appList = getApps();\n var items = [];\n for (var i = 0; i < appList.apps.length; i++) {\n var safe = appList.apps[i].NSFW;\n var NSFWEnabled = localStorage.getItem(\"contenttype\");\n if (safe === \"SAFE\") {\n items.push(\n \n );\n } else if (safe === \"NSFW\" && NSFWEnabled) {\n items.push(\n \n );\n } else {\n \n }\n \n }\n return (\n \n Applications
\n \n {items}\n
\n \n );\n}\n\nfunction App(props) {\n \n let classNameType = props.NSFW + \"-content\";\n let hrefUrl = \"https://\" + props.url;\n let iconName = \"mdi-\" + props.icon;\n return (\n \n );\n}\n\nfunction Bookmarks() {\n let bookmarkList = getLinks();\n var items = [];\n for (var i = 0; i < bookmarkList.bookmarks.length; i++) {\n items.push(\n \n );\n }\n return (\n \n Bookmarks
\n \n {items}\n
\n \n );\n}\n\nfunction LinkGroups(props) {\n var items = [];\n for (var i = 0; i < props.links.length; i++) {\n items.push(\n \n );\n }\n return (\n \n
{props.category}
\n {items}\n \n );\n}\n\nfunction LinkItem(props) {\n return (\n \n );\n}\n\nfunction ModalMenu() {\n var providers = getProviders();\n var items = [];\n var isChecked = localStorage.getItem(\"contenttype\");\n for (var i = 0; i < providers.providers.length; i++) {\n items.push(\n \n );\n }\n return (\n \n \n \n\n
Color themes
\n\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n\n\n
Search options
\n
\n \n \n \n | Website | \n Prefix | \n
\n {items}\n \n
\n \n\n \n
\n \n );\n}\n\nfunction HideButton(props) {\n \n return (\n \n
\n );\n}\n\nfunction Provider(props) {\n return (\n \n | {props.provider.name} | \n {props.provider.prefix} | \n
\n );\n}\n\nfunction ModalInit() {\n setDisplayedItems();\n return (\n \n );\n}\n\nReactDOM.render(\n ,\n document.getElementById('root')\n);\n\n//Functions below this line are for calculating data for\n//other functions\n\nfunction date() {\n let currentDate = new Date();\n let dateOptions = {\n weekday: \"long\",\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\"\n };\n let date = currentDate.toLocaleDateString(\"en-GB\", dateOptions);\n return date;\n}\nfunction fixDigits(k) {\n if (k < 10) {\n return \"0\" + k;\n }\n else {\n return k;\n }\n}\nfunction greet() {\n let currentTime = new Date();\n let greet = Math.floor(currentTime.getHours() / 6);\n let easterEggChance = Math.floor(Math.random() * 100);\n let greetings = require('./messages.json');\n let timeBased = [];\n let easterEggs = [];\n for (var i = 0; i < greetings.messages.length; i++) {\n if (greetings.messages[i].easteregg === \"FALSE\") {\n timeBased = timeBased.concat(greetings.messages[i]);\n } else {\n easterEggs = easterEggs.concat(greetings.messages[i]);\n }\n }\n if (easterEggChance > 10) {\n return timeBased[greet].message;\n } else {\n let easterEggText = Math.floor(Math.random() * easterEggs.length);\n return easterEggs[easterEggText].message;\n }\n}\nfunction Clock() {\n const [date, setDate] = useState(new Date());\n\n function refreshClock() {\n setDate(new Date());\n }\n useEffect(() => {\n const timerId = setInterval(refreshClock, 1000);\n return function cleanup() {\n clearInterval(timerId);\n };\n }, []);\n\n var hour = date.getHours();\n var minutes = date.getMinutes();\n //var seconds = date.getSeconds();\n var midday = \"AM\";\n midday = (hour >= 12) ? \"PM\" : \"AM\";\n hour = (hour === 0) ? 12 : ((hour > 12) ? (hour - 12) : hour);\n minutes = fixDigits(minutes);\n //seconds = fixDigits(seconds);\n let time = hour + \":\" + minutes + \" \" + midday;\n\n return (\n {time}
\n\n );\n}\nfunction getApps() {\n let applications = require('./apps.json');\n return applications;\n}\nfunction getLinks() {\n let links = require('./links.json');\n return links;\n}\nfunction getProviders() {\n let providers = require('./providers.json');\n return providers;\n}\nfunction getThemes() {\n let themes = require('./themes.json');\n return themes;\n}\nfunction updateTheme(e) {\n var themes = getThemes();\n var themeName = e.target.innerHTML.toLowerCase();\n var index = themes.themes.findIndex(function(item, i){\n return item.name === themeName\n });\n localStorage.setItem(\"image-background\", themes.themes[index].imagebackground);\n localStorage.setItem(\"color-background\", themes.themes[index].colorbackground);\n localStorage.setItem(\"color-search-background\", themes.themes[index].colorserachbackground);\n localStorage.setItem(\"color-text-pri\",themes.themes[index].colortextpri);\n localStorage.setItem(\"color-text-acc\", themes.themes[index].colortextacc);\n localStorage.setItem(\"color-border\", themes.themes[index].colorborder);\n \n //document.documentElement.style.setProperty(prop, `var(--${themeName}${prop.substring(10)})`);\n setTheme();\n}\nfunction setTheme() {\n setValueFromLocalStorage('image-background');\n setValueFromLocalStorage('color-background');\n setValueFromLocalStorage('color-search-background');\n setValueFromLocalStorage('color-text-pri');\n setValueFromLocalStorage('color-text-acc');\n setValueFromLocalStorage('color-border');\n setValueFromLocalStorage('content-display');\n}\nfunction handleKeyPress(e) {\n var sindex = 0;\n var cycle = false;\n var key = e.keyCode || e.which;\n var text = e.target.value.replaceAll(\"+\", \"%2B\");\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n if (key == 13) { // Search functions\n search(text);\n }\n if (key == 9) { // Tab Completion Functions\n e.preventDefault();\n e.stopPropagation();\n if (text[0] === ';') {\n switch (option) {\n case 't':\n var streamers = ['admiralbahroo', 'moonmoon_ow', 'witwix'];\n if (!subtext || cycle) {\n cycle = true;\n if (sindex > streamers.length - 1) sindex = 0;\n document.getElementById(\"keywords\").value = ';t ' + streamers[sindex++];\n return;\n }\n for (var streamer of streamers) {\n if (subtext === streamer.substr(0, subtext.length)) {\n document.getElementById(\"keywords\").value = ';t ' + streamer;\n return;\n }\n }\n break;\n }\n }\n }\n if(key == 32){ //Space to go to search\nupdateLabel(text);\n }\n sindex = 0;\n cycle = false;\n updateLabel(text);\n}\nfunction updateLabel(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n if (text[0] === '/') {\n// if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n document.getElementById(\"searchType\").innerHTML = \"Allmusic search\";\n break;\n case \"d\":\n document.getElementById(\"searchType\").innerHTML = \"Duck Duck Go search\";\n break;\n case \"di\":\n document.getElementById(\"searchType\").innerHTML = \"Discogs search\";\n break;\n case \"i\":\n document.getElementById(\"searchType\").innerHTML = \"IMDB search\";\n break;\n case \"m\":\n document.getElementById(\"searchType\").innerHTML = \"TheMovieDB search\";\n break;\n case \"r\":\n document.getElementById(\"searchType\").innerHTML = \"Reddit search\";\n break;\n case \"q\":\n document.getElementById(\"searchType\").innerHTML = \"Qwant search\";\n break;\n case \"so\":\n document.getElementById(\"searchType\").innerHTML = \"Soundcloud search\";\n break;\n case \"s\":\n document.getElementById(\"searchType\").innerHTML = \"Spotify search\";\n break;\n case \"tv\":\n document.getElementById(\"searchType\").innerHTML = \"TheTVDB search\";\n break;\n case \"t\":\n document.getElementById(\"searchType\").innerHTML = \"Trakt search\";\n break;\n case \"y\":\n document.getElementById(\"searchType\").innerHTML = \"YouTube search\";\n break;\n case \"w\":\n document.getElementById(\"searchType\").innerHTML = \"Wikipedia search\";\n break;\n case \"p\":\n document.getElementById(\"searchType\").innerHTML = \"Plex search\";\n break;\n case \"rt\":\n document.getElementById(\"searchType\").innerHTML = \"Rotten Tomatoes search\";\n break;\n default:\n document.getElementById(\"searchType\").innerHTML = \"Invalid search\";\n break;\n }\n}else {\n document.getElementById(\"searchType\").innerHTML = \"Google search\";\n }\n}\nfunction search(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n if (text[0] === '/') {\n if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n window.location = \"https://www.allmusic.com/search/all/\" + subtext;\n break;\n case \"d\":\n window.location = \"https://duckduckgo.com/?q=\" + subtext;\n break;\n case \"di\":\n window.location = \"https://www.discogs.com/search/?q=\" + subtext;\n break;\n case \"i\":\n window.location = \"https://www.imdb.com/find?q=\" + subtext;\n break;\n case \"m\":\n window.location = \"https://www.themoviedb.org/search?query=\" + subtext;\n break;\n case \"r\":\n window.location = \"https://www.reddit.com/search?q=\" + subtext;\n break;\n case \"q\":\n window.location = \"https://www.qwant.com/?q=\" + subtext;\n break;\n case \"so\":\n window.location = \"https://soundcloud.com/search?q=\" + subtext;\n break;\n case \"s\":\n window.location = \"https://open.spotify.com/search/results/\" + subtext;\n break;\n case \"t\":\n window.location = \"https://trakt.tv/search?query=\" + subtext;\n break;\n case \"tv\":\n window.location = \"https://www.thetvdb.com/search?query=\" + subtext;\n break;\n case \"y\":\n window.location = \"https://www.youtube.com/results?search_query=\" + subtext;\n break;\n case \"w\":\n window.location = \"https://en.wikipedia.org/w/index.php?search=\" + subtext;\n break;\n case \"p\":\n window.location = \"https://app.plex.tv/desktop/#!/search?query=\" + subtext;\n break;\n case \"rt\":\n window.location = \"https://www.rottentomatoes.com/search?search=\" + subtext;\n break;\n }\n } else {\n var option = text.substr(1);\n switch (option) {\n case \"d\":\n window.location = \"https://www.duckduckgo.com\";\n break;\n case \"y\":\n window.location = \"https://www.youtube.com\";\n break;\n case \"r\":\n window.location = \"https://reddit.com\";\n break;\n case \"s\":\n window.location = \"https://open.spotify.com\";\n break;\n }\n }\n } else if (validURL(text)) {\n if (containsProtocol(text))\n window.location = text;\n else\n window.location = \"https://\" + text;\n } else {\n window.location = \"https://www.google.com/search?q=\" + text;\n }\n}\nfunction validURL(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/)?' + // protocol\n '((([a-z\\\\d]([a-z\\\\d-]*[a-z\\\\d])*)\\\\.)+[a-z]{2,}|' + // domain name\n '((\\\\d{1,3}\\\\.){3}\\\\d{1,3}))' + // OR ip (v4) address\n '(\\\\:\\\\d+)?(\\\\/[-a-z\\\\d%_.~+]*)*' + // port and path\n '(\\\\?[;&a-z\\\\d%_.~+=-]*)?' + // query string\n '(\\\\#[-a-z\\\\d_]*)?$', 'i'); // fragment locator\n return !!pattern.test(str);\n}\nfunction containsProtocol(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/){1}.*', 'i');\n return !!pattern.test(str);\n}\nString.prototype.replaceAll = function(search, replacement) {\n var target = this;\n return target.split(search).join(replacement);\n};\nfunction udpateDisplayedItems(e) {\n localStorage.setItem('contenttype', e.target.checked);\n if (e.target.checked) {\n localStorage.setItem('content-display', 'none');\n } else {\n localStorage.setItem('content-display', 'block');\n }\n setDisplayedItems();\n}\nfunction setDisplayedItems() {\n setValueFromLocalStorage('contenttype');\n setValueFromLocalStorage('content-display');\n}"]},"metadata":{},"sourceType":"module"}
\ No newline at end of file
diff --git a/node_modules/.cache/babel-loader/84b49715c20a7bcdb7fb89c5a42e7acb.json b/node_modules/.cache/babel-loader/84b49715c20a7bcdb7fb89c5a42e7acb.json
new file mode 100644
index 00000000..f7ff11e2
--- /dev/null
+++ b/node_modules/.cache/babel-loader/84b49715c20a7bcdb7fb89c5a42e7acb.json
@@ -0,0 +1 @@
+{"ast":null,"code":"var _jsxFileName = \"/home/seanedmunds/dev/home-page/src/index.js\",\n _s = $RefreshSig$();\n\nimport React from 'react';\nimport { useState, useEffect } from 'react';\nimport ReactDOM from 'react-dom'; //import { unstable_createPortal } from 'react-dom';\n\nimport './index.css';\nimport { jsxDEV as _jsxDEV } from \"react/jsx-dev-runtime\";\n\nfunction Homepage() {\n return /*#__PURE__*/_jsxDEV(\"main\", {\n id: \"container\",\n className: \"fade\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Search, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 11,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 10,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Header, {\n date: date(),\n greet: greet()\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 14,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 13,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Applications, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 20,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 19,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Bookmarks, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 23,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 22,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(ModalMenu, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 26,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 25,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(ModalInit, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 29,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 28,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 9,\n columnNumber: 5\n }, this);\n}\n\n_c = Homepage;\n\nfunction Search() {\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"search\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"abackground\",\n children: [/*#__PURE__*/_jsxDEV(\"input\", {\n name: \"keywords\",\n type: \"text\",\n className: \"keyword\",\n id: \"keywords\",\n size: \"50\",\n spellCheck: \"true\",\n placeholder: \"\"\n /*onFocus={this.placeholder = \"\"} onBlur={this.placeholder = ''}*/\n ,\n autoComplete: \"off\",\n autoFocus: true,\n onKeyUp: handleKeyPress\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 39,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n id: \"searchType\",\n className: \"Input-label\",\n children: \"Google search\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 40,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 38,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 37,\n columnNumber: 5\n }, this);\n}\n\n_c2 = Search;\n\nfunction Header(props) {\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"header\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n id: \"greeting_block\",\n children: /*#__PURE__*/_jsxDEV(\"h1\", {\n id: \"header_greet\",\n children: props.greet\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 50,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 49,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"date_block\",\n children: [/*#__PURE__*/_jsxDEV(\"h2\", {\n id: \"header_date\",\n children: props.date\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 53,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(Clock, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 54,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 52,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 48,\n columnNumber: 5\n }, this);\n}\n\n_c3 = Header;\n\nfunction Applications() {\n let appList = getApps();\n var items = [];\n\n for (var i = 0; i < appList.apps.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(App, {\n name: appList.apps[i].name,\n url: appList.apps[i].url,\n icon: appList.apps[i].icon,\n NSFW: appList.apps[i].NSFW\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 65,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"apps\",\n children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n children: \"Applications\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 76,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"apps_loop\",\n children: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 77,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 75,\n columnNumber: 5\n }, this);\n}\n\n_c4 = Applications;\n\nfunction App(props) {\n let classNameType = props.NSFW + \"-content\";\n let hrefUrl = \"https://\" + props.url;\n let iconName = \"mdi-\" + props.icon;\n return /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: hrefUrl,\n className: classNameType,\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_item\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_icon\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify icon\",\n \"data-icon\": iconName\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 93,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 92,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_text\",\n children: [/*#__PURE__*/_jsxDEV(\"span\", {\n id: \"app-name\",\n children: props.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 96,\n columnNumber: 13\n }, this), /*#__PURE__*/_jsxDEV(\"span\", {\n id: \"app-address\",\n children: props.url\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 97,\n columnNumber: 13\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 95,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 91,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 90,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 89,\n columnNumber: 5\n }, this);\n}\n\n_c5 = App;\n\nfunction Bookmarks() {\n let bookmarkList = getLinks();\n var items = [];\n\n for (var i = 0; i < bookmarkList.bookmarks.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(LinkGroups, {\n category: bookmarkList.bookmarks[i].category,\n links: bookmarkList.bookmarks[i].links\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 110,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"links\",\n children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n children: \"Bookmarks\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 119,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"links_loop\",\n children: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 120,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 118,\n columnNumber: 5\n }, this);\n}\n\n_c6 = Bookmarks;\n\nfunction LinkGroups(props) {\n var items = [];\n\n for (var i = 0; i < props.links.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(LinkItem, {\n link: props.links[i]\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 131,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"links_item\",\n children: [/*#__PURE__*/_jsxDEV(\"h4\", {\n children: props.category\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 139,\n columnNumber: 7\n }, this), items]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 138,\n columnNumber: 5\n }, this);\n}\n\n_c7 = LinkGroups;\n\nfunction LinkItem(props) {\n return /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: props.link.url,\n className: \"theme_color-border theme_text-select\",\n children: props.link.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 148,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 147,\n columnNumber: 5\n }, this);\n}\n\n_c8 = LinkItem;\n\nfunction ModalMenu() {\n var providers = getProviders();\n var items = [];\n\n for (var i = 0; i < providers.providers.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(Provider, {\n provider: providers.providers[i]\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 158,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"modal\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n children: [/*#__PURE__*/_jsxDEV(\"header\", {\n id: \"modal-header\",\n children: [/*#__PURE__*/_jsxDEV(\"h1\", {\n children: \"Options\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 168,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n href: \"#\",\n title: \"Close\",\n className: \"modal-close\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-close\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 170,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 169,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 167,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"h2\", {\n children: \"Color themes\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 174,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"modal-theme\",\n children: [/*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"blackboard\",\n className: \"theme-button theme-blackboard\",\n onClick: updateTheme,\n children: \"Blackboard\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 177,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"gazette\",\n className: \"theme-button theme-gazette\",\n children: \"Gazette\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 178,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"espresso\",\n className: \"theme-button theme-espresso\",\n children: \"Espresso\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 179,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cab\",\n className: \"theme-button theme-cab\",\n children: \"Cab\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 180,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cloud\",\n className: \"theme-button theme-cloud\",\n children: \"Cloud\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 181,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"lime\",\n className: \"theme-button theme-lime\",\n children: \"Lime\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 182,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"passion\",\n className: \"theme-button theme-passion\",\n children: \"Passion\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 183,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"blues\",\n className: \"theme-button theme-blues\",\n children: \"Blues\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 184,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"chalk\",\n className: \"theme-button theme-chalk\",\n children: \"Chalk\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 185,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"tron\",\n className: \"theme-button theme-tron\",\n children: \"Tron\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 186,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"paper\",\n className: \"theme-button theme-paper\",\n children: \"Paper\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 187,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cyberpunk\",\n className: \"theme-button theme-cyberpunk\",\n children: \"Cyberpunk\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 188,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"quadra\",\n className: \"theme-button theme-panam\",\n children: \"Quadra\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 189,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"panam\",\n className: \"theme-button theme-panam\",\n children: \"Panam\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 190,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"touch\",\n className: \"theme-button theme-touch\",\n children: \"Touch\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 191,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"peek\",\n className: \"theme-button theme-peek\",\n children: \"Peek\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 192,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 176,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"h2\", {\n children: \"Search options\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 196,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"providers\",\n children: /*#__PURE__*/_jsxDEV(\"table\", {\n children: /*#__PURE__*/_jsxDEV(\"tbody\", {\n children: [/*#__PURE__*/_jsxDEV(\"tr\", {\n children: [/*#__PURE__*/_jsxDEV(\"th\", {\n children: \"Website\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 201,\n columnNumber: 19\n }, this), /*#__PURE__*/_jsxDEV(\"th\", {\n children: \"Prefix\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 202,\n columnNumber: 19\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 200,\n columnNumber: 17\n }, this), items]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 199,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 198,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 197,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"header\", {\n id: \"modal-footer\",\n children: [/*#__PURE__*/_jsxDEV(\"a\", {\n href: \"https://github.com/jeroenpardon/\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-github-box\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 210,\n columnNumber: 54\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 210,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n href: \"https://materialdesignicons.com/\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-material-design\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 211,\n columnNumber: 54\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 211,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"sneaky\",\n children: [/*#__PURE__*/_jsxDEV(\"input\", {\n type: \"checkbox\",\n id: \"contenttype\",\n onChange: \"nsfw(this)\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 212,\n columnNumber: 35\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n for: \"contenttype\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-domino-mask\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 213,\n columnNumber: 36\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 213,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 212,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 209,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 166,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 165,\n columnNumber: 5\n }, this);\n}\n\n_c9 = ModalMenu;\n\nfunction Provider(props) {\n return /*#__PURE__*/_jsxDEV(\"tr\", {\n children: [/*#__PURE__*/_jsxDEV(\"td\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: props.provider.url,\n children: props.provider.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 223,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 223,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"td\", {\n children: props.provider.prefix\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 224,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 222,\n columnNumber: 5\n }, this);\n}\n\n_c10 = Provider;\n\nfunction ModalInit() {\n return /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"modal_init\",\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n className: \"btn\",\n href: \"#modal\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify icon\",\n \"data-icon\": \"mdi-xbox-controller-menu\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 233,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 232,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 231,\n columnNumber: 5\n }, this);\n}\n\n_c11 = ModalInit;\nReactDOM.render( /*#__PURE__*/_jsxDEV(Homepage, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 240,\n columnNumber: 3\n}, this), document.getElementById('root')); //Functions below this line are for calculating data for\n//other functions\n\nfunction date() {\n let currentDate = new Date();\n let dateOptions = {\n weekday: \"long\",\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\"\n };\n let date = currentDate.toLocaleDateString(\"en-GB\", dateOptions);\n return date;\n}\n\nfunction fixDigits(k) {\n if (k < 10) {\n return \"0\" + k;\n } else {\n return k;\n }\n}\n\nfunction greet() {\n let currentTime = new Date();\n let greet = Math.floor(currentTime.getHours() / 6);\n let easterEggChance = Math.floor(Math.random() * 100);\n\n let greetings = require('./messages.json');\n\n let timeBased = [];\n let easterEggs = [];\n\n for (var i = 0; i < greetings.messages.length; i++) {\n if (greetings.messages[i].easteregg === \"FALSE\") {\n timeBased = timeBased.concat(greetings.messages[i]);\n } else {\n easterEggs = easterEggs.concat(greetings.messages[i]);\n }\n }\n\n if (easterEggChance > 10) {\n return timeBased[greet].message;\n } else {\n let easterEggText = Math.floor(Math.random() * easterEggs.length);\n return easterEggs[easterEggText].message;\n }\n}\n\nfunction Clock() {\n _s();\n\n const [date, setDate] = useState(new Date());\n\n function refreshClock() {\n setDate(new Date());\n }\n\n useEffect(() => {\n const timerId = setInterval(refreshClock, 1000);\n return function cleanup() {\n clearInterval(timerId);\n };\n }, []);\n var hour = date.getHours();\n var minutes = date.getMinutes(); //var seconds = date.getSeconds();\n\n var midday = \"AM\";\n midday = hour >= 12 ? \"PM\" : \"AM\";\n hour = hour === 0 ? 12 : hour > 12 ? hour - 12 : hour;\n minutes = fixDigits(minutes); //seconds = fixDigits(seconds);\n\n let time = hour + \":\" + minutes + \" \" + midday;\n return /*#__PURE__*/_jsxDEV(\"h2\", {\n id: \"clock\",\n children: time\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 311,\n columnNumber: 5\n }, this);\n}\n\n_s(Clock, \"Gqi45WOZhU2c0BLYX0HoJeiR0fk=\");\n\n_c12 = Clock;\n\nfunction getApps() {\n let applications = require('./apps.json');\n\n return applications;\n}\n\nfunction getLinks() {\n let links = require('./links.json');\n\n return links;\n}\n\nfunction getProviders() {\n let providers = require('./providers.json');\n\n return providers;\n}\n\nfunction getThemes() {\n let themes = require('./themes.json');\n\n return themes;\n}\n\nfunction updateTheme() {\n var themes = getThemes();\n}\n\nfunction handleKeyPress(e) {\n var sindex = 0;\n var cycle = false;\n var key = e.keyCode || e.which;\n var text = e.target.value.replaceAll(\"+\", \"%2B\");\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n\n if (key == 13) {\n // Search functions\n search(text);\n }\n\n if (key == 9) {\n // Tab Completion Functions\n e.preventDefault();\n e.stopPropagation();\n\n if (text[0] === ';') {\n switch (option) {\n case 't':\n var streamers = ['admiralbahroo', 'moonmoon_ow', 'witwix'];\n\n if (!subtext || cycle) {\n cycle = true;\n if (sindex > streamers.length - 1) sindex = 0;\n document.getElementById(\"keywords\").value = ';t ' + streamers[sindex++];\n return;\n }\n\n for (var streamer of streamers) {\n if (subtext === streamer.substr(0, subtext.length)) {\n document.getElementById(\"keywords\").value = ';t ' + streamer;\n return;\n }\n }\n\n break;\n }\n }\n }\n\n if (key == 32) {\n //Space to go to search\n updateLabel(text);\n }\n\n sindex = 0;\n cycle = false;\n updateLabel(text);\n}\n\nfunction updateLabel(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n\n if (text[0] === '/') {\n // if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n document.getElementById(\"searchType\").innerHTML = \"Allmusic search\";\n break;\n\n case \"d\":\n document.getElementById(\"searchType\").innerHTML = \"Duck Duck Go search\";\n break;\n\n case \"di\":\n document.getElementById(\"searchType\").innerHTML = \"Discogs search\";\n break;\n\n case \"i\":\n document.getElementById(\"searchType\").innerHTML = \"IMDB search\";\n break;\n\n case \"m\":\n document.getElementById(\"searchType\").innerHTML = \"TheMovieDB search\";\n break;\n\n case \"r\":\n document.getElementById(\"searchType\").innerHTML = \"Reddit search\";\n break;\n\n case \"q\":\n document.getElementById(\"searchType\").innerHTML = \"Qwant search\";\n break;\n\n case \"so\":\n document.getElementById(\"searchType\").innerHTML = \"Soundcloud search\";\n break;\n\n case \"s\":\n document.getElementById(\"searchType\").innerHTML = \"Spotify search\";\n break;\n\n case \"tv\":\n document.getElementById(\"searchType\").innerHTML = \"TheTVDB search\";\n break;\n\n case \"t\":\n document.getElementById(\"searchType\").innerHTML = \"Trakt search\";\n break;\n\n case \"y\":\n document.getElementById(\"searchType\").innerHTML = \"YouTube search\";\n break;\n\n case \"w\":\n document.getElementById(\"searchType\").innerHTML = \"Wikipedia search\";\n break;\n\n case \"p\":\n document.getElementById(\"searchType\").innerHTML = \"Plex search\";\n break;\n\n case \"rt\":\n document.getElementById(\"searchType\").innerHTML = \"Rotten Tomatoes search\";\n break;\n\n default:\n document.getElementById(\"searchType\").innerHTML = \"Invalid search\";\n break;\n }\n } else {\n document.getElementById(\"searchType\").innerHTML = \"Google search\";\n }\n}\n\nfunction search(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n\n if (text[0] === '/') {\n if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n window.location = \"https://www.allmusic.com/search/all/\" + subtext;\n break;\n\n case \"d\":\n window.location = \"https://duckduckgo.com/?q=\" + subtext;\n break;\n\n case \"di\":\n window.location = \"https://www.discogs.com/search/?q=\" + subtext;\n break;\n\n case \"i\":\n window.location = \"https://www.imdb.com/find?q=\" + subtext;\n break;\n\n case \"m\":\n window.location = \"https://www.themoviedb.org/search?query=\" + subtext;\n break;\n\n case \"r\":\n window.location = \"https://www.reddit.com/search?q=\" + subtext;\n break;\n\n case \"q\":\n window.location = \"https://www.qwant.com/?q=\" + subtext;\n break;\n\n case \"so\":\n window.location = \"https://soundcloud.com/search?q=\" + subtext;\n break;\n\n case \"s\":\n window.location = \"https://open.spotify.com/search/results/\" + subtext;\n break;\n\n case \"t\":\n window.location = \"https://trakt.tv/search?query=\" + subtext;\n break;\n\n case \"tv\":\n window.location = \"https://www.thetvdb.com/search?query=\" + subtext;\n break;\n\n case \"y\":\n window.location = \"https://www.youtube.com/results?search_query=\" + subtext;\n break;\n\n case \"w\":\n window.location = \"https://en.wikipedia.org/w/index.php?search=\" + subtext;\n break;\n\n case \"p\":\n window.location = \"https://app.plex.tv/desktop/#!/search?query=\" + subtext;\n break;\n\n case \"rt\":\n window.location = \"https://www.rottentomatoes.com/search?search=\" + subtext;\n break;\n }\n } else {\n var option = text.substr(1);\n\n switch (option) {\n case \"d\":\n window.location = \"https://www.duckduckgo.com\";\n break;\n\n case \"y\":\n window.location = \"https://www.youtube.com\";\n break;\n\n case \"r\":\n window.location = \"https://reddit.com\";\n break;\n\n case \"s\":\n window.location = \"https://open.spotify.com\";\n break;\n }\n }\n } else if (validURL(text)) {\n if (containsProtocol(text)) window.location = text;else window.location = \"https://\" + text;\n } else {\n window.location = \"https://www.google.com/search?q=\" + text;\n }\n} // Source: https://stackoverflow.com/questions/5717093/check-if-a-javascript-string-is-a-url\n\n\nfunction validURL(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/)?' + // protocol\n '((([a-z\\\\d]([a-z\\\\d-]*[a-z\\\\d])*)\\\\.)+[a-z]{2,}|' + // domain name\n '((\\\\d{1,3}\\\\.){3}\\\\d{1,3}))' + // OR ip (v4) address\n '(\\\\:\\\\d+)?(\\\\/[-a-z\\\\d%_.~+]*)*' + // port and path\n '(\\\\?[;&a-z\\\\d%_.~+=-]*)?' + // query string\n '(\\\\#[-a-z\\\\d_]*)?$', 'i'); // fragment locator\n\n return !!pattern.test(str);\n}\n\nfunction containsProtocol(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/){1}.*', 'i');\n return !!pattern.test(str);\n}\n\nString.prototype.replaceAll = function (search, replacement) {\n var target = this;\n return target.split(search).join(replacement);\n};\n\nvar _c, _c2, _c3, _c4, _c5, _c6, _c7, _c8, _c9, _c10, _c11, _c12;\n\n$RefreshReg$(_c, \"Homepage\");\n$RefreshReg$(_c2, \"Search\");\n$RefreshReg$(_c3, \"Header\");\n$RefreshReg$(_c4, \"Applications\");\n$RefreshReg$(_c5, \"App\");\n$RefreshReg$(_c6, \"Bookmarks\");\n$RefreshReg$(_c7, \"LinkGroups\");\n$RefreshReg$(_c8, \"LinkItem\");\n$RefreshReg$(_c9, \"ModalMenu\");\n$RefreshReg$(_c10, \"Provider\");\n$RefreshReg$(_c11, \"ModalInit\");\n$RefreshReg$(_c12, \"Clock\");","map":{"version":3,"sources":["/home/seanedmunds/dev/home-page/src/index.js"],"names":["React","useState","useEffect","ReactDOM","Homepage","date","greet","Search","handleKeyPress","Header","props","Applications","appList","getApps","items","i","apps","length","push","name","url","icon","NSFW","App","classNameType","hrefUrl","iconName","Bookmarks","bookmarkList","getLinks","bookmarks","category","links","LinkGroups","LinkItem","link","ModalMenu","providers","getProviders","updateTheme","Provider","provider","prefix","ModalInit","render","document","getElementById","currentDate","Date","dateOptions","weekday","year","month","day","toLocaleDateString","fixDigits","k","currentTime","Math","floor","getHours","easterEggChance","random","greetings","require","timeBased","easterEggs","messages","easteregg","concat","message","easterEggText","Clock","setDate","refreshClock","timerId","setInterval","cleanup","clearInterval","hour","minutes","getMinutes","midday","time","applications","getThemes","themes","e","sindex","cycle","key","keyCode","which","text","target","value","replaceAll","option","substr","indexOf","subtext","search","preventDefault","stopPropagation","streamers","streamer","updateLabel","innerHTML","window","location","validURL","containsProtocol","str","pattern","RegExp","test","String","prototype","replacement","split","join"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { useState, useEffect } from 'react';\nimport ReactDOM from 'react-dom';\n//import { unstable_createPortal } from 'react-dom';\nimport './index.css';\n\nfunction Homepage() {\n return (\n \n \n \n
\n \n \n
\n \n \n \n
\n \n \n
\n \n \n
\n \n );\n}\n\nfunction Search() {\n return (\n \n )\n}\n\nfunction Header(props) {\n return (\n \n );\n}\n\nfunction Applications() {\n let appList = getApps();\n var items = [];\n for (var i = 0; i < appList.apps.length; i++) {\n items.push(\n \n );\n }\n return (\n \n Applications
\n \n {items}\n
\n \n );\n}\n\nfunction App(props) {\n let classNameType = props.NSFW + \"-content\";\n let hrefUrl = \"https://\" + props.url;\n let iconName = \"mdi-\" + props.icon;\n return (\n \n );\n}\n\nfunction Bookmarks() {\n let bookmarkList = getLinks();\n var items = [];\n for (var i = 0; i < bookmarkList.bookmarks.length; i++) {\n items.push(\n \n );\n }\n return (\n \n Bookmarks
\n \n {items}\n
\n \n );\n}\n\nfunction LinkGroups(props) {\n var items = [];\n for (var i = 0; i < props.links.length; i++) {\n items.push(\n \n );\n }\n return (\n \n
{props.category}
\n {items}\n \n );\n}\n\nfunction LinkItem(props) {\n return (\n \n );\n}\n\nfunction ModalMenu() {\n var providers = getProviders();\n var items = [];\n for (var i = 0; i < providers.providers.length; i++) {\n items.push(\n \n );\n }\n return (\n \n \n \n\n
Color themes
\n\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n\n\n
Search options
\n
\n \n \n \n | Website | \n Prefix | \n
\n {items}\n \n
\n \n\n \n
\n \n );\n}\n\nfunction Provider(props) {\n return (\n \n | {props.provider.name} | \n {props.provider.prefix} | \n
\n );\n}\n\nfunction ModalInit() {\n return (\n \n );\n}\n\nReactDOM.render(\n ,\n document.getElementById('root')\n);\n\n//Functions below this line are for calculating data for\n//other functions\n\nfunction date() {\n let currentDate = new Date();\n let dateOptions = {\n weekday: \"long\",\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\"\n };\n let date = currentDate.toLocaleDateString(\"en-GB\", dateOptions);\n return date;\n}\nfunction fixDigits(k) {\n if (k < 10) {\n return \"0\" + k;\n }\n else {\n return k;\n }\n}\nfunction greet() {\n let currentTime = new Date();\n let greet = Math.floor(currentTime.getHours() / 6);\n let easterEggChance = Math.floor(Math.random() * 100);\n let greetings = require('./messages.json');\n let timeBased = [];\n let easterEggs = [];\n for (var i = 0; i < greetings.messages.length; i++) {\n if (greetings.messages[i].easteregg === \"FALSE\") {\n timeBased = timeBased.concat(greetings.messages[i]);\n } else {\n easterEggs = easterEggs.concat(greetings.messages[i]);\n }\n }\n if (easterEggChance > 10) {\n return timeBased[greet].message;\n } else {\n let easterEggText = Math.floor(Math.random() * easterEggs.length);\n return easterEggs[easterEggText].message;\n }\n}\nfunction Clock() {\n const [date, setDate] = useState(new Date());\n\n function refreshClock() {\n setDate(new Date());\n }\n useEffect(() => {\n const timerId = setInterval(refreshClock, 1000);\n return function cleanup() {\n clearInterval(timerId);\n };\n }, []);\n\n var hour = date.getHours();\n var minutes = date.getMinutes();\n //var seconds = date.getSeconds();\n var midday = \"AM\";\n midday = (hour >= 12) ? \"PM\" : \"AM\";\n hour = (hour === 0) ? 12 : ((hour > 12) ? (hour - 12) : hour);\n minutes = fixDigits(minutes);\n //seconds = fixDigits(seconds);\n let time = hour + \":\" + minutes + \" \" + midday;\n\n return (\n {time}
\n\n );\n}\nfunction getApps() {\n let applications = require('./apps.json');\n return applications;\n}\nfunction getLinks() {\n let links = require('./links.json');\n return links;\n}\nfunction getProviders() {\n let providers = require('./providers.json');\n return providers;\n}\nfunction getThemes() {\n let themes = require('./themes.json');\n return themes;\n}\n\nfunction updateTheme() {\n var themes = getThemes();\n\n}\n\nfunction handleKeyPress(e) {\n var sindex = 0;\n var cycle = false;\n var key = e.keyCode || e.which;\n var text = e.target.value.replaceAll(\"+\", \"%2B\");\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n if (key == 13) { // Search functions\n search(text);\n }\n if (key == 9) { // Tab Completion Functions\n e.preventDefault();\n e.stopPropagation();\n if (text[0] === ';') {\n switch (option) {\n case 't':\n var streamers = ['admiralbahroo', 'moonmoon_ow', 'witwix'];\n if (!subtext || cycle) {\n cycle = true;\n if (sindex > streamers.length - 1) sindex = 0;\n document.getElementById(\"keywords\").value = ';t ' + streamers[sindex++];\n return;\n }\n for (var streamer of streamers) {\n if (subtext === streamer.substr(0, subtext.length)) {\n document.getElementById(\"keywords\").value = ';t ' + streamer;\n return;\n }\n }\n break;\n }\n }\n }\n if(key == 32){ //Space to go to search\nupdateLabel(text);\n }\n sindex = 0;\n cycle = false;\n updateLabel(text);\n}\n\nfunction updateLabel(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n if (text[0] === '/') {\n// if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n document.getElementById(\"searchType\").innerHTML = \"Allmusic search\";\n break;\n case \"d\":\n document.getElementById(\"searchType\").innerHTML = \"Duck Duck Go search\";\n break;\n case \"di\":\n document.getElementById(\"searchType\").innerHTML = \"Discogs search\";\n break;\n case \"i\":\n document.getElementById(\"searchType\").innerHTML = \"IMDB search\";\n break;\n case \"m\":\n document.getElementById(\"searchType\").innerHTML = \"TheMovieDB search\";\n break;\n case \"r\":\n document.getElementById(\"searchType\").innerHTML = \"Reddit search\";\n break;\n case \"q\":\n document.getElementById(\"searchType\").innerHTML = \"Qwant search\";\n break;\n case \"so\":\n document.getElementById(\"searchType\").innerHTML = \"Soundcloud search\";\n break;\n case \"s\":\n document.getElementById(\"searchType\").innerHTML = \"Spotify search\";\n break;\n case \"tv\":\n document.getElementById(\"searchType\").innerHTML = \"TheTVDB search\";\n break;\n case \"t\":\n document.getElementById(\"searchType\").innerHTML = \"Trakt search\";\n break;\n case \"y\":\n document.getElementById(\"searchType\").innerHTML = \"YouTube search\";\n break;\n case \"w\":\n document.getElementById(\"searchType\").innerHTML = \"Wikipedia search\";\n break;\n case \"p\":\n document.getElementById(\"searchType\").innerHTML = \"Plex search\";\n break;\n case \"rt\":\n document.getElementById(\"searchType\").innerHTML = \"Rotten Tomatoes search\";\n break;\n default:\n document.getElementById(\"searchType\").innerHTML = \"Invalid search\";\n break;\n }\n}else {\n document.getElementById(\"searchType\").innerHTML = \"Google search\";\n }\n}\n\nfunction search(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n if (text[0] === '/') {\n if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n window.location = \"https://www.allmusic.com/search/all/\" + subtext;\n break;\n case \"d\":\n window.location = \"https://duckduckgo.com/?q=\" + subtext;\n break;\n case \"di\":\n window.location = \"https://www.discogs.com/search/?q=\" + subtext;\n break;\n case \"i\":\n window.location = \"https://www.imdb.com/find?q=\" + subtext;\n break;\n case \"m\":\n window.location = \"https://www.themoviedb.org/search?query=\" + subtext;\n break;\n case \"r\":\n window.location = \"https://www.reddit.com/search?q=\" + subtext;\n break;\n case \"q\":\n window.location = \"https://www.qwant.com/?q=\" + subtext;\n break;\n case \"so\":\n window.location = \"https://soundcloud.com/search?q=\" + subtext;\n break;\n case \"s\":\n window.location = \"https://open.spotify.com/search/results/\" + subtext;\n break;\n case \"t\":\n window.location = \"https://trakt.tv/search?query=\" + subtext;\n break;\n case \"tv\":\n window.location = \"https://www.thetvdb.com/search?query=\" + subtext;\n break;\n case \"y\":\n window.location = \"https://www.youtube.com/results?search_query=\" + subtext;\n break;\n case \"w\":\n window.location = \"https://en.wikipedia.org/w/index.php?search=\" + subtext;\n break;\n case \"p\":\n window.location = \"https://app.plex.tv/desktop/#!/search?query=\" + subtext;\n break;\n case \"rt\":\n window.location = \"https://www.rottentomatoes.com/search?search=\" + subtext;\n break;\n }\n } else {\n var option = text.substr(1);\n switch (option) {\n case \"d\":\n window.location = \"https://www.duckduckgo.com\";\n break;\n case \"y\":\n window.location = \"https://www.youtube.com\";\n break;\n case \"r\":\n window.location = \"https://reddit.com\";\n break;\n case \"s\":\n window.location = \"https://open.spotify.com\";\n break;\n }\n }\n } else if (validURL(text)) {\n if (containsProtocol(text))\n window.location = text;\n else\n window.location = \"https://\" + text;\n } else {\n window.location = \"https://www.google.com/search?q=\" + text;\n }\n}\n\n// Source: https://stackoverflow.com/questions/5717093/check-if-a-javascript-string-is-a-url\nfunction validURL(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/)?' + // protocol\n '((([a-z\\\\d]([a-z\\\\d-]*[a-z\\\\d])*)\\\\.)+[a-z]{2,}|' + // domain name\n '((\\\\d{1,3}\\\\.){3}\\\\d{1,3}))' + // OR ip (v4) address\n '(\\\\:\\\\d+)?(\\\\/[-a-z\\\\d%_.~+]*)*' + // port and path\n '(\\\\?[;&a-z\\\\d%_.~+=-]*)?' + // query string\n '(\\\\#[-a-z\\\\d_]*)?$', 'i'); // fragment locator\n return !!pattern.test(str);\n}\n\nfunction containsProtocol(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/){1}.*', 'i');\n return !!pattern.test(str);\n}\n\nString.prototype.replaceAll = function(search, replacement) {\n var target = this;\n return target.split(search).join(replacement);\n};"]},"metadata":{},"sourceType":"module"}
\ No newline at end of file
diff --git a/node_modules/.cache/babel-loader/8525f5292e4613e0882f108f93e09c7b.json b/node_modules/.cache/babel-loader/8525f5292e4613e0882f108f93e09c7b.json
new file mode 100644
index 00000000..c7a9d947
--- /dev/null
+++ b/node_modules/.cache/babel-loader/8525f5292e4613e0882f108f93e09c7b.json
@@ -0,0 +1 @@
+{"ast":null,"code":"var _jsxFileName = \"/home/seanedmunds/dev/home-page/src/index.js\",\n _s = $RefreshSig$();\n\nimport React from 'react';\nimport { useState, useEffect } from 'react';\nimport ReactDOM from 'react-dom'; //import { unstable_createPortal } from 'react-dom';\n\nimport './index.css';\nimport { jsxDEV as _jsxDEV } from \"react/jsx-dev-runtime\";\n\nfunction Homepage() {\n return /*#__PURE__*/_jsxDEV(\"main\", {\n id: \"container\",\n className: \"fade\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Search, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 11,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 10,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Header, {\n date: date(),\n greet: greet()\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 14,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 13,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Applications, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 20,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 19,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Bookmarks, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 23,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 22,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(ModalMenu, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 26,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 25,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(ModalInit, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 29,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 28,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 9,\n columnNumber: 5\n }, this);\n}\n\n_c = Homepage;\n\nfunction Search() {\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"search\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"abackground\",\n children: [/*#__PURE__*/_jsxDEV(\"input\", {\n name: \"keywords\",\n type: \"text\",\n className: \"keyword\",\n id: \"keywords\",\n size: \"50\",\n spellCheck: \"true\",\n placeholder: \"\"\n /*onFocus={this.placeholder = \"\"} onBlur={this.placeholder = ''}*/\n ,\n autoComplete: \"off\",\n autoFocus: true,\n onKeyUp: handleKeyPress\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 39,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n id: \"searchType\",\n className: \"Input-label\",\n children: \"Google search\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 40,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 38,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 37,\n columnNumber: 5\n }, this);\n}\n\n_c2 = Search;\n\nfunction Header(props) {\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"header\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n id: \"greeting_block\",\n children: /*#__PURE__*/_jsxDEV(\"h1\", {\n id: \"header_greet\",\n children: props.greet\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 50,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 49,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"date_block\",\n children: [/*#__PURE__*/_jsxDEV(\"h2\", {\n id: \"header_date\",\n children: props.date\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 53,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(Clock, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 54,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 52,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 48,\n columnNumber: 5\n }, this);\n}\n\n_c3 = Header;\n\nfunction Applications() {\n let appList = getApps();\n var items = [];\n\n for (var i = 0; i < appList.apps.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(App, {\n name: appList.apps[i].name,\n url: appList.apps[i].url,\n icon: appList.apps[i].icon,\n NSFW: appList.apps[i].NSFW\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 65,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"apps\",\n children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n children: \"Applications\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 76,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"apps_loop\",\n children: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 77,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 75,\n columnNumber: 5\n }, this);\n}\n\n_c4 = Applications;\n\nfunction App(props) {\n let classNameType = props.NSFW + \"-content\";\n let hrefUrl = \"https://\" + props.url;\n let iconName = \"mdi-\" + props.icon;\n return /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: hrefUrl,\n className: classNameType,\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_item\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_icon\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify icon\",\n \"data-icon\": iconName\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 93,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 92,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_text\",\n children: [/*#__PURE__*/_jsxDEV(\"span\", {\n id: \"app-name\",\n children: props.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 96,\n columnNumber: 13\n }, this), /*#__PURE__*/_jsxDEV(\"span\", {\n id: \"app-address\",\n children: props.url\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 97,\n columnNumber: 13\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 95,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 91,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 90,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 89,\n columnNumber: 5\n }, this);\n}\n\n_c5 = App;\n\nfunction Bookmarks() {\n let bookmarkList = getLinks();\n var items = [];\n\n for (var i = 0; i < bookmarkList.bookmarks.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(LinkGroups, {\n category: bookmarkList.bookmarks[i].category,\n links: bookmarkList.bookmarks[i].links\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 110,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"links\",\n children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n children: \"Bookmarks\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 119,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"links_loop\",\n children: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 120,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 118,\n columnNumber: 5\n }, this);\n}\n\n_c6 = Bookmarks;\n\nfunction LinkGroups(props) {\n var items = [];\n\n for (var i = 0; i < props.links.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(LinkItem, {\n link: props.links[i]\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 131,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"links_item\",\n children: [/*#__PURE__*/_jsxDEV(\"h4\", {\n children: props.category\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 139,\n columnNumber: 7\n }, this), items]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 138,\n columnNumber: 5\n }, this);\n}\n\n_c7 = LinkGroups;\n\nfunction LinkItem(props) {\n return /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: props.link.url,\n className: \"theme_color-border theme_text-select\",\n children: props.link.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 148,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 147,\n columnNumber: 5\n }, this);\n}\n\n_c8 = LinkItem;\n\nfunction ModalMenu() {\n var providers = getProviders();\n var items = [];\n\n for (var i = 0; i < providers.providers.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(Provider, {\n provider: providers.providers[i]\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 158,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"modal\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n children: [/*#__PURE__*/_jsxDEV(\"header\", {\n id: \"modal-header\",\n children: [/*#__PURE__*/_jsxDEV(\"h1\", {\n children: \"Options\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 168,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n href: \"#\",\n title: \"Close\",\n className: \"modal-close\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-close\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 170,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 169,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 167,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"h2\", {\n children: \"Color themes\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 174,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"modal-theme\",\n children: [/*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"blackboard\",\n className: \"theme-button theme-blackboard\",\n onClick: updateTheme,\n children: \"Blackboard\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 177,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"gazette\",\n className: \"theme-button theme-gazette\",\n children: \"Gazette\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 178,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"espresso\",\n className: \"theme-button theme-espresso\",\n children: \"Espresso\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 179,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cab\",\n className: \"theme-button theme-cab\",\n children: \"Cab\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 180,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cloud\",\n className: \"theme-button theme-cloud\",\n children: \"Cloud\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 181,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"lime\",\n className: \"theme-button theme-lime\",\n children: \"Lime\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 182,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"passion\",\n className: \"theme-button theme-passion\",\n children: \"Passion\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 183,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"blues\",\n className: \"theme-button theme-blues\",\n children: \"Blues\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 184,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"chalk\",\n className: \"theme-button theme-chalk\",\n children: \"Chalk\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 185,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"tron\",\n className: \"theme-button theme-tron\",\n children: \"Tron\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 186,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"paper\",\n className: \"theme-button theme-paper\",\n children: \"Paper\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 187,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cyberpunk\",\n className: \"theme-button theme-cyberpunk\",\n children: \"Cyberpunk\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 188,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"quadra\",\n className: \"theme-button theme-panam\",\n children: \"Quadra\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 189,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"panam\",\n className: \"theme-button theme-panam\",\n children: \"Panam\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 190,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"touch\",\n className: \"theme-button theme-touch\",\n children: \"Touch\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 191,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"peek\",\n className: \"theme-button theme-peek\",\n children: \"Peek\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 192,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 176,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"h2\", {\n children: \"Search options\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 196,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"providers\",\n children: /*#__PURE__*/_jsxDEV(\"table\", {\n children: /*#__PURE__*/_jsxDEV(\"tbody\", {\n children: [/*#__PURE__*/_jsxDEV(\"tr\", {\n children: [/*#__PURE__*/_jsxDEV(\"th\", {\n children: \"Website\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 201,\n columnNumber: 19\n }, this), /*#__PURE__*/_jsxDEV(\"th\", {\n children: \"Prefix\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 202,\n columnNumber: 19\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 200,\n columnNumber: 17\n }, this), items]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 199,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 198,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 197,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"header\", {\n id: \"modal-footer\",\n children: [/*#__PURE__*/_jsxDEV(\"a\", {\n href: \"https://github.com/jeroenpardon/\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-github-box\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 210,\n columnNumber: 54\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 210,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n href: \"https://materialdesignicons.com/\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-material-design\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 211,\n columnNumber: 54\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 211,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"sneaky\",\n children: [/*#__PURE__*/_jsxDEV(\"input\", {\n type: \"checkbox\",\n id: \"contenttype\",\n onChange: \"nsfw(this)\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 212,\n columnNumber: 35\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n for: \"contenttype\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-domino-mask\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 213,\n columnNumber: 36\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 213,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 212,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 209,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 166,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 165,\n columnNumber: 5\n }, this);\n}\n\n_c9 = ModalMenu;\n\nfunction Provider(props) {\n return /*#__PURE__*/_jsxDEV(\"tr\", {\n children: [/*#__PURE__*/_jsxDEV(\"td\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: props.provider.url,\n children: props.provider.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 223,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 223,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"td\", {\n children: props.provider.prefix\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 224,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 222,\n columnNumber: 5\n }, this);\n}\n\n_c10 = Provider;\n\nfunction ModalInit() {\n return /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"modal_init\",\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n className: \"btn\",\n href: \"#modal\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify icon\",\n \"data-icon\": \"mdi-xbox-controller-menu\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 233,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 232,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 231,\n columnNumber: 5\n }, this);\n}\n\n_c11 = ModalInit;\nReactDOM.render( /*#__PURE__*/_jsxDEV(Homepage, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 240,\n columnNumber: 3\n}, this), document.getElementById('root')); //Functions below this line are for calculating data for\n//other functions\n\nfunction date() {\n let currentDate = new Date();\n let dateOptions = {\n weekday: \"long\",\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\"\n };\n let date = currentDate.toLocaleDateString(\"en-GB\", dateOptions);\n return date;\n}\n\nfunction fixDigits(k) {\n if (k < 10) {\n return \"0\" + k;\n } else {\n return k;\n }\n}\n\nfunction greet() {\n let currentTime = new Date();\n let greet = Math.floor(currentTime.getHours() / 6);\n let easterEggChance = Math.floor(Math.random() * 100);\n\n let greetings = require('./messages.json');\n\n let timeBased = [];\n let easterEggs = [];\n\n for (var i = 0; i < greetings.messages.length; i++) {\n if (greetings.messages[i].easteregg === \"FALSE\") {\n timeBased = timeBased.concat(greetings.messages[i]);\n } else {\n easterEggs = easterEggs.concat(greetings.messages[i]);\n }\n }\n\n if (easterEggChance > 10) {\n return timeBased[greet].message;\n } else {\n let easterEggText = Math.floor(Math.random() * easterEggs.length);\n return easterEggs[easterEggText].message;\n }\n}\n\nfunction Clock() {\n _s();\n\n const [date, setDate] = useState(new Date());\n\n function refreshClock() {\n setDate(new Date());\n }\n\n useEffect(() => {\n const timerId = setInterval(refreshClock, 1000);\n return function cleanup() {\n clearInterval(timerId);\n };\n }, []);\n var hour = date.getHours();\n var minutes = date.getMinutes(); //var seconds = date.getSeconds();\n\n var midday = \"AM\";\n midday = hour >= 12 ? \"PM\" : \"AM\";\n hour = hour === 0 ? 12 : hour > 12 ? hour - 12 : hour;\n minutes = fixDigits(minutes); //seconds = fixDigits(seconds);\n\n let time = hour + \":\" + minutes + \" \" + midday;\n return /*#__PURE__*/_jsxDEV(\"h2\", {\n id: \"clock\",\n children: time\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 311,\n columnNumber: 5\n }, this);\n}\n\n_s(Clock, \"Gqi45WOZhU2c0BLYX0HoJeiR0fk=\");\n\n_c12 = Clock;\n\nfunction getApps() {\n let applications = require('./apps.json');\n\n return applications;\n}\n\nfunction getLinks() {\n let links = require('./links.json');\n\n return links;\n}\n\nfunction getProviders() {\n let providers = require('./providers.json');\n\n return providers;\n}\n\nfunction getThemes() {\n let themes = require('./themes.json');\n\n return themes;\n}\n\nfunction updateTheme(e) {\n var themes = getThemes();\n var themeName = e.target.innerHTML.toLowerCase();\n var index = themes.themes.findIndex(function (item, i) {\n return item.name === themeName;\n });\n console.log(index);\n}\n\nfunction handleKeyPress(e) {\n var sindex = 0;\n var cycle = false;\n var key = e.keyCode || e.which;\n var text = e.target.value.replaceAll(\"+\", \"%2B\");\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n\n if (key == 13) {\n // Search functions\n search(text);\n }\n\n if (key == 9) {\n // Tab Completion Functions\n e.preventDefault();\n e.stopPropagation();\n\n if (text[0] === ';') {\n switch (option) {\n case 't':\n var streamers = ['admiralbahroo', 'moonmoon_ow', 'witwix'];\n\n if (!subtext || cycle) {\n cycle = true;\n if (sindex > streamers.length - 1) sindex = 0;\n document.getElementById(\"keywords\").value = ';t ' + streamers[sindex++];\n return;\n }\n\n for (var streamer of streamers) {\n if (subtext === streamer.substr(0, subtext.length)) {\n document.getElementById(\"keywords\").value = ';t ' + streamer;\n return;\n }\n }\n\n break;\n }\n }\n }\n\n if (key == 32) {\n //Space to go to search\n updateLabel(text);\n }\n\n sindex = 0;\n cycle = false;\n updateLabel(text);\n}\n\nfunction updateLabel(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n\n if (text[0] === '/') {\n // if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n document.getElementById(\"searchType\").innerHTML = \"Allmusic search\";\n break;\n\n case \"d\":\n document.getElementById(\"searchType\").innerHTML = \"Duck Duck Go search\";\n break;\n\n case \"di\":\n document.getElementById(\"searchType\").innerHTML = \"Discogs search\";\n break;\n\n case \"i\":\n document.getElementById(\"searchType\").innerHTML = \"IMDB search\";\n break;\n\n case \"m\":\n document.getElementById(\"searchType\").innerHTML = \"TheMovieDB search\";\n break;\n\n case \"r\":\n document.getElementById(\"searchType\").innerHTML = \"Reddit search\";\n break;\n\n case \"q\":\n document.getElementById(\"searchType\").innerHTML = \"Qwant search\";\n break;\n\n case \"so\":\n document.getElementById(\"searchType\").innerHTML = \"Soundcloud search\";\n break;\n\n case \"s\":\n document.getElementById(\"searchType\").innerHTML = \"Spotify search\";\n break;\n\n case \"tv\":\n document.getElementById(\"searchType\").innerHTML = \"TheTVDB search\";\n break;\n\n case \"t\":\n document.getElementById(\"searchType\").innerHTML = \"Trakt search\";\n break;\n\n case \"y\":\n document.getElementById(\"searchType\").innerHTML = \"YouTube search\";\n break;\n\n case \"w\":\n document.getElementById(\"searchType\").innerHTML = \"Wikipedia search\";\n break;\n\n case \"p\":\n document.getElementById(\"searchType\").innerHTML = \"Plex search\";\n break;\n\n case \"rt\":\n document.getElementById(\"searchType\").innerHTML = \"Rotten Tomatoes search\";\n break;\n\n default:\n document.getElementById(\"searchType\").innerHTML = \"Invalid search\";\n break;\n }\n } else {\n document.getElementById(\"searchType\").innerHTML = \"Google search\";\n }\n}\n\nfunction search(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n\n if (text[0] === '/') {\n if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n window.location = \"https://www.allmusic.com/search/all/\" + subtext;\n break;\n\n case \"d\":\n window.location = \"https://duckduckgo.com/?q=\" + subtext;\n break;\n\n case \"di\":\n window.location = \"https://www.discogs.com/search/?q=\" + subtext;\n break;\n\n case \"i\":\n window.location = \"https://www.imdb.com/find?q=\" + subtext;\n break;\n\n case \"m\":\n window.location = \"https://www.themoviedb.org/search?query=\" + subtext;\n break;\n\n case \"r\":\n window.location = \"https://www.reddit.com/search?q=\" + subtext;\n break;\n\n case \"q\":\n window.location = \"https://www.qwant.com/?q=\" + subtext;\n break;\n\n case \"so\":\n window.location = \"https://soundcloud.com/search?q=\" + subtext;\n break;\n\n case \"s\":\n window.location = \"https://open.spotify.com/search/results/\" + subtext;\n break;\n\n case \"t\":\n window.location = \"https://trakt.tv/search?query=\" + subtext;\n break;\n\n case \"tv\":\n window.location = \"https://www.thetvdb.com/search?query=\" + subtext;\n break;\n\n case \"y\":\n window.location = \"https://www.youtube.com/results?search_query=\" + subtext;\n break;\n\n case \"w\":\n window.location = \"https://en.wikipedia.org/w/index.php?search=\" + subtext;\n break;\n\n case \"p\":\n window.location = \"https://app.plex.tv/desktop/#!/search?query=\" + subtext;\n break;\n\n case \"rt\":\n window.location = \"https://www.rottentomatoes.com/search?search=\" + subtext;\n break;\n }\n } else {\n var option = text.substr(1);\n\n switch (option) {\n case \"d\":\n window.location = \"https://www.duckduckgo.com\";\n break;\n\n case \"y\":\n window.location = \"https://www.youtube.com\";\n break;\n\n case \"r\":\n window.location = \"https://reddit.com\";\n break;\n\n case \"s\":\n window.location = \"https://open.spotify.com\";\n break;\n }\n }\n } else if (validURL(text)) {\n if (containsProtocol(text)) window.location = text;else window.location = \"https://\" + text;\n } else {\n window.location = \"https://www.google.com/search?q=\" + text;\n }\n} // Source: https://stackoverflow.com/questions/5717093/check-if-a-javascript-string-is-a-url\n\n\nfunction validURL(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/)?' + // protocol\n '((([a-z\\\\d]([a-z\\\\d-]*[a-z\\\\d])*)\\\\.)+[a-z]{2,}|' + // domain name\n '((\\\\d{1,3}\\\\.){3}\\\\d{1,3}))' + // OR ip (v4) address\n '(\\\\:\\\\d+)?(\\\\/[-a-z\\\\d%_.~+]*)*' + // port and path\n '(\\\\?[;&a-z\\\\d%_.~+=-]*)?' + // query string\n '(\\\\#[-a-z\\\\d_]*)?$', 'i'); // fragment locator\n\n return !!pattern.test(str);\n}\n\nfunction containsProtocol(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/){1}.*', 'i');\n return !!pattern.test(str);\n}\n\nString.prototype.replaceAll = function (search, replacement) {\n var target = this;\n return target.split(search).join(replacement);\n};\n\nvar _c, _c2, _c3, _c4, _c5, _c6, _c7, _c8, _c9, _c10, _c11, _c12;\n\n$RefreshReg$(_c, \"Homepage\");\n$RefreshReg$(_c2, \"Search\");\n$RefreshReg$(_c3, \"Header\");\n$RefreshReg$(_c4, \"Applications\");\n$RefreshReg$(_c5, \"App\");\n$RefreshReg$(_c6, \"Bookmarks\");\n$RefreshReg$(_c7, \"LinkGroups\");\n$RefreshReg$(_c8, \"LinkItem\");\n$RefreshReg$(_c9, \"ModalMenu\");\n$RefreshReg$(_c10, \"Provider\");\n$RefreshReg$(_c11, \"ModalInit\");\n$RefreshReg$(_c12, \"Clock\");","map":{"version":3,"sources":["/home/seanedmunds/dev/home-page/src/index.js"],"names":["React","useState","useEffect","ReactDOM","Homepage","date","greet","Search","handleKeyPress","Header","props","Applications","appList","getApps","items","i","apps","length","push","name","url","icon","NSFW","App","classNameType","hrefUrl","iconName","Bookmarks","bookmarkList","getLinks","bookmarks","category","links","LinkGroups","LinkItem","link","ModalMenu","providers","getProviders","updateTheme","Provider","provider","prefix","ModalInit","render","document","getElementById","currentDate","Date","dateOptions","weekday","year","month","day","toLocaleDateString","fixDigits","k","currentTime","Math","floor","getHours","easterEggChance","random","greetings","require","timeBased","easterEggs","messages","easteregg","concat","message","easterEggText","Clock","setDate","refreshClock","timerId","setInterval","cleanup","clearInterval","hour","minutes","getMinutes","midday","time","applications","getThemes","themes","e","themeName","target","innerHTML","toLowerCase","index","findIndex","item","console","log","sindex","cycle","key","keyCode","which","text","value","replaceAll","option","substr","indexOf","subtext","search","preventDefault","stopPropagation","streamers","streamer","updateLabel","window","location","validURL","containsProtocol","str","pattern","RegExp","test","String","prototype","replacement","split","join"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { useState, useEffect } from 'react';\nimport ReactDOM from 'react-dom';\n//import { unstable_createPortal } from 'react-dom';\nimport './index.css';\n\nfunction Homepage() {\n return (\n \n \n \n
\n \n \n
\n \n \n \n
\n \n \n
\n \n \n
\n \n );\n}\n\nfunction Search() {\n return (\n \n )\n}\n\nfunction Header(props) {\n return (\n \n );\n}\n\nfunction Applications() {\n let appList = getApps();\n var items = [];\n for (var i = 0; i < appList.apps.length; i++) {\n items.push(\n \n );\n }\n return (\n \n Applications
\n \n {items}\n
\n \n );\n}\n\nfunction App(props) {\n let classNameType = props.NSFW + \"-content\";\n let hrefUrl = \"https://\" + props.url;\n let iconName = \"mdi-\" + props.icon;\n return (\n \n );\n}\n\nfunction Bookmarks() {\n let bookmarkList = getLinks();\n var items = [];\n for (var i = 0; i < bookmarkList.bookmarks.length; i++) {\n items.push(\n \n );\n }\n return (\n \n Bookmarks
\n \n {items}\n
\n \n );\n}\n\nfunction LinkGroups(props) {\n var items = [];\n for (var i = 0; i < props.links.length; i++) {\n items.push(\n \n );\n }\n return (\n \n
{props.category}
\n {items}\n \n );\n}\n\nfunction LinkItem(props) {\n return (\n \n );\n}\n\nfunction ModalMenu() {\n var providers = getProviders();\n var items = [];\n for (var i = 0; i < providers.providers.length; i++) {\n items.push(\n \n );\n }\n return (\n \n \n \n\n
Color themes
\n\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n\n\n
Search options
\n
\n \n \n \n | Website | \n Prefix | \n
\n {items}\n \n
\n \n\n \n
\n \n );\n}\n\nfunction Provider(props) {\n return (\n \n | {props.provider.name} | \n {props.provider.prefix} | \n
\n );\n}\n\nfunction ModalInit() {\n return (\n \n );\n}\n\nReactDOM.render(\n ,\n document.getElementById('root')\n);\n\n//Functions below this line are for calculating data for\n//other functions\n\nfunction date() {\n let currentDate = new Date();\n let dateOptions = {\n weekday: \"long\",\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\"\n };\n let date = currentDate.toLocaleDateString(\"en-GB\", dateOptions);\n return date;\n}\nfunction fixDigits(k) {\n if (k < 10) {\n return \"0\" + k;\n }\n else {\n return k;\n }\n}\nfunction greet() {\n let currentTime = new Date();\n let greet = Math.floor(currentTime.getHours() / 6);\n let easterEggChance = Math.floor(Math.random() * 100);\n let greetings = require('./messages.json');\n let timeBased = [];\n let easterEggs = [];\n for (var i = 0; i < greetings.messages.length; i++) {\n if (greetings.messages[i].easteregg === \"FALSE\") {\n timeBased = timeBased.concat(greetings.messages[i]);\n } else {\n easterEggs = easterEggs.concat(greetings.messages[i]);\n }\n }\n if (easterEggChance > 10) {\n return timeBased[greet].message;\n } else {\n let easterEggText = Math.floor(Math.random() * easterEggs.length);\n return easterEggs[easterEggText].message;\n }\n}\nfunction Clock() {\n const [date, setDate] = useState(new Date());\n\n function refreshClock() {\n setDate(new Date());\n }\n useEffect(() => {\n const timerId = setInterval(refreshClock, 1000);\n return function cleanup() {\n clearInterval(timerId);\n };\n }, []);\n\n var hour = date.getHours();\n var minutes = date.getMinutes();\n //var seconds = date.getSeconds();\n var midday = \"AM\";\n midday = (hour >= 12) ? \"PM\" : \"AM\";\n hour = (hour === 0) ? 12 : ((hour > 12) ? (hour - 12) : hour);\n minutes = fixDigits(minutes);\n //seconds = fixDigits(seconds);\n let time = hour + \":\" + minutes + \" \" + midday;\n\n return (\n {time}
\n\n );\n}\nfunction getApps() {\n let applications = require('./apps.json');\n return applications;\n}\nfunction getLinks() {\n let links = require('./links.json');\n return links;\n}\nfunction getProviders() {\n let providers = require('./providers.json');\n return providers;\n}\nfunction getThemes() {\n let themes = require('./themes.json');\n return themes;\n}\n\nfunction updateTheme(e) {\n var themes = getThemes();\n var themeName = e.target.innerHTML.toLowerCase();\n var index = themes.themes.findIndex(function(item, i){\n return item.name === themeName\n });\n console.log(index);\n}\n\nfunction handleKeyPress(e) {\n var sindex = 0;\n var cycle = false;\n var key = e.keyCode || e.which;\n var text = e.target.value.replaceAll(\"+\", \"%2B\");\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n if (key == 13) { // Search functions\n search(text);\n }\n if (key == 9) { // Tab Completion Functions\n e.preventDefault();\n e.stopPropagation();\n if (text[0] === ';') {\n switch (option) {\n case 't':\n var streamers = ['admiralbahroo', 'moonmoon_ow', 'witwix'];\n if (!subtext || cycle) {\n cycle = true;\n if (sindex > streamers.length - 1) sindex = 0;\n document.getElementById(\"keywords\").value = ';t ' + streamers[sindex++];\n return;\n }\n for (var streamer of streamers) {\n if (subtext === streamer.substr(0, subtext.length)) {\n document.getElementById(\"keywords\").value = ';t ' + streamer;\n return;\n }\n }\n break;\n }\n }\n }\n if(key == 32){ //Space to go to search\nupdateLabel(text);\n }\n sindex = 0;\n cycle = false;\n updateLabel(text);\n}\n\nfunction updateLabel(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n if (text[0] === '/') {\n// if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n document.getElementById(\"searchType\").innerHTML = \"Allmusic search\";\n break;\n case \"d\":\n document.getElementById(\"searchType\").innerHTML = \"Duck Duck Go search\";\n break;\n case \"di\":\n document.getElementById(\"searchType\").innerHTML = \"Discogs search\";\n break;\n case \"i\":\n document.getElementById(\"searchType\").innerHTML = \"IMDB search\";\n break;\n case \"m\":\n document.getElementById(\"searchType\").innerHTML = \"TheMovieDB search\";\n break;\n case \"r\":\n document.getElementById(\"searchType\").innerHTML = \"Reddit search\";\n break;\n case \"q\":\n document.getElementById(\"searchType\").innerHTML = \"Qwant search\";\n break;\n case \"so\":\n document.getElementById(\"searchType\").innerHTML = \"Soundcloud search\";\n break;\n case \"s\":\n document.getElementById(\"searchType\").innerHTML = \"Spotify search\";\n break;\n case \"tv\":\n document.getElementById(\"searchType\").innerHTML = \"TheTVDB search\";\n break;\n case \"t\":\n document.getElementById(\"searchType\").innerHTML = \"Trakt search\";\n break;\n case \"y\":\n document.getElementById(\"searchType\").innerHTML = \"YouTube search\";\n break;\n case \"w\":\n document.getElementById(\"searchType\").innerHTML = \"Wikipedia search\";\n break;\n case \"p\":\n document.getElementById(\"searchType\").innerHTML = \"Plex search\";\n break;\n case \"rt\":\n document.getElementById(\"searchType\").innerHTML = \"Rotten Tomatoes search\";\n break;\n default:\n document.getElementById(\"searchType\").innerHTML = \"Invalid search\";\n break;\n }\n}else {\n document.getElementById(\"searchType\").innerHTML = \"Google search\";\n }\n}\n\nfunction search(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n if (text[0] === '/') {\n if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n window.location = \"https://www.allmusic.com/search/all/\" + subtext;\n break;\n case \"d\":\n window.location = \"https://duckduckgo.com/?q=\" + subtext;\n break;\n case \"di\":\n window.location = \"https://www.discogs.com/search/?q=\" + subtext;\n break;\n case \"i\":\n window.location = \"https://www.imdb.com/find?q=\" + subtext;\n break;\n case \"m\":\n window.location = \"https://www.themoviedb.org/search?query=\" + subtext;\n break;\n case \"r\":\n window.location = \"https://www.reddit.com/search?q=\" + subtext;\n break;\n case \"q\":\n window.location = \"https://www.qwant.com/?q=\" + subtext;\n break;\n case \"so\":\n window.location = \"https://soundcloud.com/search?q=\" + subtext;\n break;\n case \"s\":\n window.location = \"https://open.spotify.com/search/results/\" + subtext;\n break;\n case \"t\":\n window.location = \"https://trakt.tv/search?query=\" + subtext;\n break;\n case \"tv\":\n window.location = \"https://www.thetvdb.com/search?query=\" + subtext;\n break;\n case \"y\":\n window.location = \"https://www.youtube.com/results?search_query=\" + subtext;\n break;\n case \"w\":\n window.location = \"https://en.wikipedia.org/w/index.php?search=\" + subtext;\n break;\n case \"p\":\n window.location = \"https://app.plex.tv/desktop/#!/search?query=\" + subtext;\n break;\n case \"rt\":\n window.location = \"https://www.rottentomatoes.com/search?search=\" + subtext;\n break;\n }\n } else {\n var option = text.substr(1);\n switch (option) {\n case \"d\":\n window.location = \"https://www.duckduckgo.com\";\n break;\n case \"y\":\n window.location = \"https://www.youtube.com\";\n break;\n case \"r\":\n window.location = \"https://reddit.com\";\n break;\n case \"s\":\n window.location = \"https://open.spotify.com\";\n break;\n }\n }\n } else if (validURL(text)) {\n if (containsProtocol(text))\n window.location = text;\n else\n window.location = \"https://\" + text;\n } else {\n window.location = \"https://www.google.com/search?q=\" + text;\n }\n}\n\n// Source: https://stackoverflow.com/questions/5717093/check-if-a-javascript-string-is-a-url\nfunction validURL(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/)?' + // protocol\n '((([a-z\\\\d]([a-z\\\\d-]*[a-z\\\\d])*)\\\\.)+[a-z]{2,}|' + // domain name\n '((\\\\d{1,3}\\\\.){3}\\\\d{1,3}))' + // OR ip (v4) address\n '(\\\\:\\\\d+)?(\\\\/[-a-z\\\\d%_.~+]*)*' + // port and path\n '(\\\\?[;&a-z\\\\d%_.~+=-]*)?' + // query string\n '(\\\\#[-a-z\\\\d_]*)?$', 'i'); // fragment locator\n return !!pattern.test(str);\n}\n\nfunction containsProtocol(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/){1}.*', 'i');\n return !!pattern.test(str);\n}\n\nString.prototype.replaceAll = function(search, replacement) {\n var target = this;\n return target.split(search).join(replacement);\n};"]},"metadata":{},"sourceType":"module"}
\ No newline at end of file
diff --git a/node_modules/.cache/babel-loader/8b710ea06593ce11e039b937d8a724da.json b/node_modules/.cache/babel-loader/8b710ea06593ce11e039b937d8a724da.json
new file mode 100644
index 00000000..36f95d18
--- /dev/null
+++ b/node_modules/.cache/babel-loader/8b710ea06593ce11e039b937d8a724da.json
@@ -0,0 +1 @@
+{"ast":null,"code":"var _jsxFileName = \"/home/seanedmunds/dev/home-page/src/index.js\",\n _s = $RefreshSig$();\n\nimport React from 'react';\nimport { useState, useEffect } from 'react';\nimport ReactDOM from 'react-dom';\nimport './index.css';\nimport { jsxDEV as _jsxDEV } from \"react/jsx-dev-runtime\";\n\nconst setValueFromLocalStorage = property => {\n let value = localStorage.getItem(property);\n setValue(property, value);\n};\n\nconst setValue = (property, value) => {\n if (value) {\n document.documentElement.style.setProperty(`--${property}`, value);\n const input = document.querySelector(`#${property}`);\n\n if (input) {\n value = value.replace('px', '');\n input.value = value;\n }\n }\n};\n\nfunction Homepage() {\n setTheme();\n return /*#__PURE__*/_jsxDEV(\"main\", {\n id: \"container\",\n className: \"fade\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Search, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 28,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 27,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Header, {\n date: date(),\n greet: greet()\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 31,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 30,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Applications, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 37,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 36,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Bookmarks, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 40,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 39,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(ModalMenu, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 43,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 42,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(ModalInit, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 46,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 45,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 26,\n columnNumber: 5\n }, this);\n}\n\n_c = Homepage;\n\nfunction Search() {\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"search\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"abackground\",\n children: [/*#__PURE__*/_jsxDEV(\"input\", {\n name: \"keywords\",\n type: \"text\",\n className: \"keyword\",\n id: \"keywords\",\n size: \"50\",\n spellCheck: \"true\",\n placeholder: \"\"\n /*onFocus={this.placeholder = \"\"} onBlur={this.placeholder = ''}*/\n ,\n autoComplete: \"off\",\n autoFocus: true,\n onKeyUp: handleKeyPress\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 56,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n id: \"searchType\",\n className: \"Input-label\",\n children: \"Google search\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 57,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 55,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 54,\n columnNumber: 5\n }, this);\n}\n\n_c2 = Search;\n\nfunction Header(props) {\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"header\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n id: \"greeting_block\",\n children: /*#__PURE__*/_jsxDEV(\"h1\", {\n id: \"header_greet\",\n children: props.greet\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 67,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 66,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"date_block\",\n children: [/*#__PURE__*/_jsxDEV(\"h2\", {\n id: \"header_date\",\n children: props.date\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 70,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(Clock, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 71,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 69,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 65,\n columnNumber: 5\n }, this);\n}\n\n_c3 = Header;\n\nfunction Applications() {\n let appList = getApps();\n var items = [];\n\n for (var i = 0; i < appList.apps.length; i++) {\n var safe = appList.apps[i].NSFW;\n var NSFWEnabled = localStorage.getItem(\"contenttype\");\n\n if (safe === \"SAFE\") {\n items.push( /*#__PURE__*/_jsxDEV(App, {\n name: appList.apps[i].name,\n url: appList.apps[i].url,\n icon: appList.apps[i].icon,\n NSFW: appList.apps[i].NSFW\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 85,\n columnNumber: 9\n }, this));\n } else if (safe === \"NSFW\" && NSFWEnabled) {\n items.push( /*#__PURE__*/_jsxDEV(App, {\n name: appList.apps[i].name,\n url: appList.apps[i].url,\n icon: appList.apps[i].icon,\n NSFW: appList.apps[i].NSFW\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 95,\n columnNumber: 9\n }, this));\n } else {}\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"apps\",\n children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n children: \"Applications\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 110,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"apps_loop\",\n children: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 111,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 109,\n columnNumber: 5\n }, this);\n}\n\n_c4 = Applications;\n\nfunction App(props) {\n let classNameType = props.NSFW + \"-content\";\n let hrefUrl = \"https://\" + props.url;\n let iconName = \"mdi-\" + props.icon;\n return /*#__PURE__*/_jsxDEV(\"div\", {\n className: classNameType,\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: hrefUrl,\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_item\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_icon\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify icon\",\n \"data-icon\": iconName\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 128,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 127,\n columnNumber: 13\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_text\",\n children: [/*#__PURE__*/_jsxDEV(\"span\", {\n id: \"app-name\",\n children: props.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 131,\n columnNumber: 15\n }, this), /*#__PURE__*/_jsxDEV(\"span\", {\n id: \"app-address\",\n children: props.url\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 132,\n columnNumber: 15\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 130,\n columnNumber: 13\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 126,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 125,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 124,\n columnNumber: 7\n }, this);\n}\n\n_c5 = App;\n\nfunction Bookmarks() {\n let bookmarkList = getLinks();\n var items = [];\n\n for (var i = 0; i < bookmarkList.bookmarks.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(LinkGroups, {\n category: bookmarkList.bookmarks[i].category,\n links: bookmarkList.bookmarks[i].links\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 145,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"links\",\n children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n children: \"Bookmarks\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 154,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"links_loop\",\n children: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 155,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 153,\n columnNumber: 5\n }, this);\n}\n\n_c6 = Bookmarks;\n\nfunction LinkGroups(props) {\n var items = [];\n\n for (var i = 0; i < props.links.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(LinkItem, {\n link: props.links[i]\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 166,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"links_item\",\n children: [/*#__PURE__*/_jsxDEV(\"h4\", {\n children: props.category\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 174,\n columnNumber: 7\n }, this), items]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 173,\n columnNumber: 5\n }, this);\n}\n\n_c7 = LinkGroups;\n\nfunction LinkItem(props) {\n return /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: props.link.url,\n className: \"theme_color-border theme_text-select\",\n children: props.link.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 183,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 182,\n columnNumber: 5\n }, this);\n}\n\n_c8 = LinkItem;\n\nfunction ModalMenu() {\n var providers = getProviders();\n var items = [];\n var isChecked = localStorage.getItem(\"contenttype\");\n console.log(localStorage.getItem(\"contenttype\"));\n\n for (var i = 0; i < providers.providers.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(Provider, {\n provider: providers.providers[i]\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 195,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"modal\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n children: [/*#__PURE__*/_jsxDEV(\"header\", {\n id: \"modal-header\",\n children: [/*#__PURE__*/_jsxDEV(\"h1\", {\n children: \"Options\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 205,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n href: \"#\",\n title: \"Close\",\n className: \"modal-close\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-close\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 207,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 206,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 204,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"h2\", {\n children: \"Color themes\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 211,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"modal-theme\",\n children: [/*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"blackboard\",\n className: \"theme-button theme-blackboard\",\n onClick: updateTheme,\n children: \"Blackboard\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 214,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"gazette\",\n className: \"theme-button theme-gazette\",\n onClick: updateTheme,\n children: \"Gazette\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 215,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"espresso\",\n className: \"theme-button theme-espresso\",\n onClick: updateTheme,\n children: \"Espresso\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 216,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cab\",\n className: \"theme-button theme-cab\",\n onClick: updateTheme,\n children: \"Cab\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 217,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cloud\",\n className: \"theme-button theme-cloud\",\n onClick: updateTheme,\n children: \"Cloud\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 218,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"lime\",\n className: \"theme-button theme-lime\",\n onClick: updateTheme,\n children: \"Lime\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 219,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"passion\",\n className: \"theme-button theme-passion\",\n onClick: updateTheme,\n children: \"Passion\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 220,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"blues\",\n className: \"theme-button theme-blues\",\n onClick: updateTheme,\n children: \"Blues\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 221,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"chalk\",\n className: \"theme-button theme-chalk\",\n onClick: updateTheme,\n children: \"Chalk\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 222,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"tron\",\n className: \"theme-button theme-tron\",\n onClick: updateTheme,\n children: \"Tron\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 223,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"paper\",\n className: \"theme-button theme-paper\",\n onClick: updateTheme,\n children: \"Paper\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 224,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cyberpunk\",\n className: \"theme-button theme-cyberpunk\",\n onClick: updateTheme,\n children: \"Cyberpunk\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 225,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"quadra\",\n className: \"theme-button theme-panam\",\n onClick: updateTheme,\n children: \"Quadra\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 226,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"panam\",\n className: \"theme-button theme-panam\",\n onClick: updateTheme,\n children: \"Panam\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 227,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"touch\",\n className: \"theme-button theme-touch\",\n onClick: updateTheme,\n children: \"Touch\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 228,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"peek\",\n className: \"theme-button theme-peek\",\n onClick: updateTheme,\n children: \"Peek\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 229,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 213,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"h2\", {\n children: \"Search options\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 233,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"providers\",\n children: /*#__PURE__*/_jsxDEV(\"table\", {\n children: /*#__PURE__*/_jsxDEV(\"tbody\", {\n children: [/*#__PURE__*/_jsxDEV(\"tr\", {\n children: [/*#__PURE__*/_jsxDEV(\"th\", {\n children: \"Website\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 238,\n columnNumber: 19\n }, this), /*#__PURE__*/_jsxDEV(\"th\", {\n children: \"Prefix\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 239,\n columnNumber: 19\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 237,\n columnNumber: 17\n }, this), items]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 236,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 235,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 234,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"header\", {\n id: \"modal-footer\",\n children: [/*#__PURE__*/_jsxDEV(\"a\", {\n href: \"https://github.com/jeroenpardon/\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-github-box\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 247,\n columnNumber: 54\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 247,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n href: \"https://materialdesignicons.com/\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-material-design\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 248,\n columnNumber: 54\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 248,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(HideButton, {\n checked: isChecked\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 249,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 246,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 203,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 202,\n columnNumber: 5\n }, this);\n}\n\n_c9 = ModalMenu;\n\nfunction HideButton(props) {\n console.log(props.checked);\n\n if (props.checked === \"true\") {\n console.log(\"icon should be grey\");\n return /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"sneaky\",\n children: [/*#__PURE__*/_jsxDEV(\"input\", {\n type: \"checkbox\",\n id: \"contenttype\",\n onChange: udpateDisplayedItems,\n defaultChecked: true\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 263,\n columnNumber: 31\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n for: \"contenttype\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-domino-mask\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 264,\n columnNumber: 32\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 264,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 263,\n columnNumber: 7\n }, this);\n } else {\n console.log(\"icon should be white\");\n return /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"sneaky\",\n children: [/*#__PURE__*/_jsxDEV(\"input\", {\n type: \"checkbox\",\n id: \"contenttype\",\n onChange: udpateDisplayedItems,\n defaultChecked: false\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 269,\n columnNumber: 31\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n for: \"contenttype\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-domino-mask\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 270,\n columnNumber: 32\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 270,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 269,\n columnNumber: 7\n }, this);\n }\n}\n\n_c10 = HideButton;\n\nfunction Provider(props) {\n return /*#__PURE__*/_jsxDEV(\"tr\", {\n children: [/*#__PURE__*/_jsxDEV(\"td\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: props.provider.url,\n children: props.provider.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 278,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 278,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"td\", {\n children: props.provider.prefix\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 279,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 277,\n columnNumber: 5\n }, this);\n}\n\n_c11 = Provider;\n\nfunction ModalInit() {\n setDisplayedItems();\n return /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"modal_init\",\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n className: \"btn\",\n href: \"#modal\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify icon\",\n \"data-icon\": \"mdi-xbox-controller-menu\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 289,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 288,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 287,\n columnNumber: 5\n }, this);\n}\n\n_c12 = ModalInit;\nReactDOM.render( /*#__PURE__*/_jsxDEV(Homepage, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 296,\n columnNumber: 3\n}, this), document.getElementById('root')); //Functions below this line are for calculating data for\n//other functions\n\nfunction date() {\n let currentDate = new Date();\n let dateOptions = {\n weekday: \"long\",\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\"\n };\n let date = currentDate.toLocaleDateString(\"en-GB\", dateOptions);\n return date;\n}\n\nfunction fixDigits(k) {\n if (k < 10) {\n return \"0\" + k;\n } else {\n return k;\n }\n}\n\nfunction greet() {\n let currentTime = new Date();\n let greet = Math.floor(currentTime.getHours() / 6);\n let easterEggChance = Math.floor(Math.random() * 100);\n\n let greetings = require('./messages.json');\n\n let timeBased = [];\n let easterEggs = [];\n\n for (var i = 0; i < greetings.messages.length; i++) {\n if (greetings.messages[i].easteregg === \"FALSE\") {\n timeBased = timeBased.concat(greetings.messages[i]);\n } else {\n easterEggs = easterEggs.concat(greetings.messages[i]);\n }\n }\n\n if (easterEggChance > 10) {\n return timeBased[greet].message;\n } else {\n let easterEggText = Math.floor(Math.random() * easterEggs.length);\n return easterEggs[easterEggText].message;\n }\n}\n\nfunction Clock() {\n _s();\n\n const [date, setDate] = useState(new Date());\n\n function refreshClock() {\n setDate(new Date());\n }\n\n useEffect(() => {\n const timerId = setInterval(refreshClock, 1000);\n return function cleanup() {\n clearInterval(timerId);\n };\n }, []);\n var hour = date.getHours();\n var minutes = date.getMinutes(); //var seconds = date.getSeconds();\n\n var midday = \"AM\";\n midday = hour >= 12 ? \"PM\" : \"AM\";\n hour = hour === 0 ? 12 : hour > 12 ? hour - 12 : hour;\n minutes = fixDigits(minutes); //seconds = fixDigits(seconds);\n\n let time = hour + \":\" + minutes + \" \" + midday;\n return /*#__PURE__*/_jsxDEV(\"h2\", {\n id: \"clock\",\n children: time\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 367,\n columnNumber: 5\n }, this);\n}\n\n_s(Clock, \"Gqi45WOZhU2c0BLYX0HoJeiR0fk=\");\n\n_c13 = Clock;\n\nfunction getApps() {\n let applications = require('./apps.json');\n\n return applications;\n}\n\nfunction getLinks() {\n let links = require('./links.json');\n\n return links;\n}\n\nfunction getProviders() {\n let providers = require('./providers.json');\n\n return providers;\n}\n\nfunction getThemes() {\n let themes = require('./themes.json');\n\n return themes;\n}\n\nfunction updateTheme(e) {\n var themes = getThemes();\n var themeName = e.target.innerHTML.toLowerCase();\n var index = themes.themes.findIndex(function (item, i) {\n return item.name === themeName;\n });\n localStorage.setItem(\"image-background\", themes.themes[index].imagebackground);\n localStorage.setItem(\"color-background\", themes.themes[index].colorbackground);\n localStorage.setItem(\"color-search-background\", themes.themes[index].colorserachbackground);\n localStorage.setItem(\"color-text-pri\", themes.themes[index].colortextpri);\n localStorage.setItem(\"color-text-acc\", themes.themes[index].colortextacc);\n localStorage.setItem(\"color-border\", themes.themes[index].colorborder); //document.documentElement.style.setProperty(prop, `var(--${themeName}${prop.substring(10)})`);\n\n setTheme();\n}\n\nfunction setTheme() {\n setValueFromLocalStorage('image-background');\n setValueFromLocalStorage('color-background');\n setValueFromLocalStorage('color-search-background');\n setValueFromLocalStorage('color-text-pri');\n setValueFromLocalStorage('color-text-acc');\n setValueFromLocalStorage('color-border');\n setValueFromLocalStorage('content-display');\n}\n\nfunction handleKeyPress(e) {\n var sindex = 0;\n var cycle = false;\n var key = e.keyCode || e.which;\n var text = e.target.value.replaceAll(\"+\", \"%2B\");\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n\n if (key === 13) {\n // Search functions\n search(text);\n }\n\n if (key === 9) {\n // Tab Completion Functions\n e.preventDefault();\n e.stopPropagation();\n\n if (text[0] === ';') {\n switch (option) {\n case 't':\n var streamers = ['admiralbahroo', 'moonmoon_ow', 'witwix'];\n\n if (!subtext || cycle) {\n cycle = true;\n if (sindex > streamers.length - 1) sindex = 0;\n document.getElementById(\"keywords\").value = ';t ' + streamers[sindex++];\n return;\n }\n\n for (var streamer of streamers) {\n if (subtext === streamer.substr(0, subtext.length)) {\n document.getElementById(\"keywords\").value = ';t ' + streamer;\n return;\n }\n }\n\n break;\n\n default:\n break;\n }\n }\n }\n\n if (key === 32) {\n //Space to go to search\n updateLabel(text);\n }\n\n sindex = 0;\n cycle = false;\n updateLabel(text);\n}\n\nfunction updateLabel(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n\n if (text[0] === '/') {\n // if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n document.getElementById(\"searchType\").innerHTML = \"Allmusic search\";\n break;\n\n case \"d\":\n document.getElementById(\"searchType\").innerHTML = \"Duck Duck Go search\";\n break;\n\n case \"di\":\n document.getElementById(\"searchType\").innerHTML = \"Discogs search\";\n break;\n\n case \"i\":\n document.getElementById(\"searchType\").innerHTML = \"IMDB search\";\n break;\n\n case \"m\":\n document.getElementById(\"searchType\").innerHTML = \"TheMovieDB search\";\n break;\n\n case \"r\":\n document.getElementById(\"searchType\").innerHTML = \"Reddit search\";\n break;\n\n case \"q\":\n document.getElementById(\"searchType\").innerHTML = \"Qwant search\";\n break;\n\n case \"so\":\n document.getElementById(\"searchType\").innerHTML = \"Soundcloud search\";\n break;\n\n case \"s\":\n document.getElementById(\"searchType\").innerHTML = \"Spotify search\";\n break;\n\n case \"tv\":\n document.getElementById(\"searchType\").innerHTML = \"TheTVDB search\";\n break;\n\n case \"t\":\n document.getElementById(\"searchType\").innerHTML = \"Trakt search\";\n break;\n\n case \"y\":\n document.getElementById(\"searchType\").innerHTML = \"YouTube search\";\n break;\n\n case \"w\":\n document.getElementById(\"searchType\").innerHTML = \"Wikipedia search\";\n break;\n\n case \"p\":\n document.getElementById(\"searchType\").innerHTML = \"Plex search\";\n break;\n\n case \"rt\":\n document.getElementById(\"searchType\").innerHTML = \"Rotten Tomatoes search\";\n break;\n\n default:\n document.getElementById(\"searchType\").innerHTML = \"Invalid search\";\n break;\n }\n } else {\n document.getElementById(\"searchType\").innerHTML = \"Google search\";\n }\n}\n\nfunction search(text) {\n var subtext = text.substr(2 + option.length);\n\n if (text[0] === '/') {\n if (text.indexOf(' ') > -1) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n\n switch (option) {\n case \"am\":\n window.location = \"https://www.allmusic.com/search/all/\" + subtext;\n break;\n\n case \"d\":\n window.location = \"https://duckduckgo.com/?q=\" + subtext;\n break;\n\n case \"di\":\n window.location = \"https://www.discogs.com/search/?q=\" + subtext;\n break;\n\n case \"i\":\n window.location = \"https://www.imdb.com/find?q=\" + subtext;\n break;\n\n case \"m\":\n window.location = \"https://www.themoviedb.org/search?query=\" + subtext;\n break;\n\n case \"r\":\n window.location = \"https://www.reddit.com/search?q=\" + subtext;\n break;\n\n case \"q\":\n window.location = \"https://www.qwant.com/?q=\" + subtext;\n break;\n\n case \"so\":\n window.location = \"https://soundcloud.com/search?q=\" + subtext;\n break;\n\n case \"s\":\n window.location = \"https://open.spotify.com/search/results/\" + subtext;\n break;\n\n case \"t\":\n window.location = \"https://trakt.tv/search?query=\" + subtext;\n break;\n\n case \"tv\":\n window.location = \"https://www.thetvdb.com/search?query=\" + subtext;\n break;\n\n case \"y\":\n window.location = \"https://www.youtube.com/results?search_query=\" + subtext;\n break;\n\n case \"w\":\n window.location = \"https://en.wikipedia.org/w/index.php?search=\" + subtext;\n break;\n\n case \"p\":\n window.location = \"https://app.plex.tv/desktop/#!/search?query=\" + subtext;\n break;\n\n case \"rt\":\n window.location = \"https://www.rottentomatoes.com/search?search=\" + subtext;\n break;\n\n default:\n break;\n }\n } else {\n var option = text.substr(1);\n\n switch (option) {\n case \"d\":\n window.location = \"https://www.duckduckgo.com\";\n break;\n\n case \"y\":\n window.location = \"https://www.youtube.com\";\n break;\n\n case \"r\":\n window.location = \"https://reddit.com\";\n break;\n\n case \"s\":\n window.location = \"https://open.spotify.com\";\n break;\n }\n }\n } else if (validURL(text)) {\n if (containsProtocol(text)) window.location = text;else window.location = \"https://\" + text;\n } else {\n window.location = \"https://www.google.com/search?q=\" + text;\n }\n}\n\nfunction validURL(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/)?' + // protocol\n '((([a-z\\\\d]([a-z\\\\d-]*[a-z\\\\d])*)\\\\.)+[a-z]{2,}|' + // domain name\n '((\\\\d{1,3}\\\\.){3}\\\\d{1,3}))' + // OR ip (v4) address\n '(\\\\:\\\\d+)?(\\\\/[-a-z\\\\d%_.~+]*)*' + // port and path\n '(\\\\?[;&a-z\\\\d%_.~+=-]*)?' + // query string\n '(\\\\#[-a-z\\\\d_]*)?$', 'i'); // fragment locator\n\n return !!pattern.test(str);\n}\n\nfunction containsProtocol(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/){1}.*', 'i');\n return !!pattern.test(str);\n}\n\nString.prototype.replaceAll = function (search, replacement) {\n var target = this;\n return target.split(search).join(replacement);\n};\n\nfunction udpateDisplayedItems(e) {\n localStorage.setItem('contenttype', e.target.checked);\n\n if (e.target.checked) {\n localStorage.setItem('content-display', 'none');\n } else {\n localStorage.setItem('content-display', 'block');\n }\n\n setDisplayedItems();\n}\n\nfunction setDisplayedItems() {\n setValueFromLocalStorage('contenttype');\n setValueFromLocalStorage('content-display');\n}\n\nvar _c, _c2, _c3, _c4, _c5, _c6, _c7, _c8, _c9, _c10, _c11, _c12, _c13;\n\n$RefreshReg$(_c, \"Homepage\");\n$RefreshReg$(_c2, \"Search\");\n$RefreshReg$(_c3, \"Header\");\n$RefreshReg$(_c4, \"Applications\");\n$RefreshReg$(_c5, \"App\");\n$RefreshReg$(_c6, \"Bookmarks\");\n$RefreshReg$(_c7, \"LinkGroups\");\n$RefreshReg$(_c8, \"LinkItem\");\n$RefreshReg$(_c9, \"ModalMenu\");\n$RefreshReg$(_c10, \"HideButton\");\n$RefreshReg$(_c11, \"Provider\");\n$RefreshReg$(_c12, \"ModalInit\");\n$RefreshReg$(_c13, \"Clock\");","map":{"version":3,"sources":["/home/seanedmunds/dev/home-page/src/index.js"],"names":["React","useState","useEffect","ReactDOM","setValueFromLocalStorage","property","value","localStorage","getItem","setValue","document","documentElement","style","setProperty","input","querySelector","replace","Homepage","setTheme","date","greet","Search","handleKeyPress","Header","props","Applications","appList","getApps","items","i","apps","length","safe","NSFW","NSFWEnabled","push","name","url","icon","App","classNameType","hrefUrl","iconName","Bookmarks","bookmarkList","getLinks","bookmarks","category","links","LinkGroups","LinkItem","link","ModalMenu","providers","getProviders","isChecked","console","log","updateTheme","HideButton","checked","udpateDisplayedItems","Provider","provider","prefix","ModalInit","setDisplayedItems","render","getElementById","currentDate","Date","dateOptions","weekday","year","month","day","toLocaleDateString","fixDigits","k","currentTime","Math","floor","getHours","easterEggChance","random","greetings","require","timeBased","easterEggs","messages","easteregg","concat","message","easterEggText","Clock","setDate","refreshClock","timerId","setInterval","cleanup","clearInterval","hour","minutes","getMinutes","midday","time","applications","getThemes","themes","e","themeName","target","innerHTML","toLowerCase","index","findIndex","item","setItem","imagebackground","colorbackground","colorserachbackground","colortextpri","colortextacc","colorborder","sindex","cycle","key","keyCode","which","text","replaceAll","option","substr","indexOf","subtext","search","preventDefault","stopPropagation","streamers","streamer","updateLabel","window","location","validURL","containsProtocol","str","pattern","RegExp","test","String","prototype","replacement","split","join"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { useState, useEffect } from 'react';\nimport ReactDOM from 'react-dom';\nimport './index.css';\n\nconst setValueFromLocalStorage = property => {\n let value = localStorage.getItem(property);\n setValue(property, value);\n};\nconst setValue = (property, value) => {\n if (value) {\n document.documentElement.style.setProperty(`--${property}`, value);\n\n const input = document.querySelector(`#${property}`);\n if (input) {\n value = value.replace('px', '');\n input.value = value;\n }\n }\n};\n\nfunction Homepage() {\n setTheme();\n \n return (\n \n \n \n
\n \n \n
\n \n \n \n
\n \n \n
\n \n \n
\n \n );\n}\n\nfunction Search() {\n return (\n \n )\n}\n\nfunction Header(props) {\n return (\n \n );\n}\n\nfunction Applications() {\n let appList = getApps();\n var items = [];\n for (var i = 0; i < appList.apps.length; i++) {\n var safe = appList.apps[i].NSFW;\n var NSFWEnabled = localStorage.getItem(\"contenttype\");\n if (safe === \"SAFE\") {\n items.push(\n \n );\n } else if (safe === \"NSFW\" && NSFWEnabled) {\n items.push(\n \n );\n } else {\n \n }\n \n }\n return (\n \n Applications
\n \n {items}\n
\n \n );\n}\n\nfunction App(props) {\n \n let classNameType = props.NSFW + \"-content\";\n let hrefUrl = \"https://\" + props.url;\n let iconName = \"mdi-\" + props.icon;\n return (\n \n );\n}\n\nfunction Bookmarks() {\n let bookmarkList = getLinks();\n var items = [];\n for (var i = 0; i < bookmarkList.bookmarks.length; i++) {\n items.push(\n \n );\n }\n return (\n \n Bookmarks
\n \n {items}\n
\n \n );\n}\n\nfunction LinkGroups(props) {\n var items = [];\n for (var i = 0; i < props.links.length; i++) {\n items.push(\n \n );\n }\n return (\n \n
{props.category}
\n {items}\n \n );\n}\n\nfunction LinkItem(props) {\n return (\n \n );\n}\n\nfunction ModalMenu() {\n var providers = getProviders();\n var items = [];\n var isChecked = localStorage.getItem(\"contenttype\");\n console.log(localStorage.getItem(\"contenttype\"));\n for (var i = 0; i < providers.providers.length; i++) {\n items.push(\n \n );\n }\n return (\n \n \n \n\n
Color themes
\n\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n\n\n
Search options
\n
\n \n \n \n | Website | \n Prefix | \n
\n {items}\n \n
\n \n\n \n
\n \n );\n}\n\nfunction HideButton(props) {\n console.log(props.checked);\n if(props.checked === \"true\") {\n console.log(\"icon should be grey\");\n return (\n \n
\n );\n } else {\n console.log(\"icon should be white\");\n return (\n \n
\n );\n }\n}\n\nfunction Provider(props) {\n return (\n \n | {props.provider.name} | \n {props.provider.prefix} | \n
\n );\n}\n\nfunction ModalInit() {\n setDisplayedItems();\n return (\n \n );\n}\n\nReactDOM.render(\n ,\n document.getElementById('root')\n);\n\n//Functions below this line are for calculating data for\n//other functions\n\nfunction date() {\n let currentDate = new Date();\n let dateOptions = {\n weekday: \"long\",\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\"\n };\n let date = currentDate.toLocaleDateString(\"en-GB\", dateOptions);\n return date;\n}\nfunction fixDigits(k) {\n if (k < 10) {\n return \"0\" + k;\n }\n else {\n return k;\n }\n}\nfunction greet() {\n let currentTime = new Date();\n let greet = Math.floor(currentTime.getHours() / 6);\n let easterEggChance = Math.floor(Math.random() * 100);\n let greetings = require('./messages.json');\n let timeBased = [];\n let easterEggs = [];\n for (var i = 0; i < greetings.messages.length; i++) {\n if (greetings.messages[i].easteregg === \"FALSE\") {\n timeBased = timeBased.concat(greetings.messages[i]);\n } else {\n easterEggs = easterEggs.concat(greetings.messages[i]);\n }\n }\n if (easterEggChance > 10) {\n return timeBased[greet].message;\n } else {\n let easterEggText = Math.floor(Math.random() * easterEggs.length);\n return easterEggs[easterEggText].message;\n }\n}\nfunction Clock() {\n const [date, setDate] = useState(new Date());\n\n function refreshClock() {\n setDate(new Date());\n }\n useEffect(() => {\n const timerId = setInterval(refreshClock, 1000);\n return function cleanup() {\n clearInterval(timerId);\n };\n }, []);\n\n var hour = date.getHours();\n var minutes = date.getMinutes();\n //var seconds = date.getSeconds();\n var midday = \"AM\";\n midday = (hour >= 12) ? \"PM\" : \"AM\";\n hour = (hour === 0) ? 12 : ((hour > 12) ? (hour - 12) : hour);\n minutes = fixDigits(minutes);\n //seconds = fixDigits(seconds);\n let time = hour + \":\" + minutes + \" \" + midday;\n\n return (\n {time}
\n\n );\n}\nfunction getApps() {\n let applications = require('./apps.json');\n return applications;\n}\nfunction getLinks() {\n let links = require('./links.json');\n return links;\n}\nfunction getProviders() {\n let providers = require('./providers.json');\n return providers;\n}\nfunction getThemes() {\n let themes = require('./themes.json');\n return themes;\n}\nfunction updateTheme(e) {\n var themes = getThemes();\n var themeName = e.target.innerHTML.toLowerCase();\n var index = themes.themes.findIndex(function(item, i){\n return item.name === themeName;\n });\n localStorage.setItem(\"image-background\", themes.themes[index].imagebackground);\n localStorage.setItem(\"color-background\", themes.themes[index].colorbackground);\n localStorage.setItem(\"color-search-background\", themes.themes[index].colorserachbackground);\n localStorage.setItem(\"color-text-pri\",themes.themes[index].colortextpri);\n localStorage.setItem(\"color-text-acc\", themes.themes[index].colortextacc);\n localStorage.setItem(\"color-border\", themes.themes[index].colorborder);\n \n //document.documentElement.style.setProperty(prop, `var(--${themeName}${prop.substring(10)})`);\n setTheme();\n}\nfunction setTheme() {\n setValueFromLocalStorage('image-background');\n setValueFromLocalStorage('color-background');\n setValueFromLocalStorage('color-search-background');\n setValueFromLocalStorage('color-text-pri');\n setValueFromLocalStorage('color-text-acc');\n setValueFromLocalStorage('color-border');\n setValueFromLocalStorage('content-display');\n}\nfunction handleKeyPress(e) {\n var sindex = 0;\n var cycle = false;\n var key = e.keyCode || e.which;\n var text = e.target.value.replaceAll(\"+\", \"%2B\");\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n if (key === 13) { // Search functions\n search(text);\n }\n if (key === 9) { // Tab Completion Functions\n e.preventDefault();\n e.stopPropagation();\n if (text[0] === ';') {\n switch (option) {\n case 't':\n var streamers = ['admiralbahroo', 'moonmoon_ow', 'witwix'];\n if (!subtext || cycle) {\n cycle = true;\n if (sindex > streamers.length - 1) sindex = 0;\n document.getElementById(\"keywords\").value = ';t ' + streamers[sindex++];\n return;\n }\n for (var streamer of streamers) {\n if (subtext === streamer.substr(0, subtext.length)) {\n document.getElementById(\"keywords\").value = ';t ' + streamer;\n return;\n }\n }\n break;\n default :\n break;\n }\n }\n }\n if(key === 32){ //Space to go to search\nupdateLabel(text);\n }\n sindex = 0;\n cycle = false;\n updateLabel(text);\n}\nfunction updateLabel(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n if (text[0] === '/') {\n// if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n document.getElementById(\"searchType\").innerHTML = \"Allmusic search\";\n break;\n case \"d\":\n document.getElementById(\"searchType\").innerHTML = \"Duck Duck Go search\";\n break;\n case \"di\":\n document.getElementById(\"searchType\").innerHTML = \"Discogs search\";\n break;\n case \"i\":\n document.getElementById(\"searchType\").innerHTML = \"IMDB search\";\n break;\n case \"m\":\n document.getElementById(\"searchType\").innerHTML = \"TheMovieDB search\";\n break;\n case \"r\":\n document.getElementById(\"searchType\").innerHTML = \"Reddit search\";\n break;\n case \"q\":\n document.getElementById(\"searchType\").innerHTML = \"Qwant search\";\n break;\n case \"so\":\n document.getElementById(\"searchType\").innerHTML = \"Soundcloud search\";\n break;\n case \"s\":\n document.getElementById(\"searchType\").innerHTML = \"Spotify search\";\n break;\n case \"tv\":\n document.getElementById(\"searchType\").innerHTML = \"TheTVDB search\";\n break;\n case \"t\":\n document.getElementById(\"searchType\").innerHTML = \"Trakt search\";\n break;\n case \"y\":\n document.getElementById(\"searchType\").innerHTML = \"YouTube search\";\n break;\n case \"w\":\n document.getElementById(\"searchType\").innerHTML = \"Wikipedia search\";\n break;\n case \"p\":\n document.getElementById(\"searchType\").innerHTML = \"Plex search\";\n break;\n case \"rt\":\n document.getElementById(\"searchType\").innerHTML = \"Rotten Tomatoes search\";\n break;\n default:\n document.getElementById(\"searchType\").innerHTML = \"Invalid search\";\n break;\n }\n}else {\n document.getElementById(\"searchType\").innerHTML = \"Google search\";\n }\n}\nfunction search(text) {\n \n var subtext = text.substr(2 + option.length);\n if (text[0] === '/') {\n if (text.indexOf(' ') > -1) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n switch (option) {\n case \"am\":\n window.location = \"https://www.allmusic.com/search/all/\" + subtext;\n break;\n case \"d\":\n window.location = \"https://duckduckgo.com/?q=\" + subtext;\n break;\n case \"di\":\n window.location = \"https://www.discogs.com/search/?q=\" + subtext;\n break;\n case \"i\":\n window.location = \"https://www.imdb.com/find?q=\" + subtext;\n break;\n case \"m\":\n window.location = \"https://www.themoviedb.org/search?query=\" + subtext;\n break;\n case \"r\":\n window.location = \"https://www.reddit.com/search?q=\" + subtext;\n break;\n case \"q\":\n window.location = \"https://www.qwant.com/?q=\" + subtext;\n break;\n case \"so\":\n window.location = \"https://soundcloud.com/search?q=\" + subtext;\n break;\n case \"s\":\n window.location = \"https://open.spotify.com/search/results/\" + subtext;\n break;\n case \"t\":\n window.location = \"https://trakt.tv/search?query=\" + subtext;\n break;\n case \"tv\":\n window.location = \"https://www.thetvdb.com/search?query=\" + subtext;\n break;\n case \"y\":\n window.location = \"https://www.youtube.com/results?search_query=\" + subtext;\n break;\n case \"w\":\n window.location = \"https://en.wikipedia.org/w/index.php?search=\" + subtext;\n break;\n case \"p\":\n window.location = \"https://app.plex.tv/desktop/#!/search?query=\" + subtext;\n break;\n case \"rt\":\n window.location = \"https://www.rottentomatoes.com/search?search=\" + subtext;\n break;\n default :\n break;\n }\n } else {\n var option = text.substr(1);\n switch (option) {\n case \"d\":\n window.location = \"https://www.duckduckgo.com\";\n break;\n case \"y\":\n window.location = \"https://www.youtube.com\";\n break;\n case \"r\":\n window.location = \"https://reddit.com\";\n break;\n case \"s\":\n window.location = \"https://open.spotify.com\";\n break;\n }\n }\n } else if (validURL(text)) {\n if (containsProtocol(text))\n window.location = text;\n else\n window.location = \"https://\" + text;\n } else {\n window.location = \"https://www.google.com/search?q=\" + text;\n }\n}\nfunction validURL(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/)?' + // protocol\n '((([a-z\\\\d]([a-z\\\\d-]*[a-z\\\\d])*)\\\\.)+[a-z]{2,}|' + // domain name\n '((\\\\d{1,3}\\\\.){3}\\\\d{1,3}))' + // OR ip (v4) address\n '(\\\\:\\\\d+)?(\\\\/[-a-z\\\\d%_.~+]*)*' + // port and path\n '(\\\\?[;&a-z\\\\d%_.~+=-]*)?' + // query string\n '(\\\\#[-a-z\\\\d_]*)?$', 'i'); // fragment locator\n return !!pattern.test(str);\n}\nfunction containsProtocol(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/){1}.*', 'i');\n return !!pattern.test(str);\n}\nString.prototype.replaceAll = function(search, replacement) {\n var target = this;\n return target.split(search).join(replacement);\n};\nfunction udpateDisplayedItems(e) {\n localStorage.setItem('contenttype', e.target.checked);\n if (e.target.checked) {\n localStorage.setItem('content-display', 'none');\n } else {\n localStorage.setItem('content-display', 'block');\n }\n setDisplayedItems();\n}\nfunction setDisplayedItems() {\n setValueFromLocalStorage('contenttype');\n setValueFromLocalStorage('content-display');\n}"]},"metadata":{},"sourceType":"module"}
\ No newline at end of file
diff --git a/node_modules/.cache/babel-loader/8c366c5e471bc9d5fd09dc9051a598e4.json b/node_modules/.cache/babel-loader/8c366c5e471bc9d5fd09dc9051a598e4.json
new file mode 100644
index 00000000..a613cea9
--- /dev/null
+++ b/node_modules/.cache/babel-loader/8c366c5e471bc9d5fd09dc9051a598e4.json
@@ -0,0 +1 @@
+{"ast":null,"code":"var _jsxFileName = \"/home/seanedmunds/dev/home-page/src/index.js\",\n _s = $RefreshSig$();\n\nimport React from 'react';\nimport { useState, useEffect } from 'react';\nimport ReactDOM from 'react-dom'; //import { unstable_createPortal } from 'react-dom';\n\nimport './index.css';\nimport { jsxDEV as _jsxDEV } from \"react/jsx-dev-runtime\";\n\nconst setValueFromLocalStorage = property => {\n let value = localStorage.getItem(property);\n setValue(property, value);\n};\n\nconst setValue = (property, value) => {\n if (value) {\n document.documentElement.style.setProperty(`--${property}`, value);\n const input = document.querySelector(`#${property}`);\n\n if (input) {\n value = value.replace('px', '');\n input.value = value;\n }\n }\n};\n\nfunction Homepage() {\n setTheme();\n return /*#__PURE__*/_jsxDEV(\"main\", {\n id: \"container\",\n className: \"fade\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Search, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 28,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 27,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Header, {\n date: date(),\n greet: greet()\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 31,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 30,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Applications, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 37,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 36,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Bookmarks, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 40,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 39,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(ModalMenu, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 43,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 42,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(ModalInit, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 46,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 45,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 26,\n columnNumber: 5\n }, this);\n}\n\n_c = Homepage;\n\nfunction Search() {\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"search\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"abackground\",\n children: [/*#__PURE__*/_jsxDEV(\"input\", {\n name: \"keywords\",\n type: \"text\",\n className: \"keyword\",\n id: \"keywords\",\n size: \"50\",\n spellCheck: \"true\",\n placeholder: \"\"\n /*onFocus={this.placeholder = \"\"} onBlur={this.placeholder = ''}*/\n ,\n autoComplete: \"off\",\n autoFocus: true,\n onKeyUp: handleKeyPress\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 56,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n id: \"searchType\",\n className: \"Input-label\",\n children: \"Google search\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 57,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 55,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 54,\n columnNumber: 5\n }, this);\n}\n\n_c2 = Search;\n\nfunction Header(props) {\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"header\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n id: \"greeting_block\",\n children: /*#__PURE__*/_jsxDEV(\"h1\", {\n id: \"header_greet\",\n children: props.greet\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 67,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 66,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"date_block\",\n children: [/*#__PURE__*/_jsxDEV(\"h2\", {\n id: \"header_date\",\n children: props.date\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 70,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(Clock, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 71,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 69,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 65,\n columnNumber: 5\n }, this);\n}\n\n_c3 = Header;\n\nfunction Applications() {\n let appList = getApps();\n var items = [];\n\n for (var i = 0; i < appList.apps.length; i++) {\n var safe = appList.apps[i].NSFW;\n var NSFWEnabled = localStorage.getItem(\"contenttype\");\n\n if (safe === \"SAFE\") {\n items.push( /*#__PURE__*/_jsxDEV(App, {\n name: appList.apps[i].name,\n url: appList.apps[i].url,\n icon: appList.apps[i].icon,\n NSFW: appList.apps[i].NSFW\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 85,\n columnNumber: 9\n }, this));\n } else if (safe === \"NSFW\" && NSFWEnabled) {\n items.push( /*#__PURE__*/_jsxDEV(App, {\n name: appList.apps[i].name,\n url: appList.apps[i].url,\n icon: appList.apps[i].icon,\n NSFW: appList.apps[i].NSFW\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 95,\n columnNumber: 9\n }, this));\n } else {}\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"apps\",\n children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n children: \"Applications\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 110,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"apps_loop\",\n children: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 111,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 109,\n columnNumber: 5\n }, this);\n}\n\n_c4 = Applications;\n\nfunction App(props) {\n let classNameType = props.NSFW + \"-content\";\n let hrefUrl = \"https://\" + props.url;\n let iconName = \"mdi-\" + props.icon;\n return /*#__PURE__*/_jsxDEV(\"div\", {\n className: classNameType,\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: hrefUrl,\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_item\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_icon\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify icon\",\n \"data-icon\": iconName\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 128,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 127,\n columnNumber: 13\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_text\",\n children: [/*#__PURE__*/_jsxDEV(\"span\", {\n id: \"app-name\",\n children: props.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 131,\n columnNumber: 15\n }, this), /*#__PURE__*/_jsxDEV(\"span\", {\n id: \"app-address\",\n children: props.url\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 132,\n columnNumber: 15\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 130,\n columnNumber: 13\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 126,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 125,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 124,\n columnNumber: 7\n }, this);\n}\n\n_c5 = App;\n\nfunction Bookmarks() {\n let bookmarkList = getLinks();\n var items = [];\n\n for (var i = 0; i < bookmarkList.bookmarks.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(LinkGroups, {\n category: bookmarkList.bookmarks[i].category,\n links: bookmarkList.bookmarks[i].links\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 145,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"links\",\n children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n children: \"Bookmarks\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 154,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"links_loop\",\n children: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 155,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 153,\n columnNumber: 5\n }, this);\n}\n\n_c6 = Bookmarks;\n\nfunction LinkGroups(props) {\n var items = [];\n\n for (var i = 0; i < props.links.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(LinkItem, {\n link: props.links[i]\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 166,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"links_item\",\n children: [/*#__PURE__*/_jsxDEV(\"h4\", {\n children: props.category\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 174,\n columnNumber: 7\n }, this), items]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 173,\n columnNumber: 5\n }, this);\n}\n\n_c7 = LinkGroups;\n\nfunction LinkItem(props) {\n return /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: props.link.url,\n className: \"theme_color-border theme_text-select\",\n children: props.link.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 183,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 182,\n columnNumber: 5\n }, this);\n}\n\n_c8 = LinkItem;\n\nfunction ModalMenu() {\n var providers = getProviders();\n var items = [];\n\n for (var i = 0; i < providers.providers.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(Provider, {\n provider: providers.providers[i]\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 193,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"modal\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n children: [/*#__PURE__*/_jsxDEV(\"header\", {\n id: \"modal-header\",\n children: [/*#__PURE__*/_jsxDEV(\"h1\", {\n children: \"Options\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 203,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n href: \"#\",\n title: \"Close\",\n className: \"modal-close\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-close\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 205,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 204,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 202,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"h2\", {\n children: \"Color themes\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 209,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"modal-theme\",\n children: [/*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"blackboard\",\n className: \"theme-button theme-blackboard\",\n onClick: updateTheme,\n children: \"Blackboard\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 212,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"gazette\",\n className: \"theme-button theme-gazette\",\n onClick: updateTheme,\n children: \"Gazette\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 213,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"espresso\",\n className: \"theme-button theme-espresso\",\n onClick: updateTheme,\n children: \"Espresso\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 214,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cab\",\n className: \"theme-button theme-cab\",\n onClick: updateTheme,\n children: \"Cab\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 215,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cloud\",\n className: \"theme-button theme-cloud\",\n onClick: updateTheme,\n children: \"Cloud\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 216,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"lime\",\n className: \"theme-button theme-lime\",\n onClick: updateTheme,\n children: \"Lime\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 217,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"passion\",\n className: \"theme-button theme-passion\",\n onClick: updateTheme,\n children: \"Passion\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 218,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"blues\",\n className: \"theme-button theme-blues\",\n onClick: updateTheme,\n children: \"Blues\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 219,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"chalk\",\n className: \"theme-button theme-chalk\",\n onClick: updateTheme,\n children: \"Chalk\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 220,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"tron\",\n className: \"theme-button theme-tron\",\n onClick: updateTheme,\n children: \"Tron\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 221,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"paper\",\n className: \"theme-button theme-paper\",\n onClick: updateTheme,\n children: \"Paper\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 222,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cyberpunk\",\n className: \"theme-button theme-cyberpunk\",\n onClick: updateTheme,\n children: \"Cyberpunk\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 223,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"quadra\",\n className: \"theme-button theme-panam\",\n onClick: updateTheme,\n children: \"Quadra\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 224,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"panam\",\n className: \"theme-button theme-panam\",\n onClick: updateTheme,\n children: \"Panam\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 225,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"touch\",\n className: \"theme-button theme-touch\",\n onClick: updateTheme,\n children: \"Touch\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 226,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"peek\",\n className: \"theme-button theme-peek\",\n onClick: updateTheme,\n children: \"Peek\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 227,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 211,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"h2\", {\n children: \"Search options\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 231,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"providers\",\n children: /*#__PURE__*/_jsxDEV(\"table\", {\n children: /*#__PURE__*/_jsxDEV(\"tbody\", {\n children: [/*#__PURE__*/_jsxDEV(\"tr\", {\n children: [/*#__PURE__*/_jsxDEV(\"th\", {\n children: \"Website\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 236,\n columnNumber: 19\n }, this), /*#__PURE__*/_jsxDEV(\"th\", {\n children: \"Prefix\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 237,\n columnNumber: 19\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 235,\n columnNumber: 17\n }, this), items]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 234,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 233,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 232,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"header\", {\n id: \"modal-footer\",\n children: [/*#__PURE__*/_jsxDEV(\"a\", {\n href: \"https://github.com/jeroenpardon/\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-github-box\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 245,\n columnNumber: 54\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 245,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n href: \"https://materialdesignicons.com/\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-material-design\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 246,\n columnNumber: 54\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 246,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"sneaky\",\n children: [/*#__PURE__*/_jsxDEV(\"input\", {\n type: \"checkbox\",\n id: \"contenttype\",\n onChange: udpateDisplayedItems\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 247,\n columnNumber: 35\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n for: \"contenttype\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-domino-mask\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 248,\n columnNumber: 36\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 248,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 247,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 244,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 201,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 200,\n columnNumber: 5\n }, this);\n}\n\n_c9 = ModalMenu;\n\nfunction Provider(props) {\n return /*#__PURE__*/_jsxDEV(\"tr\", {\n children: [/*#__PURE__*/_jsxDEV(\"td\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: props.provider.url,\n children: props.provider.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 258,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 258,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"td\", {\n children: props.provider.prefix\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 259,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 257,\n columnNumber: 5\n }, this);\n}\n\n_c10 = Provider;\n\nfunction ModalInit() {\n setDisplayedItems();\n return /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"modal_init\",\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n className: \"btn\",\n href: \"#modal\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify icon\",\n \"data-icon\": \"mdi-xbox-controller-menu\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 269,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 268,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 267,\n columnNumber: 5\n }, this);\n}\n\n_c11 = ModalInit;\nReactDOM.render( /*#__PURE__*/_jsxDEV(Homepage, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 276,\n columnNumber: 3\n}, this), document.getElementById('root')); //Functions below this line are for calculating data for\n//other functions\n\nfunction date() {\n let currentDate = new Date();\n let dateOptions = {\n weekday: \"long\",\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\"\n };\n let date = currentDate.toLocaleDateString(\"en-GB\", dateOptions);\n return date;\n}\n\nfunction fixDigits(k) {\n if (k < 10) {\n return \"0\" + k;\n } else {\n return k;\n }\n}\n\nfunction greet() {\n let currentTime = new Date();\n let greet = Math.floor(currentTime.getHours() / 6);\n let easterEggChance = Math.floor(Math.random() * 100);\n\n let greetings = require('./messages.json');\n\n let timeBased = [];\n let easterEggs = [];\n\n for (var i = 0; i < greetings.messages.length; i++) {\n if (greetings.messages[i].easteregg === \"FALSE\") {\n timeBased = timeBased.concat(greetings.messages[i]);\n } else {\n easterEggs = easterEggs.concat(greetings.messages[i]);\n }\n }\n\n if (easterEggChance > 10) {\n return timeBased[greet].message;\n } else {\n let easterEggText = Math.floor(Math.random() * easterEggs.length);\n return easterEggs[easterEggText].message;\n }\n}\n\nfunction Clock() {\n _s();\n\n const [date, setDate] = useState(new Date());\n\n function refreshClock() {\n setDate(new Date());\n }\n\n useEffect(() => {\n const timerId = setInterval(refreshClock, 1000);\n return function cleanup() {\n clearInterval(timerId);\n };\n }, []);\n var hour = date.getHours();\n var minutes = date.getMinutes(); //var seconds = date.getSeconds();\n\n var midday = \"AM\";\n midday = hour >= 12 ? \"PM\" : \"AM\";\n hour = hour === 0 ? 12 : hour > 12 ? hour - 12 : hour;\n minutes = fixDigits(minutes); //seconds = fixDigits(seconds);\n\n let time = hour + \":\" + minutes + \" \" + midday;\n return /*#__PURE__*/_jsxDEV(\"h2\", {\n id: \"clock\",\n children: time\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 347,\n columnNumber: 5\n }, this);\n}\n\n_s(Clock, \"Gqi45WOZhU2c0BLYX0HoJeiR0fk=\");\n\n_c12 = Clock;\n\nfunction getApps() {\n let applications = require('./apps.json');\n\n return applications;\n}\n\nfunction getLinks() {\n let links = require('./links.json');\n\n return links;\n}\n\nfunction getProviders() {\n let providers = require('./providers.json');\n\n return providers;\n}\n\nfunction getThemes() {\n let themes = require('./themes.json');\n\n return themes;\n}\n\nfunction updateTheme(e) {\n var themes = getThemes();\n var themeName = e.target.innerHTML.toLowerCase();\n var index = themes.themes.findIndex(function (item, i) {\n return item.name === themeName;\n });\n localStorage.setItem(\"image-background\", themes.themes[index].imagebackground);\n localStorage.setItem(\"color-background\", themes.themes[index].colorbackground);\n localStorage.setItem(\"color-search-background\", themes.themes[index].colorserachbackground);\n localStorage.setItem(\"color-text-pri\", themes.themes[index].colortextpri);\n localStorage.setItem(\"color-text-acc\", themes.themes[index].colortextacc);\n localStorage.setItem(\"color-border\", themes.themes[index].colorborder); //document.documentElement.style.setProperty(prop, `var(--${themeName}${prop.substring(10)})`);\n\n setTheme();\n}\n\nfunction setTheme() {\n setValueFromLocalStorage('image-background');\n setValueFromLocalStorage('color-background');\n setValueFromLocalStorage('color-search-background');\n setValueFromLocalStorage('color-text-pri');\n setValueFromLocalStorage('color-text-acc');\n setValueFromLocalStorage('color-border');\n setValueFromLocalStorage('content-display');\n}\n\nfunction handleKeyPress(e) {\n var sindex = 0;\n var cycle = false;\n var key = e.keyCode || e.which;\n var text = e.target.value.replaceAll(\"+\", \"%2B\");\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n\n if (key == 13) {\n // Search functions\n search(text);\n }\n\n if (key == 9) {\n // Tab Completion Functions\n e.preventDefault();\n e.stopPropagation();\n\n if (text[0] === ';') {\n switch (option) {\n case 't':\n var streamers = ['admiralbahroo', 'moonmoon_ow', 'witwix'];\n\n if (!subtext || cycle) {\n cycle = true;\n if (sindex > streamers.length - 1) sindex = 0;\n document.getElementById(\"keywords\").value = ';t ' + streamers[sindex++];\n return;\n }\n\n for (var streamer of streamers) {\n if (subtext === streamer.substr(0, subtext.length)) {\n document.getElementById(\"keywords\").value = ';t ' + streamer;\n return;\n }\n }\n\n break;\n }\n }\n }\n\n if (key == 32) {\n //Space to go to search\n updateLabel(text);\n }\n\n sindex = 0;\n cycle = false;\n updateLabel(text);\n}\n\nfunction updateLabel(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n\n if (text[0] === '/') {\n // if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n document.getElementById(\"searchType\").innerHTML = \"Allmusic search\";\n break;\n\n case \"d\":\n document.getElementById(\"searchType\").innerHTML = \"Duck Duck Go search\";\n break;\n\n case \"di\":\n document.getElementById(\"searchType\").innerHTML = \"Discogs search\";\n break;\n\n case \"i\":\n document.getElementById(\"searchType\").innerHTML = \"IMDB search\";\n break;\n\n case \"m\":\n document.getElementById(\"searchType\").innerHTML = \"TheMovieDB search\";\n break;\n\n case \"r\":\n document.getElementById(\"searchType\").innerHTML = \"Reddit search\";\n break;\n\n case \"q\":\n document.getElementById(\"searchType\").innerHTML = \"Qwant search\";\n break;\n\n case \"so\":\n document.getElementById(\"searchType\").innerHTML = \"Soundcloud search\";\n break;\n\n case \"s\":\n document.getElementById(\"searchType\").innerHTML = \"Spotify search\";\n break;\n\n case \"tv\":\n document.getElementById(\"searchType\").innerHTML = \"TheTVDB search\";\n break;\n\n case \"t\":\n document.getElementById(\"searchType\").innerHTML = \"Trakt search\";\n break;\n\n case \"y\":\n document.getElementById(\"searchType\").innerHTML = \"YouTube search\";\n break;\n\n case \"w\":\n document.getElementById(\"searchType\").innerHTML = \"Wikipedia search\";\n break;\n\n case \"p\":\n document.getElementById(\"searchType\").innerHTML = \"Plex search\";\n break;\n\n case \"rt\":\n document.getElementById(\"searchType\").innerHTML = \"Rotten Tomatoes search\";\n break;\n\n default:\n document.getElementById(\"searchType\").innerHTML = \"Invalid search\";\n break;\n }\n } else {\n document.getElementById(\"searchType\").innerHTML = \"Google search\";\n }\n}\n\nfunction search(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n\n if (text[0] === '/') {\n if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n window.location = \"https://www.allmusic.com/search/all/\" + subtext;\n break;\n\n case \"d\":\n window.location = \"https://duckduckgo.com/?q=\" + subtext;\n break;\n\n case \"di\":\n window.location = \"https://www.discogs.com/search/?q=\" + subtext;\n break;\n\n case \"i\":\n window.location = \"https://www.imdb.com/find?q=\" + subtext;\n break;\n\n case \"m\":\n window.location = \"https://www.themoviedb.org/search?query=\" + subtext;\n break;\n\n case \"r\":\n window.location = \"https://www.reddit.com/search?q=\" + subtext;\n break;\n\n case \"q\":\n window.location = \"https://www.qwant.com/?q=\" + subtext;\n break;\n\n case \"so\":\n window.location = \"https://soundcloud.com/search?q=\" + subtext;\n break;\n\n case \"s\":\n window.location = \"https://open.spotify.com/search/results/\" + subtext;\n break;\n\n case \"t\":\n window.location = \"https://trakt.tv/search?query=\" + subtext;\n break;\n\n case \"tv\":\n window.location = \"https://www.thetvdb.com/search?query=\" + subtext;\n break;\n\n case \"y\":\n window.location = \"https://www.youtube.com/results?search_query=\" + subtext;\n break;\n\n case \"w\":\n window.location = \"https://en.wikipedia.org/w/index.php?search=\" + subtext;\n break;\n\n case \"p\":\n window.location = \"https://app.plex.tv/desktop/#!/search?query=\" + subtext;\n break;\n\n case \"rt\":\n window.location = \"https://www.rottentomatoes.com/search?search=\" + subtext;\n break;\n }\n } else {\n var option = text.substr(1);\n\n switch (option) {\n case \"d\":\n window.location = \"https://www.duckduckgo.com\";\n break;\n\n case \"y\":\n window.location = \"https://www.youtube.com\";\n break;\n\n case \"r\":\n window.location = \"https://reddit.com\";\n break;\n\n case \"s\":\n window.location = \"https://open.spotify.com\";\n break;\n }\n }\n } else if (validURL(text)) {\n if (containsProtocol(text)) window.location = text;else window.location = \"https://\" + text;\n } else {\n window.location = \"https://www.google.com/search?q=\" + text;\n }\n} // Source: https://stackoverflow.com/questions/5717093/check-if-a-javascript-string-is-a-url\n\n\nfunction validURL(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/)?' + // protocol\n '((([a-z\\\\d]([a-z\\\\d-]*[a-z\\\\d])*)\\\\.)+[a-z]{2,}|' + // domain name\n '((\\\\d{1,3}\\\\.){3}\\\\d{1,3}))' + // OR ip (v4) address\n '(\\\\:\\\\d+)?(\\\\/[-a-z\\\\d%_.~+]*)*' + // port and path\n '(\\\\?[;&a-z\\\\d%_.~+=-]*)?' + // query string\n '(\\\\#[-a-z\\\\d_]*)?$', 'i'); // fragment locator\n\n return !!pattern.test(str);\n}\n\nfunction containsProtocol(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/){1}.*', 'i');\n return !!pattern.test(str);\n}\n\nString.prototype.replaceAll = function (search, replacement) {\n var target = this;\n return target.split(search).join(replacement);\n};\n\nfunction udpateDisplayedItems(e) {\n localStorage.setItem('contenttype', e.target.checked);\n\n if (e.target.checked) {\n localStorage.setItem('content-display', 'none');\n } else {\n localStorage.setItem('content-display', 'block');\n }\n\n setDisplayedItems();\n}\n\nfunction setDisplayedItems() {\n setValueFromLocalStorage('contenttype');\n setValueFromLocalStorage('content-display');\n var checked = localStorage.getItem(\"contenttype\");\n console.log(checked);\n}\n\nvar _c, _c2, _c3, _c4, _c5, _c6, _c7, _c8, _c9, _c10, _c11, _c12;\n\n$RefreshReg$(_c, \"Homepage\");\n$RefreshReg$(_c2, \"Search\");\n$RefreshReg$(_c3, \"Header\");\n$RefreshReg$(_c4, \"Applications\");\n$RefreshReg$(_c5, \"App\");\n$RefreshReg$(_c6, \"Bookmarks\");\n$RefreshReg$(_c7, \"LinkGroups\");\n$RefreshReg$(_c8, \"LinkItem\");\n$RefreshReg$(_c9, \"ModalMenu\");\n$RefreshReg$(_c10, \"Provider\");\n$RefreshReg$(_c11, \"ModalInit\");\n$RefreshReg$(_c12, \"Clock\");","map":{"version":3,"sources":["/home/seanedmunds/dev/home-page/src/index.js"],"names":["React","useState","useEffect","ReactDOM","setValueFromLocalStorage","property","value","localStorage","getItem","setValue","document","documentElement","style","setProperty","input","querySelector","replace","Homepage","setTheme","date","greet","Search","handleKeyPress","Header","props","Applications","appList","getApps","items","i","apps","length","safe","NSFW","NSFWEnabled","push","name","url","icon","App","classNameType","hrefUrl","iconName","Bookmarks","bookmarkList","getLinks","bookmarks","category","links","LinkGroups","LinkItem","link","ModalMenu","providers","getProviders","updateTheme","udpateDisplayedItems","Provider","provider","prefix","ModalInit","setDisplayedItems","render","getElementById","currentDate","Date","dateOptions","weekday","year","month","day","toLocaleDateString","fixDigits","k","currentTime","Math","floor","getHours","easterEggChance","random","greetings","require","timeBased","easterEggs","messages","easteregg","concat","message","easterEggText","Clock","setDate","refreshClock","timerId","setInterval","cleanup","clearInterval","hour","minutes","getMinutes","midday","time","applications","getThemes","themes","e","themeName","target","innerHTML","toLowerCase","index","findIndex","item","setItem","imagebackground","colorbackground","colorserachbackground","colortextpri","colortextacc","colorborder","sindex","cycle","key","keyCode","which","text","replaceAll","option","substr","indexOf","subtext","search","preventDefault","stopPropagation","streamers","streamer","updateLabel","window","location","validURL","containsProtocol","str","pattern","RegExp","test","String","prototype","replacement","split","join","checked","console","log"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { useState, useEffect } from 'react';\nimport ReactDOM from 'react-dom';\n//import { unstable_createPortal } from 'react-dom';\nimport './index.css';\n\nconst setValueFromLocalStorage = property => {\n let value = localStorage.getItem(property);\n setValue(property, value);\n};\nconst setValue = (property, value) => {\n if (value) {\n document.documentElement.style.setProperty(`--${property}`, value);\n\n const input = document.querySelector(`#${property}`);\n if (input) {\n value = value.replace('px', '');\n input.value = value;\n }\n }\n};\n\nfunction Homepage() {\n setTheme();\n return (\n \n \n \n
\n \n \n
\n \n \n \n
\n \n \n
\n \n \n
\n \n );\n}\n\nfunction Search() {\n return (\n \n )\n}\n\nfunction Header(props) {\n return (\n \n );\n}\n\nfunction Applications() {\n let appList = getApps();\n var items = [];\n for (var i = 0; i < appList.apps.length; i++) {\n var safe = appList.apps[i].NSFW;\n var NSFWEnabled = localStorage.getItem(\"contenttype\");\n if (safe === \"SAFE\") {\n items.push(\n \n );\n } else if (safe === \"NSFW\" && NSFWEnabled) {\n items.push(\n \n );\n } else {\n \n }\n \n }\n return (\n \n Applications
\n \n {items}\n
\n \n );\n}\n\nfunction App(props) {\n \n let classNameType = props.NSFW + \"-content\";\n let hrefUrl = \"https://\" + props.url;\n let iconName = \"mdi-\" + props.icon;\n return (\n \n );\n}\n\nfunction Bookmarks() {\n let bookmarkList = getLinks();\n var items = [];\n for (var i = 0; i < bookmarkList.bookmarks.length; i++) {\n items.push(\n \n );\n }\n return (\n \n Bookmarks
\n \n {items}\n
\n \n );\n}\n\nfunction LinkGroups(props) {\n var items = [];\n for (var i = 0; i < props.links.length; i++) {\n items.push(\n \n );\n }\n return (\n \n
{props.category}
\n {items}\n \n );\n}\n\nfunction LinkItem(props) {\n return (\n \n );\n}\n\nfunction ModalMenu() {\n var providers = getProviders();\n var items = [];\n for (var i = 0; i < providers.providers.length; i++) {\n items.push(\n \n );\n }\n return (\n \n \n \n\n
Color themes
\n\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n\n\n
Search options
\n
\n \n \n \n | Website | \n Prefix | \n
\n {items}\n \n
\n \n\n \n
\n \n );\n}\n\nfunction Provider(props) {\n return (\n \n | {props.provider.name} | \n {props.provider.prefix} | \n
\n );\n}\n\nfunction ModalInit() {\n setDisplayedItems();\n return (\n \n );\n}\n\nReactDOM.render(\n ,\n document.getElementById('root')\n);\n\n//Functions below this line are for calculating data for\n//other functions\n\nfunction date() {\n let currentDate = new Date();\n let dateOptions = {\n weekday: \"long\",\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\"\n };\n let date = currentDate.toLocaleDateString(\"en-GB\", dateOptions);\n return date;\n}\nfunction fixDigits(k) {\n if (k < 10) {\n return \"0\" + k;\n }\n else {\n return k;\n }\n}\nfunction greet() {\n let currentTime = new Date();\n let greet = Math.floor(currentTime.getHours() / 6);\n let easterEggChance = Math.floor(Math.random() * 100);\n let greetings = require('./messages.json');\n let timeBased = [];\n let easterEggs = [];\n for (var i = 0; i < greetings.messages.length; i++) {\n if (greetings.messages[i].easteregg === \"FALSE\") {\n timeBased = timeBased.concat(greetings.messages[i]);\n } else {\n easterEggs = easterEggs.concat(greetings.messages[i]);\n }\n }\n if (easterEggChance > 10) {\n return timeBased[greet].message;\n } else {\n let easterEggText = Math.floor(Math.random() * easterEggs.length);\n return easterEggs[easterEggText].message;\n }\n}\nfunction Clock() {\n const [date, setDate] = useState(new Date());\n\n function refreshClock() {\n setDate(new Date());\n }\n useEffect(() => {\n const timerId = setInterval(refreshClock, 1000);\n return function cleanup() {\n clearInterval(timerId);\n };\n }, []);\n\n var hour = date.getHours();\n var minutes = date.getMinutes();\n //var seconds = date.getSeconds();\n var midday = \"AM\";\n midday = (hour >= 12) ? \"PM\" : \"AM\";\n hour = (hour === 0) ? 12 : ((hour > 12) ? (hour - 12) : hour);\n minutes = fixDigits(minutes);\n //seconds = fixDigits(seconds);\n let time = hour + \":\" + minutes + \" \" + midday;\n\n return (\n {time}
\n\n );\n}\nfunction getApps() {\n let applications = require('./apps.json');\n return applications;\n}\nfunction getLinks() {\n let links = require('./links.json');\n return links;\n}\nfunction getProviders() {\n let providers = require('./providers.json');\n return providers;\n}\nfunction getThemes() {\n let themes = require('./themes.json');\n return themes;\n}\n\nfunction updateTheme(e) {\n var themes = getThemes();\n var themeName = e.target.innerHTML.toLowerCase();\n var index = themes.themes.findIndex(function(item, i){\n return item.name === themeName\n });\n localStorage.setItem(\"image-background\", themes.themes[index].imagebackground);\n localStorage.setItem(\"color-background\", themes.themes[index].colorbackground);\n localStorage.setItem(\"color-search-background\", themes.themes[index].colorserachbackground);\n localStorage.setItem(\"color-text-pri\",themes.themes[index].colortextpri);\n localStorage.setItem(\"color-text-acc\", themes.themes[index].colortextacc);\n localStorage.setItem(\"color-border\", themes.themes[index].colorborder);\n \n //document.documentElement.style.setProperty(prop, `var(--${themeName}${prop.substring(10)})`);\n setTheme();\n}\n\nfunction setTheme() {\n setValueFromLocalStorage('image-background');\n setValueFromLocalStorage('color-background');\n setValueFromLocalStorage('color-search-background');\n setValueFromLocalStorage('color-text-pri');\n setValueFromLocalStorage('color-text-acc');\n setValueFromLocalStorage('color-border');\n setValueFromLocalStorage('content-display');\n}\n\nfunction handleKeyPress(e) {\n var sindex = 0;\n var cycle = false;\n var key = e.keyCode || e.which;\n var text = e.target.value.replaceAll(\"+\", \"%2B\");\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n if (key == 13) { // Search functions\n search(text);\n }\n if (key == 9) { // Tab Completion Functions\n e.preventDefault();\n e.stopPropagation();\n if (text[0] === ';') {\n switch (option) {\n case 't':\n var streamers = ['admiralbahroo', 'moonmoon_ow', 'witwix'];\n if (!subtext || cycle) {\n cycle = true;\n if (sindex > streamers.length - 1) sindex = 0;\n document.getElementById(\"keywords\").value = ';t ' + streamers[sindex++];\n return;\n }\n for (var streamer of streamers) {\n if (subtext === streamer.substr(0, subtext.length)) {\n document.getElementById(\"keywords\").value = ';t ' + streamer;\n return;\n }\n }\n break;\n }\n }\n }\n if(key == 32){ //Space to go to search\nupdateLabel(text);\n }\n sindex = 0;\n cycle = false;\n updateLabel(text);\n}\n\nfunction updateLabel(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n if (text[0] === '/') {\n// if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n document.getElementById(\"searchType\").innerHTML = \"Allmusic search\";\n break;\n case \"d\":\n document.getElementById(\"searchType\").innerHTML = \"Duck Duck Go search\";\n break;\n case \"di\":\n document.getElementById(\"searchType\").innerHTML = \"Discogs search\";\n break;\n case \"i\":\n document.getElementById(\"searchType\").innerHTML = \"IMDB search\";\n break;\n case \"m\":\n document.getElementById(\"searchType\").innerHTML = \"TheMovieDB search\";\n break;\n case \"r\":\n document.getElementById(\"searchType\").innerHTML = \"Reddit search\";\n break;\n case \"q\":\n document.getElementById(\"searchType\").innerHTML = \"Qwant search\";\n break;\n case \"so\":\n document.getElementById(\"searchType\").innerHTML = \"Soundcloud search\";\n break;\n case \"s\":\n document.getElementById(\"searchType\").innerHTML = \"Spotify search\";\n break;\n case \"tv\":\n document.getElementById(\"searchType\").innerHTML = \"TheTVDB search\";\n break;\n case \"t\":\n document.getElementById(\"searchType\").innerHTML = \"Trakt search\";\n break;\n case \"y\":\n document.getElementById(\"searchType\").innerHTML = \"YouTube search\";\n break;\n case \"w\":\n document.getElementById(\"searchType\").innerHTML = \"Wikipedia search\";\n break;\n case \"p\":\n document.getElementById(\"searchType\").innerHTML = \"Plex search\";\n break;\n case \"rt\":\n document.getElementById(\"searchType\").innerHTML = \"Rotten Tomatoes search\";\n break;\n default:\n document.getElementById(\"searchType\").innerHTML = \"Invalid search\";\n break;\n }\n}else {\n document.getElementById(\"searchType\").innerHTML = \"Google search\";\n }\n}\n\nfunction search(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n if (text[0] === '/') {\n if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n window.location = \"https://www.allmusic.com/search/all/\" + subtext;\n break;\n case \"d\":\n window.location = \"https://duckduckgo.com/?q=\" + subtext;\n break;\n case \"di\":\n window.location = \"https://www.discogs.com/search/?q=\" + subtext;\n break;\n case \"i\":\n window.location = \"https://www.imdb.com/find?q=\" + subtext;\n break;\n case \"m\":\n window.location = \"https://www.themoviedb.org/search?query=\" + subtext;\n break;\n case \"r\":\n window.location = \"https://www.reddit.com/search?q=\" + subtext;\n break;\n case \"q\":\n window.location = \"https://www.qwant.com/?q=\" + subtext;\n break;\n case \"so\":\n window.location = \"https://soundcloud.com/search?q=\" + subtext;\n break;\n case \"s\":\n window.location = \"https://open.spotify.com/search/results/\" + subtext;\n break;\n case \"t\":\n window.location = \"https://trakt.tv/search?query=\" + subtext;\n break;\n case \"tv\":\n window.location = \"https://www.thetvdb.com/search?query=\" + subtext;\n break;\n case \"y\":\n window.location = \"https://www.youtube.com/results?search_query=\" + subtext;\n break;\n case \"w\":\n window.location = \"https://en.wikipedia.org/w/index.php?search=\" + subtext;\n break;\n case \"p\":\n window.location = \"https://app.plex.tv/desktop/#!/search?query=\" + subtext;\n break;\n case \"rt\":\n window.location = \"https://www.rottentomatoes.com/search?search=\" + subtext;\n break;\n }\n } else {\n var option = text.substr(1);\n switch (option) {\n case \"d\":\n window.location = \"https://www.duckduckgo.com\";\n break;\n case \"y\":\n window.location = \"https://www.youtube.com\";\n break;\n case \"r\":\n window.location = \"https://reddit.com\";\n break;\n case \"s\":\n window.location = \"https://open.spotify.com\";\n break;\n }\n }\n } else if (validURL(text)) {\n if (containsProtocol(text))\n window.location = text;\n else\n window.location = \"https://\" + text;\n } else {\n window.location = \"https://www.google.com/search?q=\" + text;\n }\n}\n\n// Source: https://stackoverflow.com/questions/5717093/check-if-a-javascript-string-is-a-url\nfunction validURL(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/)?' + // protocol\n '((([a-z\\\\d]([a-z\\\\d-]*[a-z\\\\d])*)\\\\.)+[a-z]{2,}|' + // domain name\n '((\\\\d{1,3}\\\\.){3}\\\\d{1,3}))' + // OR ip (v4) address\n '(\\\\:\\\\d+)?(\\\\/[-a-z\\\\d%_.~+]*)*' + // port and path\n '(\\\\?[;&a-z\\\\d%_.~+=-]*)?' + // query string\n '(\\\\#[-a-z\\\\d_]*)?$', 'i'); // fragment locator\n return !!pattern.test(str);\n}\n\nfunction containsProtocol(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/){1}.*', 'i');\n return !!pattern.test(str);\n}\n\nString.prototype.replaceAll = function(search, replacement) {\n var target = this;\n return target.split(search).join(replacement);\n};\n\nfunction udpateDisplayedItems(e) {\n localStorage.setItem('contenttype', e.target.checked);\n if (e.target.checked) {\n localStorage.setItem('content-display', 'none');\n } else {\n localStorage.setItem('content-display', 'block');\n }\n setDisplayedItems();\n}\nfunction setDisplayedItems() {\n setValueFromLocalStorage('contenttype');\n setValueFromLocalStorage('content-display');\n var checked = localStorage.getItem(\"contenttype\");\n console.log(checked);\n}"]},"metadata":{},"sourceType":"module"}
\ No newline at end of file
diff --git a/node_modules/.cache/babel-loader/8d417ea7b9d7399bd5547dc1cff7a8e1.json b/node_modules/.cache/babel-loader/8d417ea7b9d7399bd5547dc1cff7a8e1.json
new file mode 100644
index 00000000..b801bc54
--- /dev/null
+++ b/node_modules/.cache/babel-loader/8d417ea7b9d7399bd5547dc1cff7a8e1.json
@@ -0,0 +1 @@
+{"ast":null,"code":"var _jsxFileName = \"/home/seanedmunds/dev/home-page/src/index.js\",\n _s = $RefreshSig$();\n\nimport React from 'react';\nimport { useState, useEffect } from 'react';\nimport ReactDOM from 'react-dom'; //import { unstable_createPortal } from 'react-dom';\n\nimport './index.css';\nimport { jsxDEV as _jsxDEV } from \"react/jsx-dev-runtime\";\n\nfunction Homepage() {\n return /*#__PURE__*/_jsxDEV(\"main\", {\n id: \"container\",\n className: \"fade\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Search, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 11,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 10,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Header, {\n date: date(),\n greet: greet()\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 14,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 13,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Applications, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 20,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 19,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Bookmarks, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 23,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 22,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(ModalMenu, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 26,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 25,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(ModalInit, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 29,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 28,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 9,\n columnNumber: 5\n }, this);\n}\n\n_c = Homepage;\n\nfunction Search() {\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"search\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"abackground\",\n children: [/*#__PURE__*/_jsxDEV(\"input\", {\n name: \"keywords\",\n type: \"text\",\n className: \"keyword\",\n id: \"keywords\",\n size: \"50\",\n spellCheck: \"true\",\n placeholder: \"\"\n /*onFocus={this.placeholder = \"\"} onBlur={this.placeholder = ''}*/\n ,\n autoComplete: \"off\",\n autoFocus: \"true\",\n onKeyUp: handleKeyPress(Event)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 39,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n id: \"searchType\",\n className: \"Input-label\",\n children: \"Google search\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 40,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 38,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 37,\n columnNumber: 5\n }, this);\n}\n\n_c2 = Search;\n\nfunction Header(props) {\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"header\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n id: \"greeting_block\",\n children: /*#__PURE__*/_jsxDEV(\"h1\", {\n id: \"header_greet\",\n children: props.greet\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 50,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 49,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"date_block\",\n children: [/*#__PURE__*/_jsxDEV(\"h2\", {\n id: \"header_date\",\n children: props.date\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 53,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(Clock, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 54,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 52,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 48,\n columnNumber: 5\n }, this);\n}\n\n_c3 = Header;\n\nfunction Applications() {\n let appList = getApps();\n var items = [];\n\n for (var i = 0; i < appList.apps.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(App, {\n name: appList.apps[i].name,\n url: appList.apps[i].url,\n icon: appList.apps[i].icon,\n NSFW: appList.apps[i].NSFW\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 65,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"apps\",\n children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n children: \"Applications\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 76,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"apps_loop\",\n children: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 77,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 75,\n columnNumber: 5\n }, this);\n}\n\n_c4 = Applications;\n\nfunction App(props) {\n let classNameType = props.NSFW + \"-content\";\n let hrefUrl = \"https://\" + props.url;\n let iconName = \"mdi-\" + props.icon;\n return /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: hrefUrl,\n className: classNameType,\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_item\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_icon\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify icon\",\n \"data-icon\": iconName\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 93,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 92,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_text\",\n children: [/*#__PURE__*/_jsxDEV(\"span\", {\n id: \"app-name\",\n children: props.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 96,\n columnNumber: 13\n }, this), /*#__PURE__*/_jsxDEV(\"span\", {\n id: \"app-address\",\n children: props.url\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 97,\n columnNumber: 13\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 95,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 91,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 90,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 89,\n columnNumber: 5\n }, this);\n}\n\n_c5 = App;\n\nfunction Bookmarks() {\n let bookmarkList = getLinks();\n var items = [];\n\n for (var i = 0; i < bookmarkList.bookmarks.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(LinkGroups, {\n category: bookmarkList.bookmarks[i].category,\n links: bookmarkList.bookmarks[i].links\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 110,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"links\",\n children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n children: \"Bookmarks\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 119,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"links_loop\",\n children: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 120,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 118,\n columnNumber: 5\n }, this);\n}\n\n_c6 = Bookmarks;\n\nfunction LinkGroups(props) {\n var items = [];\n\n for (var i = 0; i < props.links.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(LinkItem, {\n link: props.links[i]\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 131,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"links_item\",\n children: [/*#__PURE__*/_jsxDEV(\"h4\", {\n children: props.category\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 139,\n columnNumber: 7\n }, this), items]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 138,\n columnNumber: 5\n }, this);\n}\n\n_c7 = LinkGroups;\n\nfunction LinkItem(props) {\n return /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: props.link.url,\n className: \"theme_color-border theme_text-select\",\n children: props.link.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 148,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 147,\n columnNumber: 5\n }, this);\n}\n\n_c8 = LinkItem;\n\nfunction ModalMenu() {\n var providers = getProviders();\n var items = [];\n\n for (var i = 0; i < providers.providers.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(Provider, {\n provider: providers.providers[i]\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 158,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"modal\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n children: [/*#__PURE__*/_jsxDEV(\"header\", {\n id: \"modal-header\",\n children: [/*#__PURE__*/_jsxDEV(\"h1\", {\n children: \"Options\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 168,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n href: \"#\",\n title: \"Close\",\n className: \"modal-close\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-close\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 170,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 169,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 167,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"h2\", {\n children: \"Color themes\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 174,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"modal-theme\",\n children: [/*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"blackboard\",\n className: \"theme-button theme-blackboard\",\n children: \"Blackboard\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 177,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"gazette\",\n className: \"theme-button theme-gazette\",\n children: \"Gazette\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 178,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"espresso\",\n className: \"theme-button theme-espresso\",\n children: \"Espresso\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 179,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cab\",\n className: \"theme-button theme-cab\",\n children: \"Cab\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 180,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cloud\",\n className: \"theme-button theme-cloud\",\n children: \"Cloud\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 181,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"lime\",\n className: \"theme-button theme-lime\",\n children: \"Lime\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 182,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"passion\",\n className: \"theme-button theme-passion\",\n children: \"Passion\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 183,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"blues\",\n className: \"theme-button theme-blues\",\n children: \"Blues\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 184,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"chalk\",\n className: \"theme-button theme-chalk\",\n children: \"Chalk\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 185,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"tron\",\n className: \"theme-button theme-tron\",\n children: \"Tron\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 186,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"paper\",\n className: \"theme-button theme-paper\",\n children: \"Paper\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 187,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cyberpunk\",\n className: \"theme-button theme-cyberpunk\",\n children: \"Cyberpunk\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 188,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"quadra\",\n className: \"theme-button theme-panam\",\n children: \"Quadra\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 189,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"panam\",\n className: \"theme-button theme-panam\",\n children: \"Panam\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 190,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"touch\",\n className: \"theme-button theme-touch\",\n children: \"Touch\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 191,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"peek\",\n className: \"theme-button theme-peek\",\n children: \"Peek\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 192,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 176,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"h2\", {\n children: \"Search options\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 196,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"providers\",\n children: /*#__PURE__*/_jsxDEV(\"table\", {\n children: /*#__PURE__*/_jsxDEV(\"tbody\", {\n children: [/*#__PURE__*/_jsxDEV(\"tr\", {\n children: [/*#__PURE__*/_jsxDEV(\"th\", {\n children: \"Website\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 201,\n columnNumber: 19\n }, this), /*#__PURE__*/_jsxDEV(\"th\", {\n children: \"Prefix\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 202,\n columnNumber: 19\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 200,\n columnNumber: 17\n }, this), items]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 199,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 198,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 197,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"header\", {\n id: \"modal-footer\",\n children: [/*#__PURE__*/_jsxDEV(\"a\", {\n href: \"https://github.com/jeroenpardon/\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-github-box\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 210,\n columnNumber: 54\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 210,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n href: \"https://materialdesignicons.com/\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-material-design\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 211,\n columnNumber: 54\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 211,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"sneaky\",\n children: [/*#__PURE__*/_jsxDEV(\"input\", {\n type: \"checkbox\",\n id: \"contenttype\",\n onChange: \"nsfw(this)\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 212,\n columnNumber: 35\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n for: \"contenttype\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-domino-mask\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 213,\n columnNumber: 36\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 213,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 212,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 209,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 166,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 165,\n columnNumber: 5\n }, this);\n}\n\n_c9 = ModalMenu;\n\nfunction Provider(props) {\n return /*#__PURE__*/_jsxDEV(\"tr\", {\n children: [/*#__PURE__*/_jsxDEV(\"td\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: props.provider.url,\n children: props.provider.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 223,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 223,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"td\", {\n children: props.provider.prefix\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 224,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 222,\n columnNumber: 5\n }, this);\n}\n\n_c10 = Provider;\n\nfunction ModalInit() {\n return /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"modal_init\",\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n className: \"btn\",\n href: \"#modal\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify icon\",\n \"data-icon\": \"mdi-xbox-controller-menu\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 233,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 232,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 231,\n columnNumber: 5\n }, this);\n}\n\n_c11 = ModalInit;\nReactDOM.render( /*#__PURE__*/_jsxDEV(Homepage, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 240,\n columnNumber: 3\n}, this), document.getElementById('root')); //Functions below this line are for calculating data for\n//other functions\n\nfunction date() {\n let currentDate = new Date();\n let dateOptions = {\n weekday: \"long\",\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\"\n };\n let date = currentDate.toLocaleDateString(\"en-GB\", dateOptions);\n return date;\n}\n\nfunction fixDigits(k) {\n if (k < 10) {\n return \"0\" + k;\n } else {\n return k;\n }\n}\n\nfunction greet() {\n let currentTime = new Date();\n let greet = Math.floor(currentTime.getHours() / 6);\n let easterEggChance = Math.floor(Math.random() * 100);\n\n let greetings = require('./messages.json');\n\n let timeBased = [];\n let easterEggs = [];\n\n for (var i = 0; i < greetings.messages.length; i++) {\n if (greetings.messages[i].easteregg === \"FALSE\") {\n timeBased = timeBased.concat(greetings.messages[i]);\n } else {\n easterEggs = easterEggs.concat(greetings.messages[i]);\n }\n }\n\n if (easterEggChance > 10) {\n return timeBased[greet].message;\n } else {\n let easterEggText = Math.floor(Math.random() * easterEggs.length);\n return easterEggs[easterEggText].message;\n }\n}\n\nfunction Clock() {\n _s();\n\n const [date, setDate] = useState(new Date());\n\n function refreshClock() {\n setDate(new Date());\n }\n\n useEffect(() => {\n const timerId = setInterval(refreshClock, 1000);\n return function cleanup() {\n clearInterval(timerId);\n };\n }, []);\n var hour = date.getHours();\n var minutes = date.getMinutes(); //var seconds = date.getSeconds();\n\n var midday = \"AM\";\n midday = hour >= 12 ? \"PM\" : \"AM\";\n hour = hour === 0 ? 12 : hour > 12 ? hour - 12 : hour;\n minutes = fixDigits(minutes); //seconds = fixDigits(seconds);\n\n let time = hour + \":\" + minutes + \" \" + midday;\n return /*#__PURE__*/_jsxDEV(\"h2\", {\n id: \"clock\",\n children: time\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 311,\n columnNumber: 5\n }, this);\n}\n\n_s(Clock, \"Gqi45WOZhU2c0BLYX0HoJeiR0fk=\");\n\n_c12 = Clock;\n\nfunction getApps() {\n let applications = require('./apps.json');\n\n return applications;\n}\n\nfunction getLinks() {\n let links = require('./links.json');\n\n return links;\n}\n\nfunction getProviders() {\n let providers = require('./providers.json');\n\n return providers;\n}\n\nfunction handleKeyPress(e) {\n var sindex = 0;\n var cycle = false;\n var key = e.keyCode || e.which;\n var text = document.getElementById(\"keywords\").value.replaceAll(\"+\", \"%2B\");\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n\n if (key == 13) {\n // Search functions\n search(text);\n }\n\n if (key == 9) {\n // Tab Completion Functions\n e.preventDefault();\n e.stopPropagation();\n\n if (text[0] === ';') {\n switch (option) {\n case 't':\n var streamers = ['admiralbahroo', 'moonmoon_ow', 'witwix'];\n\n if (!subtext || cycle) {\n cycle = true;\n if (sindex > streamers.length - 1) sindex = 0;\n document.getElementById(\"keywords\").value = ';t ' + streamers[sindex++];\n return;\n }\n\n for (var streamer of streamers) {\n if (subtext === streamer.substr(0, subtext.length)) {\n document.getElementById(\"keywords\").value = ';t ' + streamer;\n return;\n }\n }\n\n break;\n }\n }\n }\n\n if (key == 32) {\n //Space to go to search\n updateLabel(text);\n }\n\n sindex = 0;\n cycle = false;\n updateLabel(text);\n}\n\nfunction updateLabel(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n\n if (text[0] === '/') {\n // if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n document.getElementById(\"searchType\").innerHTML = \"Allmusic search\";\n break;\n\n case \"d\":\n document.getElementById(\"searchType\").innerHTML = \"Duck Duck Go search\";\n break;\n\n case \"di\":\n document.getElementById(\"searchType\").innerHTML = \"Discogs search\";\n break;\n\n case \"i\":\n document.getElementById(\"searchType\").innerHTML = \"IMDB search\";\n break;\n\n case \"m\":\n document.getElementById(\"searchType\").innerHTML = \"TheMovieDB search\";\n break;\n\n case \"r\":\n document.getElementById(\"searchType\").innerHTML = \"Reddit search\";\n break;\n\n case \"q\":\n document.getElementById(\"searchType\").innerHTML = \"Qwant search\";\n break;\n\n case \"so\":\n document.getElementById(\"searchType\").innerHTML = \"Soundcloud search\";\n break;\n\n case \"s\":\n document.getElementById(\"searchType\").innerHTML = \"Spotify search\";\n break;\n\n case \"tv\":\n document.getElementById(\"searchType\").innerHTML = \"TheTVDB search\";\n break;\n\n case \"t\":\n document.getElementById(\"searchType\").innerHTML = \"Trakt search\";\n break;\n\n case \"y\":\n document.getElementById(\"searchType\").innerHTML = \"YouTube search\";\n break;\n\n case \"w\":\n document.getElementById(\"searchType\").innerHTML = \"Wikipedia search\";\n break;\n\n case \"p\":\n document.getElementById(\"searchType\").innerHTML = \"Plex search\";\n break;\n\n case \"rt\":\n document.getElementById(\"searchType\").innerHTML = \"Rotten Tomatoes search\";\n break;\n\n default:\n document.getElementById(\"searchType\").innerHTML = \"Invalid search\";\n break;\n }\n } else {\n document.getElementById(\"searchType\").innerHTML = \"Google search\";\n }\n}\n\nfunction search(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n\n if (text[0] === '/') {\n if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n window.location = \"https://www.allmusic.com/search/all/\" + subtext;\n break;\n\n case \"d\":\n window.location = \"https://duckduckgo.com/?q=\" + subtext;\n break;\n\n case \"di\":\n window.location = \"https://www.discogs.com/search/?q=\" + subtext;\n break;\n\n case \"i\":\n window.location = \"https://www.imdb.com/find?q=\" + subtext;\n break;\n\n case \"m\":\n window.location = \"https://www.themoviedb.org/search?query=\" + subtext;\n break;\n\n case \"r\":\n window.location = \"https://www.reddit.com/search?q=\" + subtext;\n break;\n\n case \"q\":\n window.location = \"https://www.qwant.com/?q=\" + subtext;\n break;\n\n case \"so\":\n window.location = \"https://soundcloud.com/search?q=\" + subtext;\n break;\n\n case \"s\":\n window.location = \"https://open.spotify.com/search/results/\" + subtext;\n break;\n\n case \"t\":\n window.location = \"https://trakt.tv/search?query=\" + subtext;\n break;\n\n case \"tv\":\n window.location = \"https://www.thetvdb.com/search?query=\" + subtext;\n break;\n\n case \"y\":\n window.location = \"https://www.youtube.com/results?search_query=\" + subtext;\n break;\n\n case \"w\":\n window.location = \"https://en.wikipedia.org/w/index.php?search=\" + subtext;\n break;\n\n case \"p\":\n window.location = \"https://app.plex.tv/desktop/#!/search?query=\" + subtext;\n break;\n\n case \"rt\":\n window.location = \"https://www.rottentomatoes.com/search?search=\" + subtext;\n break;\n }\n } else {\n var option = text.substr(1);\n\n switch (option) {\n case \"d\":\n window.location = \"https://www.duckduckgo.com\";\n break;\n\n case \"y\":\n window.location = \"https://www.youtube.com\";\n break;\n\n case \"r\":\n window.location = \"https://reddit.com\";\n break;\n\n case \"s\":\n window.location = \"https://open.spotify.com\";\n break;\n }\n }\n } else if (validURL(text)) {\n if (containsProtocol(text)) window.location = text;else window.location = \"https://\" + text;\n } else {\n window.location = \"https://www.google.com/search?q=\" + text;\n }\n} // Source: https://stackoverflow.com/questions/5717093/check-if-a-javascript-string-is-a-url\n\n\nfunction validURL(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/)?' + // protocol\n '((([a-z\\\\d]([a-z\\\\d-]*[a-z\\\\d])*)\\\\.)+[a-z]{2,}|' + // domain name\n '((\\\\d{1,3}\\\\.){3}\\\\d{1,3}))' + // OR ip (v4) address\n '(\\\\:\\\\d+)?(\\\\/[-a-z\\\\d%_.~+]*)*' + // port and path\n '(\\\\?[;&a-z\\\\d%_.~+=-]*)?' + // query string\n '(\\\\#[-a-z\\\\d_]*)?$', 'i'); // fragment locator\n\n return !!pattern.test(str);\n}\n\nfunction containsProtocol(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/){1}.*', 'i');\n return !!pattern.test(str);\n}\n\nString.prototype.replaceAll = function (search, replacement) {\n var target = this;\n return target.split(search).join(replacement);\n};\n\nvar _c, _c2, _c3, _c4, _c5, _c6, _c7, _c8, _c9, _c10, _c11, _c12;\n\n$RefreshReg$(_c, \"Homepage\");\n$RefreshReg$(_c2, \"Search\");\n$RefreshReg$(_c3, \"Header\");\n$RefreshReg$(_c4, \"Applications\");\n$RefreshReg$(_c5, \"App\");\n$RefreshReg$(_c6, \"Bookmarks\");\n$RefreshReg$(_c7, \"LinkGroups\");\n$RefreshReg$(_c8, \"LinkItem\");\n$RefreshReg$(_c9, \"ModalMenu\");\n$RefreshReg$(_c10, \"Provider\");\n$RefreshReg$(_c11, \"ModalInit\");\n$RefreshReg$(_c12, \"Clock\");","map":{"version":3,"sources":["/home/seanedmunds/dev/home-page/src/index.js"],"names":["React","useState","useEffect","ReactDOM","Homepage","date","greet","Search","handleKeyPress","Event","Header","props","Applications","appList","getApps","items","i","apps","length","push","name","url","icon","NSFW","App","classNameType","hrefUrl","iconName","Bookmarks","bookmarkList","getLinks","bookmarks","category","links","LinkGroups","LinkItem","link","ModalMenu","providers","getProviders","Provider","provider","prefix","ModalInit","render","document","getElementById","currentDate","Date","dateOptions","weekday","year","month","day","toLocaleDateString","fixDigits","k","currentTime","Math","floor","getHours","easterEggChance","random","greetings","require","timeBased","easterEggs","messages","easteregg","concat","message","easterEggText","Clock","setDate","refreshClock","timerId","setInterval","cleanup","clearInterval","hour","minutes","getMinutes","midday","time","applications","e","sindex","cycle","key","keyCode","which","text","value","replaceAll","option","substr","indexOf","subtext","search","preventDefault","stopPropagation","streamers","streamer","updateLabel","innerHTML","window","location","validURL","containsProtocol","str","pattern","RegExp","test","String","prototype","replacement","target","split","join"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { useState, useEffect } from 'react';\nimport ReactDOM from 'react-dom';\n//import { unstable_createPortal } from 'react-dom';\nimport './index.css';\n\nfunction Homepage() {\n return (\n \n \n \n
\n \n \n
\n \n \n \n
\n \n \n
\n \n \n
\n \n );\n}\n\nfunction Search() {\n return (\n \n )\n}\n\nfunction Header(props) {\n return (\n \n );\n}\n\nfunction Applications() {\n let appList = getApps();\n var items = [];\n for (var i = 0; i < appList.apps.length; i++) {\n items.push(\n \n );\n }\n return (\n \n Applications
\n \n {items}\n
\n \n );\n}\n\nfunction App(props) {\n let classNameType = props.NSFW + \"-content\";\n let hrefUrl = \"https://\" + props.url;\n let iconName = \"mdi-\" + props.icon;\n return (\n \n );\n}\n\nfunction Bookmarks() {\n let bookmarkList = getLinks();\n var items = [];\n for (var i = 0; i < bookmarkList.bookmarks.length; i++) {\n items.push(\n \n );\n }\n return (\n \n Bookmarks
\n \n {items}\n
\n \n );\n}\n\nfunction LinkGroups(props) {\n var items = [];\n for (var i = 0; i < props.links.length; i++) {\n items.push(\n \n );\n }\n return (\n \n
{props.category}
\n {items}\n \n );\n}\n\nfunction LinkItem(props) {\n return (\n \n );\n}\n\nfunction ModalMenu() {\n var providers = getProviders();\n var items = [];\n for (var i = 0; i < providers.providers.length; i++) {\n items.push(\n \n );\n }\n return (\n \n \n \n\n
Color themes
\n\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n\n\n
Search options
\n
\n \n \n \n | Website | \n Prefix | \n
\n {items}\n \n
\n \n\n \n
\n \n );\n}\n\nfunction Provider(props) {\n return (\n \n | {props.provider.name} | \n {props.provider.prefix} | \n
\n );\n}\n\nfunction ModalInit() {\n return (\n \n );\n}\n\nReactDOM.render(\n ,\n document.getElementById('root')\n);\n\n//Functions below this line are for calculating data for\n//other functions\n\nfunction date() {\n let currentDate = new Date();\n let dateOptions = {\n weekday: \"long\",\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\"\n };\n let date = currentDate.toLocaleDateString(\"en-GB\", dateOptions);\n return date;\n}\nfunction fixDigits(k) {\n if (k < 10) {\n return \"0\" + k;\n }\n else {\n return k;\n }\n}\nfunction greet() {\n let currentTime = new Date();\n let greet = Math.floor(currentTime.getHours() / 6);\n let easterEggChance = Math.floor(Math.random() * 100);\n let greetings = require('./messages.json');\n let timeBased = [];\n let easterEggs = [];\n for (var i = 0; i < greetings.messages.length; i++) {\n if (greetings.messages[i].easteregg === \"FALSE\") {\n timeBased = timeBased.concat(greetings.messages[i]);\n } else {\n easterEggs = easterEggs.concat(greetings.messages[i]);\n }\n }\n if (easterEggChance > 10) {\n return timeBased[greet].message;\n } else {\n let easterEggText = Math.floor(Math.random() * easterEggs.length);\n return easterEggs[easterEggText].message;\n }\n}\nfunction Clock() {\n const [date, setDate] = useState(new Date());\n\n function refreshClock() {\n setDate(new Date());\n }\n useEffect(() => {\n const timerId = setInterval(refreshClock, 1000);\n return function cleanup() {\n clearInterval(timerId);\n };\n }, []);\n\n var hour = date.getHours();\n var minutes = date.getMinutes();\n //var seconds = date.getSeconds();\n var midday = \"AM\";\n midday = (hour >= 12) ? \"PM\" : \"AM\";\n hour = (hour === 0) ? 12 : ((hour > 12) ? (hour - 12) : hour);\n minutes = fixDigits(minutes);\n //seconds = fixDigits(seconds);\n let time = hour + \":\" + minutes + \" \" + midday;\n\n return (\n {time}
\n\n );\n}\nfunction getApps() {\n let applications = require('./apps.json');\n return applications;\n}\nfunction getLinks() {\n let links = require('./links.json');\n return links;\n}\nfunction getProviders() {\n let providers = require('./providers.json');\n return providers;\n}\n\nfunction handleKeyPress(e) {\n var sindex = 0;\n var cycle = false;\n var key = e.keyCode || e.which;\n var text = document.getElementById(\"keywords\").value.replaceAll(\"+\", \"%2B\");\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n if (key == 13) { // Search functions\n search(text);\n }\n if (key == 9) { // Tab Completion Functions\n e.preventDefault();\n e.stopPropagation();\n if (text[0] === ';') {\n switch (option) {\n case 't':\n var streamers = ['admiralbahroo', 'moonmoon_ow', 'witwix'];\n if (!subtext || cycle) {\n cycle = true;\n if (sindex > streamers.length - 1) sindex = 0;\n document.getElementById(\"keywords\").value = ';t ' + streamers[sindex++];\n return;\n }\n for (var streamer of streamers) {\n if (subtext === streamer.substr(0, subtext.length)) {\n document.getElementById(\"keywords\").value = ';t ' + streamer;\n return;\n }\n }\n break;\n }\n }\n }\n if(key == 32){ //Space to go to search\nupdateLabel(text);\n }\n sindex = 0;\n cycle = false;\n updateLabel(text);\n}\n\nfunction updateLabel(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n if (text[0] === '/') {\n// if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n document.getElementById(\"searchType\").innerHTML = \"Allmusic search\";\n break;\n case \"d\":\n document.getElementById(\"searchType\").innerHTML = \"Duck Duck Go search\";\n break;\n case \"di\":\n document.getElementById(\"searchType\").innerHTML = \"Discogs search\";\n break;\n case \"i\":\n document.getElementById(\"searchType\").innerHTML = \"IMDB search\";\n break;\n case \"m\":\n document.getElementById(\"searchType\").innerHTML = \"TheMovieDB search\";\n break;\n case \"r\":\n document.getElementById(\"searchType\").innerHTML = \"Reddit search\";\n break;\n case \"q\":\n document.getElementById(\"searchType\").innerHTML = \"Qwant search\";\n break;\n case \"so\":\n document.getElementById(\"searchType\").innerHTML = \"Soundcloud search\";\n break;\n case \"s\":\n document.getElementById(\"searchType\").innerHTML = \"Spotify search\";\n break;\n case \"tv\":\n document.getElementById(\"searchType\").innerHTML = \"TheTVDB search\";\n break;\n case \"t\":\n document.getElementById(\"searchType\").innerHTML = \"Trakt search\";\n break;\n case \"y\":\n document.getElementById(\"searchType\").innerHTML = \"YouTube search\";\n break;\n case \"w\":\n document.getElementById(\"searchType\").innerHTML = \"Wikipedia search\";\n break;\n case \"p\":\n document.getElementById(\"searchType\").innerHTML = \"Plex search\";\n break;\n case \"rt\":\n document.getElementById(\"searchType\").innerHTML = \"Rotten Tomatoes search\";\n break;\n default:\n document.getElementById(\"searchType\").innerHTML = \"Invalid search\";\n break;\n }\n}else {\n document.getElementById(\"searchType\").innerHTML = \"Google search\";\n }\n}\n\nfunction search(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n if (text[0] === '/') {\n if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n window.location = \"https://www.allmusic.com/search/all/\" + subtext;\n break;\n case \"d\":\n window.location = \"https://duckduckgo.com/?q=\" + subtext;\n break;\n case \"di\":\n window.location = \"https://www.discogs.com/search/?q=\" + subtext;\n break;\n case \"i\":\n window.location = \"https://www.imdb.com/find?q=\" + subtext;\n break;\n case \"m\":\n window.location = \"https://www.themoviedb.org/search?query=\" + subtext;\n break;\n case \"r\":\n window.location = \"https://www.reddit.com/search?q=\" + subtext;\n break;\n case \"q\":\n window.location = \"https://www.qwant.com/?q=\" + subtext;\n break;\n case \"so\":\n window.location = \"https://soundcloud.com/search?q=\" + subtext;\n break;\n case \"s\":\n window.location = \"https://open.spotify.com/search/results/\" + subtext;\n break;\n case \"t\":\n window.location = \"https://trakt.tv/search?query=\" + subtext;\n break;\n case \"tv\":\n window.location = \"https://www.thetvdb.com/search?query=\" + subtext;\n break;\n case \"y\":\n window.location = \"https://www.youtube.com/results?search_query=\" + subtext;\n break;\n case \"w\":\n window.location = \"https://en.wikipedia.org/w/index.php?search=\" + subtext;\n break;\n case \"p\":\n window.location = \"https://app.plex.tv/desktop/#!/search?query=\" + subtext;\n break;\n case \"rt\":\n window.location = \"https://www.rottentomatoes.com/search?search=\" + subtext;\n break;\n }\n } else {\n var option = text.substr(1);\n switch (option) {\n case \"d\":\n window.location = \"https://www.duckduckgo.com\";\n break;\n case \"y\":\n window.location = \"https://www.youtube.com\";\n break;\n case \"r\":\n window.location = \"https://reddit.com\";\n break;\n case \"s\":\n window.location = \"https://open.spotify.com\";\n break;\n }\n }\n } else if (validURL(text)) {\n if (containsProtocol(text))\n window.location = text;\n else\n window.location = \"https://\" + text;\n } else {\n window.location = \"https://www.google.com/search?q=\" + text;\n }\n}\n\n// Source: https://stackoverflow.com/questions/5717093/check-if-a-javascript-string-is-a-url\nfunction validURL(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/)?' + // protocol\n '((([a-z\\\\d]([a-z\\\\d-]*[a-z\\\\d])*)\\\\.)+[a-z]{2,}|' + // domain name\n '((\\\\d{1,3}\\\\.){3}\\\\d{1,3}))' + // OR ip (v4) address\n '(\\\\:\\\\d+)?(\\\\/[-a-z\\\\d%_.~+]*)*' + // port and path\n '(\\\\?[;&a-z\\\\d%_.~+=-]*)?' + // query string\n '(\\\\#[-a-z\\\\d_]*)?$', 'i'); // fragment locator\n return !!pattern.test(str);\n}\n\nfunction containsProtocol(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/){1}.*', 'i');\n return !!pattern.test(str);\n}\n\nString.prototype.replaceAll = function(search, replacement) {\n var target = this;\n return target.split(search).join(replacement);\n};"]},"metadata":{},"sourceType":"module"}
\ No newline at end of file
diff --git a/node_modules/.cache/babel-loader/90e504b1e4742efc964009a5d6ec203b.json b/node_modules/.cache/babel-loader/90e504b1e4742efc964009a5d6ec203b.json
new file mode 100644
index 00000000..6ee9a957
--- /dev/null
+++ b/node_modules/.cache/babel-loader/90e504b1e4742efc964009a5d6ec203b.json
@@ -0,0 +1 @@
+{"ast":null,"code":"var _jsxFileName = \"/home/seanedmunds/dev/home-page/src/index.js\",\n _s = $RefreshSig$();\n\nimport React from 'react';\nimport { useState, useEffect } from 'react';\nimport ReactDOM from 'react-dom'; //import { unstable_createPortal } from 'react-dom';\n\nimport './index.css';\nimport { jsxDEV as _jsxDEV } from \"react/jsx-dev-runtime\";\n\nconst setValueFromLocalStorage = property => {\n let value = localStorage.getItem(property);\n setValue(property, value);\n};\n\nconst setValue = (property, value) => {\n if (value) {\n document.documentElement.style.setProperty(`--${property}`, value);\n const input = document.querySelector(`#${property}`);\n\n if (input) {\n value = value.replace('px', '');\n input.value = value;\n }\n }\n};\n\nfunction Homepage() {\n setTheme();\n return /*#__PURE__*/_jsxDEV(\"main\", {\n id: \"container\",\n className: \"fade\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Search, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 28,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 27,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Header, {\n date: date(),\n greet: greet()\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 31,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 30,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Applications, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 37,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 36,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Bookmarks, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 40,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 39,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(ModalMenu, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 43,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 42,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(ModalInit, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 46,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 45,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 26,\n columnNumber: 5\n }, this);\n}\n\n_c = Homepage;\n\nfunction Search() {\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"search\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"abackground\",\n children: [/*#__PURE__*/_jsxDEV(\"input\", {\n name: \"keywords\",\n type: \"text\",\n className: \"keyword\",\n id: \"keywords\",\n size: \"50\",\n spellCheck: \"true\",\n placeholder: \"\"\n /*onFocus={this.placeholder = \"\"} onBlur={this.placeholder = ''}*/\n ,\n autoComplete: \"off\",\n autoFocus: true,\n onKeyUp: handleKeyPress\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 56,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n id: \"searchType\",\n className: \"Input-label\",\n children: \"Google search\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 57,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 55,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 54,\n columnNumber: 5\n }, this);\n}\n\n_c2 = Search;\n\nfunction Header(props) {\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"header\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n id: \"greeting_block\",\n children: /*#__PURE__*/_jsxDEV(\"h1\", {\n id: \"header_greet\",\n children: props.greet\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 67,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 66,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"date_block\",\n children: [/*#__PURE__*/_jsxDEV(\"h2\", {\n id: \"header_date\",\n children: props.date\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 70,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(Clock, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 71,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 69,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 65,\n columnNumber: 5\n }, this);\n}\n\n_c3 = Header;\n\nfunction Applications() {\n let appList = getApps();\n var items = [];\n\n for (var i = 0; i < appList.apps.length; i++) {\n var safe = appList.apps[i].NSFW;\n var NSFWEnabled = localStorage.getItem(\"contenttype\");\n console.log(safe);\n\n if (safe === \"SAFE\") {\n items.push( /*#__PURE__*/_jsxDEV(App, {\n name: appList.apps[i].name,\n url: appList.apps[i].url,\n icon: appList.apps[i].icon,\n NSFW: appList.apps[i].NSFW\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 86,\n columnNumber: 9\n }, this));\n } else if (safe === \"NSFW\" && NSFWEnabled) {\n items.push( /*#__PURE__*/_jsxDEV(App, {\n name: appList.apps[i].name,\n url: appList.apps[i].url,\n icon: appList.apps[i].icon,\n NSFW: appList.apps[i].NSFW\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 96,\n columnNumber: 9\n }, this));\n } else {\n console.log(NSFWEnabled);\n }\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"apps\",\n children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n children: \"Applications\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 111,\n columnNumber: 7\n }, this), items]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 110,\n columnNumber: 5\n }, this);\n}\n\n_c4 = Applications;\n\nfunction App(props) {\n let classNameType = props.NSFW + \"-content\";\n let hrefUrl = \"https://\" + props.url;\n let iconName = \"mdi-\" + props.icon;\n return /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"apps_loop\",\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: hrefUrl,\n className: classNameType,\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_item\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_icon\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify icon\",\n \"data-icon\": iconName\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 127,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 126,\n columnNumber: 13\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_text\",\n children: [/*#__PURE__*/_jsxDEV(\"span\", {\n id: \"app-name\",\n children: props.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 130,\n columnNumber: 15\n }, this), /*#__PURE__*/_jsxDEV(\"span\", {\n id: \"app-address\",\n children: props.url\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 131,\n columnNumber: 15\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 129,\n columnNumber: 13\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 125,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 124,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 123,\n columnNumber: 7\n }, this);\n}\n\n_c5 = App;\n\nfunction Bookmarks() {\n let bookmarkList = getLinks();\n var items = [];\n\n for (var i = 0; i < bookmarkList.bookmarks.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(LinkGroups, {\n category: bookmarkList.bookmarks[i].category,\n links: bookmarkList.bookmarks[i].links\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 144,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"links\",\n children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n children: \"Bookmarks\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 153,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"links_loop\",\n children: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 154,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 152,\n columnNumber: 5\n }, this);\n}\n\n_c6 = Bookmarks;\n\nfunction LinkGroups(props) {\n var items = [];\n\n for (var i = 0; i < props.links.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(LinkItem, {\n link: props.links[i]\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 165,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"links_item\",\n children: [/*#__PURE__*/_jsxDEV(\"h4\", {\n children: props.category\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 173,\n columnNumber: 7\n }, this), items]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 172,\n columnNumber: 5\n }, this);\n}\n\n_c7 = LinkGroups;\n\nfunction LinkItem(props) {\n return /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: props.link.url,\n className: \"theme_color-border theme_text-select\",\n children: props.link.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 182,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 181,\n columnNumber: 5\n }, this);\n}\n\n_c8 = LinkItem;\n\nfunction ModalMenu() {\n var providers = getProviders();\n var items = [];\n\n for (var i = 0; i < providers.providers.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(Provider, {\n provider: providers.providers[i]\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 192,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"modal\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n children: [/*#__PURE__*/_jsxDEV(\"header\", {\n id: \"modal-header\",\n children: [/*#__PURE__*/_jsxDEV(\"h1\", {\n children: \"Options\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 202,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n href: \"#\",\n title: \"Close\",\n className: \"modal-close\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-close\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 204,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 203,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 201,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"h2\", {\n children: \"Color themes\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 208,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"modal-theme\",\n children: [/*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"blackboard\",\n className: \"theme-button theme-blackboard\",\n onClick: updateTheme,\n children: \"Blackboard\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 211,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"gazette\",\n className: \"theme-button theme-gazette\",\n onClick: updateTheme,\n children: \"Gazette\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 212,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"espresso\",\n className: \"theme-button theme-espresso\",\n onClick: updateTheme,\n children: \"Espresso\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 213,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cab\",\n className: \"theme-button theme-cab\",\n onClick: updateTheme,\n children: \"Cab\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 214,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cloud\",\n className: \"theme-button theme-cloud\",\n onClick: updateTheme,\n children: \"Cloud\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 215,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"lime\",\n className: \"theme-button theme-lime\",\n onClick: updateTheme,\n children: \"Lime\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 216,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"passion\",\n className: \"theme-button theme-passion\",\n onClick: updateTheme,\n children: \"Passion\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 217,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"blues\",\n className: \"theme-button theme-blues\",\n onClick: updateTheme,\n children: \"Blues\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 218,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"chalk\",\n className: \"theme-button theme-chalk\",\n onClick: updateTheme,\n children: \"Chalk\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 219,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"tron\",\n className: \"theme-button theme-tron\",\n onClick: updateTheme,\n children: \"Tron\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 220,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"paper\",\n className: \"theme-button theme-paper\",\n onClick: updateTheme,\n children: \"Paper\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 221,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cyberpunk\",\n className: \"theme-button theme-cyberpunk\",\n onClick: updateTheme,\n children: \"Cyberpunk\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 222,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"quadra\",\n className: \"theme-button theme-panam\",\n onClick: updateTheme,\n children: \"Quadra\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 223,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"panam\",\n className: \"theme-button theme-panam\",\n onClick: updateTheme,\n children: \"Panam\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 224,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"touch\",\n className: \"theme-button theme-touch\",\n onClick: updateTheme,\n children: \"Touch\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 225,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"peek\",\n className: \"theme-button theme-peek\",\n onClick: updateTheme,\n children: \"Peek\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 226,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 210,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"h2\", {\n children: \"Search options\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 230,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"providers\",\n children: /*#__PURE__*/_jsxDEV(\"table\", {\n children: /*#__PURE__*/_jsxDEV(\"tbody\", {\n children: [/*#__PURE__*/_jsxDEV(\"tr\", {\n children: [/*#__PURE__*/_jsxDEV(\"th\", {\n children: \"Website\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 235,\n columnNumber: 19\n }, this), /*#__PURE__*/_jsxDEV(\"th\", {\n children: \"Prefix\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 236,\n columnNumber: 19\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 234,\n columnNumber: 17\n }, this), items]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 233,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 232,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 231,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"header\", {\n id: \"modal-footer\",\n children: [/*#__PURE__*/_jsxDEV(\"a\", {\n href: \"https://github.com/jeroenpardon/\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-github-box\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 244,\n columnNumber: 54\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 244,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n href: \"https://materialdesignicons.com/\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-material-design\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 245,\n columnNumber: 54\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 245,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"sneaky\",\n children: [/*#__PURE__*/_jsxDEV(\"input\", {\n type: \"checkbox\",\n id: \"contenttype\",\n onChange: udpateDisplayedItems\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 246,\n columnNumber: 35\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n for: \"contenttype\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-domino-mask\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 247,\n columnNumber: 36\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 247,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 246,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 243,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 200,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 199,\n columnNumber: 5\n }, this);\n}\n\n_c9 = ModalMenu;\n\nfunction Provider(props) {\n return /*#__PURE__*/_jsxDEV(\"tr\", {\n children: [/*#__PURE__*/_jsxDEV(\"td\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: props.provider.url,\n children: props.provider.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 257,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 257,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"td\", {\n children: props.provider.prefix\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 258,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 256,\n columnNumber: 5\n }, this);\n}\n\n_c10 = Provider;\n\nfunction ModalInit() {\n return /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"modal_init\",\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n className: \"btn\",\n href: \"#modal\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify icon\",\n \"data-icon\": \"mdi-xbox-controller-menu\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 267,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 266,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 265,\n columnNumber: 5\n }, this);\n}\n\n_c11 = ModalInit;\nReactDOM.render( /*#__PURE__*/_jsxDEV(Homepage, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 274,\n columnNumber: 3\n}, this), document.getElementById('root')); //Functions below this line are for calculating data for\n//other functions\n\nfunction date() {\n let currentDate = new Date();\n let dateOptions = {\n weekday: \"long\",\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\"\n };\n let date = currentDate.toLocaleDateString(\"en-GB\", dateOptions);\n return date;\n}\n\nfunction fixDigits(k) {\n if (k < 10) {\n return \"0\" + k;\n } else {\n return k;\n }\n}\n\nfunction greet() {\n let currentTime = new Date();\n let greet = Math.floor(currentTime.getHours() / 6);\n let easterEggChance = Math.floor(Math.random() * 100);\n\n let greetings = require('./messages.json');\n\n let timeBased = [];\n let easterEggs = [];\n\n for (var i = 0; i < greetings.messages.length; i++) {\n if (greetings.messages[i].easteregg === \"FALSE\") {\n timeBased = timeBased.concat(greetings.messages[i]);\n } else {\n easterEggs = easterEggs.concat(greetings.messages[i]);\n }\n }\n\n if (easterEggChance > 10) {\n return timeBased[greet].message;\n } else {\n let easterEggText = Math.floor(Math.random() * easterEggs.length);\n return easterEggs[easterEggText].message;\n }\n}\n\nfunction Clock() {\n _s();\n\n const [date, setDate] = useState(new Date());\n\n function refreshClock() {\n setDate(new Date());\n }\n\n useEffect(() => {\n const timerId = setInterval(refreshClock, 1000);\n return function cleanup() {\n clearInterval(timerId);\n };\n }, []);\n var hour = date.getHours();\n var minutes = date.getMinutes(); //var seconds = date.getSeconds();\n\n var midday = \"AM\";\n midday = hour >= 12 ? \"PM\" : \"AM\";\n hour = hour === 0 ? 12 : hour > 12 ? hour - 12 : hour;\n minutes = fixDigits(minutes); //seconds = fixDigits(seconds);\n\n let time = hour + \":\" + minutes + \" \" + midday;\n return /*#__PURE__*/_jsxDEV(\"h2\", {\n id: \"clock\",\n children: time\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 345,\n columnNumber: 5\n }, this);\n}\n\n_s(Clock, \"Gqi45WOZhU2c0BLYX0HoJeiR0fk=\");\n\n_c12 = Clock;\n\nfunction getApps() {\n let applications = require('./apps.json');\n\n return applications;\n}\n\nfunction getLinks() {\n let links = require('./links.json');\n\n return links;\n}\n\nfunction getProviders() {\n let providers = require('./providers.json');\n\n return providers;\n}\n\nfunction getThemes() {\n let themes = require('./themes.json');\n\n return themes;\n}\n\nfunction updateTheme(e) {\n var themes = getThemes();\n var themeName = e.target.innerHTML.toLowerCase();\n var index = themes.themes.findIndex(function (item, i) {\n return item.name === themeName;\n });\n console.log(themes.themes[index]);\n localStorage.setItem(\"image-background\", themes.themes[index].imagebackground);\n localStorage.setItem(\"color-background\", themes.themes[index].colorbackground);\n localStorage.setItem(\"color-search-background\", themes.themes[index].colorserachbackground);\n localStorage.setItem(\"color-text-pri\", themes.themes[index].colortextpri);\n localStorage.setItem(\"color-text-acc\", themes.themes[index].colortextacc);\n localStorage.setItem(\"color-border\", themes.themes[index].colorborder); //document.documentElement.style.setProperty(prop, `var(--${themeName}${prop.substring(10)})`);\n\n setTheme();\n}\n\nfunction setTheme() {\n setValueFromLocalStorage('image-background');\n setValueFromLocalStorage('color-background');\n setValueFromLocalStorage('color-search-background');\n setValueFromLocalStorage('color-text-pri');\n setValueFromLocalStorage('color-text-acc');\n setValueFromLocalStorage('color-border');\n setValueFromLocalStorage('content-display');\n}\n\nfunction handleKeyPress(e) {\n var sindex = 0;\n var cycle = false;\n var key = e.keyCode || e.which;\n var text = e.target.value.replaceAll(\"+\", \"%2B\");\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n\n if (key == 13) {\n // Search functions\n search(text);\n }\n\n if (key == 9) {\n // Tab Completion Functions\n e.preventDefault();\n e.stopPropagation();\n\n if (text[0] === ';') {\n switch (option) {\n case 't':\n var streamers = ['admiralbahroo', 'moonmoon_ow', 'witwix'];\n\n if (!subtext || cycle) {\n cycle = true;\n if (sindex > streamers.length - 1) sindex = 0;\n document.getElementById(\"keywords\").value = ';t ' + streamers[sindex++];\n return;\n }\n\n for (var streamer of streamers) {\n if (subtext === streamer.substr(0, subtext.length)) {\n document.getElementById(\"keywords\").value = ';t ' + streamer;\n return;\n }\n }\n\n break;\n }\n }\n }\n\n if (key == 32) {\n //Space to go to search\n updateLabel(text);\n }\n\n sindex = 0;\n cycle = false;\n updateLabel(text);\n}\n\nfunction updateLabel(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n\n if (text[0] === '/') {\n // if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n document.getElementById(\"searchType\").innerHTML = \"Allmusic search\";\n break;\n\n case \"d\":\n document.getElementById(\"searchType\").innerHTML = \"Duck Duck Go search\";\n break;\n\n case \"di\":\n document.getElementById(\"searchType\").innerHTML = \"Discogs search\";\n break;\n\n case \"i\":\n document.getElementById(\"searchType\").innerHTML = \"IMDB search\";\n break;\n\n case \"m\":\n document.getElementById(\"searchType\").innerHTML = \"TheMovieDB search\";\n break;\n\n case \"r\":\n document.getElementById(\"searchType\").innerHTML = \"Reddit search\";\n break;\n\n case \"q\":\n document.getElementById(\"searchType\").innerHTML = \"Qwant search\";\n break;\n\n case \"so\":\n document.getElementById(\"searchType\").innerHTML = \"Soundcloud search\";\n break;\n\n case \"s\":\n document.getElementById(\"searchType\").innerHTML = \"Spotify search\";\n break;\n\n case \"tv\":\n document.getElementById(\"searchType\").innerHTML = \"TheTVDB search\";\n break;\n\n case \"t\":\n document.getElementById(\"searchType\").innerHTML = \"Trakt search\";\n break;\n\n case \"y\":\n document.getElementById(\"searchType\").innerHTML = \"YouTube search\";\n break;\n\n case \"w\":\n document.getElementById(\"searchType\").innerHTML = \"Wikipedia search\";\n break;\n\n case \"p\":\n document.getElementById(\"searchType\").innerHTML = \"Plex search\";\n break;\n\n case \"rt\":\n document.getElementById(\"searchType\").innerHTML = \"Rotten Tomatoes search\";\n break;\n\n default:\n document.getElementById(\"searchType\").innerHTML = \"Invalid search\";\n break;\n }\n } else {\n document.getElementById(\"searchType\").innerHTML = \"Google search\";\n }\n}\n\nfunction search(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n\n if (text[0] === '/') {\n if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n window.location = \"https://www.allmusic.com/search/all/\" + subtext;\n break;\n\n case \"d\":\n window.location = \"https://duckduckgo.com/?q=\" + subtext;\n break;\n\n case \"di\":\n window.location = \"https://www.discogs.com/search/?q=\" + subtext;\n break;\n\n case \"i\":\n window.location = \"https://www.imdb.com/find?q=\" + subtext;\n break;\n\n case \"m\":\n window.location = \"https://www.themoviedb.org/search?query=\" + subtext;\n break;\n\n case \"r\":\n window.location = \"https://www.reddit.com/search?q=\" + subtext;\n break;\n\n case \"q\":\n window.location = \"https://www.qwant.com/?q=\" + subtext;\n break;\n\n case \"so\":\n window.location = \"https://soundcloud.com/search?q=\" + subtext;\n break;\n\n case \"s\":\n window.location = \"https://open.spotify.com/search/results/\" + subtext;\n break;\n\n case \"t\":\n window.location = \"https://trakt.tv/search?query=\" + subtext;\n break;\n\n case \"tv\":\n window.location = \"https://www.thetvdb.com/search?query=\" + subtext;\n break;\n\n case \"y\":\n window.location = \"https://www.youtube.com/results?search_query=\" + subtext;\n break;\n\n case \"w\":\n window.location = \"https://en.wikipedia.org/w/index.php?search=\" + subtext;\n break;\n\n case \"p\":\n window.location = \"https://app.plex.tv/desktop/#!/search?query=\" + subtext;\n break;\n\n case \"rt\":\n window.location = \"https://www.rottentomatoes.com/search?search=\" + subtext;\n break;\n }\n } else {\n var option = text.substr(1);\n\n switch (option) {\n case \"d\":\n window.location = \"https://www.duckduckgo.com\";\n break;\n\n case \"y\":\n window.location = \"https://www.youtube.com\";\n break;\n\n case \"r\":\n window.location = \"https://reddit.com\";\n break;\n\n case \"s\":\n window.location = \"https://open.spotify.com\";\n break;\n }\n }\n } else if (validURL(text)) {\n if (containsProtocol(text)) window.location = text;else window.location = \"https://\" + text;\n } else {\n window.location = \"https://www.google.com/search?q=\" + text;\n }\n} // Source: https://stackoverflow.com/questions/5717093/check-if-a-javascript-string-is-a-url\n\n\nfunction validURL(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/)?' + // protocol\n '((([a-z\\\\d]([a-z\\\\d-]*[a-z\\\\d])*)\\\\.)+[a-z]{2,}|' + // domain name\n '((\\\\d{1,3}\\\\.){3}\\\\d{1,3}))' + // OR ip (v4) address\n '(\\\\:\\\\d+)?(\\\\/[-a-z\\\\d%_.~+]*)*' + // port and path\n '(\\\\?[;&a-z\\\\d%_.~+=-]*)?' + // query string\n '(\\\\#[-a-z\\\\d_]*)?$', 'i'); // fragment locator\n\n return !!pattern.test(str);\n}\n\nfunction containsProtocol(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/){1}.*', 'i');\n return !!pattern.test(str);\n}\n\nString.prototype.replaceAll = function (search, replacement) {\n var target = this;\n return target.split(search).join(replacement);\n};\n\nfunction udpateDisplayedItems(e) {\n localStorage.setItem('contenttype', e.target.checked);\n\n if (e.target.checked) {\n localStorage.setItem('content-display', 'none');\n } else {\n localStorage.setItem('content-display', 'block');\n }\n\n setDisplayedItems();\n}\n\nfunction setDisplayedItems() {\n setValueFromLocalStorage('contenttype');\n setValueFromLocalStorage('content-display');\n}\n\nvar _c, _c2, _c3, _c4, _c5, _c6, _c7, _c8, _c9, _c10, _c11, _c12;\n\n$RefreshReg$(_c, \"Homepage\");\n$RefreshReg$(_c2, \"Search\");\n$RefreshReg$(_c3, \"Header\");\n$RefreshReg$(_c4, \"Applications\");\n$RefreshReg$(_c5, \"App\");\n$RefreshReg$(_c6, \"Bookmarks\");\n$RefreshReg$(_c7, \"LinkGroups\");\n$RefreshReg$(_c8, \"LinkItem\");\n$RefreshReg$(_c9, \"ModalMenu\");\n$RefreshReg$(_c10, \"Provider\");\n$RefreshReg$(_c11, \"ModalInit\");\n$RefreshReg$(_c12, \"Clock\");","map":{"version":3,"sources":["/home/seanedmunds/dev/home-page/src/index.js"],"names":["React","useState","useEffect","ReactDOM","setValueFromLocalStorage","property","value","localStorage","getItem","setValue","document","documentElement","style","setProperty","input","querySelector","replace","Homepage","setTheme","date","greet","Search","handleKeyPress","Header","props","Applications","appList","getApps","items","i","apps","length","safe","NSFW","NSFWEnabled","console","log","push","name","url","icon","App","classNameType","hrefUrl","iconName","Bookmarks","bookmarkList","getLinks","bookmarks","category","links","LinkGroups","LinkItem","link","ModalMenu","providers","getProviders","updateTheme","udpateDisplayedItems","Provider","provider","prefix","ModalInit","render","getElementById","currentDate","Date","dateOptions","weekday","year","month","day","toLocaleDateString","fixDigits","k","currentTime","Math","floor","getHours","easterEggChance","random","greetings","require","timeBased","easterEggs","messages","easteregg","concat","message","easterEggText","Clock","setDate","refreshClock","timerId","setInterval","cleanup","clearInterval","hour","minutes","getMinutes","midday","time","applications","getThemes","themes","e","themeName","target","innerHTML","toLowerCase","index","findIndex","item","setItem","imagebackground","colorbackground","colorserachbackground","colortextpri","colortextacc","colorborder","sindex","cycle","key","keyCode","which","text","replaceAll","option","substr","indexOf","subtext","search","preventDefault","stopPropagation","streamers","streamer","updateLabel","window","location","validURL","containsProtocol","str","pattern","RegExp","test","String","prototype","replacement","split","join","checked","setDisplayedItems"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { useState, useEffect } from 'react';\nimport ReactDOM from 'react-dom';\n//import { unstable_createPortal } from 'react-dom';\nimport './index.css';\n\nconst setValueFromLocalStorage = property => {\n let value = localStorage.getItem(property);\n setValue(property, value);\n};\nconst setValue = (property, value) => {\n if (value) {\n document.documentElement.style.setProperty(`--${property}`, value);\n\n const input = document.querySelector(`#${property}`);\n if (input) {\n value = value.replace('px', '');\n input.value = value;\n }\n }\n};\n\nfunction Homepage() {\n setTheme();\n return (\n \n \n \n
\n \n \n
\n \n \n \n
\n \n \n
\n \n \n
\n \n );\n}\n\nfunction Search() {\n return (\n \n )\n}\n\nfunction Header(props) {\n return (\n \n );\n}\n\nfunction Applications() {\n let appList = getApps();\n var items = [];\n for (var i = 0; i < appList.apps.length; i++) {\n var safe = appList.apps[i].NSFW;\n var NSFWEnabled = localStorage.getItem(\"contenttype\");\n console.log(safe);\n if (safe === \"SAFE\") {\n items.push(\n \n );\n } else if (safe === \"NSFW\" && NSFWEnabled) {\n items.push(\n \n );\n } else {\n console.log(NSFWEnabled);\n }\n \n }\n return (\n \n Applications
\n {items}\n \n );\n}\n\nfunction App(props) {\n \n let classNameType = props.NSFW + \"-content\";\n let hrefUrl = \"https://\" + props.url;\n let iconName = \"mdi-\" + props.icon;\n return (\n \n );\n}\n\nfunction Bookmarks() {\n let bookmarkList = getLinks();\n var items = [];\n for (var i = 0; i < bookmarkList.bookmarks.length; i++) {\n items.push(\n \n );\n }\n return (\n \n Bookmarks
\n \n {items}\n
\n \n );\n}\n\nfunction LinkGroups(props) {\n var items = [];\n for (var i = 0; i < props.links.length; i++) {\n items.push(\n \n );\n }\n return (\n \n
{props.category}
\n {items}\n \n );\n}\n\nfunction LinkItem(props) {\n return (\n \n );\n}\n\nfunction ModalMenu() {\n var providers = getProviders();\n var items = [];\n for (var i = 0; i < providers.providers.length; i++) {\n items.push(\n \n );\n }\n return (\n \n \n \n\n
Color themes
\n\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n\n\n
Search options
\n
\n \n \n \n | Website | \n Prefix | \n
\n {items}\n \n
\n \n\n \n
\n \n );\n}\n\nfunction Provider(props) {\n return (\n \n | {props.provider.name} | \n {props.provider.prefix} | \n
\n );\n}\n\nfunction ModalInit() {\n return (\n \n );\n}\n\nReactDOM.render(\n ,\n document.getElementById('root')\n);\n\n//Functions below this line are for calculating data for\n//other functions\n\nfunction date() {\n let currentDate = new Date();\n let dateOptions = {\n weekday: \"long\",\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\"\n };\n let date = currentDate.toLocaleDateString(\"en-GB\", dateOptions);\n return date;\n}\nfunction fixDigits(k) {\n if (k < 10) {\n return \"0\" + k;\n }\n else {\n return k;\n }\n}\nfunction greet() {\n let currentTime = new Date();\n let greet = Math.floor(currentTime.getHours() / 6);\n let easterEggChance = Math.floor(Math.random() * 100);\n let greetings = require('./messages.json');\n let timeBased = [];\n let easterEggs = [];\n for (var i = 0; i < greetings.messages.length; i++) {\n if (greetings.messages[i].easteregg === \"FALSE\") {\n timeBased = timeBased.concat(greetings.messages[i]);\n } else {\n easterEggs = easterEggs.concat(greetings.messages[i]);\n }\n }\n if (easterEggChance > 10) {\n return timeBased[greet].message;\n } else {\n let easterEggText = Math.floor(Math.random() * easterEggs.length);\n return easterEggs[easterEggText].message;\n }\n}\nfunction Clock() {\n const [date, setDate] = useState(new Date());\n\n function refreshClock() {\n setDate(new Date());\n }\n useEffect(() => {\n const timerId = setInterval(refreshClock, 1000);\n return function cleanup() {\n clearInterval(timerId);\n };\n }, []);\n\n var hour = date.getHours();\n var minutes = date.getMinutes();\n //var seconds = date.getSeconds();\n var midday = \"AM\";\n midday = (hour >= 12) ? \"PM\" : \"AM\";\n hour = (hour === 0) ? 12 : ((hour > 12) ? (hour - 12) : hour);\n minutes = fixDigits(minutes);\n //seconds = fixDigits(seconds);\n let time = hour + \":\" + minutes + \" \" + midday;\n\n return (\n {time}
\n\n );\n}\nfunction getApps() {\n let applications = require('./apps.json');\n return applications;\n}\nfunction getLinks() {\n let links = require('./links.json');\n return links;\n}\nfunction getProviders() {\n let providers = require('./providers.json');\n return providers;\n}\nfunction getThemes() {\n let themes = require('./themes.json');\n return themes;\n}\n\nfunction updateTheme(e) {\n var themes = getThemes();\n var themeName = e.target.innerHTML.toLowerCase();\n var index = themes.themes.findIndex(function(item, i){\n return item.name === themeName\n });\n console.log(themes.themes[index]);\n localStorage.setItem(\"image-background\", themes.themes[index].imagebackground);\n localStorage.setItem(\"color-background\", themes.themes[index].colorbackground);\n localStorage.setItem(\"color-search-background\", themes.themes[index].colorserachbackground);\n localStorage.setItem(\"color-text-pri\",themes.themes[index].colortextpri);\n localStorage.setItem(\"color-text-acc\", themes.themes[index].colortextacc);\n localStorage.setItem(\"color-border\", themes.themes[index].colorborder);\n \n //document.documentElement.style.setProperty(prop, `var(--${themeName}${prop.substring(10)})`);\n setTheme();\n}\n\nfunction setTheme() {\n setValueFromLocalStorage('image-background');\n setValueFromLocalStorage('color-background');\n setValueFromLocalStorage('color-search-background');\n setValueFromLocalStorage('color-text-pri');\n setValueFromLocalStorage('color-text-acc');\n setValueFromLocalStorage('color-border');\n setValueFromLocalStorage('content-display');\n}\n\nfunction handleKeyPress(e) {\n var sindex = 0;\n var cycle = false;\n var key = e.keyCode || e.which;\n var text = e.target.value.replaceAll(\"+\", \"%2B\");\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n if (key == 13) { // Search functions\n search(text);\n }\n if (key == 9) { // Tab Completion Functions\n e.preventDefault();\n e.stopPropagation();\n if (text[0] === ';') {\n switch (option) {\n case 't':\n var streamers = ['admiralbahroo', 'moonmoon_ow', 'witwix'];\n if (!subtext || cycle) {\n cycle = true;\n if (sindex > streamers.length - 1) sindex = 0;\n document.getElementById(\"keywords\").value = ';t ' + streamers[sindex++];\n return;\n }\n for (var streamer of streamers) {\n if (subtext === streamer.substr(0, subtext.length)) {\n document.getElementById(\"keywords\").value = ';t ' + streamer;\n return;\n }\n }\n break;\n }\n }\n }\n if(key == 32){ //Space to go to search\nupdateLabel(text);\n }\n sindex = 0;\n cycle = false;\n updateLabel(text);\n}\n\nfunction updateLabel(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n if (text[0] === '/') {\n// if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n document.getElementById(\"searchType\").innerHTML = \"Allmusic search\";\n break;\n case \"d\":\n document.getElementById(\"searchType\").innerHTML = \"Duck Duck Go search\";\n break;\n case \"di\":\n document.getElementById(\"searchType\").innerHTML = \"Discogs search\";\n break;\n case \"i\":\n document.getElementById(\"searchType\").innerHTML = \"IMDB search\";\n break;\n case \"m\":\n document.getElementById(\"searchType\").innerHTML = \"TheMovieDB search\";\n break;\n case \"r\":\n document.getElementById(\"searchType\").innerHTML = \"Reddit search\";\n break;\n case \"q\":\n document.getElementById(\"searchType\").innerHTML = \"Qwant search\";\n break;\n case \"so\":\n document.getElementById(\"searchType\").innerHTML = \"Soundcloud search\";\n break;\n case \"s\":\n document.getElementById(\"searchType\").innerHTML = \"Spotify search\";\n break;\n case \"tv\":\n document.getElementById(\"searchType\").innerHTML = \"TheTVDB search\";\n break;\n case \"t\":\n document.getElementById(\"searchType\").innerHTML = \"Trakt search\";\n break;\n case \"y\":\n document.getElementById(\"searchType\").innerHTML = \"YouTube search\";\n break;\n case \"w\":\n document.getElementById(\"searchType\").innerHTML = \"Wikipedia search\";\n break;\n case \"p\":\n document.getElementById(\"searchType\").innerHTML = \"Plex search\";\n break;\n case \"rt\":\n document.getElementById(\"searchType\").innerHTML = \"Rotten Tomatoes search\";\n break;\n default:\n document.getElementById(\"searchType\").innerHTML = \"Invalid search\";\n break;\n }\n}else {\n document.getElementById(\"searchType\").innerHTML = \"Google search\";\n }\n}\n\nfunction search(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n if (text[0] === '/') {\n if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n window.location = \"https://www.allmusic.com/search/all/\" + subtext;\n break;\n case \"d\":\n window.location = \"https://duckduckgo.com/?q=\" + subtext;\n break;\n case \"di\":\n window.location = \"https://www.discogs.com/search/?q=\" + subtext;\n break;\n case \"i\":\n window.location = \"https://www.imdb.com/find?q=\" + subtext;\n break;\n case \"m\":\n window.location = \"https://www.themoviedb.org/search?query=\" + subtext;\n break;\n case \"r\":\n window.location = \"https://www.reddit.com/search?q=\" + subtext;\n break;\n case \"q\":\n window.location = \"https://www.qwant.com/?q=\" + subtext;\n break;\n case \"so\":\n window.location = \"https://soundcloud.com/search?q=\" + subtext;\n break;\n case \"s\":\n window.location = \"https://open.spotify.com/search/results/\" + subtext;\n break;\n case \"t\":\n window.location = \"https://trakt.tv/search?query=\" + subtext;\n break;\n case \"tv\":\n window.location = \"https://www.thetvdb.com/search?query=\" + subtext;\n break;\n case \"y\":\n window.location = \"https://www.youtube.com/results?search_query=\" + subtext;\n break;\n case \"w\":\n window.location = \"https://en.wikipedia.org/w/index.php?search=\" + subtext;\n break;\n case \"p\":\n window.location = \"https://app.plex.tv/desktop/#!/search?query=\" + subtext;\n break;\n case \"rt\":\n window.location = \"https://www.rottentomatoes.com/search?search=\" + subtext;\n break;\n }\n } else {\n var option = text.substr(1);\n switch (option) {\n case \"d\":\n window.location = \"https://www.duckduckgo.com\";\n break;\n case \"y\":\n window.location = \"https://www.youtube.com\";\n break;\n case \"r\":\n window.location = \"https://reddit.com\";\n break;\n case \"s\":\n window.location = \"https://open.spotify.com\";\n break;\n }\n }\n } else if (validURL(text)) {\n if (containsProtocol(text))\n window.location = text;\n else\n window.location = \"https://\" + text;\n } else {\n window.location = \"https://www.google.com/search?q=\" + text;\n }\n}\n\n// Source: https://stackoverflow.com/questions/5717093/check-if-a-javascript-string-is-a-url\nfunction validURL(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/)?' + // protocol\n '((([a-z\\\\d]([a-z\\\\d-]*[a-z\\\\d])*)\\\\.)+[a-z]{2,}|' + // domain name\n '((\\\\d{1,3}\\\\.){3}\\\\d{1,3}))' + // OR ip (v4) address\n '(\\\\:\\\\d+)?(\\\\/[-a-z\\\\d%_.~+]*)*' + // port and path\n '(\\\\?[;&a-z\\\\d%_.~+=-]*)?' + // query string\n '(\\\\#[-a-z\\\\d_]*)?$', 'i'); // fragment locator\n return !!pattern.test(str);\n}\n\nfunction containsProtocol(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/){1}.*', 'i');\n return !!pattern.test(str);\n}\n\nString.prototype.replaceAll = function(search, replacement) {\n var target = this;\n return target.split(search).join(replacement);\n};\n\nfunction udpateDisplayedItems(e) {\n localStorage.setItem('contenttype', e.target.checked);\n if (e.target.checked) {\n localStorage.setItem('content-display', 'none');\n } else {\n localStorage.setItem('content-display', 'block');\n }\n setDisplayedItems();\n}\nfunction setDisplayedItems() {\n setValueFromLocalStorage('contenttype');\n setValueFromLocalStorage('content-display');\n}"]},"metadata":{},"sourceType":"module"}
\ No newline at end of file
diff --git a/node_modules/.cache/babel-loader/920670b55b8cc79772d884e3420902fe.json b/node_modules/.cache/babel-loader/920670b55b8cc79772d884e3420902fe.json
new file mode 100644
index 00000000..5dc25fc0
--- /dev/null
+++ b/node_modules/.cache/babel-loader/920670b55b8cc79772d884e3420902fe.json
@@ -0,0 +1 @@
+{"ast":null,"code":"var _jsxFileName = \"/home/seanedmunds/dev/home-page/src/index.js\",\n _s = $RefreshSig$();\n\nimport React from 'react';\nimport { useState, useEffect } from 'react';\nimport ReactDOM from 'react-dom'; //import { unstable_createPortal } from 'react-dom';\n\nimport './index.css';\nimport { jsxDEV as _jsxDEV } from \"react/jsx-dev-runtime\";\n\nconst setValueFromLocalStorage = property => {\n let value = localStorage.getItem(property);\n setValue(property, value);\n};\n\nconst setValue = (property, value) => {\n if (value) {\n document.documentElement.style.setProperty(`--${property}`, value);\n const input = document.querySelector(`#${property}`);\n\n if (input) {\n value = value.replace('px', '');\n input.value = value;\n }\n }\n};\n\nfunction Homepage() {\n setTheme();\n return /*#__PURE__*/_jsxDEV(\"main\", {\n id: \"container\",\n className: \"fade\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Search, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 28,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 27,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Header, {\n date: date(),\n greet: greet()\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 31,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 30,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Applications, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 37,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 36,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Bookmarks, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 40,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 39,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(ModalMenu, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 43,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 42,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(ModalInit, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 46,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 45,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 26,\n columnNumber: 5\n }, this);\n}\n\n_c = Homepage;\n\nfunction Search() {\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"search\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"abackground\",\n children: [/*#__PURE__*/_jsxDEV(\"input\", {\n name: \"keywords\",\n type: \"text\",\n className: \"keyword\",\n id: \"keywords\",\n size: \"50\",\n spellCheck: \"true\",\n placeholder: \"\"\n /*onFocus={this.placeholder = \"\"} onBlur={this.placeholder = ''}*/\n ,\n autoComplete: \"off\",\n autoFocus: true,\n onKeyUp: handleKeyPress\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 56,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n id: \"searchType\",\n className: \"Input-label\",\n children: \"Google search\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 57,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 55,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 54,\n columnNumber: 5\n }, this);\n}\n\n_c2 = Search;\n\nfunction Header(props) {\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"header\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n id: \"greeting_block\",\n children: /*#__PURE__*/_jsxDEV(\"h1\", {\n id: \"header_greet\",\n children: props.greet\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 67,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 66,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"date_block\",\n children: [/*#__PURE__*/_jsxDEV(\"h2\", {\n id: \"header_date\",\n children: props.date\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 70,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(Clock, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 71,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 69,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 65,\n columnNumber: 5\n }, this);\n}\n\n_c3 = Header;\n\nfunction Applications() {\n let appList = getApps();\n var items = [];\n\n for (var i = 0; i < appList.apps.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(App, {\n name: appList.apps[i].name,\n url: appList.apps[i].url,\n icon: appList.apps[i].icon,\n NSFW: appList.apps[i].NSFW\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 82,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"apps\",\n children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n children: \"Applications\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 93,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"apps_loop\",\n children: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 94,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 92,\n columnNumber: 5\n }, this);\n}\n\n_c4 = Applications;\n\nfunction App(props) {\n let classNameType = props.NSFW + \"-content\";\n let hrefUrl = \"https://\" + props.url;\n let iconName = \"mdi-\" + props.icon;\n return /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: hrefUrl,\n className: classNameType,\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_item\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_icon\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify icon\",\n \"data-icon\": iconName\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 110,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 109,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_text\",\n children: [/*#__PURE__*/_jsxDEV(\"span\", {\n id: \"app-name\",\n children: props.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 113,\n columnNumber: 13\n }, this), /*#__PURE__*/_jsxDEV(\"span\", {\n id: \"app-address\",\n children: props.url\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 114,\n columnNumber: 13\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 112,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 108,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 107,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 106,\n columnNumber: 5\n }, this);\n}\n\n_c5 = App;\n\nfunction Bookmarks() {\n let bookmarkList = getLinks();\n var items = [];\n\n for (var i = 0; i < bookmarkList.bookmarks.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(LinkGroups, {\n category: bookmarkList.bookmarks[i].category,\n links: bookmarkList.bookmarks[i].links\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 127,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"links\",\n children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n children: \"Bookmarks\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 136,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"links_loop\",\n children: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 137,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 135,\n columnNumber: 5\n }, this);\n}\n\n_c6 = Bookmarks;\n\nfunction LinkGroups(props) {\n var items = [];\n\n for (var i = 0; i < props.links.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(LinkItem, {\n link: props.links[i]\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 148,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"links_item\",\n children: [/*#__PURE__*/_jsxDEV(\"h4\", {\n children: props.category\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 156,\n columnNumber: 7\n }, this), items]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 155,\n columnNumber: 5\n }, this);\n}\n\n_c7 = LinkGroups;\n\nfunction LinkItem(props) {\n return /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: props.link.url,\n className: \"theme_color-border theme_text-select\",\n children: props.link.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 165,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 164,\n columnNumber: 5\n }, this);\n}\n\n_c8 = LinkItem;\n\nfunction ModalMenu() {\n var providers = getProviders();\n var items = [];\n\n for (var i = 0; i < providers.providers.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(Provider, {\n provider: providers.providers[i]\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 175,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"modal\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n children: [/*#__PURE__*/_jsxDEV(\"header\", {\n id: \"modal-header\",\n children: [/*#__PURE__*/_jsxDEV(\"h1\", {\n children: \"Options\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 185,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n href: \"#\",\n title: \"Close\",\n className: \"modal-close\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-close\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 187,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 186,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 184,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"h2\", {\n children: \"Color themes\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 191,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"modal-theme\",\n children: [/*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"blackboard\",\n className: \"theme-button theme-blackboard\",\n onClick: updateTheme,\n children: \"Blackboard\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 194,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"gazette\",\n className: \"theme-button theme-gazette\",\n onClick: updateTheme,\n children: \"Gazette\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 195,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"espresso\",\n className: \"theme-button theme-espresso\",\n onClick: updateTheme,\n children: \"Espresso\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 196,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cab\",\n className: \"theme-button theme-cab\",\n onClick: updateTheme,\n children: \"Cab\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 197,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cloud\",\n className: \"theme-button theme-cloud\",\n onClick: updateTheme,\n children: \"Cloud\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 198,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"lime\",\n className: \"theme-button theme-lime\",\n onClick: updateTheme,\n children: \"Lime\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 199,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"passion\",\n className: \"theme-button theme-passion\",\n onClick: updateTheme,\n children: \"Passion\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 200,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"blues\",\n className: \"theme-button theme-blues\",\n onClick: updateTheme,\n children: \"Blues\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 201,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"chalk\",\n className: \"theme-button theme-chalk\",\n onClick: updateTheme,\n children: \"Chalk\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 202,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"tron\",\n className: \"theme-button theme-tron\",\n onClick: updateTheme,\n children: \"Tron\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 203,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"paper\",\n className: \"theme-button theme-paper\",\n onClick: updateTheme,\n children: \"Paper\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 204,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cyberpunk\",\n className: \"theme-button theme-cyberpunk\",\n onClick: updateTheme,\n children: \"Cyberpunk\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 205,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"quadra\",\n className: \"theme-button theme-panam\",\n onClick: updateTheme,\n children: \"Quadra\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 206,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"panam\",\n className: \"theme-button theme-panam\",\n onClick: updateTheme,\n children: \"Panam\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 207,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"touch\",\n className: \"theme-button theme-touch\",\n onClick: updateTheme,\n children: \"Touch\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 208,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"peek\",\n className: \"theme-button theme-peek\",\n onClick: updateTheme,\n children: \"Peek\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 209,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 193,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"h2\", {\n children: \"Search options\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 213,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"providers\",\n children: /*#__PURE__*/_jsxDEV(\"table\", {\n children: /*#__PURE__*/_jsxDEV(\"tbody\", {\n children: [/*#__PURE__*/_jsxDEV(\"tr\", {\n children: [/*#__PURE__*/_jsxDEV(\"th\", {\n children: \"Website\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 218,\n columnNumber: 19\n }, this), /*#__PURE__*/_jsxDEV(\"th\", {\n children: \"Prefix\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 219,\n columnNumber: 19\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 217,\n columnNumber: 17\n }, this), items]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 216,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 215,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 214,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"header\", {\n id: \"modal-footer\",\n children: [/*#__PURE__*/_jsxDEV(\"a\", {\n href: \"https://github.com/jeroenpardon/\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-github-box\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 227,\n columnNumber: 54\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 227,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n href: \"https://materialdesignicons.com/\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-material-design\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 228,\n columnNumber: 54\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 228,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"sneaky\",\n children: [/*#__PURE__*/_jsxDEV(\"input\", {\n type: \"checkbox\",\n id: \"contenttype\",\n onChange: udpateDisplayedItems\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 229,\n columnNumber: 35\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n for: \"contenttype\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-domino-mask\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 230,\n columnNumber: 36\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 230,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 229,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 226,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 183,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 182,\n columnNumber: 5\n }, this);\n}\n\n_c9 = ModalMenu;\n\nfunction Provider(props) {\n return /*#__PURE__*/_jsxDEV(\"tr\", {\n children: [/*#__PURE__*/_jsxDEV(\"td\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: props.provider.url,\n children: props.provider.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 240,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 240,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"td\", {\n children: props.provider.prefix\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 241,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 239,\n columnNumber: 5\n }, this);\n}\n\n_c10 = Provider;\n\nfunction ModalInit() {\n return /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"modal_init\",\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n className: \"btn\",\n href: \"#modal\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify icon\",\n \"data-icon\": \"mdi-xbox-controller-menu\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 250,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 249,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 248,\n columnNumber: 5\n }, this);\n}\n\n_c11 = ModalInit;\nReactDOM.render( /*#__PURE__*/_jsxDEV(Homepage, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 257,\n columnNumber: 3\n}, this), document.getElementById('root')); //Functions below this line are for calculating data for\n//other functions\n\nfunction date() {\n let currentDate = new Date();\n let dateOptions = {\n weekday: \"long\",\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\"\n };\n let date = currentDate.toLocaleDateString(\"en-GB\", dateOptions);\n return date;\n}\n\nfunction fixDigits(k) {\n if (k < 10) {\n return \"0\" + k;\n } else {\n return k;\n }\n}\n\nfunction greet() {\n let currentTime = new Date();\n let greet = Math.floor(currentTime.getHours() / 6);\n let easterEggChance = Math.floor(Math.random() * 100);\n\n let greetings = require('./messages.json');\n\n let timeBased = [];\n let easterEggs = [];\n\n for (var i = 0; i < greetings.messages.length; i++) {\n if (greetings.messages[i].easteregg === \"FALSE\") {\n timeBased = timeBased.concat(greetings.messages[i]);\n } else {\n easterEggs = easterEggs.concat(greetings.messages[i]);\n }\n }\n\n if (easterEggChance > 10) {\n return timeBased[greet].message;\n } else {\n let easterEggText = Math.floor(Math.random() * easterEggs.length);\n return easterEggs[easterEggText].message;\n }\n}\n\nfunction Clock() {\n _s();\n\n const [date, setDate] = useState(new Date());\n\n function refreshClock() {\n setDate(new Date());\n }\n\n useEffect(() => {\n const timerId = setInterval(refreshClock, 1000);\n return function cleanup() {\n clearInterval(timerId);\n };\n }, []);\n var hour = date.getHours();\n var minutes = date.getMinutes(); //var seconds = date.getSeconds();\n\n var midday = \"AM\";\n midday = hour >= 12 ? \"PM\" : \"AM\";\n hour = hour === 0 ? 12 : hour > 12 ? hour - 12 : hour;\n minutes = fixDigits(minutes); //seconds = fixDigits(seconds);\n\n let time = hour + \":\" + minutes + \" \" + midday;\n return /*#__PURE__*/_jsxDEV(\"h2\", {\n id: \"clock\",\n children: time\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 328,\n columnNumber: 5\n }, this);\n}\n\n_s(Clock, \"Gqi45WOZhU2c0BLYX0HoJeiR0fk=\");\n\n_c12 = Clock;\n\nfunction getApps() {\n let applications = require('./apps.json');\n\n return applications;\n}\n\nfunction getLinks() {\n let links = require('./links.json');\n\n return links;\n}\n\nfunction getProviders() {\n let providers = require('./providers.json');\n\n return providers;\n}\n\nfunction getThemes() {\n let themes = require('./themes.json');\n\n return themes;\n}\n\nfunction updateTheme(e) {\n var themes = getThemes();\n var themeName = e.target.innerHTML.toLowerCase();\n var index = themes.themes.findIndex(function (item, i) {\n return item.name === themeName;\n });\n console.log(themes.themes[index]);\n localStorage.setItem(\"image-background\", themes.themes[index].imagebackground);\n localStorage.setItem(\"color-background\", themes.themes[index].colorbackground);\n localStorage.setItem(\"color-search-background\", themes.themes[index].colorserachbackground);\n localStorage.setItem(\"color-text-pri\", themes.themes[index].colortextpri);\n localStorage.setItem(\"color-text-acc\", themes.themes[index].colortextacc);\n localStorage.setItem(\"color-border\", themes.themes[index].colorborder); //document.documentElement.style.setProperty(prop, `var(--${themeName}${prop.substring(10)})`);\n\n setTheme();\n}\n\nfunction setTheme() {\n setValueFromLocalStorage('image-background');\n setValueFromLocalStorage('color-background');\n setValueFromLocalStorage('color-search-background');\n setValueFromLocalStorage('color-text-pri');\n setValueFromLocalStorage('color-text-acc');\n setValueFromLocalStorage('color-border');\n setValueFromLocalStorage('content-display');\n}\n\nfunction handleKeyPress(e) {\n var sindex = 0;\n var cycle = false;\n var key = e.keyCode || e.which;\n var text = e.target.value.replaceAll(\"+\", \"%2B\");\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n\n if (key == 13) {\n // Search functions\n search(text);\n }\n\n if (key == 9) {\n // Tab Completion Functions\n e.preventDefault();\n e.stopPropagation();\n\n if (text[0] === ';') {\n switch (option) {\n case 't':\n var streamers = ['admiralbahroo', 'moonmoon_ow', 'witwix'];\n\n if (!subtext || cycle) {\n cycle = true;\n if (sindex > streamers.length - 1) sindex = 0;\n document.getElementById(\"keywords\").value = ';t ' + streamers[sindex++];\n return;\n }\n\n for (var streamer of streamers) {\n if (subtext === streamer.substr(0, subtext.length)) {\n document.getElementById(\"keywords\").value = ';t ' + streamer;\n return;\n }\n }\n\n break;\n }\n }\n }\n\n if (key == 32) {\n //Space to go to search\n updateLabel(text);\n }\n\n sindex = 0;\n cycle = false;\n updateLabel(text);\n}\n\nfunction updateLabel(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n\n if (text[0] === '/') {\n // if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n document.getElementById(\"searchType\").innerHTML = \"Allmusic search\";\n break;\n\n case \"d\":\n document.getElementById(\"searchType\").innerHTML = \"Duck Duck Go search\";\n break;\n\n case \"di\":\n document.getElementById(\"searchType\").innerHTML = \"Discogs search\";\n break;\n\n case \"i\":\n document.getElementById(\"searchType\").innerHTML = \"IMDB search\";\n break;\n\n case \"m\":\n document.getElementById(\"searchType\").innerHTML = \"TheMovieDB search\";\n break;\n\n case \"r\":\n document.getElementById(\"searchType\").innerHTML = \"Reddit search\";\n break;\n\n case \"q\":\n document.getElementById(\"searchType\").innerHTML = \"Qwant search\";\n break;\n\n case \"so\":\n document.getElementById(\"searchType\").innerHTML = \"Soundcloud search\";\n break;\n\n case \"s\":\n document.getElementById(\"searchType\").innerHTML = \"Spotify search\";\n break;\n\n case \"tv\":\n document.getElementById(\"searchType\").innerHTML = \"TheTVDB search\";\n break;\n\n case \"t\":\n document.getElementById(\"searchType\").innerHTML = \"Trakt search\";\n break;\n\n case \"y\":\n document.getElementById(\"searchType\").innerHTML = \"YouTube search\";\n break;\n\n case \"w\":\n document.getElementById(\"searchType\").innerHTML = \"Wikipedia search\";\n break;\n\n case \"p\":\n document.getElementById(\"searchType\").innerHTML = \"Plex search\";\n break;\n\n case \"rt\":\n document.getElementById(\"searchType\").innerHTML = \"Rotten Tomatoes search\";\n break;\n\n default:\n document.getElementById(\"searchType\").innerHTML = \"Invalid search\";\n break;\n }\n } else {\n document.getElementById(\"searchType\").innerHTML = \"Google search\";\n }\n}\n\nfunction search(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n\n if (text[0] === '/') {\n if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n window.location = \"https://www.allmusic.com/search/all/\" + subtext;\n break;\n\n case \"d\":\n window.location = \"https://duckduckgo.com/?q=\" + subtext;\n break;\n\n case \"di\":\n window.location = \"https://www.discogs.com/search/?q=\" + subtext;\n break;\n\n case \"i\":\n window.location = \"https://www.imdb.com/find?q=\" + subtext;\n break;\n\n case \"m\":\n window.location = \"https://www.themoviedb.org/search?query=\" + subtext;\n break;\n\n case \"r\":\n window.location = \"https://www.reddit.com/search?q=\" + subtext;\n break;\n\n case \"q\":\n window.location = \"https://www.qwant.com/?q=\" + subtext;\n break;\n\n case \"so\":\n window.location = \"https://soundcloud.com/search?q=\" + subtext;\n break;\n\n case \"s\":\n window.location = \"https://open.spotify.com/search/results/\" + subtext;\n break;\n\n case \"t\":\n window.location = \"https://trakt.tv/search?query=\" + subtext;\n break;\n\n case \"tv\":\n window.location = \"https://www.thetvdb.com/search?query=\" + subtext;\n break;\n\n case \"y\":\n window.location = \"https://www.youtube.com/results?search_query=\" + subtext;\n break;\n\n case \"w\":\n window.location = \"https://en.wikipedia.org/w/index.php?search=\" + subtext;\n break;\n\n case \"p\":\n window.location = \"https://app.plex.tv/desktop/#!/search?query=\" + subtext;\n break;\n\n case \"rt\":\n window.location = \"https://www.rottentomatoes.com/search?search=\" + subtext;\n break;\n }\n } else {\n var option = text.substr(1);\n\n switch (option) {\n case \"d\":\n window.location = \"https://www.duckduckgo.com\";\n break;\n\n case \"y\":\n window.location = \"https://www.youtube.com\";\n break;\n\n case \"r\":\n window.location = \"https://reddit.com\";\n break;\n\n case \"s\":\n window.location = \"https://open.spotify.com\";\n break;\n }\n }\n } else if (validURL(text)) {\n if (containsProtocol(text)) window.location = text;else window.location = \"https://\" + text;\n } else {\n window.location = \"https://www.google.com/search?q=\" + text;\n }\n} // Source: https://stackoverflow.com/questions/5717093/check-if-a-javascript-string-is-a-url\n\n\nfunction validURL(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/)?' + // protocol\n '((([a-z\\\\d]([a-z\\\\d-]*[a-z\\\\d])*)\\\\.)+[a-z]{2,}|' + // domain name\n '((\\\\d{1,3}\\\\.){3}\\\\d{1,3}))' + // OR ip (v4) address\n '(\\\\:\\\\d+)?(\\\\/[-a-z\\\\d%_.~+]*)*' + // port and path\n '(\\\\?[;&a-z\\\\d%_.~+=-]*)?' + // query string\n '(\\\\#[-a-z\\\\d_]*)?$', 'i'); // fragment locator\n\n return !!pattern.test(str);\n}\n\nfunction containsProtocol(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/){1}.*', 'i');\n return !!pattern.test(str);\n}\n\nString.prototype.replaceAll = function (search, replacement) {\n var target = this;\n return target.split(search).join(replacement);\n};\n\nfunction udpateDisplayedItems(e) {\n console.log(e.target.checked);\n localStorage.setItem('contenttype', box.checked);\n}\n\nvar _c, _c2, _c3, _c4, _c5, _c6, _c7, _c8, _c9, _c10, _c11, _c12;\n\n$RefreshReg$(_c, \"Homepage\");\n$RefreshReg$(_c2, \"Search\");\n$RefreshReg$(_c3, \"Header\");\n$RefreshReg$(_c4, \"Applications\");\n$RefreshReg$(_c5, \"App\");\n$RefreshReg$(_c6, \"Bookmarks\");\n$RefreshReg$(_c7, \"LinkGroups\");\n$RefreshReg$(_c8, \"LinkItem\");\n$RefreshReg$(_c9, \"ModalMenu\");\n$RefreshReg$(_c10, \"Provider\");\n$RefreshReg$(_c11, \"ModalInit\");\n$RefreshReg$(_c12, \"Clock\");","map":{"version":3,"sources":["/home/seanedmunds/dev/home-page/src/index.js"],"names":["React","useState","useEffect","ReactDOM","setValueFromLocalStorage","property","value","localStorage","getItem","setValue","document","documentElement","style","setProperty","input","querySelector","replace","Homepage","setTheme","date","greet","Search","handleKeyPress","Header","props","Applications","appList","getApps","items","i","apps","length","push","name","url","icon","NSFW","App","classNameType","hrefUrl","iconName","Bookmarks","bookmarkList","getLinks","bookmarks","category","links","LinkGroups","LinkItem","link","ModalMenu","providers","getProviders","updateTheme","udpateDisplayedItems","Provider","provider","prefix","ModalInit","render","getElementById","currentDate","Date","dateOptions","weekday","year","month","day","toLocaleDateString","fixDigits","k","currentTime","Math","floor","getHours","easterEggChance","random","greetings","require","timeBased","easterEggs","messages","easteregg","concat","message","easterEggText","Clock","setDate","refreshClock","timerId","setInterval","cleanup","clearInterval","hour","minutes","getMinutes","midday","time","applications","getThemes","themes","e","themeName","target","innerHTML","toLowerCase","index","findIndex","item","console","log","setItem","imagebackground","colorbackground","colorserachbackground","colortextpri","colortextacc","colorborder","sindex","cycle","key","keyCode","which","text","replaceAll","option","substr","indexOf","subtext","search","preventDefault","stopPropagation","streamers","streamer","updateLabel","window","location","validURL","containsProtocol","str","pattern","RegExp","test","String","prototype","replacement","split","join","checked","box"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { useState, useEffect } from 'react';\nimport ReactDOM from 'react-dom';\n//import { unstable_createPortal } from 'react-dom';\nimport './index.css';\n\nconst setValueFromLocalStorage = property => {\n let value = localStorage.getItem(property);\n setValue(property, value);\n};\nconst setValue = (property, value) => {\n if (value) {\n document.documentElement.style.setProperty(`--${property}`, value);\n\n const input = document.querySelector(`#${property}`);\n if (input) {\n value = value.replace('px', '');\n input.value = value;\n }\n }\n};\n\nfunction Homepage() {\n setTheme();\n return (\n \n \n \n
\n \n \n
\n \n \n \n
\n \n \n
\n \n \n
\n \n );\n}\n\nfunction Search() {\n return (\n \n )\n}\n\nfunction Header(props) {\n return (\n \n );\n}\n\nfunction Applications() {\n let appList = getApps();\n var items = [];\n for (var i = 0; i < appList.apps.length; i++) {\n items.push(\n \n );\n }\n return (\n \n Applications
\n \n {items}\n
\n \n );\n}\n\nfunction App(props) {\n let classNameType = props.NSFW + \"-content\";\n let hrefUrl = \"https://\" + props.url;\n let iconName = \"mdi-\" + props.icon;\n return (\n \n );\n}\n\nfunction Bookmarks() {\n let bookmarkList = getLinks();\n var items = [];\n for (var i = 0; i < bookmarkList.bookmarks.length; i++) {\n items.push(\n \n );\n }\n return (\n \n Bookmarks
\n \n {items}\n
\n \n );\n}\n\nfunction LinkGroups(props) {\n var items = [];\n for (var i = 0; i < props.links.length; i++) {\n items.push(\n \n );\n }\n return (\n \n
{props.category}
\n {items}\n \n );\n}\n\nfunction LinkItem(props) {\n return (\n \n );\n}\n\nfunction ModalMenu() {\n var providers = getProviders();\n var items = [];\n for (var i = 0; i < providers.providers.length; i++) {\n items.push(\n \n );\n }\n return (\n \n \n \n\n
Color themes
\n\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n\n\n
Search options
\n
\n \n \n \n | Website | \n Prefix | \n
\n {items}\n \n
\n \n\n \n
\n \n );\n}\n\nfunction Provider(props) {\n return (\n \n | {props.provider.name} | \n {props.provider.prefix} | \n
\n );\n}\n\nfunction ModalInit() {\n return (\n \n );\n}\n\nReactDOM.render(\n ,\n document.getElementById('root')\n);\n\n//Functions below this line are for calculating data for\n//other functions\n\nfunction date() {\n let currentDate = new Date();\n let dateOptions = {\n weekday: \"long\",\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\"\n };\n let date = currentDate.toLocaleDateString(\"en-GB\", dateOptions);\n return date;\n}\nfunction fixDigits(k) {\n if (k < 10) {\n return \"0\" + k;\n }\n else {\n return k;\n }\n}\nfunction greet() {\n let currentTime = new Date();\n let greet = Math.floor(currentTime.getHours() / 6);\n let easterEggChance = Math.floor(Math.random() * 100);\n let greetings = require('./messages.json');\n let timeBased = [];\n let easterEggs = [];\n for (var i = 0; i < greetings.messages.length; i++) {\n if (greetings.messages[i].easteregg === \"FALSE\") {\n timeBased = timeBased.concat(greetings.messages[i]);\n } else {\n easterEggs = easterEggs.concat(greetings.messages[i]);\n }\n }\n if (easterEggChance > 10) {\n return timeBased[greet].message;\n } else {\n let easterEggText = Math.floor(Math.random() * easterEggs.length);\n return easterEggs[easterEggText].message;\n }\n}\nfunction Clock() {\n const [date, setDate] = useState(new Date());\n\n function refreshClock() {\n setDate(new Date());\n }\n useEffect(() => {\n const timerId = setInterval(refreshClock, 1000);\n return function cleanup() {\n clearInterval(timerId);\n };\n }, []);\n\n var hour = date.getHours();\n var minutes = date.getMinutes();\n //var seconds = date.getSeconds();\n var midday = \"AM\";\n midday = (hour >= 12) ? \"PM\" : \"AM\";\n hour = (hour === 0) ? 12 : ((hour > 12) ? (hour - 12) : hour);\n minutes = fixDigits(minutes);\n //seconds = fixDigits(seconds);\n let time = hour + \":\" + minutes + \" \" + midday;\n\n return (\n {time}
\n\n );\n}\nfunction getApps() {\n let applications = require('./apps.json');\n return applications;\n}\nfunction getLinks() {\n let links = require('./links.json');\n return links;\n}\nfunction getProviders() {\n let providers = require('./providers.json');\n return providers;\n}\nfunction getThemes() {\n let themes = require('./themes.json');\n return themes;\n}\n\nfunction updateTheme(e) {\n var themes = getThemes();\n var themeName = e.target.innerHTML.toLowerCase();\n var index = themes.themes.findIndex(function(item, i){\n return item.name === themeName\n });\n console.log(themes.themes[index]);\n localStorage.setItem(\"image-background\", themes.themes[index].imagebackground);\n localStorage.setItem(\"color-background\", themes.themes[index].colorbackground);\n localStorage.setItem(\"color-search-background\", themes.themes[index].colorserachbackground);\n localStorage.setItem(\"color-text-pri\",themes.themes[index].colortextpri);\n localStorage.setItem(\"color-text-acc\", themes.themes[index].colortextacc);\n localStorage.setItem(\"color-border\", themes.themes[index].colorborder);\n \n //document.documentElement.style.setProperty(prop, `var(--${themeName}${prop.substring(10)})`);\n setTheme();\n}\n\nfunction setTheme() {\n setValueFromLocalStorage('image-background');\n setValueFromLocalStorage('color-background');\n setValueFromLocalStorage('color-search-background');\n setValueFromLocalStorage('color-text-pri');\n setValueFromLocalStorage('color-text-acc');\n setValueFromLocalStorage('color-border');\n setValueFromLocalStorage('content-display');\n}\n\nfunction handleKeyPress(e) {\n var sindex = 0;\n var cycle = false;\n var key = e.keyCode || e.which;\n var text = e.target.value.replaceAll(\"+\", \"%2B\");\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n if (key == 13) { // Search functions\n search(text);\n }\n if (key == 9) { // Tab Completion Functions\n e.preventDefault();\n e.stopPropagation();\n if (text[0] === ';') {\n switch (option) {\n case 't':\n var streamers = ['admiralbahroo', 'moonmoon_ow', 'witwix'];\n if (!subtext || cycle) {\n cycle = true;\n if (sindex > streamers.length - 1) sindex = 0;\n document.getElementById(\"keywords\").value = ';t ' + streamers[sindex++];\n return;\n }\n for (var streamer of streamers) {\n if (subtext === streamer.substr(0, subtext.length)) {\n document.getElementById(\"keywords\").value = ';t ' + streamer;\n return;\n }\n }\n break;\n }\n }\n }\n if(key == 32){ //Space to go to search\nupdateLabel(text);\n }\n sindex = 0;\n cycle = false;\n updateLabel(text);\n}\n\nfunction updateLabel(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n if (text[0] === '/') {\n// if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n document.getElementById(\"searchType\").innerHTML = \"Allmusic search\";\n break;\n case \"d\":\n document.getElementById(\"searchType\").innerHTML = \"Duck Duck Go search\";\n break;\n case \"di\":\n document.getElementById(\"searchType\").innerHTML = \"Discogs search\";\n break;\n case \"i\":\n document.getElementById(\"searchType\").innerHTML = \"IMDB search\";\n break;\n case \"m\":\n document.getElementById(\"searchType\").innerHTML = \"TheMovieDB search\";\n break;\n case \"r\":\n document.getElementById(\"searchType\").innerHTML = \"Reddit search\";\n break;\n case \"q\":\n document.getElementById(\"searchType\").innerHTML = \"Qwant search\";\n break;\n case \"so\":\n document.getElementById(\"searchType\").innerHTML = \"Soundcloud search\";\n break;\n case \"s\":\n document.getElementById(\"searchType\").innerHTML = \"Spotify search\";\n break;\n case \"tv\":\n document.getElementById(\"searchType\").innerHTML = \"TheTVDB search\";\n break;\n case \"t\":\n document.getElementById(\"searchType\").innerHTML = \"Trakt search\";\n break;\n case \"y\":\n document.getElementById(\"searchType\").innerHTML = \"YouTube search\";\n break;\n case \"w\":\n document.getElementById(\"searchType\").innerHTML = \"Wikipedia search\";\n break;\n case \"p\":\n document.getElementById(\"searchType\").innerHTML = \"Plex search\";\n break;\n case \"rt\":\n document.getElementById(\"searchType\").innerHTML = \"Rotten Tomatoes search\";\n break;\n default:\n document.getElementById(\"searchType\").innerHTML = \"Invalid search\";\n break;\n }\n}else {\n document.getElementById(\"searchType\").innerHTML = \"Google search\";\n }\n}\n\nfunction search(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n if (text[0] === '/') {\n if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n window.location = \"https://www.allmusic.com/search/all/\" + subtext;\n break;\n case \"d\":\n window.location = \"https://duckduckgo.com/?q=\" + subtext;\n break;\n case \"di\":\n window.location = \"https://www.discogs.com/search/?q=\" + subtext;\n break;\n case \"i\":\n window.location = \"https://www.imdb.com/find?q=\" + subtext;\n break;\n case \"m\":\n window.location = \"https://www.themoviedb.org/search?query=\" + subtext;\n break;\n case \"r\":\n window.location = \"https://www.reddit.com/search?q=\" + subtext;\n break;\n case \"q\":\n window.location = \"https://www.qwant.com/?q=\" + subtext;\n break;\n case \"so\":\n window.location = \"https://soundcloud.com/search?q=\" + subtext;\n break;\n case \"s\":\n window.location = \"https://open.spotify.com/search/results/\" + subtext;\n break;\n case \"t\":\n window.location = \"https://trakt.tv/search?query=\" + subtext;\n break;\n case \"tv\":\n window.location = \"https://www.thetvdb.com/search?query=\" + subtext;\n break;\n case \"y\":\n window.location = \"https://www.youtube.com/results?search_query=\" + subtext;\n break;\n case \"w\":\n window.location = \"https://en.wikipedia.org/w/index.php?search=\" + subtext;\n break;\n case \"p\":\n window.location = \"https://app.plex.tv/desktop/#!/search?query=\" + subtext;\n break;\n case \"rt\":\n window.location = \"https://www.rottentomatoes.com/search?search=\" + subtext;\n break;\n }\n } else {\n var option = text.substr(1);\n switch (option) {\n case \"d\":\n window.location = \"https://www.duckduckgo.com\";\n break;\n case \"y\":\n window.location = \"https://www.youtube.com\";\n break;\n case \"r\":\n window.location = \"https://reddit.com\";\n break;\n case \"s\":\n window.location = \"https://open.spotify.com\";\n break;\n }\n }\n } else if (validURL(text)) {\n if (containsProtocol(text))\n window.location = text;\n else\n window.location = \"https://\" + text;\n } else {\n window.location = \"https://www.google.com/search?q=\" + text;\n }\n}\n\n// Source: https://stackoverflow.com/questions/5717093/check-if-a-javascript-string-is-a-url\nfunction validURL(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/)?' + // protocol\n '((([a-z\\\\d]([a-z\\\\d-]*[a-z\\\\d])*)\\\\.)+[a-z]{2,}|' + // domain name\n '((\\\\d{1,3}\\\\.){3}\\\\d{1,3}))' + // OR ip (v4) address\n '(\\\\:\\\\d+)?(\\\\/[-a-z\\\\d%_.~+]*)*' + // port and path\n '(\\\\?[;&a-z\\\\d%_.~+=-]*)?' + // query string\n '(\\\\#[-a-z\\\\d_]*)?$', 'i'); // fragment locator\n return !!pattern.test(str);\n}\n\nfunction containsProtocol(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/){1}.*', 'i');\n return !!pattern.test(str);\n}\n\nString.prototype.replaceAll = function(search, replacement) {\n var target = this;\n return target.split(search).join(replacement);\n};\n\nfunction udpateDisplayedItems(e) {\n console.log(e.target.checked);\n localStorage.setItem('contenttype', box.checked);\n}"]},"metadata":{},"sourceType":"module"}
\ No newline at end of file
diff --git a/node_modules/.cache/babel-loader/92ce2b87c5546e79f25c0dab1ebe13f2.json b/node_modules/.cache/babel-loader/92ce2b87c5546e79f25c0dab1ebe13f2.json
new file mode 100644
index 00000000..f8c73360
--- /dev/null
+++ b/node_modules/.cache/babel-loader/92ce2b87c5546e79f25c0dab1ebe13f2.json
@@ -0,0 +1 @@
+{"ast":null,"code":"var _jsxFileName = \"/home/seanedmunds/dev/home-page/src/index.js\",\n _s = $RefreshSig$();\n\nimport React from 'react';\nimport { useState, useEffect } from 'react';\nimport ReactDOM from 'react-dom';\nimport './index.css';\nimport { jsxDEV as _jsxDEV } from \"react/jsx-dev-runtime\";\n\nconst setValueFromLocalStorage = property => {\n let value = localStorage.getItem(property);\n setValue(property, value);\n};\n\nconst setValue = (property, value) => {\n if (value) {\n document.documentElement.style.setProperty(`--${property}`, value);\n const input = document.querySelector(`#${property}`);\n\n if (input) {\n value = value.replace('px', '');\n input.value = value;\n }\n }\n};\n\nfunction Homepage() {\n setTheme();\n return /*#__PURE__*/_jsxDEV(\"main\", {\n id: \"container\",\n className: \"fade\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Search, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 28,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 27,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Header, {\n date: date(),\n greet: greet()\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 31,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 30,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Applications, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 37,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 36,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Bookmarks, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 40,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 39,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(ModalMenu, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 43,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 42,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(ModalInit, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 46,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 45,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 26,\n columnNumber: 5\n }, this);\n}\n\n_c = Homepage;\n\nfunction Search() {\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"search\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"abackground\",\n children: [/*#__PURE__*/_jsxDEV(\"input\", {\n name: \"keywords\",\n type: \"text\",\n className: \"keyword\",\n id: \"keywords\",\n size: \"50\",\n spellCheck: \"true\",\n placeholder: \"\"\n /*onFocus={this.placeholder = \"\"} onBlur={this.placeholder = ''}*/\n ,\n autoComplete: \"off\",\n autoFocus: true,\n onKeyUp: handleKeyPress\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 56,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n id: \"searchType\",\n className: \"Input-label\",\n children: \"Google search\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 57,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 55,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 54,\n columnNumber: 5\n }, this);\n}\n\n_c2 = Search;\n\nfunction Header(props) {\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"header\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n id: \"greeting_block\",\n children: /*#__PURE__*/_jsxDEV(\"h1\", {\n id: \"header_greet\",\n children: props.greet\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 67,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 66,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"date_block\",\n children: [/*#__PURE__*/_jsxDEV(\"h2\", {\n id: \"header_date\",\n children: props.date\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 70,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(Clock, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 71,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 69,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 65,\n columnNumber: 5\n }, this);\n}\n\n_c3 = Header;\n\nfunction Applications() {\n let appList = getApps();\n var items = [];\n\n for (var i = 0; i < appList.apps.length; i++) {\n var safe = appList.apps[i].NSFW;\n var NSFWEnabled = localStorage.getItem(\"contenttype\");\n\n if (safe === \"SAFE\") {\n items.push( /*#__PURE__*/_jsxDEV(App, {\n name: appList.apps[i].name,\n url: appList.apps[i].url,\n icon: appList.apps[i].icon,\n NSFW: appList.apps[i].NSFW\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 85,\n columnNumber: 9\n }, this));\n } else if (safe === \"NSFW\" && NSFWEnabled) {\n items.push( /*#__PURE__*/_jsxDEV(App, {\n name: appList.apps[i].name,\n url: appList.apps[i].url,\n icon: appList.apps[i].icon,\n NSFW: appList.apps[i].NSFW\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 95,\n columnNumber: 9\n }, this));\n } else {}\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"apps\",\n children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n children: \"Applications\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 110,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"apps_loop\",\n children: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 111,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 109,\n columnNumber: 5\n }, this);\n}\n\n_c4 = Applications;\n\nfunction App(props) {\n let classNameType = props.NSFW + \"-content\";\n let hrefUrl = \"https://\" + props.url;\n let iconName = \"mdi-\" + props.icon;\n return /*#__PURE__*/_jsxDEV(\"div\", {\n className: classNameType,\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: hrefUrl,\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_item\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_icon\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify icon\",\n \"data-icon\": iconName\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 128,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 127,\n columnNumber: 13\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_text\",\n children: [/*#__PURE__*/_jsxDEV(\"span\", {\n id: \"app-name\",\n children: props.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 131,\n columnNumber: 15\n }, this), /*#__PURE__*/_jsxDEV(\"span\", {\n id: \"app-address\",\n children: props.url\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 132,\n columnNumber: 15\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 130,\n columnNumber: 13\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 126,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 125,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 124,\n columnNumber: 7\n }, this);\n}\n\n_c5 = App;\n\nfunction Bookmarks() {\n let bookmarkList = getLinks();\n var items = [];\n\n for (var i = 0; i < bookmarkList.bookmarks.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(LinkGroups, {\n category: bookmarkList.bookmarks[i].category,\n links: bookmarkList.bookmarks[i].links\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 145,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"links\",\n children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n children: \"Bookmarks\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 154,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"links_loop\",\n children: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 155,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 153,\n columnNumber: 5\n }, this);\n}\n\n_c6 = Bookmarks;\n\nfunction LinkGroups(props) {\n var items = [];\n\n for (var i = 0; i < props.links.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(LinkItem, {\n link: props.links[i]\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 166,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"links_item\",\n children: [/*#__PURE__*/_jsxDEV(\"h4\", {\n children: props.category\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 174,\n columnNumber: 7\n }, this), items]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 173,\n columnNumber: 5\n }, this);\n}\n\n_c7 = LinkGroups;\n\nfunction LinkItem(props) {\n return /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: props.link.url,\n className: \"theme_color-border theme_text-select\",\n children: props.link.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 183,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 182,\n columnNumber: 5\n }, this);\n}\n\n_c8 = LinkItem;\n\nfunction ModalMenu() {\n var providers = getProviders();\n var items = [];\n var isChecked = localStorage.getItem(\"contenttype\");\n console.log(localStorage.getItem(\"contenttype\"));\n\n for (var i = 0; i < providers.providers.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(Provider, {\n provider: providers.providers[i]\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 195,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"modal\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n children: [/*#__PURE__*/_jsxDEV(\"header\", {\n id: \"modal-header\",\n children: [/*#__PURE__*/_jsxDEV(\"h1\", {\n children: \"Options\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 205,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n href: \"#\",\n title: \"Close\",\n className: \"modal-close\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-close\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 207,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 206,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 204,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"h2\", {\n children: \"Color themes\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 211,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"modal-theme\",\n children: [/*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"blackboard\",\n className: \"theme-button theme-blackboard\",\n onClick: updateTheme,\n children: \"Blackboard\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 214,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"gazette\",\n className: \"theme-button theme-gazette\",\n onClick: updateTheme,\n children: \"Gazette\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 215,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"espresso\",\n className: \"theme-button theme-espresso\",\n onClick: updateTheme,\n children: \"Espresso\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 216,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cab\",\n className: \"theme-button theme-cab\",\n onClick: updateTheme,\n children: \"Cab\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 217,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cloud\",\n className: \"theme-button theme-cloud\",\n onClick: updateTheme,\n children: \"Cloud\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 218,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"lime\",\n className: \"theme-button theme-lime\",\n onClick: updateTheme,\n children: \"Lime\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 219,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"passion\",\n className: \"theme-button theme-passion\",\n onClick: updateTheme,\n children: \"Passion\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 220,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"blues\",\n className: \"theme-button theme-blues\",\n onClick: updateTheme,\n children: \"Blues\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 221,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"chalk\",\n className: \"theme-button theme-chalk\",\n onClick: updateTheme,\n children: \"Chalk\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 222,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"tron\",\n className: \"theme-button theme-tron\",\n onClick: updateTheme,\n children: \"Tron\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 223,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"paper\",\n className: \"theme-button theme-paper\",\n onClick: updateTheme,\n children: \"Paper\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 224,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cyberpunk\",\n className: \"theme-button theme-cyberpunk\",\n onClick: updateTheme,\n children: \"Cyberpunk\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 225,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"quadra\",\n className: \"theme-button theme-panam\",\n onClick: updateTheme,\n children: \"Quadra\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 226,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"panam\",\n className: \"theme-button theme-panam\",\n onClick: updateTheme,\n children: \"Panam\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 227,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"touch\",\n className: \"theme-button theme-touch\",\n onClick: updateTheme,\n children: \"Touch\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 228,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"peek\",\n className: \"theme-button theme-peek\",\n onClick: updateTheme,\n children: \"Peek\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 229,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 213,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"h2\", {\n children: \"Search options\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 233,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"providers\",\n children: /*#__PURE__*/_jsxDEV(\"table\", {\n children: /*#__PURE__*/_jsxDEV(\"tbody\", {\n children: [/*#__PURE__*/_jsxDEV(\"tr\", {\n children: [/*#__PURE__*/_jsxDEV(\"th\", {\n children: \"Website\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 238,\n columnNumber: 19\n }, this), /*#__PURE__*/_jsxDEV(\"th\", {\n children: \"Prefix\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 239,\n columnNumber: 19\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 237,\n columnNumber: 17\n }, this), items]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 236,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 235,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 234,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"header\", {\n id: \"modal-footer\",\n children: [/*#__PURE__*/_jsxDEV(\"a\", {\n href: \"https://github.com/jeroenpardon/\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-github-box\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 247,\n columnNumber: 54\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 247,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n href: \"https://materialdesignicons.com/\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-material-design\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 248,\n columnNumber: 54\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 248,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(HideButton, {\n checked: isChecked\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 249,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 246,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 203,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 202,\n columnNumber: 5\n }, this);\n}\n\n_c9 = ModalMenu;\n\nfunction HideButton(props) {\n console.log(props.checked);\n\n if (props.checked === \"true\") {\n console.log(\"icon should be grey\");\n return /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"sneaky\",\n children: [/*#__PURE__*/_jsxDEV(\"input\", {\n type: \"checkbox\",\n id: \"contenttype\",\n onChange: udpateDisplayedItems,\n defaultChecked: true\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 263,\n columnNumber: 31\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n for: \"contenttype\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-domino-mask\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 264,\n columnNumber: 32\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 264,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 263,\n columnNumber: 7\n }, this);\n } else {\n console.log(\"icon should be white\");\n return /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"sneaky\",\n children: [/*#__PURE__*/_jsxDEV(\"input\", {\n type: \"checkbox\",\n id: \"contenttype\",\n onChange: udpateDisplayedItems,\n defaultChecked: false\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 269,\n columnNumber: 31\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n for: \"contenttype\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-domino-mask\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 270,\n columnNumber: 32\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 270,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 269,\n columnNumber: 7\n }, this);\n }\n}\n\n_c10 = HideButton;\n\nfunction Provider(props) {\n return /*#__PURE__*/_jsxDEV(\"tr\", {\n children: [/*#__PURE__*/_jsxDEV(\"td\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: props.provider.url,\n children: props.provider.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 278,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 278,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"td\", {\n children: props.provider.prefix\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 279,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 277,\n columnNumber: 5\n }, this);\n}\n\n_c11 = Provider;\n\nfunction ModalInit() {\n setDisplayedItems();\n return /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"modal_init\",\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n className: \"btn\",\n href: \"#modal\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify icon\",\n \"data-icon\": \"mdi-xbox-controller-menu\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 289,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 288,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 287,\n columnNumber: 5\n }, this);\n}\n\n_c12 = ModalInit;\nReactDOM.render( /*#__PURE__*/_jsxDEV(Homepage, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 296,\n columnNumber: 3\n}, this), document.getElementById('root')); //Functions below this line are for calculating data for\n//other functions\n\nfunction date() {\n let currentDate = new Date();\n let dateOptions = {\n weekday: \"long\",\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\"\n };\n let date = currentDate.toLocaleDateString(\"en-GB\", dateOptions);\n return date;\n}\n\nfunction fixDigits(k) {\n if (k < 10) {\n return \"0\" + k;\n } else {\n return k;\n }\n}\n\nfunction greet() {\n let currentTime = new Date();\n let greet = Math.floor(currentTime.getHours() / 6);\n let easterEggChance = Math.floor(Math.random() * 100);\n\n let greetings = require('./messages.json');\n\n let timeBased = [];\n let easterEggs = [];\n\n for (var i = 0; i < greetings.messages.length; i++) {\n if (greetings.messages[i].easteregg === \"FALSE\") {\n timeBased = timeBased.concat(greetings.messages[i]);\n } else {\n easterEggs = easterEggs.concat(greetings.messages[i]);\n }\n }\n\n if (easterEggChance > 10) {\n return timeBased[greet].message;\n } else {\n let easterEggText = Math.floor(Math.random() * easterEggs.length);\n return easterEggs[easterEggText].message;\n }\n}\n\nfunction Clock() {\n _s();\n\n const [date, setDate] = useState(new Date());\n\n function refreshClock() {\n setDate(new Date());\n }\n\n useEffect(() => {\n const timerId = setInterval(refreshClock, 1000);\n return function cleanup() {\n clearInterval(timerId);\n };\n }, []);\n var hour = date.getHours();\n var minutes = date.getMinutes(); //var seconds = date.getSeconds();\n\n var midday = \"AM\";\n midday = hour >= 12 ? \"PM\" : \"AM\";\n hour = hour === 0 ? 12 : hour > 12 ? hour - 12 : hour;\n minutes = fixDigits(minutes); //seconds = fixDigits(seconds);\n\n let time = hour + \":\" + minutes + \" \" + midday;\n return /*#__PURE__*/_jsxDEV(\"h2\", {\n id: \"clock\",\n children: time\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 367,\n columnNumber: 5\n }, this);\n}\n\n_s(Clock, \"Gqi45WOZhU2c0BLYX0HoJeiR0fk=\");\n\n_c13 = Clock;\n\nfunction getApps() {\n let applications = require('./apps.json');\n\n return applications;\n}\n\nfunction getLinks() {\n let links = require('./links.json');\n\n return links;\n}\n\nfunction getProviders() {\n let providers = require('./providers.json');\n\n return providers;\n}\n\nfunction getThemes() {\n let themes = require('./themes.json');\n\n return themes;\n}\n\nfunction updateTheme(e) {\n var themes = getThemes();\n var themeName = e.target.innerHTML.toLowerCase();\n var index = themes.themes.findIndex(function (item, i) {\n return item.name === themeName;\n });\n localStorage.setItem(\"image-background\", themes.themes[index].imagebackground);\n localStorage.setItem(\"color-background\", themes.themes[index].colorbackground);\n localStorage.setItem(\"color-search-background\", themes.themes[index].colorserachbackground);\n localStorage.setItem(\"color-text-pri\", themes.themes[index].colortextpri);\n localStorage.setItem(\"color-text-acc\", themes.themes[index].colortextacc);\n localStorage.setItem(\"color-border\", themes.themes[index].colorborder); //document.documentElement.style.setProperty(prop, `var(--${themeName}${prop.substring(10)})`);\n\n setTheme();\n}\n\nfunction setTheme() {\n setValueFromLocalStorage('image-background');\n setValueFromLocalStorage('color-background');\n setValueFromLocalStorage('color-search-background');\n setValueFromLocalStorage('color-text-pri');\n setValueFromLocalStorage('color-text-acc');\n setValueFromLocalStorage('color-border');\n setValueFromLocalStorage('content-display');\n}\n\nfunction handleKeyPress(e) {\n var sindex = 0;\n var cycle = false;\n var key = e.keyCode || e.which;\n var text = e.target.value.replaceAll(\"+\", \"%2B\");\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n\n if (key === 13) {\n // Search functions\n search(text);\n }\n\n if (key === 9) {\n // Tab Completion Functions\n e.preventDefault();\n e.stopPropagation();\n\n if (text[0] === ';') {\n switch (option) {\n case 't':\n var streamers = ['admiralbahroo', 'moonmoon_ow', 'witwix'];\n\n if (!subtext || cycle) {\n cycle = true;\n if (sindex > streamers.length - 1) sindex = 0;\n document.getElementById(\"keywords\").value = ';t ' + streamers[sindex++];\n return;\n }\n\n for (var streamer of streamers) {\n if (subtext === streamer.substr(0, subtext.length)) {\n document.getElementById(\"keywords\").value = ';t ' + streamer;\n return;\n }\n }\n\n break;\n\n default:\n break;\n }\n }\n }\n\n if (key === 32) {\n //Space to go to search\n updateLabel(text);\n }\n\n sindex = 0;\n cycle = false;\n updateLabel(text);\n}\n\nfunction updateLabel(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n\n if (text[0] === '/') {\n // if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n document.getElementById(\"searchType\").innerHTML = \"Allmusic search\";\n break;\n\n case \"d\":\n document.getElementById(\"searchType\").innerHTML = \"Duck Duck Go search\";\n break;\n\n case \"di\":\n document.getElementById(\"searchType\").innerHTML = \"Discogs search\";\n break;\n\n case \"i\":\n document.getElementById(\"searchType\").innerHTML = \"IMDB search\";\n break;\n\n case \"m\":\n document.getElementById(\"searchType\").innerHTML = \"TheMovieDB search\";\n break;\n\n case \"r\":\n document.getElementById(\"searchType\").innerHTML = \"Reddit search\";\n break;\n\n case \"q\":\n document.getElementById(\"searchType\").innerHTML = \"Qwant search\";\n break;\n\n case \"so\":\n document.getElementById(\"searchType\").innerHTML = \"Soundcloud search\";\n break;\n\n case \"s\":\n document.getElementById(\"searchType\").innerHTML = \"Spotify search\";\n break;\n\n case \"tv\":\n document.getElementById(\"searchType\").innerHTML = \"TheTVDB search\";\n break;\n\n case \"t\":\n document.getElementById(\"searchType\").innerHTML = \"Trakt search\";\n break;\n\n case \"y\":\n document.getElementById(\"searchType\").innerHTML = \"YouTube search\";\n break;\n\n case \"w\":\n document.getElementById(\"searchType\").innerHTML = \"Wikipedia search\";\n break;\n\n case \"p\":\n document.getElementById(\"searchType\").innerHTML = \"Plex search\";\n break;\n\n case \"rt\":\n document.getElementById(\"searchType\").innerHTML = \"Rotten Tomatoes search\";\n break;\n\n default:\n document.getElementById(\"searchType\").innerHTML = \"Invalid search\";\n break;\n }\n } else {\n document.getElementById(\"searchType\").innerHTML = \"Google search\";\n }\n}\n\nfunction search(text) {\n if (text[0] === '/') {\n if (text.indexOf(' ') > -1) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n\n switch (option) {\n case \"am\":\n window.location = \"https://www.allmusic.com/search/all/\" + subtext;\n break;\n\n case \"d\":\n window.location = \"https://duckduckgo.com/?q=\" + subtext;\n break;\n\n case \"di\":\n window.location = \"https://www.discogs.com/search/?q=\" + subtext;\n break;\n\n case \"i\":\n window.location = \"https://www.imdb.com/find?q=\" + subtext;\n break;\n\n case \"m\":\n window.location = \"https://www.themoviedb.org/search?query=\" + subtext;\n break;\n\n case \"r\":\n window.location = \"https://www.reddit.com/search?q=\" + subtext;\n break;\n\n case \"q\":\n window.location = \"https://www.qwant.com/?q=\" + subtext;\n break;\n\n case \"so\":\n window.location = \"https://soundcloud.com/search?q=\" + subtext;\n break;\n\n case \"s\":\n window.location = \"https://open.spotify.com/search/results/\" + subtext;\n break;\n\n case \"t\":\n window.location = \"https://trakt.tv/search?query=\" + subtext;\n break;\n\n case \"tv\":\n window.location = \"https://www.thetvdb.com/search?query=\" + subtext;\n break;\n\n case \"y\":\n window.location = \"https://www.youtube.com/results?search_query=\" + subtext;\n break;\n\n case \"w\":\n window.location = \"https://en.wikipedia.org/w/index.php?search=\" + subtext;\n break;\n\n case \"p\":\n window.location = \"https://app.plex.tv/desktop/#!/search?query=\" + subtext;\n break;\n\n case \"rt\":\n window.location = \"https://www.rottentomatoes.com/search?search=\" + subtext;\n break;\n\n default:\n break;\n }\n } else {\n var option = text.substr(1);\n\n switch (option) {\n case \"d\":\n window.location = \"https://www.duckduckgo.com\";\n break;\n\n case \"y\":\n window.location = \"https://www.youtube.com\";\n break;\n\n case \"r\":\n window.location = \"https://reddit.com\";\n break;\n\n case \"s\":\n window.location = \"https://open.spotify.com\";\n break;\n }\n }\n } else if (validURL(text)) {\n if (containsProtocol(text)) window.location = text;else window.location = \"https://\" + text;\n } else {\n window.location = \"https://www.google.com/search?q=\" + text;\n }\n}\n\nfunction validURL(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/)?' + // protocol\n '((([a-z\\\\d]([a-z\\\\d-]*[a-z\\\\d])*)\\\\.)+[a-z]{2,}|' + // domain name\n '((\\\\d{1,3}\\\\.){3}\\\\d{1,3}))' + // OR ip (v4) address\n '(\\\\:\\\\d+)?(\\\\/[-a-z\\\\d%_.~+]*)*' + // port and path\n '(\\\\?[;&a-z\\\\d%_.~+=-]*)?' + // query string\n '(\\\\#[-a-z\\\\d_]*)?$', 'i'); // fragment locator\n\n return !!pattern.test(str);\n}\n\nfunction containsProtocol(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/){1}.*', 'i');\n return !!pattern.test(str);\n}\n\nString.prototype.replaceAll = function (search, replacement) {\n var target = this;\n return target.split(search).join(replacement);\n};\n\nfunction udpateDisplayedItems(e) {\n localStorage.setItem('contenttype', e.target.checked);\n\n if (e.target.checked) {\n localStorage.setItem('content-display', 'none');\n } else {\n localStorage.setItem('content-display', 'block');\n }\n\n setDisplayedItems();\n}\n\nfunction setDisplayedItems() {\n setValueFromLocalStorage('contenttype');\n setValueFromLocalStorage('content-display');\n}\n\nvar _c, _c2, _c3, _c4, _c5, _c6, _c7, _c8, _c9, _c10, _c11, _c12, _c13;\n\n$RefreshReg$(_c, \"Homepage\");\n$RefreshReg$(_c2, \"Search\");\n$RefreshReg$(_c3, \"Header\");\n$RefreshReg$(_c4, \"Applications\");\n$RefreshReg$(_c5, \"App\");\n$RefreshReg$(_c6, \"Bookmarks\");\n$RefreshReg$(_c7, \"LinkGroups\");\n$RefreshReg$(_c8, \"LinkItem\");\n$RefreshReg$(_c9, \"ModalMenu\");\n$RefreshReg$(_c10, \"HideButton\");\n$RefreshReg$(_c11, \"Provider\");\n$RefreshReg$(_c12, \"ModalInit\");\n$RefreshReg$(_c13, \"Clock\");","map":{"version":3,"sources":["/home/seanedmunds/dev/home-page/src/index.js"],"names":["React","useState","useEffect","ReactDOM","setValueFromLocalStorage","property","value","localStorage","getItem","setValue","document","documentElement","style","setProperty","input","querySelector","replace","Homepage","setTheme","date","greet","Search","handleKeyPress","Header","props","Applications","appList","getApps","items","i","apps","length","safe","NSFW","NSFWEnabled","push","name","url","icon","App","classNameType","hrefUrl","iconName","Bookmarks","bookmarkList","getLinks","bookmarks","category","links","LinkGroups","LinkItem","link","ModalMenu","providers","getProviders","isChecked","console","log","updateTheme","HideButton","checked","udpateDisplayedItems","Provider","provider","prefix","ModalInit","setDisplayedItems","render","getElementById","currentDate","Date","dateOptions","weekday","year","month","day","toLocaleDateString","fixDigits","k","currentTime","Math","floor","getHours","easterEggChance","random","greetings","require","timeBased","easterEggs","messages","easteregg","concat","message","easterEggText","Clock","setDate","refreshClock","timerId","setInterval","cleanup","clearInterval","hour","minutes","getMinutes","midday","time","applications","getThemes","themes","e","themeName","target","innerHTML","toLowerCase","index","findIndex","item","setItem","imagebackground","colorbackground","colorserachbackground","colortextpri","colortextacc","colorborder","sindex","cycle","key","keyCode","which","text","replaceAll","option","substr","indexOf","subtext","search","preventDefault","stopPropagation","streamers","streamer","updateLabel","window","location","validURL","containsProtocol","str","pattern","RegExp","test","String","prototype","replacement","split","join"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { useState, useEffect } from 'react';\nimport ReactDOM from 'react-dom';\nimport './index.css';\n\nconst setValueFromLocalStorage = property => {\n let value = localStorage.getItem(property);\n setValue(property, value);\n};\nconst setValue = (property, value) => {\n if (value) {\n document.documentElement.style.setProperty(`--${property}`, value);\n\n const input = document.querySelector(`#${property}`);\n if (input) {\n value = value.replace('px', '');\n input.value = value;\n }\n }\n};\n\nfunction Homepage() {\n setTheme();\n \n return (\n \n \n \n
\n \n \n
\n \n \n \n
\n \n \n
\n \n \n
\n \n );\n}\n\nfunction Search() {\n return (\n \n )\n}\n\nfunction Header(props) {\n return (\n \n );\n}\n\nfunction Applications() {\n let appList = getApps();\n var items = [];\n for (var i = 0; i < appList.apps.length; i++) {\n var safe = appList.apps[i].NSFW;\n var NSFWEnabled = localStorage.getItem(\"contenttype\");\n if (safe === \"SAFE\") {\n items.push(\n \n );\n } else if (safe === \"NSFW\" && NSFWEnabled) {\n items.push(\n \n );\n } else {\n \n }\n \n }\n return (\n \n Applications
\n \n {items}\n
\n \n );\n}\n\nfunction App(props) {\n \n let classNameType = props.NSFW + \"-content\";\n let hrefUrl = \"https://\" + props.url;\n let iconName = \"mdi-\" + props.icon;\n return (\n \n );\n}\n\nfunction Bookmarks() {\n let bookmarkList = getLinks();\n var items = [];\n for (var i = 0; i < bookmarkList.bookmarks.length; i++) {\n items.push(\n \n );\n }\n return (\n \n Bookmarks
\n \n {items}\n
\n \n );\n}\n\nfunction LinkGroups(props) {\n var items = [];\n for (var i = 0; i < props.links.length; i++) {\n items.push(\n \n );\n }\n return (\n \n
{props.category}
\n {items}\n \n );\n}\n\nfunction LinkItem(props) {\n return (\n \n );\n}\n\nfunction ModalMenu() {\n var providers = getProviders();\n var items = [];\n var isChecked = localStorage.getItem(\"contenttype\");\n console.log(localStorage.getItem(\"contenttype\"));\n for (var i = 0; i < providers.providers.length; i++) {\n items.push(\n \n );\n }\n return (\n \n \n \n\n
Color themes
\n\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n\n\n
Search options
\n
\n \n \n \n | Website | \n Prefix | \n
\n {items}\n \n
\n \n\n \n
\n \n );\n}\n\nfunction HideButton(props) {\n console.log(props.checked);\n if(props.checked === \"true\") {\n console.log(\"icon should be grey\");\n return (\n \n
\n );\n } else {\n console.log(\"icon should be white\");\n return (\n \n
\n );\n }\n}\n\nfunction Provider(props) {\n return (\n \n | {props.provider.name} | \n {props.provider.prefix} | \n
\n );\n}\n\nfunction ModalInit() {\n setDisplayedItems();\n return (\n \n );\n}\n\nReactDOM.render(\n ,\n document.getElementById('root')\n);\n\n//Functions below this line are for calculating data for\n//other functions\n\nfunction date() {\n let currentDate = new Date();\n let dateOptions = {\n weekday: \"long\",\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\"\n };\n let date = currentDate.toLocaleDateString(\"en-GB\", dateOptions);\n return date;\n}\nfunction fixDigits(k) {\n if (k < 10) {\n return \"0\" + k;\n }\n else {\n return k;\n }\n}\nfunction greet() {\n let currentTime = new Date();\n let greet = Math.floor(currentTime.getHours() / 6);\n let easterEggChance = Math.floor(Math.random() * 100);\n let greetings = require('./messages.json');\n let timeBased = [];\n let easterEggs = [];\n for (var i = 0; i < greetings.messages.length; i++) {\n if (greetings.messages[i].easteregg === \"FALSE\") {\n timeBased = timeBased.concat(greetings.messages[i]);\n } else {\n easterEggs = easterEggs.concat(greetings.messages[i]);\n }\n }\n if (easterEggChance > 10) {\n return timeBased[greet].message;\n } else {\n let easterEggText = Math.floor(Math.random() * easterEggs.length);\n return easterEggs[easterEggText].message;\n }\n}\nfunction Clock() {\n const [date, setDate] = useState(new Date());\n\n function refreshClock() {\n setDate(new Date());\n }\n useEffect(() => {\n const timerId = setInterval(refreshClock, 1000);\n return function cleanup() {\n clearInterval(timerId);\n };\n }, []);\n\n var hour = date.getHours();\n var minutes = date.getMinutes();\n //var seconds = date.getSeconds();\n var midday = \"AM\";\n midday = (hour >= 12) ? \"PM\" : \"AM\";\n hour = (hour === 0) ? 12 : ((hour > 12) ? (hour - 12) : hour);\n minutes = fixDigits(minutes);\n //seconds = fixDigits(seconds);\n let time = hour + \":\" + minutes + \" \" + midday;\n\n return (\n {time}
\n\n );\n}\nfunction getApps() {\n let applications = require('./apps.json');\n return applications;\n}\nfunction getLinks() {\n let links = require('./links.json');\n return links;\n}\nfunction getProviders() {\n let providers = require('./providers.json');\n return providers;\n}\nfunction getThemes() {\n let themes = require('./themes.json');\n return themes;\n}\nfunction updateTheme(e) {\n var themes = getThemes();\n var themeName = e.target.innerHTML.toLowerCase();\n var index = themes.themes.findIndex(function(item, i){\n return item.name === themeName;\n });\n localStorage.setItem(\"image-background\", themes.themes[index].imagebackground);\n localStorage.setItem(\"color-background\", themes.themes[index].colorbackground);\n localStorage.setItem(\"color-search-background\", themes.themes[index].colorserachbackground);\n localStorage.setItem(\"color-text-pri\",themes.themes[index].colortextpri);\n localStorage.setItem(\"color-text-acc\", themes.themes[index].colortextacc);\n localStorage.setItem(\"color-border\", themes.themes[index].colorborder);\n \n //document.documentElement.style.setProperty(prop, `var(--${themeName}${prop.substring(10)})`);\n setTheme();\n}\nfunction setTheme() {\n setValueFromLocalStorage('image-background');\n setValueFromLocalStorage('color-background');\n setValueFromLocalStorage('color-search-background');\n setValueFromLocalStorage('color-text-pri');\n setValueFromLocalStorage('color-text-acc');\n setValueFromLocalStorage('color-border');\n setValueFromLocalStorage('content-display');\n}\nfunction handleKeyPress(e) {\n var sindex = 0;\n var cycle = false;\n var key = e.keyCode || e.which;\n var text = e.target.value.replaceAll(\"+\", \"%2B\");\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n if (key === 13) { // Search functions\n search(text);\n }\n if (key === 9) { // Tab Completion Functions\n e.preventDefault();\n e.stopPropagation();\n if (text[0] === ';') {\n switch (option) {\n case 't':\n var streamers = ['admiralbahroo', 'moonmoon_ow', 'witwix'];\n if (!subtext || cycle) {\n cycle = true;\n if (sindex > streamers.length - 1) sindex = 0;\n document.getElementById(\"keywords\").value = ';t ' + streamers[sindex++];\n return;\n }\n for (var streamer of streamers) {\n if (subtext === streamer.substr(0, subtext.length)) {\n document.getElementById(\"keywords\").value = ';t ' + streamer;\n return;\n }\n }\n break;\n default :\n break;\n }\n }\n }\n if(key === 32){ //Space to go to search\nupdateLabel(text);\n }\n sindex = 0;\n cycle = false;\n updateLabel(text);\n}\nfunction updateLabel(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n if (text[0] === '/') {\n// if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n document.getElementById(\"searchType\").innerHTML = \"Allmusic search\";\n break;\n case \"d\":\n document.getElementById(\"searchType\").innerHTML = \"Duck Duck Go search\";\n break;\n case \"di\":\n document.getElementById(\"searchType\").innerHTML = \"Discogs search\";\n break;\n case \"i\":\n document.getElementById(\"searchType\").innerHTML = \"IMDB search\";\n break;\n case \"m\":\n document.getElementById(\"searchType\").innerHTML = \"TheMovieDB search\";\n break;\n case \"r\":\n document.getElementById(\"searchType\").innerHTML = \"Reddit search\";\n break;\n case \"q\":\n document.getElementById(\"searchType\").innerHTML = \"Qwant search\";\n break;\n case \"so\":\n document.getElementById(\"searchType\").innerHTML = \"Soundcloud search\";\n break;\n case \"s\":\n document.getElementById(\"searchType\").innerHTML = \"Spotify search\";\n break;\n case \"tv\":\n document.getElementById(\"searchType\").innerHTML = \"TheTVDB search\";\n break;\n case \"t\":\n document.getElementById(\"searchType\").innerHTML = \"Trakt search\";\n break;\n case \"y\":\n document.getElementById(\"searchType\").innerHTML = \"YouTube search\";\n break;\n case \"w\":\n document.getElementById(\"searchType\").innerHTML = \"Wikipedia search\";\n break;\n case \"p\":\n document.getElementById(\"searchType\").innerHTML = \"Plex search\";\n break;\n case \"rt\":\n document.getElementById(\"searchType\").innerHTML = \"Rotten Tomatoes search\";\n break;\n default:\n document.getElementById(\"searchType\").innerHTML = \"Invalid search\";\n break;\n }\n}else {\n document.getElementById(\"searchType\").innerHTML = \"Google search\";\n }\n}\nfunction search(text) {\n if (text[0] === '/') {\n if (text.indexOf(' ') > -1) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n switch (option) {\n case \"am\":\n window.location = \"https://www.allmusic.com/search/all/\" + subtext;\n break;\n case \"d\":\n window.location = \"https://duckduckgo.com/?q=\" + subtext;\n break;\n case \"di\":\n window.location = \"https://www.discogs.com/search/?q=\" + subtext;\n break;\n case \"i\":\n window.location = \"https://www.imdb.com/find?q=\" + subtext;\n break;\n case \"m\":\n window.location = \"https://www.themoviedb.org/search?query=\" + subtext;\n break;\n case \"r\":\n window.location = \"https://www.reddit.com/search?q=\" + subtext;\n break;\n case \"q\":\n window.location = \"https://www.qwant.com/?q=\" + subtext;\n break;\n case \"so\":\n window.location = \"https://soundcloud.com/search?q=\" + subtext;\n break;\n case \"s\":\n window.location = \"https://open.spotify.com/search/results/\" + subtext;\n break;\n case \"t\":\n window.location = \"https://trakt.tv/search?query=\" + subtext;\n break;\n case \"tv\":\n window.location = \"https://www.thetvdb.com/search?query=\" + subtext;\n break;\n case \"y\":\n window.location = \"https://www.youtube.com/results?search_query=\" + subtext;\n break;\n case \"w\":\n window.location = \"https://en.wikipedia.org/w/index.php?search=\" + subtext;\n break;\n case \"p\":\n window.location = \"https://app.plex.tv/desktop/#!/search?query=\" + subtext;\n break;\n case \"rt\":\n window.location = \"https://www.rottentomatoes.com/search?search=\" + subtext;\n break;\n default :\n break;\n }\n } else {\n var option = text.substr(1);\n switch (option) {\n case \"d\":\n window.location = \"https://www.duckduckgo.com\";\n break;\n case \"y\":\n window.location = \"https://www.youtube.com\";\n break;\n case \"r\":\n window.location = \"https://reddit.com\";\n break;\n case \"s\":\n window.location = \"https://open.spotify.com\";\n break;\n }\n }\n } else if (validURL(text)) {\n if (containsProtocol(text))\n window.location = text;\n else\n window.location = \"https://\" + text;\n } else {\n window.location = \"https://www.google.com/search?q=\" + text;\n }\n}\nfunction validURL(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/)?' + // protocol\n '((([a-z\\\\d]([a-z\\\\d-]*[a-z\\\\d])*)\\\\.)+[a-z]{2,}|' + // domain name\n '((\\\\d{1,3}\\\\.){3}\\\\d{1,3}))' + // OR ip (v4) address\n '(\\\\:\\\\d+)?(\\\\/[-a-z\\\\d%_.~+]*)*' + // port and path\n '(\\\\?[;&a-z\\\\d%_.~+=-]*)?' + // query string\n '(\\\\#[-a-z\\\\d_]*)?$', 'i'); // fragment locator\n return !!pattern.test(str);\n}\nfunction containsProtocol(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/){1}.*', 'i');\n return !!pattern.test(str);\n}\nString.prototype.replaceAll = function(search, replacement) {\n var target = this;\n return target.split(search).join(replacement);\n};\nfunction udpateDisplayedItems(e) {\n localStorage.setItem('contenttype', e.target.checked);\n if (e.target.checked) {\n localStorage.setItem('content-display', 'none');\n } else {\n localStorage.setItem('content-display', 'block');\n }\n setDisplayedItems();\n}\nfunction setDisplayedItems() {\n setValueFromLocalStorage('contenttype');\n setValueFromLocalStorage('content-display');\n}"]},"metadata":{},"sourceType":"module"}
\ No newline at end of file
diff --git a/node_modules/.cache/babel-loader/93669364f6af09be4ddbd15a2293c684.json b/node_modules/.cache/babel-loader/93669364f6af09be4ddbd15a2293c684.json
new file mode 100644
index 00000000..0064acce
--- /dev/null
+++ b/node_modules/.cache/babel-loader/93669364f6af09be4ddbd15a2293c684.json
@@ -0,0 +1 @@
+{"ast":null,"code":"var _jsxFileName = \"/home/seanedmunds/dev/home-page/src/index.js\",\n _s = $RefreshSig$();\n\nimport React from 'react';\nimport { useState, useEffect } from 'react';\nimport ReactDOM from 'react-dom'; //import { unstable_createPortal } from 'react-dom';\n\nimport './index.css';\nimport { jsxDEV as _jsxDEV } from \"react/jsx-dev-runtime\";\n\nconst setValueFromLocalStorage = property => {\n let value = localStorage.getItem(property);\n setValue(property, value);\n};\n\nconst setValue = (property, value) => {\n if (value) {\n document.documentElement.style.setProperty(`--${property}`, value);\n const input = document.querySelector(`#${property}`);\n\n if (input) {\n value = value.replace('px', '');\n input.value = value;\n }\n }\n};\n\nconst setBoxCheckedFromLocalStorage = property => {\n let value = localStorage.getItem(property);\n setBoxChecked(property, value);\n};\n\nconst setBoxChecked = (property, value) => {\n if (value) {\n document.getElementById(property).checked = value;\n }\n};\n\nfunction Homepage() {\n setTheme();\n return /*#__PURE__*/_jsxDEV(\"main\", {\n id: \"container\",\n className: \"fade\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Search, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 39,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 38,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Header, {\n date: date(),\n greet: greet()\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 42,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 41,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Applications, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 48,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 47,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Bookmarks, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 51,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 50,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(ModalMenu, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 54,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 53,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(ModalInit, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 57,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 56,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 37,\n columnNumber: 5\n }, this);\n}\n\n_c = Homepage;\n\nfunction Search() {\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"search\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"abackground\",\n children: [/*#__PURE__*/_jsxDEV(\"input\", {\n name: \"keywords\",\n type: \"text\",\n className: \"keyword\",\n id: \"keywords\",\n size: \"50\",\n spellCheck: \"true\",\n placeholder: \"\"\n /*onFocus={this.placeholder = \"\"} onBlur={this.placeholder = ''}*/\n ,\n autoComplete: \"off\",\n autoFocus: true,\n onKeyUp: handleKeyPress\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 67,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n id: \"searchType\",\n className: \"Input-label\",\n children: \"Google search\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 68,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 66,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 65,\n columnNumber: 5\n }, this);\n}\n\n_c2 = Search;\n\nfunction Header(props) {\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"header\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n id: \"greeting_block\",\n children: /*#__PURE__*/_jsxDEV(\"h1\", {\n id: \"header_greet\",\n children: props.greet\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 78,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 77,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"date_block\",\n children: [/*#__PURE__*/_jsxDEV(\"h2\", {\n id: \"header_date\",\n children: props.date\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 81,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(Clock, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 82,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 80,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 76,\n columnNumber: 5\n }, this);\n}\n\n_c3 = Header;\n\nfunction Applications() {\n let appList = getApps();\n var items = [];\n\n for (var i = 0; i < appList.apps.length; i++) {\n var safe = appList.apps[i].NSFW;\n var NSFWEnabled = localStorage.getItem(\"contenttype\");\n\n if (safe === \"SAFE\") {\n items.push( /*#__PURE__*/_jsxDEV(App, {\n name: appList.apps[i].name,\n url: appList.apps[i].url,\n icon: appList.apps[i].icon,\n NSFW: appList.apps[i].NSFW\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 96,\n columnNumber: 9\n }, this));\n } else if (safe === \"NSFW\" && NSFWEnabled) {\n items.push( /*#__PURE__*/_jsxDEV(App, {\n name: appList.apps[i].name,\n url: appList.apps[i].url,\n icon: appList.apps[i].icon,\n NSFW: appList.apps[i].NSFW\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 106,\n columnNumber: 9\n }, this));\n } else {}\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"apps\",\n children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n children: \"Applications\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 121,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"apps_loop\",\n children: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 122,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 120,\n columnNumber: 5\n }, this);\n}\n\n_c4 = Applications;\n\nfunction App(props) {\n let classNameType = props.NSFW + \"-content\";\n let hrefUrl = \"https://\" + props.url;\n let iconName = \"mdi-\" + props.icon;\n return /*#__PURE__*/_jsxDEV(\"div\", {\n className: classNameType,\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: hrefUrl,\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_item\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_icon\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify icon\",\n \"data-icon\": iconName\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 139,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 138,\n columnNumber: 13\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_text\",\n children: [/*#__PURE__*/_jsxDEV(\"span\", {\n id: \"app-name\",\n children: props.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 142,\n columnNumber: 15\n }, this), /*#__PURE__*/_jsxDEV(\"span\", {\n id: \"app-address\",\n children: props.url\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 143,\n columnNumber: 15\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 141,\n columnNumber: 13\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 137,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 136,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 135,\n columnNumber: 7\n }, this);\n}\n\n_c5 = App;\n\nfunction Bookmarks() {\n let bookmarkList = getLinks();\n var items = [];\n\n for (var i = 0; i < bookmarkList.bookmarks.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(LinkGroups, {\n category: bookmarkList.bookmarks[i].category,\n links: bookmarkList.bookmarks[i].links\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 156,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"links\",\n children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n children: \"Bookmarks\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 165,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"links_loop\",\n children: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 166,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 164,\n columnNumber: 5\n }, this);\n}\n\n_c6 = Bookmarks;\n\nfunction LinkGroups(props) {\n var items = [];\n\n for (var i = 0; i < props.links.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(LinkItem, {\n link: props.links[i]\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 177,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"links_item\",\n children: [/*#__PURE__*/_jsxDEV(\"h4\", {\n children: props.category\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 185,\n columnNumber: 7\n }, this), items]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 184,\n columnNumber: 5\n }, this);\n}\n\n_c7 = LinkGroups;\n\nfunction LinkItem(props) {\n return /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: props.link.url,\n className: \"theme_color-border theme_text-select\",\n children: props.link.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 194,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 193,\n columnNumber: 5\n }, this);\n}\n\n_c8 = LinkItem;\n\nfunction ModalMenu(props) {\n var providers = getProviders();\n var items = [];\n console.log(props);\n\n for (var i = 0; i < providers.providers.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(Provider, {\n provider: providers.providers[i]\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 205,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"modal\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n children: [/*#__PURE__*/_jsxDEV(\"header\", {\n id: \"modal-header\",\n children: [/*#__PURE__*/_jsxDEV(\"h1\", {\n children: \"Options\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 215,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n href: \"#\",\n title: \"Close\",\n className: \"modal-close\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-close\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 217,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 216,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 214,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"h2\", {\n children: \"Color themes\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 221,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"modal-theme\",\n children: [/*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"blackboard\",\n className: \"theme-button theme-blackboard\",\n onClick: updateTheme,\n children: \"Blackboard\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 224,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"gazette\",\n className: \"theme-button theme-gazette\",\n onClick: updateTheme,\n children: \"Gazette\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 225,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"espresso\",\n className: \"theme-button theme-espresso\",\n onClick: updateTheme,\n children: \"Espresso\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 226,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cab\",\n className: \"theme-button theme-cab\",\n onClick: updateTheme,\n children: \"Cab\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 227,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cloud\",\n className: \"theme-button theme-cloud\",\n onClick: updateTheme,\n children: \"Cloud\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 228,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"lime\",\n className: \"theme-button theme-lime\",\n onClick: updateTheme,\n children: \"Lime\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 229,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"passion\",\n className: \"theme-button theme-passion\",\n onClick: updateTheme,\n children: \"Passion\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 230,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"blues\",\n className: \"theme-button theme-blues\",\n onClick: updateTheme,\n children: \"Blues\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 231,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"chalk\",\n className: \"theme-button theme-chalk\",\n onClick: updateTheme,\n children: \"Chalk\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 232,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"tron\",\n className: \"theme-button theme-tron\",\n onClick: updateTheme,\n children: \"Tron\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 233,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"paper\",\n className: \"theme-button theme-paper\",\n onClick: updateTheme,\n children: \"Paper\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 234,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cyberpunk\",\n className: \"theme-button theme-cyberpunk\",\n onClick: updateTheme,\n children: \"Cyberpunk\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 235,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"quadra\",\n className: \"theme-button theme-panam\",\n onClick: updateTheme,\n children: \"Quadra\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 236,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"panam\",\n className: \"theme-button theme-panam\",\n onClick: updateTheme,\n children: \"Panam\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 237,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"touch\",\n className: \"theme-button theme-touch\",\n onClick: updateTheme,\n children: \"Touch\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 238,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"peek\",\n className: \"theme-button theme-peek\",\n onClick: updateTheme,\n children: \"Peek\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 239,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 223,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"h2\", {\n children: \"Search options\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 243,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"providers\",\n children: /*#__PURE__*/_jsxDEV(\"table\", {\n children: /*#__PURE__*/_jsxDEV(\"tbody\", {\n children: [/*#__PURE__*/_jsxDEV(\"tr\", {\n children: [/*#__PURE__*/_jsxDEV(\"th\", {\n children: \"Website\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 248,\n columnNumber: 19\n }, this), /*#__PURE__*/_jsxDEV(\"th\", {\n children: \"Prefix\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 249,\n columnNumber: 19\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 247,\n columnNumber: 17\n }, this), items]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 246,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 245,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 244,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"header\", {\n id: \"modal-footer\",\n children: [/*#__PURE__*/_jsxDEV(\"a\", {\n href: \"https://github.com/jeroenpardon/\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-github-box\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 257,\n columnNumber: 54\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 257,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n href: \"https://materialdesignicons.com/\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-material-design\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 258,\n columnNumber: 54\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 258,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"sneaky\",\n children: [/*#__PURE__*/_jsxDEV(\"input\", {\n type: \"checkbox\",\n id: \"contenttype\",\n checked: setBoxCheckedFromLocalStorage,\n onChange: udpateDisplayedItems\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 259,\n columnNumber: 35\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n for: \"contenttype\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-domino-mask\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 260,\n columnNumber: 36\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 260,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 259,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 256,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 213,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 212,\n columnNumber: 5\n }, this);\n}\n\n_c9 = ModalMenu;\n\nfunction Provider(props) {\n return /*#__PURE__*/_jsxDEV(\"tr\", {\n children: [/*#__PURE__*/_jsxDEV(\"td\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: props.provider.url,\n children: props.provider.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 270,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 270,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"td\", {\n children: props.provider.prefix\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 271,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 269,\n columnNumber: 5\n }, this);\n}\n\n_c10 = Provider;\n\nfunction ModalInit() {\n setDisplayedItems();\n return /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"modal_init\",\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n className: \"btn\",\n href: \"#modal\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify icon\",\n \"data-icon\": \"mdi-xbox-controller-menu\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 281,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 280,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 279,\n columnNumber: 5\n }, this);\n}\n\n_c11 = ModalInit;\nReactDOM.render( /*#__PURE__*/_jsxDEV(Homepage, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 288,\n columnNumber: 3\n}, this), document.getElementById('root')); //Functions below this line are for calculating data for\n//other functions\n\nfunction date() {\n let currentDate = new Date();\n let dateOptions = {\n weekday: \"long\",\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\"\n };\n let date = currentDate.toLocaleDateString(\"en-GB\", dateOptions);\n return date;\n}\n\nfunction fixDigits(k) {\n if (k < 10) {\n return \"0\" + k;\n } else {\n return k;\n }\n}\n\nfunction greet() {\n let currentTime = new Date();\n let greet = Math.floor(currentTime.getHours() / 6);\n let easterEggChance = Math.floor(Math.random() * 100);\n\n let greetings = require('./messages.json');\n\n let timeBased = [];\n let easterEggs = [];\n\n for (var i = 0; i < greetings.messages.length; i++) {\n if (greetings.messages[i].easteregg === \"FALSE\") {\n timeBased = timeBased.concat(greetings.messages[i]);\n } else {\n easterEggs = easterEggs.concat(greetings.messages[i]);\n }\n }\n\n if (easterEggChance > 10) {\n return timeBased[greet].message;\n } else {\n let easterEggText = Math.floor(Math.random() * easterEggs.length);\n return easterEggs[easterEggText].message;\n }\n}\n\nfunction Clock() {\n _s();\n\n const [date, setDate] = useState(new Date());\n\n function refreshClock() {\n setDate(new Date());\n }\n\n useEffect(() => {\n const timerId = setInterval(refreshClock, 1000);\n return function cleanup() {\n clearInterval(timerId);\n };\n }, []);\n var hour = date.getHours();\n var minutes = date.getMinutes(); //var seconds = date.getSeconds();\n\n var midday = \"AM\";\n midday = hour >= 12 ? \"PM\" : \"AM\";\n hour = hour === 0 ? 12 : hour > 12 ? hour - 12 : hour;\n minutes = fixDigits(minutes); //seconds = fixDigits(seconds);\n\n let time = hour + \":\" + minutes + \" \" + midday;\n return /*#__PURE__*/_jsxDEV(\"h2\", {\n id: \"clock\",\n children: time\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 359,\n columnNumber: 5\n }, this);\n}\n\n_s(Clock, \"Gqi45WOZhU2c0BLYX0HoJeiR0fk=\");\n\n_c12 = Clock;\n\nfunction getApps() {\n let applications = require('./apps.json');\n\n return applications;\n}\n\nfunction getLinks() {\n let links = require('./links.json');\n\n return links;\n}\n\nfunction getProviders() {\n let providers = require('./providers.json');\n\n return providers;\n}\n\nfunction getThemes() {\n let themes = require('./themes.json');\n\n return themes;\n}\n\nfunction updateTheme(e) {\n var themes = getThemes();\n var themeName = e.target.innerHTML.toLowerCase();\n var index = themes.themes.findIndex(function (item, i) {\n return item.name === themeName;\n });\n localStorage.setItem(\"image-background\", themes.themes[index].imagebackground);\n localStorage.setItem(\"color-background\", themes.themes[index].colorbackground);\n localStorage.setItem(\"color-search-background\", themes.themes[index].colorserachbackground);\n localStorage.setItem(\"color-text-pri\", themes.themes[index].colortextpri);\n localStorage.setItem(\"color-text-acc\", themes.themes[index].colortextacc);\n localStorage.setItem(\"color-border\", themes.themes[index].colorborder); //document.documentElement.style.setProperty(prop, `var(--${themeName}${prop.substring(10)})`);\n\n setTheme();\n}\n\nfunction setTheme() {\n setValueFromLocalStorage('image-background');\n setValueFromLocalStorage('color-background');\n setValueFromLocalStorage('color-search-background');\n setValueFromLocalStorage('color-text-pri');\n setValueFromLocalStorage('color-text-acc');\n setValueFromLocalStorage('color-border');\n setValueFromLocalStorage('content-display');\n}\n\nfunction handleKeyPress(e) {\n var sindex = 0;\n var cycle = false;\n var key = e.keyCode || e.which;\n var text = e.target.value.replaceAll(\"+\", \"%2B\");\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n\n if (key == 13) {\n // Search functions\n search(text);\n }\n\n if (key == 9) {\n // Tab Completion Functions\n e.preventDefault();\n e.stopPropagation();\n\n if (text[0] === ';') {\n switch (option) {\n case 't':\n var streamers = ['admiralbahroo', 'moonmoon_ow', 'witwix'];\n\n if (!subtext || cycle) {\n cycle = true;\n if (sindex > streamers.length - 1) sindex = 0;\n document.getElementById(\"keywords\").value = ';t ' + streamers[sindex++];\n return;\n }\n\n for (var streamer of streamers) {\n if (subtext === streamer.substr(0, subtext.length)) {\n document.getElementById(\"keywords\").value = ';t ' + streamer;\n return;\n }\n }\n\n break;\n }\n }\n }\n\n if (key == 32) {\n //Space to go to search\n updateLabel(text);\n }\n\n sindex = 0;\n cycle = false;\n updateLabel(text);\n}\n\nfunction updateLabel(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n\n if (text[0] === '/') {\n // if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n document.getElementById(\"searchType\").innerHTML = \"Allmusic search\";\n break;\n\n case \"d\":\n document.getElementById(\"searchType\").innerHTML = \"Duck Duck Go search\";\n break;\n\n case \"di\":\n document.getElementById(\"searchType\").innerHTML = \"Discogs search\";\n break;\n\n case \"i\":\n document.getElementById(\"searchType\").innerHTML = \"IMDB search\";\n break;\n\n case \"m\":\n document.getElementById(\"searchType\").innerHTML = \"TheMovieDB search\";\n break;\n\n case \"r\":\n document.getElementById(\"searchType\").innerHTML = \"Reddit search\";\n break;\n\n case \"q\":\n document.getElementById(\"searchType\").innerHTML = \"Qwant search\";\n break;\n\n case \"so\":\n document.getElementById(\"searchType\").innerHTML = \"Soundcloud search\";\n break;\n\n case \"s\":\n document.getElementById(\"searchType\").innerHTML = \"Spotify search\";\n break;\n\n case \"tv\":\n document.getElementById(\"searchType\").innerHTML = \"TheTVDB search\";\n break;\n\n case \"t\":\n document.getElementById(\"searchType\").innerHTML = \"Trakt search\";\n break;\n\n case \"y\":\n document.getElementById(\"searchType\").innerHTML = \"YouTube search\";\n break;\n\n case \"w\":\n document.getElementById(\"searchType\").innerHTML = \"Wikipedia search\";\n break;\n\n case \"p\":\n document.getElementById(\"searchType\").innerHTML = \"Plex search\";\n break;\n\n case \"rt\":\n document.getElementById(\"searchType\").innerHTML = \"Rotten Tomatoes search\";\n break;\n\n default:\n document.getElementById(\"searchType\").innerHTML = \"Invalid search\";\n break;\n }\n } else {\n document.getElementById(\"searchType\").innerHTML = \"Google search\";\n }\n}\n\nfunction search(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n\n if (text[0] === '/') {\n if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n window.location = \"https://www.allmusic.com/search/all/\" + subtext;\n break;\n\n case \"d\":\n window.location = \"https://duckduckgo.com/?q=\" + subtext;\n break;\n\n case \"di\":\n window.location = \"https://www.discogs.com/search/?q=\" + subtext;\n break;\n\n case \"i\":\n window.location = \"https://www.imdb.com/find?q=\" + subtext;\n break;\n\n case \"m\":\n window.location = \"https://www.themoviedb.org/search?query=\" + subtext;\n break;\n\n case \"r\":\n window.location = \"https://www.reddit.com/search?q=\" + subtext;\n break;\n\n case \"q\":\n window.location = \"https://www.qwant.com/?q=\" + subtext;\n break;\n\n case \"so\":\n window.location = \"https://soundcloud.com/search?q=\" + subtext;\n break;\n\n case \"s\":\n window.location = \"https://open.spotify.com/search/results/\" + subtext;\n break;\n\n case \"t\":\n window.location = \"https://trakt.tv/search?query=\" + subtext;\n break;\n\n case \"tv\":\n window.location = \"https://www.thetvdb.com/search?query=\" + subtext;\n break;\n\n case \"y\":\n window.location = \"https://www.youtube.com/results?search_query=\" + subtext;\n break;\n\n case \"w\":\n window.location = \"https://en.wikipedia.org/w/index.php?search=\" + subtext;\n break;\n\n case \"p\":\n window.location = \"https://app.plex.tv/desktop/#!/search?query=\" + subtext;\n break;\n\n case \"rt\":\n window.location = \"https://www.rottentomatoes.com/search?search=\" + subtext;\n break;\n }\n } else {\n var option = text.substr(1);\n\n switch (option) {\n case \"d\":\n window.location = \"https://www.duckduckgo.com\";\n break;\n\n case \"y\":\n window.location = \"https://www.youtube.com\";\n break;\n\n case \"r\":\n window.location = \"https://reddit.com\";\n break;\n\n case \"s\":\n window.location = \"https://open.spotify.com\";\n break;\n }\n }\n } else if (validURL(text)) {\n if (containsProtocol(text)) window.location = text;else window.location = \"https://\" + text;\n } else {\n window.location = \"https://www.google.com/search?q=\" + text;\n }\n}\n\nfunction validURL(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/)?' + // protocol\n '((([a-z\\\\d]([a-z\\\\d-]*[a-z\\\\d])*)\\\\.)+[a-z]{2,}|' + // domain name\n '((\\\\d{1,3}\\\\.){3}\\\\d{1,3}))' + // OR ip (v4) address\n '(\\\\:\\\\d+)?(\\\\/[-a-z\\\\d%_.~+]*)*' + // port and path\n '(\\\\?[;&a-z\\\\d%_.~+=-]*)?' + // query string\n '(\\\\#[-a-z\\\\d_]*)?$', 'i'); // fragment locator\n\n return !!pattern.test(str);\n}\n\nfunction containsProtocol(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/){1}.*', 'i');\n return !!pattern.test(str);\n}\n\nString.prototype.replaceAll = function (search, replacement) {\n var target = this;\n return target.split(search).join(replacement);\n};\n\nfunction udpateDisplayedItems(e) {\n console.log(e);\n localStorage.setItem('contenttype', e.target.checked);\n\n if (e.target.checked) {\n localStorage.setItem('content-display', 'none');\n } else {\n localStorage.setItem('content-display', 'block');\n }\n\n setDisplayedItems();\n}\n\nfunction setDisplayedItems() {\n setValueFromLocalStorage('contenttype');\n setValueFromLocalStorage('content-display');\n}\n\nvar _c, _c2, _c3, _c4, _c5, _c6, _c7, _c8, _c9, _c10, _c11, _c12;\n\n$RefreshReg$(_c, \"Homepage\");\n$RefreshReg$(_c2, \"Search\");\n$RefreshReg$(_c3, \"Header\");\n$RefreshReg$(_c4, \"Applications\");\n$RefreshReg$(_c5, \"App\");\n$RefreshReg$(_c6, \"Bookmarks\");\n$RefreshReg$(_c7, \"LinkGroups\");\n$RefreshReg$(_c8, \"LinkItem\");\n$RefreshReg$(_c9, \"ModalMenu\");\n$RefreshReg$(_c10, \"Provider\");\n$RefreshReg$(_c11, \"ModalInit\");\n$RefreshReg$(_c12, \"Clock\");","map":{"version":3,"sources":["/home/seanedmunds/dev/home-page/src/index.js"],"names":["React","useState","useEffect","ReactDOM","setValueFromLocalStorage","property","value","localStorage","getItem","setValue","document","documentElement","style","setProperty","input","querySelector","replace","setBoxCheckedFromLocalStorage","setBoxChecked","getElementById","checked","Homepage","setTheme","date","greet","Search","handleKeyPress","Header","props","Applications","appList","getApps","items","i","apps","length","safe","NSFW","NSFWEnabled","push","name","url","icon","App","classNameType","hrefUrl","iconName","Bookmarks","bookmarkList","getLinks","bookmarks","category","links","LinkGroups","LinkItem","link","ModalMenu","providers","getProviders","console","log","updateTheme","udpateDisplayedItems","Provider","provider","prefix","ModalInit","setDisplayedItems","render","currentDate","Date","dateOptions","weekday","year","month","day","toLocaleDateString","fixDigits","k","currentTime","Math","floor","getHours","easterEggChance","random","greetings","require","timeBased","easterEggs","messages","easteregg","concat","message","easterEggText","Clock","setDate","refreshClock","timerId","setInterval","cleanup","clearInterval","hour","minutes","getMinutes","midday","time","applications","getThemes","themes","e","themeName","target","innerHTML","toLowerCase","index","findIndex","item","setItem","imagebackground","colorbackground","colorserachbackground","colortextpri","colortextacc","colorborder","sindex","cycle","key","keyCode","which","text","replaceAll","option","substr","indexOf","subtext","search","preventDefault","stopPropagation","streamers","streamer","updateLabel","window","location","validURL","containsProtocol","str","pattern","RegExp","test","String","prototype","replacement","split","join"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { useState, useEffect } from 'react';\nimport ReactDOM from 'react-dom';\n//import { unstable_createPortal } from 'react-dom';\nimport './index.css';\n\nconst setValueFromLocalStorage = property => {\n let value = localStorage.getItem(property);\n setValue(property, value);\n};\nconst setValue = (property, value) => {\n if (value) {\n document.documentElement.style.setProperty(`--${property}`, value);\n\n const input = document.querySelector(`#${property}`);\n if (input) {\n value = value.replace('px', '');\n input.value = value;\n }\n }\n};\n\nconst setBoxCheckedFromLocalStorage = property => {\n let value = localStorage.getItem(property);\n setBoxChecked(property, value);\n};\nconst setBoxChecked = (property, value) => {\n if (value) {\n document.getElementById(property).checked = value;\n }\n}\n\nfunction Homepage() {\n setTheme();\n \n return (\n \n \n \n
\n \n \n
\n \n \n \n
\n \n \n
\n \n \n
\n \n );\n}\n\nfunction Search() {\n return (\n \n )\n}\n\nfunction Header(props) {\n return (\n \n );\n}\n\nfunction Applications() {\n let appList = getApps();\n var items = [];\n for (var i = 0; i < appList.apps.length; i++) {\n var safe = appList.apps[i].NSFW;\n var NSFWEnabled = localStorage.getItem(\"contenttype\");\n if (safe === \"SAFE\") {\n items.push(\n \n );\n } else if (safe === \"NSFW\" && NSFWEnabled) {\n items.push(\n \n );\n } else {\n \n }\n \n }\n return (\n \n Applications
\n \n {items}\n
\n \n );\n}\n\nfunction App(props) {\n \n let classNameType = props.NSFW + \"-content\";\n let hrefUrl = \"https://\" + props.url;\n let iconName = \"mdi-\" + props.icon;\n return (\n \n );\n}\n\nfunction Bookmarks() {\n let bookmarkList = getLinks();\n var items = [];\n for (var i = 0; i < bookmarkList.bookmarks.length; i++) {\n items.push(\n \n );\n }\n return (\n \n Bookmarks
\n \n {items}\n
\n \n );\n}\n\nfunction LinkGroups(props) {\n var items = [];\n for (var i = 0; i < props.links.length; i++) {\n items.push(\n \n );\n }\n return (\n \n
{props.category}
\n {items}\n \n );\n}\n\nfunction LinkItem(props) {\n return (\n \n );\n}\n\nfunction ModalMenu(props) {\n var providers = getProviders();\n var items = [];\n console.log(props);\n for (var i = 0; i < providers.providers.length; i++) {\n items.push(\n \n );\n }\n return (\n \n \n \n\n
Color themes
\n\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n\n\n
Search options
\n
\n \n \n \n | Website | \n Prefix | \n
\n {items}\n \n
\n \n\n \n
\n \n );\n}\n\nfunction Provider(props) {\n return (\n \n | {props.provider.name} | \n {props.provider.prefix} | \n
\n );\n}\n\nfunction ModalInit() {\n setDisplayedItems();\n return (\n \n );\n}\n\nReactDOM.render(\n ,\n document.getElementById('root')\n);\n\n//Functions below this line are for calculating data for\n//other functions\n\nfunction date() {\n let currentDate = new Date();\n let dateOptions = {\n weekday: \"long\",\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\"\n };\n let date = currentDate.toLocaleDateString(\"en-GB\", dateOptions);\n return date;\n}\nfunction fixDigits(k) {\n if (k < 10) {\n return \"0\" + k;\n }\n else {\n return k;\n }\n}\nfunction greet() {\n let currentTime = new Date();\n let greet = Math.floor(currentTime.getHours() / 6);\n let easterEggChance = Math.floor(Math.random() * 100);\n let greetings = require('./messages.json');\n let timeBased = [];\n let easterEggs = [];\n for (var i = 0; i < greetings.messages.length; i++) {\n if (greetings.messages[i].easteregg === \"FALSE\") {\n timeBased = timeBased.concat(greetings.messages[i]);\n } else {\n easterEggs = easterEggs.concat(greetings.messages[i]);\n }\n }\n if (easterEggChance > 10) {\n return timeBased[greet].message;\n } else {\n let easterEggText = Math.floor(Math.random() * easterEggs.length);\n return easterEggs[easterEggText].message;\n }\n}\nfunction Clock() {\n const [date, setDate] = useState(new Date());\n\n function refreshClock() {\n setDate(new Date());\n }\n useEffect(() => {\n const timerId = setInterval(refreshClock, 1000);\n return function cleanup() {\n clearInterval(timerId);\n };\n }, []);\n\n var hour = date.getHours();\n var minutes = date.getMinutes();\n //var seconds = date.getSeconds();\n var midday = \"AM\";\n midday = (hour >= 12) ? \"PM\" : \"AM\";\n hour = (hour === 0) ? 12 : ((hour > 12) ? (hour - 12) : hour);\n minutes = fixDigits(minutes);\n //seconds = fixDigits(seconds);\n let time = hour + \":\" + minutes + \" \" + midday;\n\n return (\n {time}
\n\n );\n}\nfunction getApps() {\n let applications = require('./apps.json');\n return applications;\n}\nfunction getLinks() {\n let links = require('./links.json');\n return links;\n}\nfunction getProviders() {\n let providers = require('./providers.json');\n return providers;\n}\nfunction getThemes() {\n let themes = require('./themes.json');\n return themes;\n}\nfunction updateTheme(e) {\n var themes = getThemes();\n var themeName = e.target.innerHTML.toLowerCase();\n var index = themes.themes.findIndex(function(item, i){\n return item.name === themeName\n });\n localStorage.setItem(\"image-background\", themes.themes[index].imagebackground);\n localStorage.setItem(\"color-background\", themes.themes[index].colorbackground);\n localStorage.setItem(\"color-search-background\", themes.themes[index].colorserachbackground);\n localStorage.setItem(\"color-text-pri\",themes.themes[index].colortextpri);\n localStorage.setItem(\"color-text-acc\", themes.themes[index].colortextacc);\n localStorage.setItem(\"color-border\", themes.themes[index].colorborder);\n \n //document.documentElement.style.setProperty(prop, `var(--${themeName}${prop.substring(10)})`);\n setTheme();\n}\nfunction setTheme() {\n setValueFromLocalStorage('image-background');\n setValueFromLocalStorage('color-background');\n setValueFromLocalStorage('color-search-background');\n setValueFromLocalStorage('color-text-pri');\n setValueFromLocalStorage('color-text-acc');\n setValueFromLocalStorage('color-border');\n setValueFromLocalStorage('content-display');\n}\nfunction handleKeyPress(e) {\n var sindex = 0;\n var cycle = false;\n var key = e.keyCode || e.which;\n var text = e.target.value.replaceAll(\"+\", \"%2B\");\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n if (key == 13) { // Search functions\n search(text);\n }\n if (key == 9) { // Tab Completion Functions\n e.preventDefault();\n e.stopPropagation();\n if (text[0] === ';') {\n switch (option) {\n case 't':\n var streamers = ['admiralbahroo', 'moonmoon_ow', 'witwix'];\n if (!subtext || cycle) {\n cycle = true;\n if (sindex > streamers.length - 1) sindex = 0;\n document.getElementById(\"keywords\").value = ';t ' + streamers[sindex++];\n return;\n }\n for (var streamer of streamers) {\n if (subtext === streamer.substr(0, subtext.length)) {\n document.getElementById(\"keywords\").value = ';t ' + streamer;\n return;\n }\n }\n break;\n }\n }\n }\n if(key == 32){ //Space to go to search\nupdateLabel(text);\n }\n sindex = 0;\n cycle = false;\n updateLabel(text);\n}\nfunction updateLabel(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n if (text[0] === '/') {\n// if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n document.getElementById(\"searchType\").innerHTML = \"Allmusic search\";\n break;\n case \"d\":\n document.getElementById(\"searchType\").innerHTML = \"Duck Duck Go search\";\n break;\n case \"di\":\n document.getElementById(\"searchType\").innerHTML = \"Discogs search\";\n break;\n case \"i\":\n document.getElementById(\"searchType\").innerHTML = \"IMDB search\";\n break;\n case \"m\":\n document.getElementById(\"searchType\").innerHTML = \"TheMovieDB search\";\n break;\n case \"r\":\n document.getElementById(\"searchType\").innerHTML = \"Reddit search\";\n break;\n case \"q\":\n document.getElementById(\"searchType\").innerHTML = \"Qwant search\";\n break;\n case \"so\":\n document.getElementById(\"searchType\").innerHTML = \"Soundcloud search\";\n break;\n case \"s\":\n document.getElementById(\"searchType\").innerHTML = \"Spotify search\";\n break;\n case \"tv\":\n document.getElementById(\"searchType\").innerHTML = \"TheTVDB search\";\n break;\n case \"t\":\n document.getElementById(\"searchType\").innerHTML = \"Trakt search\";\n break;\n case \"y\":\n document.getElementById(\"searchType\").innerHTML = \"YouTube search\";\n break;\n case \"w\":\n document.getElementById(\"searchType\").innerHTML = \"Wikipedia search\";\n break;\n case \"p\":\n document.getElementById(\"searchType\").innerHTML = \"Plex search\";\n break;\n case \"rt\":\n document.getElementById(\"searchType\").innerHTML = \"Rotten Tomatoes search\";\n break;\n default:\n document.getElementById(\"searchType\").innerHTML = \"Invalid search\";\n break;\n }\n}else {\n document.getElementById(\"searchType\").innerHTML = \"Google search\";\n }\n}\nfunction search(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n if (text[0] === '/') {\n if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n window.location = \"https://www.allmusic.com/search/all/\" + subtext;\n break;\n case \"d\":\n window.location = \"https://duckduckgo.com/?q=\" + subtext;\n break;\n case \"di\":\n window.location = \"https://www.discogs.com/search/?q=\" + subtext;\n break;\n case \"i\":\n window.location = \"https://www.imdb.com/find?q=\" + subtext;\n break;\n case \"m\":\n window.location = \"https://www.themoviedb.org/search?query=\" + subtext;\n break;\n case \"r\":\n window.location = \"https://www.reddit.com/search?q=\" + subtext;\n break;\n case \"q\":\n window.location = \"https://www.qwant.com/?q=\" + subtext;\n break;\n case \"so\":\n window.location = \"https://soundcloud.com/search?q=\" + subtext;\n break;\n case \"s\":\n window.location = \"https://open.spotify.com/search/results/\" + subtext;\n break;\n case \"t\":\n window.location = \"https://trakt.tv/search?query=\" + subtext;\n break;\n case \"tv\":\n window.location = \"https://www.thetvdb.com/search?query=\" + subtext;\n break;\n case \"y\":\n window.location = \"https://www.youtube.com/results?search_query=\" + subtext;\n break;\n case \"w\":\n window.location = \"https://en.wikipedia.org/w/index.php?search=\" + subtext;\n break;\n case \"p\":\n window.location = \"https://app.plex.tv/desktop/#!/search?query=\" + subtext;\n break;\n case \"rt\":\n window.location = \"https://www.rottentomatoes.com/search?search=\" + subtext;\n break;\n }\n } else {\n var option = text.substr(1);\n switch (option) {\n case \"d\":\n window.location = \"https://www.duckduckgo.com\";\n break;\n case \"y\":\n window.location = \"https://www.youtube.com\";\n break;\n case \"r\":\n window.location = \"https://reddit.com\";\n break;\n case \"s\":\n window.location = \"https://open.spotify.com\";\n break;\n }\n }\n } else if (validURL(text)) {\n if (containsProtocol(text))\n window.location = text;\n else\n window.location = \"https://\" + text;\n } else {\n window.location = \"https://www.google.com/search?q=\" + text;\n }\n}\nfunction validURL(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/)?' + // protocol\n '((([a-z\\\\d]([a-z\\\\d-]*[a-z\\\\d])*)\\\\.)+[a-z]{2,}|' + // domain name\n '((\\\\d{1,3}\\\\.){3}\\\\d{1,3}))' + // OR ip (v4) address\n '(\\\\:\\\\d+)?(\\\\/[-a-z\\\\d%_.~+]*)*' + // port and path\n '(\\\\?[;&a-z\\\\d%_.~+=-]*)?' + // query string\n '(\\\\#[-a-z\\\\d_]*)?$', 'i'); // fragment locator\n return !!pattern.test(str);\n}\nfunction containsProtocol(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/){1}.*', 'i');\n return !!pattern.test(str);\n}\nString.prototype.replaceAll = function(search, replacement) {\n var target = this;\n return target.split(search).join(replacement);\n};\nfunction udpateDisplayedItems(e) {\n console.log(e);\n localStorage.setItem('contenttype', e.target.checked);\n if (e.target.checked) {\n localStorage.setItem('content-display', 'none');\n } else {\n localStorage.setItem('content-display', 'block');\n }\n setDisplayedItems();\n}\nfunction setDisplayedItems() {\n setValueFromLocalStorage('contenttype');\n setValueFromLocalStorage('content-display');\n}"]},"metadata":{},"sourceType":"module"}
\ No newline at end of file
diff --git a/node_modules/.cache/babel-loader/93e0d7827962ffb6d3b01229419ab249.json b/node_modules/.cache/babel-loader/93e0d7827962ffb6d3b01229419ab249.json
new file mode 100644
index 00000000..99ece4dc
--- /dev/null
+++ b/node_modules/.cache/babel-loader/93e0d7827962ffb6d3b01229419ab249.json
@@ -0,0 +1 @@
+{"ast":null,"code":"var _jsxFileName = \"/home/seanedmunds/dev/home-page/src/index.js\",\n _s = $RefreshSig$();\n\nimport React from 'react';\nimport { useState, useEffect } from 'react';\nimport ReactDOM from 'react-dom'; //import { unstable_createPortal } from 'react-dom';\n\nimport './index.css';\nimport { jsxDEV as _jsxDEV } from \"react/jsx-dev-runtime\";\n\nconst setValueFromLocalStorage = property => {\n let value = localStorage.getItem(property);\n setValue(property, value);\n};\n\nconst setValue = (property, value) => {\n if (value) {\n document.documentElement.style.setProperty(`--${property}`, value);\n const input = document.querySelector(`#${property}`);\n\n if (input) {\n value = value.replace('px', '');\n input.value = value;\n }\n }\n};\n\nfunction Homepage() {\n setTheme();\n var checked = localStorage.getItem(\"contenttype\");\n return /*#__PURE__*/_jsxDEV(\"main\", {\n id: \"container\",\n className: \"fade\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Search, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 29,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 28,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Header, {\n date: date(),\n greet: greet()\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 32,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 31,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Applications, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 38,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 37,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Bookmarks, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 41,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 40,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(ModalMenu, {\n boxChecked: checked\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 44,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 43,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(ModalInit, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 49,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 48,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 27,\n columnNumber: 5\n }, this);\n}\n\n_c = Homepage;\n\nfunction Search() {\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"search\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"abackground\",\n children: [/*#__PURE__*/_jsxDEV(\"input\", {\n name: \"keywords\",\n type: \"text\",\n className: \"keyword\",\n id: \"keywords\",\n size: \"50\",\n spellCheck: \"true\",\n placeholder: \"\"\n /*onFocus={this.placeholder = \"\"} onBlur={this.placeholder = ''}*/\n ,\n autoComplete: \"off\",\n autoFocus: true,\n onKeyUp: handleKeyPress\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 59,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n id: \"searchType\",\n className: \"Input-label\",\n children: \"Google search\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 60,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 58,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 57,\n columnNumber: 5\n }, this);\n}\n\n_c2 = Search;\n\nfunction Header(props) {\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"header\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n id: \"greeting_block\",\n children: /*#__PURE__*/_jsxDEV(\"h1\", {\n id: \"header_greet\",\n children: props.greet\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 70,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 69,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"date_block\",\n children: [/*#__PURE__*/_jsxDEV(\"h2\", {\n id: \"header_date\",\n children: props.date\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 73,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(Clock, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 74,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 72,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 68,\n columnNumber: 5\n }, this);\n}\n\n_c3 = Header;\n\nfunction Applications() {\n let appList = getApps();\n var items = [];\n\n for (var i = 0; i < appList.apps.length; i++) {\n var safe = appList.apps[i].NSFW;\n var NSFWEnabled = localStorage.getItem(\"contenttype\");\n\n if (safe === \"SAFE\") {\n items.push( /*#__PURE__*/_jsxDEV(App, {\n name: appList.apps[i].name,\n url: appList.apps[i].url,\n icon: appList.apps[i].icon,\n NSFW: appList.apps[i].NSFW\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 88,\n columnNumber: 9\n }, this));\n } else if (safe === \"NSFW\" && NSFWEnabled) {\n items.push( /*#__PURE__*/_jsxDEV(App, {\n name: appList.apps[i].name,\n url: appList.apps[i].url,\n icon: appList.apps[i].icon,\n NSFW: appList.apps[i].NSFW\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 98,\n columnNumber: 9\n }, this));\n } else {}\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"apps\",\n children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n children: \"Applications\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 113,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"apps_loop\",\n children: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 114,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 112,\n columnNumber: 5\n }, this);\n}\n\n_c4 = Applications;\n\nfunction App(props) {\n let classNameType = props.NSFW + \"-content\";\n let hrefUrl = \"https://\" + props.url;\n let iconName = \"mdi-\" + props.icon;\n return /*#__PURE__*/_jsxDEV(\"div\", {\n className: classNameType,\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: hrefUrl,\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_item\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_icon\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify icon\",\n \"data-icon\": iconName\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 131,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 130,\n columnNumber: 13\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_text\",\n children: [/*#__PURE__*/_jsxDEV(\"span\", {\n id: \"app-name\",\n children: props.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 134,\n columnNumber: 15\n }, this), /*#__PURE__*/_jsxDEV(\"span\", {\n id: \"app-address\",\n children: props.url\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 135,\n columnNumber: 15\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 133,\n columnNumber: 13\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 129,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 128,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 127,\n columnNumber: 7\n }, this);\n}\n\n_c5 = App;\n\nfunction Bookmarks() {\n let bookmarkList = getLinks();\n var items = [];\n\n for (var i = 0; i < bookmarkList.bookmarks.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(LinkGroups, {\n category: bookmarkList.bookmarks[i].category,\n links: bookmarkList.bookmarks[i].links\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 148,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"links\",\n children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n children: \"Bookmarks\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 157,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"links_loop\",\n children: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 158,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 156,\n columnNumber: 5\n }, this);\n}\n\n_c6 = Bookmarks;\n\nfunction LinkGroups(props) {\n var items = [];\n\n for (var i = 0; i < props.links.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(LinkItem, {\n link: props.links[i]\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 169,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"links_item\",\n children: [/*#__PURE__*/_jsxDEV(\"h4\", {\n children: props.category\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 177,\n columnNumber: 7\n }, this), items]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 176,\n columnNumber: 5\n }, this);\n}\n\n_c7 = LinkGroups;\n\nfunction LinkItem(props) {\n return /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: props.link.url,\n className: \"theme_color-border theme_text-select\",\n children: props.link.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 186,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 185,\n columnNumber: 5\n }, this);\n}\n\n_c8 = LinkItem;\n\nfunction ModalMenu(props) {\n var providers = getProviders();\n var items = [];\n console.log(props);\n\n for (var i = 0; i < providers.providers.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(Provider, {\n provider: providers.providers[i]\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 197,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"modal\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n children: [/*#__PURE__*/_jsxDEV(\"header\", {\n id: \"modal-header\",\n children: [/*#__PURE__*/_jsxDEV(\"h1\", {\n children: \"Options\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 207,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n href: \"#\",\n title: \"Close\",\n className: \"modal-close\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-close\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 209,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 208,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 206,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"h2\", {\n children: \"Color themes\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 213,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"modal-theme\",\n children: [/*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"blackboard\",\n className: \"theme-button theme-blackboard\",\n onClick: updateTheme,\n children: \"Blackboard\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 216,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"gazette\",\n className: \"theme-button theme-gazette\",\n onClick: updateTheme,\n children: \"Gazette\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 217,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"espresso\",\n className: \"theme-button theme-espresso\",\n onClick: updateTheme,\n children: \"Espresso\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 218,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cab\",\n className: \"theme-button theme-cab\",\n onClick: updateTheme,\n children: \"Cab\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 219,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cloud\",\n className: \"theme-button theme-cloud\",\n onClick: updateTheme,\n children: \"Cloud\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 220,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"lime\",\n className: \"theme-button theme-lime\",\n onClick: updateTheme,\n children: \"Lime\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 221,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"passion\",\n className: \"theme-button theme-passion\",\n onClick: updateTheme,\n children: \"Passion\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 222,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"blues\",\n className: \"theme-button theme-blues\",\n onClick: updateTheme,\n children: \"Blues\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 223,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"chalk\",\n className: \"theme-button theme-chalk\",\n onClick: updateTheme,\n children: \"Chalk\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 224,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"tron\",\n className: \"theme-button theme-tron\",\n onClick: updateTheme,\n children: \"Tron\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 225,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"paper\",\n className: \"theme-button theme-paper\",\n onClick: updateTheme,\n children: \"Paper\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 226,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cyberpunk\",\n className: \"theme-button theme-cyberpunk\",\n onClick: updateTheme,\n children: \"Cyberpunk\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 227,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"quadra\",\n className: \"theme-button theme-panam\",\n onClick: updateTheme,\n children: \"Quadra\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 228,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"panam\",\n className: \"theme-button theme-panam\",\n onClick: updateTheme,\n children: \"Panam\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 229,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"touch\",\n className: \"theme-button theme-touch\",\n onClick: updateTheme,\n children: \"Touch\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 230,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"peek\",\n className: \"theme-button theme-peek\",\n onClick: updateTheme,\n children: \"Peek\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 231,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 215,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"h2\", {\n children: \"Search options\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 235,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"providers\",\n children: /*#__PURE__*/_jsxDEV(\"table\", {\n children: /*#__PURE__*/_jsxDEV(\"tbody\", {\n children: [/*#__PURE__*/_jsxDEV(\"tr\", {\n children: [/*#__PURE__*/_jsxDEV(\"th\", {\n children: \"Website\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 240,\n columnNumber: 19\n }, this), /*#__PURE__*/_jsxDEV(\"th\", {\n children: \"Prefix\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 241,\n columnNumber: 19\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 239,\n columnNumber: 17\n }, this), items]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 238,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 237,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 236,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"header\", {\n id: \"modal-footer\",\n children: [/*#__PURE__*/_jsxDEV(\"a\", {\n href: \"https://github.com/jeroenpardon/\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-github-box\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 249,\n columnNumber: 54\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 249,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n href: \"https://materialdesignicons.com/\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-material-design\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 250,\n columnNumber: 54\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 250,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"sneaky\",\n children: [/*#__PURE__*/_jsxDEV(\"input\", {\n type: \"checkbox\",\n id: \"contenttype\",\n checked: props.boxChecked,\n onChange: udpateDisplayedItems\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 251,\n columnNumber: 35\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n for: \"contenttype\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-domino-mask\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 252,\n columnNumber: 36\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 252,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 251,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 248,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 205,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 204,\n columnNumber: 5\n }, this);\n}\n\n_c9 = ModalMenu;\n\nfunction Provider(props) {\n return /*#__PURE__*/_jsxDEV(\"tr\", {\n children: [/*#__PURE__*/_jsxDEV(\"td\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: props.provider.url,\n children: props.provider.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 262,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 262,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"td\", {\n children: props.provider.prefix\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 263,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 261,\n columnNumber: 5\n }, this);\n}\n\n_c10 = Provider;\n\nfunction ModalInit() {\n setDisplayedItems();\n return /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"modal_init\",\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n className: \"btn\",\n href: \"#modal\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify icon\",\n \"data-icon\": \"mdi-xbox-controller-menu\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 273,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 272,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 271,\n columnNumber: 5\n }, this);\n}\n\n_c11 = ModalInit;\nReactDOM.render( /*#__PURE__*/_jsxDEV(Homepage, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 280,\n columnNumber: 3\n}, this), document.getElementById('root')); //Functions below this line are for calculating data for\n//other functions\n\nfunction date() {\n let currentDate = new Date();\n let dateOptions = {\n weekday: \"long\",\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\"\n };\n let date = currentDate.toLocaleDateString(\"en-GB\", dateOptions);\n return date;\n}\n\nfunction fixDigits(k) {\n if (k < 10) {\n return \"0\" + k;\n } else {\n return k;\n }\n}\n\nfunction greet() {\n let currentTime = new Date();\n let greet = Math.floor(currentTime.getHours() / 6);\n let easterEggChance = Math.floor(Math.random() * 100);\n\n let greetings = require('./messages.json');\n\n let timeBased = [];\n let easterEggs = [];\n\n for (var i = 0; i < greetings.messages.length; i++) {\n if (greetings.messages[i].easteregg === \"FALSE\") {\n timeBased = timeBased.concat(greetings.messages[i]);\n } else {\n easterEggs = easterEggs.concat(greetings.messages[i]);\n }\n }\n\n if (easterEggChance > 10) {\n return timeBased[greet].message;\n } else {\n let easterEggText = Math.floor(Math.random() * easterEggs.length);\n return easterEggs[easterEggText].message;\n }\n}\n\nfunction Clock() {\n _s();\n\n const [date, setDate] = useState(new Date());\n\n function refreshClock() {\n setDate(new Date());\n }\n\n useEffect(() => {\n const timerId = setInterval(refreshClock, 1000);\n return function cleanup() {\n clearInterval(timerId);\n };\n }, []);\n var hour = date.getHours();\n var minutes = date.getMinutes(); //var seconds = date.getSeconds();\n\n var midday = \"AM\";\n midday = hour >= 12 ? \"PM\" : \"AM\";\n hour = hour === 0 ? 12 : hour > 12 ? hour - 12 : hour;\n minutes = fixDigits(minutes); //seconds = fixDigits(seconds);\n\n let time = hour + \":\" + minutes + \" \" + midday;\n return /*#__PURE__*/_jsxDEV(\"h2\", {\n id: \"clock\",\n children: time\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 351,\n columnNumber: 5\n }, this);\n}\n\n_s(Clock, \"Gqi45WOZhU2c0BLYX0HoJeiR0fk=\");\n\n_c12 = Clock;\n\nfunction getApps() {\n let applications = require('./apps.json');\n\n return applications;\n}\n\nfunction getLinks() {\n let links = require('./links.json');\n\n return links;\n}\n\nfunction getProviders() {\n let providers = require('./providers.json');\n\n return providers;\n}\n\nfunction getThemes() {\n let themes = require('./themes.json');\n\n return themes;\n}\n\nfunction updateTheme(e) {\n var themes = getThemes();\n var themeName = e.target.innerHTML.toLowerCase();\n var index = themes.themes.findIndex(function (item, i) {\n return item.name === themeName;\n });\n localStorage.setItem(\"image-background\", themes.themes[index].imagebackground);\n localStorage.setItem(\"color-background\", themes.themes[index].colorbackground);\n localStorage.setItem(\"color-search-background\", themes.themes[index].colorserachbackground);\n localStorage.setItem(\"color-text-pri\", themes.themes[index].colortextpri);\n localStorage.setItem(\"color-text-acc\", themes.themes[index].colortextacc);\n localStorage.setItem(\"color-border\", themes.themes[index].colorborder); //document.documentElement.style.setProperty(prop, `var(--${themeName}${prop.substring(10)})`);\n\n setTheme();\n}\n\nfunction setTheme() {\n setValueFromLocalStorage('image-background');\n setValueFromLocalStorage('color-background');\n setValueFromLocalStorage('color-search-background');\n setValueFromLocalStorage('color-text-pri');\n setValueFromLocalStorage('color-text-acc');\n setValueFromLocalStorage('color-border');\n setValueFromLocalStorage('content-display');\n}\n\nfunction handleKeyPress(e) {\n var sindex = 0;\n var cycle = false;\n var key = e.keyCode || e.which;\n var text = e.target.value.replaceAll(\"+\", \"%2B\");\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n\n if (key == 13) {\n // Search functions\n search(text);\n }\n\n if (key == 9) {\n // Tab Completion Functions\n e.preventDefault();\n e.stopPropagation();\n\n if (text[0] === ';') {\n switch (option) {\n case 't':\n var streamers = ['admiralbahroo', 'moonmoon_ow', 'witwix'];\n\n if (!subtext || cycle) {\n cycle = true;\n if (sindex > streamers.length - 1) sindex = 0;\n document.getElementById(\"keywords\").value = ';t ' + streamers[sindex++];\n return;\n }\n\n for (var streamer of streamers) {\n if (subtext === streamer.substr(0, subtext.length)) {\n document.getElementById(\"keywords\").value = ';t ' + streamer;\n return;\n }\n }\n\n break;\n }\n }\n }\n\n if (key == 32) {\n //Space to go to search\n updateLabel(text);\n }\n\n sindex = 0;\n cycle = false;\n updateLabel(text);\n}\n\nfunction updateLabel(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n\n if (text[0] === '/') {\n // if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n document.getElementById(\"searchType\").innerHTML = \"Allmusic search\";\n break;\n\n case \"d\":\n document.getElementById(\"searchType\").innerHTML = \"Duck Duck Go search\";\n break;\n\n case \"di\":\n document.getElementById(\"searchType\").innerHTML = \"Discogs search\";\n break;\n\n case \"i\":\n document.getElementById(\"searchType\").innerHTML = \"IMDB search\";\n break;\n\n case \"m\":\n document.getElementById(\"searchType\").innerHTML = \"TheMovieDB search\";\n break;\n\n case \"r\":\n document.getElementById(\"searchType\").innerHTML = \"Reddit search\";\n break;\n\n case \"q\":\n document.getElementById(\"searchType\").innerHTML = \"Qwant search\";\n break;\n\n case \"so\":\n document.getElementById(\"searchType\").innerHTML = \"Soundcloud search\";\n break;\n\n case \"s\":\n document.getElementById(\"searchType\").innerHTML = \"Spotify search\";\n break;\n\n case \"tv\":\n document.getElementById(\"searchType\").innerHTML = \"TheTVDB search\";\n break;\n\n case \"t\":\n document.getElementById(\"searchType\").innerHTML = \"Trakt search\";\n break;\n\n case \"y\":\n document.getElementById(\"searchType\").innerHTML = \"YouTube search\";\n break;\n\n case \"w\":\n document.getElementById(\"searchType\").innerHTML = \"Wikipedia search\";\n break;\n\n case \"p\":\n document.getElementById(\"searchType\").innerHTML = \"Plex search\";\n break;\n\n case \"rt\":\n document.getElementById(\"searchType\").innerHTML = \"Rotten Tomatoes search\";\n break;\n\n default:\n document.getElementById(\"searchType\").innerHTML = \"Invalid search\";\n break;\n }\n } else {\n document.getElementById(\"searchType\").innerHTML = \"Google search\";\n }\n}\n\nfunction search(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n\n if (text[0] === '/') {\n if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n window.location = \"https://www.allmusic.com/search/all/\" + subtext;\n break;\n\n case \"d\":\n window.location = \"https://duckduckgo.com/?q=\" + subtext;\n break;\n\n case \"di\":\n window.location = \"https://www.discogs.com/search/?q=\" + subtext;\n break;\n\n case \"i\":\n window.location = \"https://www.imdb.com/find?q=\" + subtext;\n break;\n\n case \"m\":\n window.location = \"https://www.themoviedb.org/search?query=\" + subtext;\n break;\n\n case \"r\":\n window.location = \"https://www.reddit.com/search?q=\" + subtext;\n break;\n\n case \"q\":\n window.location = \"https://www.qwant.com/?q=\" + subtext;\n break;\n\n case \"so\":\n window.location = \"https://soundcloud.com/search?q=\" + subtext;\n break;\n\n case \"s\":\n window.location = \"https://open.spotify.com/search/results/\" + subtext;\n break;\n\n case \"t\":\n window.location = \"https://trakt.tv/search?query=\" + subtext;\n break;\n\n case \"tv\":\n window.location = \"https://www.thetvdb.com/search?query=\" + subtext;\n break;\n\n case \"y\":\n window.location = \"https://www.youtube.com/results?search_query=\" + subtext;\n break;\n\n case \"w\":\n window.location = \"https://en.wikipedia.org/w/index.php?search=\" + subtext;\n break;\n\n case \"p\":\n window.location = \"https://app.plex.tv/desktop/#!/search?query=\" + subtext;\n break;\n\n case \"rt\":\n window.location = \"https://www.rottentomatoes.com/search?search=\" + subtext;\n break;\n }\n } else {\n var option = text.substr(1);\n\n switch (option) {\n case \"d\":\n window.location = \"https://www.duckduckgo.com\";\n break;\n\n case \"y\":\n window.location = \"https://www.youtube.com\";\n break;\n\n case \"r\":\n window.location = \"https://reddit.com\";\n break;\n\n case \"s\":\n window.location = \"https://open.spotify.com\";\n break;\n }\n }\n } else if (validURL(text)) {\n if (containsProtocol(text)) window.location = text;else window.location = \"https://\" + text;\n } else {\n window.location = \"https://www.google.com/search?q=\" + text;\n }\n}\n\nfunction validURL(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/)?' + // protocol\n '((([a-z\\\\d]([a-z\\\\d-]*[a-z\\\\d])*)\\\\.)+[a-z]{2,}|' + // domain name\n '((\\\\d{1,3}\\\\.){3}\\\\d{1,3}))' + // OR ip (v4) address\n '(\\\\:\\\\d+)?(\\\\/[-a-z\\\\d%_.~+]*)*' + // port and path\n '(\\\\?[;&a-z\\\\d%_.~+=-]*)?' + // query string\n '(\\\\#[-a-z\\\\d_]*)?$', 'i'); // fragment locator\n\n return !!pattern.test(str);\n}\n\nfunction containsProtocol(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/){1}.*', 'i');\n return !!pattern.test(str);\n}\n\nString.prototype.replaceAll = function (search, replacement) {\n var target = this;\n return target.split(search).join(replacement);\n};\n\nfunction udpateDisplayedItems(e) {\n localStorage.setItem('contenttype', e.target.checked);\n\n if (e.target.checked) {\n localStorage.setItem('content-display', 'none');\n } else {\n localStorage.setItem('content-display', 'block');\n }\n\n setDisplayedItems();\n}\n\nfunction setDisplayedItems() {\n setValueFromLocalStorage('contenttype');\n setValueFromLocalStorage('content-display');\n}\n\nvar _c, _c2, _c3, _c4, _c5, _c6, _c7, _c8, _c9, _c10, _c11, _c12;\n\n$RefreshReg$(_c, \"Homepage\");\n$RefreshReg$(_c2, \"Search\");\n$RefreshReg$(_c3, \"Header\");\n$RefreshReg$(_c4, \"Applications\");\n$RefreshReg$(_c5, \"App\");\n$RefreshReg$(_c6, \"Bookmarks\");\n$RefreshReg$(_c7, \"LinkGroups\");\n$RefreshReg$(_c8, \"LinkItem\");\n$RefreshReg$(_c9, \"ModalMenu\");\n$RefreshReg$(_c10, \"Provider\");\n$RefreshReg$(_c11, \"ModalInit\");\n$RefreshReg$(_c12, \"Clock\");","map":{"version":3,"sources":["/home/seanedmunds/dev/home-page/src/index.js"],"names":["React","useState","useEffect","ReactDOM","setValueFromLocalStorage","property","value","localStorage","getItem","setValue","document","documentElement","style","setProperty","input","querySelector","replace","Homepage","setTheme","checked","date","greet","Search","handleKeyPress","Header","props","Applications","appList","getApps","items","i","apps","length","safe","NSFW","NSFWEnabled","push","name","url","icon","App","classNameType","hrefUrl","iconName","Bookmarks","bookmarkList","getLinks","bookmarks","category","links","LinkGroups","LinkItem","link","ModalMenu","providers","getProviders","console","log","updateTheme","boxChecked","udpateDisplayedItems","Provider","provider","prefix","ModalInit","setDisplayedItems","render","getElementById","currentDate","Date","dateOptions","weekday","year","month","day","toLocaleDateString","fixDigits","k","currentTime","Math","floor","getHours","easterEggChance","random","greetings","require","timeBased","easterEggs","messages","easteregg","concat","message","easterEggText","Clock","setDate","refreshClock","timerId","setInterval","cleanup","clearInterval","hour","minutes","getMinutes","midday","time","applications","getThemes","themes","e","themeName","target","innerHTML","toLowerCase","index","findIndex","item","setItem","imagebackground","colorbackground","colorserachbackground","colortextpri","colortextacc","colorborder","sindex","cycle","key","keyCode","which","text","replaceAll","option","substr","indexOf","subtext","search","preventDefault","stopPropagation","streamers","streamer","updateLabel","window","location","validURL","containsProtocol","str","pattern","RegExp","test","String","prototype","replacement","split","join"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { useState, useEffect } from 'react';\nimport ReactDOM from 'react-dom';\n//import { unstable_createPortal } from 'react-dom';\nimport './index.css';\n\nconst setValueFromLocalStorage = property => {\n let value = localStorage.getItem(property);\n setValue(property, value);\n};\nconst setValue = (property, value) => {\n if (value) {\n document.documentElement.style.setProperty(`--${property}`, value);\n\n const input = document.querySelector(`#${property}`);\n if (input) {\n value = value.replace('px', '');\n input.value = value;\n }\n }\n};\n\nfunction Homepage() {\n setTheme();\n var checked = localStorage.getItem(\"contenttype\");\n return (\n \n \n \n
\n \n \n
\n \n \n \n
\n \n \n
\n \n \n
\n \n );\n}\n\nfunction Search() {\n return (\n \n )\n}\n\nfunction Header(props) {\n return (\n \n );\n}\n\nfunction Applications() {\n let appList = getApps();\n var items = [];\n for (var i = 0; i < appList.apps.length; i++) {\n var safe = appList.apps[i].NSFW;\n var NSFWEnabled = localStorage.getItem(\"contenttype\");\n if (safe === \"SAFE\") {\n items.push(\n \n );\n } else if (safe === \"NSFW\" && NSFWEnabled) {\n items.push(\n \n );\n } else {\n \n }\n \n }\n return (\n \n Applications
\n \n {items}\n
\n \n );\n}\n\nfunction App(props) {\n \n let classNameType = props.NSFW + \"-content\";\n let hrefUrl = \"https://\" + props.url;\n let iconName = \"mdi-\" + props.icon;\n return (\n \n );\n}\n\nfunction Bookmarks() {\n let bookmarkList = getLinks();\n var items = [];\n for (var i = 0; i < bookmarkList.bookmarks.length; i++) {\n items.push(\n \n );\n }\n return (\n \n Bookmarks
\n \n {items}\n
\n \n );\n}\n\nfunction LinkGroups(props) {\n var items = [];\n for (var i = 0; i < props.links.length; i++) {\n items.push(\n \n );\n }\n return (\n \n
{props.category}
\n {items}\n \n );\n}\n\nfunction LinkItem(props) {\n return (\n \n );\n}\n\nfunction ModalMenu(props) {\n var providers = getProviders();\n var items = [];\n console.log(props);\n for (var i = 0; i < providers.providers.length; i++) {\n items.push(\n \n );\n }\n return (\n \n \n \n\n
Color themes
\n\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n\n\n
Search options
\n
\n \n \n \n | Website | \n Prefix | \n
\n {items}\n \n
\n \n\n \n
\n \n );\n}\n\nfunction Provider(props) {\n return (\n \n | {props.provider.name} | \n {props.provider.prefix} | \n
\n );\n}\n\nfunction ModalInit() {\n setDisplayedItems();\n return (\n \n );\n}\n\nReactDOM.render(\n ,\n document.getElementById('root')\n);\n\n//Functions below this line are for calculating data for\n//other functions\n\nfunction date() {\n let currentDate = new Date();\n let dateOptions = {\n weekday: \"long\",\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\"\n };\n let date = currentDate.toLocaleDateString(\"en-GB\", dateOptions);\n return date;\n}\nfunction fixDigits(k) {\n if (k < 10) {\n return \"0\" + k;\n }\n else {\n return k;\n }\n}\nfunction greet() {\n let currentTime = new Date();\n let greet = Math.floor(currentTime.getHours() / 6);\n let easterEggChance = Math.floor(Math.random() * 100);\n let greetings = require('./messages.json');\n let timeBased = [];\n let easterEggs = [];\n for (var i = 0; i < greetings.messages.length; i++) {\n if (greetings.messages[i].easteregg === \"FALSE\") {\n timeBased = timeBased.concat(greetings.messages[i]);\n } else {\n easterEggs = easterEggs.concat(greetings.messages[i]);\n }\n }\n if (easterEggChance > 10) {\n return timeBased[greet].message;\n } else {\n let easterEggText = Math.floor(Math.random() * easterEggs.length);\n return easterEggs[easterEggText].message;\n }\n}\nfunction Clock() {\n const [date, setDate] = useState(new Date());\n\n function refreshClock() {\n setDate(new Date());\n }\n useEffect(() => {\n const timerId = setInterval(refreshClock, 1000);\n return function cleanup() {\n clearInterval(timerId);\n };\n }, []);\n\n var hour = date.getHours();\n var minutes = date.getMinutes();\n //var seconds = date.getSeconds();\n var midday = \"AM\";\n midday = (hour >= 12) ? \"PM\" : \"AM\";\n hour = (hour === 0) ? 12 : ((hour > 12) ? (hour - 12) : hour);\n minutes = fixDigits(minutes);\n //seconds = fixDigits(seconds);\n let time = hour + \":\" + minutes + \" \" + midday;\n\n return (\n {time}
\n\n );\n}\nfunction getApps() {\n let applications = require('./apps.json');\n return applications;\n}\nfunction getLinks() {\n let links = require('./links.json');\n return links;\n}\nfunction getProviders() {\n let providers = require('./providers.json');\n return providers;\n}\nfunction getThemes() {\n let themes = require('./themes.json');\n return themes;\n}\nfunction updateTheme(e) {\n var themes = getThemes();\n var themeName = e.target.innerHTML.toLowerCase();\n var index = themes.themes.findIndex(function(item, i){\n return item.name === themeName\n });\n localStorage.setItem(\"image-background\", themes.themes[index].imagebackground);\n localStorage.setItem(\"color-background\", themes.themes[index].colorbackground);\n localStorage.setItem(\"color-search-background\", themes.themes[index].colorserachbackground);\n localStorage.setItem(\"color-text-pri\",themes.themes[index].colortextpri);\n localStorage.setItem(\"color-text-acc\", themes.themes[index].colortextacc);\n localStorage.setItem(\"color-border\", themes.themes[index].colorborder);\n \n //document.documentElement.style.setProperty(prop, `var(--${themeName}${prop.substring(10)})`);\n setTheme();\n}\nfunction setTheme() {\n setValueFromLocalStorage('image-background');\n setValueFromLocalStorage('color-background');\n setValueFromLocalStorage('color-search-background');\n setValueFromLocalStorage('color-text-pri');\n setValueFromLocalStorage('color-text-acc');\n setValueFromLocalStorage('color-border');\n setValueFromLocalStorage('content-display');\n}\nfunction handleKeyPress(e) {\n var sindex = 0;\n var cycle = false;\n var key = e.keyCode || e.which;\n var text = e.target.value.replaceAll(\"+\", \"%2B\");\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n if (key == 13) { // Search functions\n search(text);\n }\n if (key == 9) { // Tab Completion Functions\n e.preventDefault();\n e.stopPropagation();\n if (text[0] === ';') {\n switch (option) {\n case 't':\n var streamers = ['admiralbahroo', 'moonmoon_ow', 'witwix'];\n if (!subtext || cycle) {\n cycle = true;\n if (sindex > streamers.length - 1) sindex = 0;\n document.getElementById(\"keywords\").value = ';t ' + streamers[sindex++];\n return;\n }\n for (var streamer of streamers) {\n if (subtext === streamer.substr(0, subtext.length)) {\n document.getElementById(\"keywords\").value = ';t ' + streamer;\n return;\n }\n }\n break;\n }\n }\n }\n if(key == 32){ //Space to go to search\nupdateLabel(text);\n }\n sindex = 0;\n cycle = false;\n updateLabel(text);\n}\nfunction updateLabel(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n if (text[0] === '/') {\n// if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n document.getElementById(\"searchType\").innerHTML = \"Allmusic search\";\n break;\n case \"d\":\n document.getElementById(\"searchType\").innerHTML = \"Duck Duck Go search\";\n break;\n case \"di\":\n document.getElementById(\"searchType\").innerHTML = \"Discogs search\";\n break;\n case \"i\":\n document.getElementById(\"searchType\").innerHTML = \"IMDB search\";\n break;\n case \"m\":\n document.getElementById(\"searchType\").innerHTML = \"TheMovieDB search\";\n break;\n case \"r\":\n document.getElementById(\"searchType\").innerHTML = \"Reddit search\";\n break;\n case \"q\":\n document.getElementById(\"searchType\").innerHTML = \"Qwant search\";\n break;\n case \"so\":\n document.getElementById(\"searchType\").innerHTML = \"Soundcloud search\";\n break;\n case \"s\":\n document.getElementById(\"searchType\").innerHTML = \"Spotify search\";\n break;\n case \"tv\":\n document.getElementById(\"searchType\").innerHTML = \"TheTVDB search\";\n break;\n case \"t\":\n document.getElementById(\"searchType\").innerHTML = \"Trakt search\";\n break;\n case \"y\":\n document.getElementById(\"searchType\").innerHTML = \"YouTube search\";\n break;\n case \"w\":\n document.getElementById(\"searchType\").innerHTML = \"Wikipedia search\";\n break;\n case \"p\":\n document.getElementById(\"searchType\").innerHTML = \"Plex search\";\n break;\n case \"rt\":\n document.getElementById(\"searchType\").innerHTML = \"Rotten Tomatoes search\";\n break;\n default:\n document.getElementById(\"searchType\").innerHTML = \"Invalid search\";\n break;\n }\n}else {\n document.getElementById(\"searchType\").innerHTML = \"Google search\";\n }\n}\nfunction search(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n if (text[0] === '/') {\n if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n window.location = \"https://www.allmusic.com/search/all/\" + subtext;\n break;\n case \"d\":\n window.location = \"https://duckduckgo.com/?q=\" + subtext;\n break;\n case \"di\":\n window.location = \"https://www.discogs.com/search/?q=\" + subtext;\n break;\n case \"i\":\n window.location = \"https://www.imdb.com/find?q=\" + subtext;\n break;\n case \"m\":\n window.location = \"https://www.themoviedb.org/search?query=\" + subtext;\n break;\n case \"r\":\n window.location = \"https://www.reddit.com/search?q=\" + subtext;\n break;\n case \"q\":\n window.location = \"https://www.qwant.com/?q=\" + subtext;\n break;\n case \"so\":\n window.location = \"https://soundcloud.com/search?q=\" + subtext;\n break;\n case \"s\":\n window.location = \"https://open.spotify.com/search/results/\" + subtext;\n break;\n case \"t\":\n window.location = \"https://trakt.tv/search?query=\" + subtext;\n break;\n case \"tv\":\n window.location = \"https://www.thetvdb.com/search?query=\" + subtext;\n break;\n case \"y\":\n window.location = \"https://www.youtube.com/results?search_query=\" + subtext;\n break;\n case \"w\":\n window.location = \"https://en.wikipedia.org/w/index.php?search=\" + subtext;\n break;\n case \"p\":\n window.location = \"https://app.plex.tv/desktop/#!/search?query=\" + subtext;\n break;\n case \"rt\":\n window.location = \"https://www.rottentomatoes.com/search?search=\" + subtext;\n break;\n }\n } else {\n var option = text.substr(1);\n switch (option) {\n case \"d\":\n window.location = \"https://www.duckduckgo.com\";\n break;\n case \"y\":\n window.location = \"https://www.youtube.com\";\n break;\n case \"r\":\n window.location = \"https://reddit.com\";\n break;\n case \"s\":\n window.location = \"https://open.spotify.com\";\n break;\n }\n }\n } else if (validURL(text)) {\n if (containsProtocol(text))\n window.location = text;\n else\n window.location = \"https://\" + text;\n } else {\n window.location = \"https://www.google.com/search?q=\" + text;\n }\n}\nfunction validURL(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/)?' + // protocol\n '((([a-z\\\\d]([a-z\\\\d-]*[a-z\\\\d])*)\\\\.)+[a-z]{2,}|' + // domain name\n '((\\\\d{1,3}\\\\.){3}\\\\d{1,3}))' + // OR ip (v4) address\n '(\\\\:\\\\d+)?(\\\\/[-a-z\\\\d%_.~+]*)*' + // port and path\n '(\\\\?[;&a-z\\\\d%_.~+=-]*)?' + // query string\n '(\\\\#[-a-z\\\\d_]*)?$', 'i'); // fragment locator\n return !!pattern.test(str);\n}\nfunction containsProtocol(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/){1}.*', 'i');\n return !!pattern.test(str);\n}\nString.prototype.replaceAll = function(search, replacement) {\n var target = this;\n return target.split(search).join(replacement);\n};\nfunction udpateDisplayedItems(e) {\n localStorage.setItem('contenttype', e.target.checked);\n if (e.target.checked) {\n localStorage.setItem('content-display', 'none');\n } else {\n localStorage.setItem('content-display', 'block');\n }\n setDisplayedItems();\n}\nfunction setDisplayedItems() {\n setValueFromLocalStorage('contenttype');\n setValueFromLocalStorage('content-display');\n}"]},"metadata":{},"sourceType":"module"}
\ No newline at end of file
diff --git a/node_modules/.cache/babel-loader/956b79c7cfdf9c033aa818b79e5debdb.json b/node_modules/.cache/babel-loader/956b79c7cfdf9c033aa818b79e5debdb.json
new file mode 100644
index 00000000..6ce1cd27
--- /dev/null
+++ b/node_modules/.cache/babel-loader/956b79c7cfdf9c033aa818b79e5debdb.json
@@ -0,0 +1 @@
+{"ast":null,"code":"var _jsxFileName = \"/home/seanedmunds/dev/home-page/src/index.js\",\n _s = $RefreshSig$();\n\nimport React from 'react';\nimport { useState, useEffect } from 'react';\nimport ReactDOM from 'react-dom'; //import { unstable_createPortal } from 'react-dom';\n\nimport './index.css';\nimport { jsxDEV as _jsxDEV } from \"react/jsx-dev-runtime\";\n\nconst setValueFromLocalStorage = property => {\n let value = localStorage.getItem(property);\n setValue(property, value);\n};\n\nconst setValue = (property, value) => {\n if (value) {\n document.documentElement.style.setProperty(`--${property}`, value);\n const input = document.querySelector(`#${property}`);\n\n if (input) {\n value = value.replace('px', '');\n input.value = value;\n }\n }\n};\n\nfunction Homepage() {\n setTheme();\n var checked = localStorage.getItem(\"contenttype\");\n return /*#__PURE__*/_jsxDEV(\"main\", {\n id: \"container\",\n className: \"fade\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Search, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 29,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 28,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Header, {\n date: date(),\n greet: greet()\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 32,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 31,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Applications, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 38,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 37,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Bookmarks, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 41,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 40,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(ModalMenu, {\n boxChecked: checked\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 44,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 43,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(ModalInit, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 49,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 48,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 27,\n columnNumber: 5\n }, this);\n}\n\n_c = Homepage;\n\nfunction Search() {\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"search\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"abackground\",\n children: [/*#__PURE__*/_jsxDEV(\"input\", {\n name: \"keywords\",\n type: \"text\",\n className: \"keyword\",\n id: \"keywords\",\n size: \"50\",\n spellCheck: \"true\",\n placeholder: \"\"\n /*onFocus={this.placeholder = \"\"} onBlur={this.placeholder = ''}*/\n ,\n autoComplete: \"off\",\n autoFocus: true,\n onKeyUp: handleKeyPress\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 59,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n id: \"searchType\",\n className: \"Input-label\",\n children: \"Google search\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 60,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 58,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 57,\n columnNumber: 5\n }, this);\n}\n\n_c2 = Search;\n\nfunction Header(props) {\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"header\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n id: \"greeting_block\",\n children: /*#__PURE__*/_jsxDEV(\"h1\", {\n id: \"header_greet\",\n children: props.greet\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 70,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 69,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"date_block\",\n children: [/*#__PURE__*/_jsxDEV(\"h2\", {\n id: \"header_date\",\n children: props.date\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 73,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(Clock, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 74,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 72,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 68,\n columnNumber: 5\n }, this);\n}\n\n_c3 = Header;\n\nfunction Applications() {\n let appList = getApps();\n var items = [];\n\n for (var i = 0; i < appList.apps.length; i++) {\n var safe = appList.apps[i].NSFW;\n var NSFWEnabled = localStorage.getItem(\"contenttype\");\n\n if (safe === \"SAFE\") {\n items.push( /*#__PURE__*/_jsxDEV(App, {\n name: appList.apps[i].name,\n url: appList.apps[i].url,\n icon: appList.apps[i].icon,\n NSFW: appList.apps[i].NSFW\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 88,\n columnNumber: 9\n }, this));\n } else if (safe === \"NSFW\" && NSFWEnabled) {\n items.push( /*#__PURE__*/_jsxDEV(App, {\n name: appList.apps[i].name,\n url: appList.apps[i].url,\n icon: appList.apps[i].icon,\n NSFW: appList.apps[i].NSFW\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 98,\n columnNumber: 9\n }, this));\n } else {}\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"apps\",\n children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n children: \"Applications\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 113,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"apps_loop\",\n children: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 114,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 112,\n columnNumber: 5\n }, this);\n}\n\n_c4 = Applications;\n\nfunction App(props) {\n let classNameType = props.NSFW + \"-content\";\n let hrefUrl = \"https://\" + props.url;\n let iconName = \"mdi-\" + props.icon;\n return /*#__PURE__*/_jsxDEV(\"div\", {\n className: classNameType,\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: hrefUrl,\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_item\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_icon\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify icon\",\n \"data-icon\": iconName\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 131,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 130,\n columnNumber: 13\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_text\",\n children: [/*#__PURE__*/_jsxDEV(\"span\", {\n id: \"app-name\",\n children: props.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 134,\n columnNumber: 15\n }, this), /*#__PURE__*/_jsxDEV(\"span\", {\n id: \"app-address\",\n children: props.url\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 135,\n columnNumber: 15\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 133,\n columnNumber: 13\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 129,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 128,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 127,\n columnNumber: 7\n }, this);\n}\n\n_c5 = App;\n\nfunction Bookmarks() {\n let bookmarkList = getLinks();\n var items = [];\n\n for (var i = 0; i < bookmarkList.bookmarks.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(LinkGroups, {\n category: bookmarkList.bookmarks[i].category,\n links: bookmarkList.bookmarks[i].links\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 148,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"links\",\n children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n children: \"Bookmarks\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 157,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"links_loop\",\n children: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 158,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 156,\n columnNumber: 5\n }, this);\n}\n\n_c6 = Bookmarks;\n\nfunction LinkGroups(props) {\n var items = [];\n\n for (var i = 0; i < props.links.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(LinkItem, {\n link: props.links[i]\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 169,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"links_item\",\n children: [/*#__PURE__*/_jsxDEV(\"h4\", {\n children: props.category\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 177,\n columnNumber: 7\n }, this), items]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 176,\n columnNumber: 5\n }, this);\n}\n\n_c7 = LinkGroups;\n\nfunction LinkItem(props) {\n return /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: props.link.url,\n className: \"theme_color-border theme_text-select\",\n children: props.link.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 186,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 185,\n columnNumber: 5\n }, this);\n}\n\n_c8 = LinkItem;\n\nfunction ModalMenu(props) {\n var providers = getProviders();\n var items = [];\n console.log(props);\n\n for (var i = 0; i < providers.providers.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(Provider, {\n provider: providers.providers[i]\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 197,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"modal\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n children: [/*#__PURE__*/_jsxDEV(\"header\", {\n id: \"modal-header\",\n children: [/*#__PURE__*/_jsxDEV(\"h1\", {\n children: \"Options\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 207,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n href: \"#\",\n title: \"Close\",\n className: \"modal-close\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-close\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 209,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 208,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 206,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"h2\", {\n children: \"Color themes\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 213,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"modal-theme\",\n children: [/*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"blackboard\",\n className: \"theme-button theme-blackboard\",\n onClick: updateTheme,\n children: \"Blackboard\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 216,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"gazette\",\n className: \"theme-button theme-gazette\",\n onClick: updateTheme,\n children: \"Gazette\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 217,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"espresso\",\n className: \"theme-button theme-espresso\",\n onClick: updateTheme,\n children: \"Espresso\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 218,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cab\",\n className: \"theme-button theme-cab\",\n onClick: updateTheme,\n children: \"Cab\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 219,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cloud\",\n className: \"theme-button theme-cloud\",\n onClick: updateTheme,\n children: \"Cloud\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 220,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"lime\",\n className: \"theme-button theme-lime\",\n onClick: updateTheme,\n children: \"Lime\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 221,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"passion\",\n className: \"theme-button theme-passion\",\n onClick: updateTheme,\n children: \"Passion\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 222,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"blues\",\n className: \"theme-button theme-blues\",\n onClick: updateTheme,\n children: \"Blues\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 223,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"chalk\",\n className: \"theme-button theme-chalk\",\n onClick: updateTheme,\n children: \"Chalk\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 224,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"tron\",\n className: \"theme-button theme-tron\",\n onClick: updateTheme,\n children: \"Tron\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 225,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"paper\",\n className: \"theme-button theme-paper\",\n onClick: updateTheme,\n children: \"Paper\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 226,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cyberpunk\",\n className: \"theme-button theme-cyberpunk\",\n onClick: updateTheme,\n children: \"Cyberpunk\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 227,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"quadra\",\n className: \"theme-button theme-panam\",\n onClick: updateTheme,\n children: \"Quadra\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 228,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"panam\",\n className: \"theme-button theme-panam\",\n onClick: updateTheme,\n children: \"Panam\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 229,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"touch\",\n className: \"theme-button theme-touch\",\n onClick: updateTheme,\n children: \"Touch\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 230,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"peek\",\n className: \"theme-button theme-peek\",\n onClick: updateTheme,\n children: \"Peek\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 231,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 215,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"h2\", {\n children: \"Search options\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 235,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"providers\",\n children: /*#__PURE__*/_jsxDEV(\"table\", {\n children: /*#__PURE__*/_jsxDEV(\"tbody\", {\n children: [/*#__PURE__*/_jsxDEV(\"tr\", {\n children: [/*#__PURE__*/_jsxDEV(\"th\", {\n children: \"Website\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 240,\n columnNumber: 19\n }, this), /*#__PURE__*/_jsxDEV(\"th\", {\n children: \"Prefix\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 241,\n columnNumber: 19\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 239,\n columnNumber: 17\n }, this), items]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 238,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 237,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 236,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"header\", {\n id: \"modal-footer\",\n children: [/*#__PURE__*/_jsxDEV(\"a\", {\n href: \"https://github.com/jeroenpardon/\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-github-box\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 249,\n columnNumber: 54\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 249,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n href: \"https://materialdesignicons.com/\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-material-design\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 250,\n columnNumber: 54\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 250,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"sneaky\",\n children: [/*#__PURE__*/_jsxDEV(\"input\", {\n type: \"checkbox\",\n id: \"contenttype\",\n checked: props.checked,\n onChange: udpateDisplayedItems\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 251,\n columnNumber: 35\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n for: \"contenttype\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-domino-mask\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 252,\n columnNumber: 36\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 252,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 251,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 248,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 205,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 204,\n columnNumber: 5\n }, this);\n}\n\n_c9 = ModalMenu;\n\nfunction Provider(props) {\n return /*#__PURE__*/_jsxDEV(\"tr\", {\n children: [/*#__PURE__*/_jsxDEV(\"td\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: props.provider.url,\n children: props.provider.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 262,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 262,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"td\", {\n children: props.provider.prefix\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 263,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 261,\n columnNumber: 5\n }, this);\n}\n\n_c10 = Provider;\n\nfunction ModalInit() {\n setDisplayedItems();\n return /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"modal_init\",\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n className: \"btn\",\n href: \"#modal\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify icon\",\n \"data-icon\": \"mdi-xbox-controller-menu\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 273,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 272,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 271,\n columnNumber: 5\n }, this);\n}\n\n_c11 = ModalInit;\nReactDOM.render( /*#__PURE__*/_jsxDEV(Homepage, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 280,\n columnNumber: 3\n}, this), document.getElementById('root')); //Functions below this line are for calculating data for\n//other functions\n\nfunction date() {\n let currentDate = new Date();\n let dateOptions = {\n weekday: \"long\",\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\"\n };\n let date = currentDate.toLocaleDateString(\"en-GB\", dateOptions);\n return date;\n}\n\nfunction fixDigits(k) {\n if (k < 10) {\n return \"0\" + k;\n } else {\n return k;\n }\n}\n\nfunction greet() {\n let currentTime = new Date();\n let greet = Math.floor(currentTime.getHours() / 6);\n let easterEggChance = Math.floor(Math.random() * 100);\n\n let greetings = require('./messages.json');\n\n let timeBased = [];\n let easterEggs = [];\n\n for (var i = 0; i < greetings.messages.length; i++) {\n if (greetings.messages[i].easteregg === \"FALSE\") {\n timeBased = timeBased.concat(greetings.messages[i]);\n } else {\n easterEggs = easterEggs.concat(greetings.messages[i]);\n }\n }\n\n if (easterEggChance > 10) {\n return timeBased[greet].message;\n } else {\n let easterEggText = Math.floor(Math.random() * easterEggs.length);\n return easterEggs[easterEggText].message;\n }\n}\n\nfunction Clock() {\n _s();\n\n const [date, setDate] = useState(new Date());\n\n function refreshClock() {\n setDate(new Date());\n }\n\n useEffect(() => {\n const timerId = setInterval(refreshClock, 1000);\n return function cleanup() {\n clearInterval(timerId);\n };\n }, []);\n var hour = date.getHours();\n var minutes = date.getMinutes(); //var seconds = date.getSeconds();\n\n var midday = \"AM\";\n midday = hour >= 12 ? \"PM\" : \"AM\";\n hour = hour === 0 ? 12 : hour > 12 ? hour - 12 : hour;\n minutes = fixDigits(minutes); //seconds = fixDigits(seconds);\n\n let time = hour + \":\" + minutes + \" \" + midday;\n return /*#__PURE__*/_jsxDEV(\"h2\", {\n id: \"clock\",\n children: time\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 351,\n columnNumber: 5\n }, this);\n}\n\n_s(Clock, \"Gqi45WOZhU2c0BLYX0HoJeiR0fk=\");\n\n_c12 = Clock;\n\nfunction getApps() {\n let applications = require('./apps.json');\n\n return applications;\n}\n\nfunction getLinks() {\n let links = require('./links.json');\n\n return links;\n}\n\nfunction getProviders() {\n let providers = require('./providers.json');\n\n return providers;\n}\n\nfunction getThemes() {\n let themes = require('./themes.json');\n\n return themes;\n}\n\nfunction updateTheme(e) {\n var themes = getThemes();\n var themeName = e.target.innerHTML.toLowerCase();\n var index = themes.themes.findIndex(function (item, i) {\n return item.name === themeName;\n });\n localStorage.setItem(\"image-background\", themes.themes[index].imagebackground);\n localStorage.setItem(\"color-background\", themes.themes[index].colorbackground);\n localStorage.setItem(\"color-search-background\", themes.themes[index].colorserachbackground);\n localStorage.setItem(\"color-text-pri\", themes.themes[index].colortextpri);\n localStorage.setItem(\"color-text-acc\", themes.themes[index].colortextacc);\n localStorage.setItem(\"color-border\", themes.themes[index].colorborder); //document.documentElement.style.setProperty(prop, `var(--${themeName}${prop.substring(10)})`);\n\n setTheme();\n}\n\nfunction setTheme() {\n setValueFromLocalStorage('image-background');\n setValueFromLocalStorage('color-background');\n setValueFromLocalStorage('color-search-background');\n setValueFromLocalStorage('color-text-pri');\n setValueFromLocalStorage('color-text-acc');\n setValueFromLocalStorage('color-border');\n setValueFromLocalStorage('content-display');\n}\n\nfunction handleKeyPress(e) {\n var sindex = 0;\n var cycle = false;\n var key = e.keyCode || e.which;\n var text = e.target.value.replaceAll(\"+\", \"%2B\");\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n\n if (key == 13) {\n // Search functions\n search(text);\n }\n\n if (key == 9) {\n // Tab Completion Functions\n e.preventDefault();\n e.stopPropagation();\n\n if (text[0] === ';') {\n switch (option) {\n case 't':\n var streamers = ['admiralbahroo', 'moonmoon_ow', 'witwix'];\n\n if (!subtext || cycle) {\n cycle = true;\n if (sindex > streamers.length - 1) sindex = 0;\n document.getElementById(\"keywords\").value = ';t ' + streamers[sindex++];\n return;\n }\n\n for (var streamer of streamers) {\n if (subtext === streamer.substr(0, subtext.length)) {\n document.getElementById(\"keywords\").value = ';t ' + streamer;\n return;\n }\n }\n\n break;\n }\n }\n }\n\n if (key == 32) {\n //Space to go to search\n updateLabel(text);\n }\n\n sindex = 0;\n cycle = false;\n updateLabel(text);\n}\n\nfunction updateLabel(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n\n if (text[0] === '/') {\n // if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n document.getElementById(\"searchType\").innerHTML = \"Allmusic search\";\n break;\n\n case \"d\":\n document.getElementById(\"searchType\").innerHTML = \"Duck Duck Go search\";\n break;\n\n case \"di\":\n document.getElementById(\"searchType\").innerHTML = \"Discogs search\";\n break;\n\n case \"i\":\n document.getElementById(\"searchType\").innerHTML = \"IMDB search\";\n break;\n\n case \"m\":\n document.getElementById(\"searchType\").innerHTML = \"TheMovieDB search\";\n break;\n\n case \"r\":\n document.getElementById(\"searchType\").innerHTML = \"Reddit search\";\n break;\n\n case \"q\":\n document.getElementById(\"searchType\").innerHTML = \"Qwant search\";\n break;\n\n case \"so\":\n document.getElementById(\"searchType\").innerHTML = \"Soundcloud search\";\n break;\n\n case \"s\":\n document.getElementById(\"searchType\").innerHTML = \"Spotify search\";\n break;\n\n case \"tv\":\n document.getElementById(\"searchType\").innerHTML = \"TheTVDB search\";\n break;\n\n case \"t\":\n document.getElementById(\"searchType\").innerHTML = \"Trakt search\";\n break;\n\n case \"y\":\n document.getElementById(\"searchType\").innerHTML = \"YouTube search\";\n break;\n\n case \"w\":\n document.getElementById(\"searchType\").innerHTML = \"Wikipedia search\";\n break;\n\n case \"p\":\n document.getElementById(\"searchType\").innerHTML = \"Plex search\";\n break;\n\n case \"rt\":\n document.getElementById(\"searchType\").innerHTML = \"Rotten Tomatoes search\";\n break;\n\n default:\n document.getElementById(\"searchType\").innerHTML = \"Invalid search\";\n break;\n }\n } else {\n document.getElementById(\"searchType\").innerHTML = \"Google search\";\n }\n}\n\nfunction search(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n\n if (text[0] === '/') {\n if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n window.location = \"https://www.allmusic.com/search/all/\" + subtext;\n break;\n\n case \"d\":\n window.location = \"https://duckduckgo.com/?q=\" + subtext;\n break;\n\n case \"di\":\n window.location = \"https://www.discogs.com/search/?q=\" + subtext;\n break;\n\n case \"i\":\n window.location = \"https://www.imdb.com/find?q=\" + subtext;\n break;\n\n case \"m\":\n window.location = \"https://www.themoviedb.org/search?query=\" + subtext;\n break;\n\n case \"r\":\n window.location = \"https://www.reddit.com/search?q=\" + subtext;\n break;\n\n case \"q\":\n window.location = \"https://www.qwant.com/?q=\" + subtext;\n break;\n\n case \"so\":\n window.location = \"https://soundcloud.com/search?q=\" + subtext;\n break;\n\n case \"s\":\n window.location = \"https://open.spotify.com/search/results/\" + subtext;\n break;\n\n case \"t\":\n window.location = \"https://trakt.tv/search?query=\" + subtext;\n break;\n\n case \"tv\":\n window.location = \"https://www.thetvdb.com/search?query=\" + subtext;\n break;\n\n case \"y\":\n window.location = \"https://www.youtube.com/results?search_query=\" + subtext;\n break;\n\n case \"w\":\n window.location = \"https://en.wikipedia.org/w/index.php?search=\" + subtext;\n break;\n\n case \"p\":\n window.location = \"https://app.plex.tv/desktop/#!/search?query=\" + subtext;\n break;\n\n case \"rt\":\n window.location = \"https://www.rottentomatoes.com/search?search=\" + subtext;\n break;\n }\n } else {\n var option = text.substr(1);\n\n switch (option) {\n case \"d\":\n window.location = \"https://www.duckduckgo.com\";\n break;\n\n case \"y\":\n window.location = \"https://www.youtube.com\";\n break;\n\n case \"r\":\n window.location = \"https://reddit.com\";\n break;\n\n case \"s\":\n window.location = \"https://open.spotify.com\";\n break;\n }\n }\n } else if (validURL(text)) {\n if (containsProtocol(text)) window.location = text;else window.location = \"https://\" + text;\n } else {\n window.location = \"https://www.google.com/search?q=\" + text;\n }\n}\n\nfunction validURL(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/)?' + // protocol\n '((([a-z\\\\d]([a-z\\\\d-]*[a-z\\\\d])*)\\\\.)+[a-z]{2,}|' + // domain name\n '((\\\\d{1,3}\\\\.){3}\\\\d{1,3}))' + // OR ip (v4) address\n '(\\\\:\\\\d+)?(\\\\/[-a-z\\\\d%_.~+]*)*' + // port and path\n '(\\\\?[;&a-z\\\\d%_.~+=-]*)?' + // query string\n '(\\\\#[-a-z\\\\d_]*)?$', 'i'); // fragment locator\n\n return !!pattern.test(str);\n}\n\nfunction containsProtocol(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/){1}.*', 'i');\n return !!pattern.test(str);\n}\n\nString.prototype.replaceAll = function (search, replacement) {\n var target = this;\n return target.split(search).join(replacement);\n};\n\nfunction udpateDisplayedItems(e) {\n localStorage.setItem('contenttype', e.target.checked);\n\n if (e.target.checked) {\n localStorage.setItem('content-display', 'none');\n } else {\n localStorage.setItem('content-display', 'block');\n }\n\n setDisplayedItems();\n}\n\nfunction setDisplayedItems() {\n setValueFromLocalStorage('contenttype');\n setValueFromLocalStorage('content-display');\n}\n\nvar _c, _c2, _c3, _c4, _c5, _c6, _c7, _c8, _c9, _c10, _c11, _c12;\n\n$RefreshReg$(_c, \"Homepage\");\n$RefreshReg$(_c2, \"Search\");\n$RefreshReg$(_c3, \"Header\");\n$RefreshReg$(_c4, \"Applications\");\n$RefreshReg$(_c5, \"App\");\n$RefreshReg$(_c6, \"Bookmarks\");\n$RefreshReg$(_c7, \"LinkGroups\");\n$RefreshReg$(_c8, \"LinkItem\");\n$RefreshReg$(_c9, \"ModalMenu\");\n$RefreshReg$(_c10, \"Provider\");\n$RefreshReg$(_c11, \"ModalInit\");\n$RefreshReg$(_c12, \"Clock\");","map":{"version":3,"sources":["/home/seanedmunds/dev/home-page/src/index.js"],"names":["React","useState","useEffect","ReactDOM","setValueFromLocalStorage","property","value","localStorage","getItem","setValue","document","documentElement","style","setProperty","input","querySelector","replace","Homepage","setTheme","checked","date","greet","Search","handleKeyPress","Header","props","Applications","appList","getApps","items","i","apps","length","safe","NSFW","NSFWEnabled","push","name","url","icon","App","classNameType","hrefUrl","iconName","Bookmarks","bookmarkList","getLinks","bookmarks","category","links","LinkGroups","LinkItem","link","ModalMenu","providers","getProviders","console","log","updateTheme","udpateDisplayedItems","Provider","provider","prefix","ModalInit","setDisplayedItems","render","getElementById","currentDate","Date","dateOptions","weekday","year","month","day","toLocaleDateString","fixDigits","k","currentTime","Math","floor","getHours","easterEggChance","random","greetings","require","timeBased","easterEggs","messages","easteregg","concat","message","easterEggText","Clock","setDate","refreshClock","timerId","setInterval","cleanup","clearInterval","hour","minutes","getMinutes","midday","time","applications","getThemes","themes","e","themeName","target","innerHTML","toLowerCase","index","findIndex","item","setItem","imagebackground","colorbackground","colorserachbackground","colortextpri","colortextacc","colorborder","sindex","cycle","key","keyCode","which","text","replaceAll","option","substr","indexOf","subtext","search","preventDefault","stopPropagation","streamers","streamer","updateLabel","window","location","validURL","containsProtocol","str","pattern","RegExp","test","String","prototype","replacement","split","join"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { useState, useEffect } from 'react';\nimport ReactDOM from 'react-dom';\n//import { unstable_createPortal } from 'react-dom';\nimport './index.css';\n\nconst setValueFromLocalStorage = property => {\n let value = localStorage.getItem(property);\n setValue(property, value);\n};\nconst setValue = (property, value) => {\n if (value) {\n document.documentElement.style.setProperty(`--${property}`, value);\n\n const input = document.querySelector(`#${property}`);\n if (input) {\n value = value.replace('px', '');\n input.value = value;\n }\n }\n};\n\nfunction Homepage() {\n setTheme();\n var checked = localStorage.getItem(\"contenttype\");\n return (\n \n \n \n
\n \n \n
\n \n \n \n
\n \n \n
\n \n \n
\n \n );\n}\n\nfunction Search() {\n return (\n \n )\n}\n\nfunction Header(props) {\n return (\n \n );\n}\n\nfunction Applications() {\n let appList = getApps();\n var items = [];\n for (var i = 0; i < appList.apps.length; i++) {\n var safe = appList.apps[i].NSFW;\n var NSFWEnabled = localStorage.getItem(\"contenttype\");\n if (safe === \"SAFE\") {\n items.push(\n \n );\n } else if (safe === \"NSFW\" && NSFWEnabled) {\n items.push(\n \n );\n } else {\n \n }\n \n }\n return (\n \n Applications
\n \n {items}\n
\n \n );\n}\n\nfunction App(props) {\n \n let classNameType = props.NSFW + \"-content\";\n let hrefUrl = \"https://\" + props.url;\n let iconName = \"mdi-\" + props.icon;\n return (\n \n );\n}\n\nfunction Bookmarks() {\n let bookmarkList = getLinks();\n var items = [];\n for (var i = 0; i < bookmarkList.bookmarks.length; i++) {\n items.push(\n \n );\n }\n return (\n \n Bookmarks
\n \n {items}\n
\n \n );\n}\n\nfunction LinkGroups(props) {\n var items = [];\n for (var i = 0; i < props.links.length; i++) {\n items.push(\n \n );\n }\n return (\n \n
{props.category}
\n {items}\n \n );\n}\n\nfunction LinkItem(props) {\n return (\n \n );\n}\n\nfunction ModalMenu(props) {\n var providers = getProviders();\n var items = [];\n console.log(props);\n for (var i = 0; i < providers.providers.length; i++) {\n items.push(\n \n );\n }\n return (\n \n \n \n\n
Color themes
\n\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n\n\n
Search options
\n
\n \n \n \n | Website | \n Prefix | \n
\n {items}\n \n
\n \n\n \n
\n \n );\n}\n\nfunction Provider(props) {\n return (\n \n | {props.provider.name} | \n {props.provider.prefix} | \n
\n );\n}\n\nfunction ModalInit() {\n setDisplayedItems();\n return (\n \n );\n}\n\nReactDOM.render(\n ,\n document.getElementById('root')\n);\n\n//Functions below this line are for calculating data for\n//other functions\n\nfunction date() {\n let currentDate = new Date();\n let dateOptions = {\n weekday: \"long\",\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\"\n };\n let date = currentDate.toLocaleDateString(\"en-GB\", dateOptions);\n return date;\n}\nfunction fixDigits(k) {\n if (k < 10) {\n return \"0\" + k;\n }\n else {\n return k;\n }\n}\nfunction greet() {\n let currentTime = new Date();\n let greet = Math.floor(currentTime.getHours() / 6);\n let easterEggChance = Math.floor(Math.random() * 100);\n let greetings = require('./messages.json');\n let timeBased = [];\n let easterEggs = [];\n for (var i = 0; i < greetings.messages.length; i++) {\n if (greetings.messages[i].easteregg === \"FALSE\") {\n timeBased = timeBased.concat(greetings.messages[i]);\n } else {\n easterEggs = easterEggs.concat(greetings.messages[i]);\n }\n }\n if (easterEggChance > 10) {\n return timeBased[greet].message;\n } else {\n let easterEggText = Math.floor(Math.random() * easterEggs.length);\n return easterEggs[easterEggText].message;\n }\n}\nfunction Clock() {\n const [date, setDate] = useState(new Date());\n\n function refreshClock() {\n setDate(new Date());\n }\n useEffect(() => {\n const timerId = setInterval(refreshClock, 1000);\n return function cleanup() {\n clearInterval(timerId);\n };\n }, []);\n\n var hour = date.getHours();\n var minutes = date.getMinutes();\n //var seconds = date.getSeconds();\n var midday = \"AM\";\n midday = (hour >= 12) ? \"PM\" : \"AM\";\n hour = (hour === 0) ? 12 : ((hour > 12) ? (hour - 12) : hour);\n minutes = fixDigits(minutes);\n //seconds = fixDigits(seconds);\n let time = hour + \":\" + minutes + \" \" + midday;\n\n return (\n {time}
\n\n );\n}\nfunction getApps() {\n let applications = require('./apps.json');\n return applications;\n}\nfunction getLinks() {\n let links = require('./links.json');\n return links;\n}\nfunction getProviders() {\n let providers = require('./providers.json');\n return providers;\n}\nfunction getThemes() {\n let themes = require('./themes.json');\n return themes;\n}\nfunction updateTheme(e) {\n var themes = getThemes();\n var themeName = e.target.innerHTML.toLowerCase();\n var index = themes.themes.findIndex(function(item, i){\n return item.name === themeName\n });\n localStorage.setItem(\"image-background\", themes.themes[index].imagebackground);\n localStorage.setItem(\"color-background\", themes.themes[index].colorbackground);\n localStorage.setItem(\"color-search-background\", themes.themes[index].colorserachbackground);\n localStorage.setItem(\"color-text-pri\",themes.themes[index].colortextpri);\n localStorage.setItem(\"color-text-acc\", themes.themes[index].colortextacc);\n localStorage.setItem(\"color-border\", themes.themes[index].colorborder);\n \n //document.documentElement.style.setProperty(prop, `var(--${themeName}${prop.substring(10)})`);\n setTheme();\n}\nfunction setTheme() {\n setValueFromLocalStorage('image-background');\n setValueFromLocalStorage('color-background');\n setValueFromLocalStorage('color-search-background');\n setValueFromLocalStorage('color-text-pri');\n setValueFromLocalStorage('color-text-acc');\n setValueFromLocalStorage('color-border');\n setValueFromLocalStorage('content-display');\n}\nfunction handleKeyPress(e) {\n var sindex = 0;\n var cycle = false;\n var key = e.keyCode || e.which;\n var text = e.target.value.replaceAll(\"+\", \"%2B\");\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n if (key == 13) { // Search functions\n search(text);\n }\n if (key == 9) { // Tab Completion Functions\n e.preventDefault();\n e.stopPropagation();\n if (text[0] === ';') {\n switch (option) {\n case 't':\n var streamers = ['admiralbahroo', 'moonmoon_ow', 'witwix'];\n if (!subtext || cycle) {\n cycle = true;\n if (sindex > streamers.length - 1) sindex = 0;\n document.getElementById(\"keywords\").value = ';t ' + streamers[sindex++];\n return;\n }\n for (var streamer of streamers) {\n if (subtext === streamer.substr(0, subtext.length)) {\n document.getElementById(\"keywords\").value = ';t ' + streamer;\n return;\n }\n }\n break;\n }\n }\n }\n if(key == 32){ //Space to go to search\nupdateLabel(text);\n }\n sindex = 0;\n cycle = false;\n updateLabel(text);\n}\nfunction updateLabel(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n if (text[0] === '/') {\n// if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n document.getElementById(\"searchType\").innerHTML = \"Allmusic search\";\n break;\n case \"d\":\n document.getElementById(\"searchType\").innerHTML = \"Duck Duck Go search\";\n break;\n case \"di\":\n document.getElementById(\"searchType\").innerHTML = \"Discogs search\";\n break;\n case \"i\":\n document.getElementById(\"searchType\").innerHTML = \"IMDB search\";\n break;\n case \"m\":\n document.getElementById(\"searchType\").innerHTML = \"TheMovieDB search\";\n break;\n case \"r\":\n document.getElementById(\"searchType\").innerHTML = \"Reddit search\";\n break;\n case \"q\":\n document.getElementById(\"searchType\").innerHTML = \"Qwant search\";\n break;\n case \"so\":\n document.getElementById(\"searchType\").innerHTML = \"Soundcloud search\";\n break;\n case \"s\":\n document.getElementById(\"searchType\").innerHTML = \"Spotify search\";\n break;\n case \"tv\":\n document.getElementById(\"searchType\").innerHTML = \"TheTVDB search\";\n break;\n case \"t\":\n document.getElementById(\"searchType\").innerHTML = \"Trakt search\";\n break;\n case \"y\":\n document.getElementById(\"searchType\").innerHTML = \"YouTube search\";\n break;\n case \"w\":\n document.getElementById(\"searchType\").innerHTML = \"Wikipedia search\";\n break;\n case \"p\":\n document.getElementById(\"searchType\").innerHTML = \"Plex search\";\n break;\n case \"rt\":\n document.getElementById(\"searchType\").innerHTML = \"Rotten Tomatoes search\";\n break;\n default:\n document.getElementById(\"searchType\").innerHTML = \"Invalid search\";\n break;\n }\n}else {\n document.getElementById(\"searchType\").innerHTML = \"Google search\";\n }\n}\nfunction search(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n if (text[0] === '/') {\n if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n window.location = \"https://www.allmusic.com/search/all/\" + subtext;\n break;\n case \"d\":\n window.location = \"https://duckduckgo.com/?q=\" + subtext;\n break;\n case \"di\":\n window.location = \"https://www.discogs.com/search/?q=\" + subtext;\n break;\n case \"i\":\n window.location = \"https://www.imdb.com/find?q=\" + subtext;\n break;\n case \"m\":\n window.location = \"https://www.themoviedb.org/search?query=\" + subtext;\n break;\n case \"r\":\n window.location = \"https://www.reddit.com/search?q=\" + subtext;\n break;\n case \"q\":\n window.location = \"https://www.qwant.com/?q=\" + subtext;\n break;\n case \"so\":\n window.location = \"https://soundcloud.com/search?q=\" + subtext;\n break;\n case \"s\":\n window.location = \"https://open.spotify.com/search/results/\" + subtext;\n break;\n case \"t\":\n window.location = \"https://trakt.tv/search?query=\" + subtext;\n break;\n case \"tv\":\n window.location = \"https://www.thetvdb.com/search?query=\" + subtext;\n break;\n case \"y\":\n window.location = \"https://www.youtube.com/results?search_query=\" + subtext;\n break;\n case \"w\":\n window.location = \"https://en.wikipedia.org/w/index.php?search=\" + subtext;\n break;\n case \"p\":\n window.location = \"https://app.plex.tv/desktop/#!/search?query=\" + subtext;\n break;\n case \"rt\":\n window.location = \"https://www.rottentomatoes.com/search?search=\" + subtext;\n break;\n }\n } else {\n var option = text.substr(1);\n switch (option) {\n case \"d\":\n window.location = \"https://www.duckduckgo.com\";\n break;\n case \"y\":\n window.location = \"https://www.youtube.com\";\n break;\n case \"r\":\n window.location = \"https://reddit.com\";\n break;\n case \"s\":\n window.location = \"https://open.spotify.com\";\n break;\n }\n }\n } else if (validURL(text)) {\n if (containsProtocol(text))\n window.location = text;\n else\n window.location = \"https://\" + text;\n } else {\n window.location = \"https://www.google.com/search?q=\" + text;\n }\n}\nfunction validURL(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/)?' + // protocol\n '((([a-z\\\\d]([a-z\\\\d-]*[a-z\\\\d])*)\\\\.)+[a-z]{2,}|' + // domain name\n '((\\\\d{1,3}\\\\.){3}\\\\d{1,3}))' + // OR ip (v4) address\n '(\\\\:\\\\d+)?(\\\\/[-a-z\\\\d%_.~+]*)*' + // port and path\n '(\\\\?[;&a-z\\\\d%_.~+=-]*)?' + // query string\n '(\\\\#[-a-z\\\\d_]*)?$', 'i'); // fragment locator\n return !!pattern.test(str);\n}\nfunction containsProtocol(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/){1}.*', 'i');\n return !!pattern.test(str);\n}\nString.prototype.replaceAll = function(search, replacement) {\n var target = this;\n return target.split(search).join(replacement);\n};\nfunction udpateDisplayedItems(e) {\n localStorage.setItem('contenttype', e.target.checked);\n if (e.target.checked) {\n localStorage.setItem('content-display', 'none');\n } else {\n localStorage.setItem('content-display', 'block');\n }\n setDisplayedItems();\n}\nfunction setDisplayedItems() {\n setValueFromLocalStorage('contenttype');\n setValueFromLocalStorage('content-display');\n}"]},"metadata":{},"sourceType":"module"}
\ No newline at end of file
diff --git a/node_modules/.cache/babel-loader/97aeb24973b81e20dc3298daa8cf1203.json b/node_modules/.cache/babel-loader/97aeb24973b81e20dc3298daa8cf1203.json
new file mode 100644
index 00000000..9180408e
--- /dev/null
+++ b/node_modules/.cache/babel-loader/97aeb24973b81e20dc3298daa8cf1203.json
@@ -0,0 +1 @@
+{"ast":null,"code":"var _jsxFileName = \"/home/seanedmunds/dev/home-page/src/index.js\",\n _s = $RefreshSig$();\n\nimport React from 'react';\nimport { useState, useEffect } from 'react';\nimport ReactDOM from 'react-dom'; //import { unstable_createPortal } from 'react-dom';\n\nimport './index.css';\nimport { jsxDEV as _jsxDEV } from \"react/jsx-dev-runtime\";\n\nconst setValueFromLocalStorage = property => {\n let value = localStorage.getItem(property);\n setValue(property, value);\n};\n\nconst setValue = (property, value) => {\n if (value) {\n document.documentElement.style.setProperty(`--${property}`, value);\n const input = document.querySelector(`#${property}`);\n\n if (input) {\n value = value.replace('px', '');\n input.value = value;\n }\n }\n};\n\nfunction Homepage() {\n setTheme();\n return /*#__PURE__*/_jsxDEV(\"main\", {\n id: \"container\",\n className: \"fade\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Search, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 28,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 27,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Header, {\n date: date(),\n greet: greet()\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 31,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 30,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Applications, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 37,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 36,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Bookmarks, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 40,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 39,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(ModalMenu, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 43,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 42,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(ModalInit, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 46,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 45,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 26,\n columnNumber: 5\n }, this);\n}\n\n_c = Homepage;\n\nfunction Search() {\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"search\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"abackground\",\n children: [/*#__PURE__*/_jsxDEV(\"input\", {\n name: \"keywords\",\n type: \"text\",\n className: \"keyword\",\n id: \"keywords\",\n size: \"50\",\n spellCheck: \"true\",\n placeholder: \"\"\n /*onFocus={this.placeholder = \"\"} onBlur={this.placeholder = ''}*/\n ,\n autoComplete: \"off\",\n autoFocus: true,\n onKeyUp: handleKeyPress\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 56,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n id: \"searchType\",\n className: \"Input-label\",\n children: \"Google search\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 57,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 55,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 54,\n columnNumber: 5\n }, this);\n}\n\n_c2 = Search;\n\nfunction Header(props) {\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"header\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n id: \"greeting_block\",\n children: /*#__PURE__*/_jsxDEV(\"h1\", {\n id: \"header_greet\",\n children: props.greet\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 67,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 66,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"date_block\",\n children: [/*#__PURE__*/_jsxDEV(\"h2\", {\n id: \"header_date\",\n children: props.date\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 70,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(Clock, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 71,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 69,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 65,\n columnNumber: 5\n }, this);\n}\n\n_c3 = Header;\n\nfunction Applications() {\n let appList = getApps();\n var items = [];\n\n for (var i = 0; i < appList.apps.length; i++) {\n var safe = appList.apps[i].NSFW;\n var NSFWEnabled = localStorage.getItem(\"contenttype\");\n console.log(safe);\n\n if (safe === \"SAFE\") {\n items.push( /*#__PURE__*/_jsxDEV(App, {\n name: appList.apps[i].name,\n url: appList.apps[i].url,\n icon: appList.apps[i].icon,\n NSFW: appList.apps[i].NSFW\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 86,\n columnNumber: 9\n }, this));\n } else if (safe === \"NSFW\" && NSFWEnabled) {\n items.push( /*#__PURE__*/_jsxDEV(App, {\n name: appList.apps[i].name,\n url: appList.apps[i].url,\n icon: appList.apps[i].icon,\n NSFW: appList.apps[i].NSFW\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 96,\n columnNumber: 9\n }, this));\n } else {\n console.log(NSFWEnabled);\n }\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"apps\",\n children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n children: \"Applications\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 111,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"apps_loop\",\n children: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 112,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 110,\n columnNumber: 5\n }, this);\n}\n\n_c4 = Applications;\n\nfunction App(props) {\n let classNameType = props.NSFW + \"-content\";\n let hrefUrl = \"https://\" + props.url;\n let iconName = \"mdi-\" + props.icon;\n return /*#__PURE__*/_jsxDEV(\"div\", {\n className: classNameType,\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: hrefUrl,\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_item\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_icon\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify icon\",\n \"data-icon\": iconName\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 129,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 128,\n columnNumber: 13\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_text\",\n children: [/*#__PURE__*/_jsxDEV(\"span\", {\n id: \"app-name\",\n children: props.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 132,\n columnNumber: 15\n }, this), /*#__PURE__*/_jsxDEV(\"span\", {\n id: \"app-address\",\n children: props.url\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 133,\n columnNumber: 15\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 131,\n columnNumber: 13\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 127,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 126,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 125,\n columnNumber: 7\n }, this);\n}\n\n_c5 = App;\n\nfunction Bookmarks() {\n let bookmarkList = getLinks();\n var items = [];\n\n for (var i = 0; i < bookmarkList.bookmarks.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(LinkGroups, {\n category: bookmarkList.bookmarks[i].category,\n links: bookmarkList.bookmarks[i].links\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 146,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"links\",\n children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n children: \"Bookmarks\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 155,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"links_loop\",\n children: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 156,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 154,\n columnNumber: 5\n }, this);\n}\n\n_c6 = Bookmarks;\n\nfunction LinkGroups(props) {\n var items = [];\n\n for (var i = 0; i < props.links.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(LinkItem, {\n link: props.links[i]\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 167,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"links_item\",\n children: [/*#__PURE__*/_jsxDEV(\"h4\", {\n children: props.category\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 175,\n columnNumber: 7\n }, this), items]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 174,\n columnNumber: 5\n }, this);\n}\n\n_c7 = LinkGroups;\n\nfunction LinkItem(props) {\n return /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: props.link.url,\n className: \"theme_color-border theme_text-select\",\n children: props.link.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 184,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 183,\n columnNumber: 5\n }, this);\n}\n\n_c8 = LinkItem;\n\nfunction ModalMenu() {\n var providers = getProviders();\n var items = [];\n\n for (var i = 0; i < providers.providers.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(Provider, {\n provider: providers.providers[i]\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 194,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"modal\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n children: [/*#__PURE__*/_jsxDEV(\"header\", {\n id: \"modal-header\",\n children: [/*#__PURE__*/_jsxDEV(\"h1\", {\n children: \"Options\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 204,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n href: \"#\",\n title: \"Close\",\n className: \"modal-close\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-close\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 206,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 205,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 203,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"h2\", {\n children: \"Color themes\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 210,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"modal-theme\",\n children: [/*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"blackboard\",\n className: \"theme-button theme-blackboard\",\n onClick: updateTheme,\n children: \"Blackboard\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 213,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"gazette\",\n className: \"theme-button theme-gazette\",\n onClick: updateTheme,\n children: \"Gazette\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 214,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"espresso\",\n className: \"theme-button theme-espresso\",\n onClick: updateTheme,\n children: \"Espresso\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 215,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cab\",\n className: \"theme-button theme-cab\",\n onClick: updateTheme,\n children: \"Cab\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 216,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cloud\",\n className: \"theme-button theme-cloud\",\n onClick: updateTheme,\n children: \"Cloud\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 217,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"lime\",\n className: \"theme-button theme-lime\",\n onClick: updateTheme,\n children: \"Lime\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 218,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"passion\",\n className: \"theme-button theme-passion\",\n onClick: updateTheme,\n children: \"Passion\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 219,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"blues\",\n className: \"theme-button theme-blues\",\n onClick: updateTheme,\n children: \"Blues\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 220,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"chalk\",\n className: \"theme-button theme-chalk\",\n onClick: updateTheme,\n children: \"Chalk\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 221,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"tron\",\n className: \"theme-button theme-tron\",\n onClick: updateTheme,\n children: \"Tron\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 222,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"paper\",\n className: \"theme-button theme-paper\",\n onClick: updateTheme,\n children: \"Paper\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 223,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cyberpunk\",\n className: \"theme-button theme-cyberpunk\",\n onClick: updateTheme,\n children: \"Cyberpunk\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 224,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"quadra\",\n className: \"theme-button theme-panam\",\n onClick: updateTheme,\n children: \"Quadra\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 225,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"panam\",\n className: \"theme-button theme-panam\",\n onClick: updateTheme,\n children: \"Panam\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 226,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"touch\",\n className: \"theme-button theme-touch\",\n onClick: updateTheme,\n children: \"Touch\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 227,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"peek\",\n className: \"theme-button theme-peek\",\n onClick: updateTheme,\n children: \"Peek\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 228,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 212,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"h2\", {\n children: \"Search options\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 232,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"providers\",\n children: /*#__PURE__*/_jsxDEV(\"table\", {\n children: /*#__PURE__*/_jsxDEV(\"tbody\", {\n children: [/*#__PURE__*/_jsxDEV(\"tr\", {\n children: [/*#__PURE__*/_jsxDEV(\"th\", {\n children: \"Website\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 237,\n columnNumber: 19\n }, this), /*#__PURE__*/_jsxDEV(\"th\", {\n children: \"Prefix\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 238,\n columnNumber: 19\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 236,\n columnNumber: 17\n }, this), items]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 235,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 234,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 233,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"header\", {\n id: \"modal-footer\",\n children: [/*#__PURE__*/_jsxDEV(\"a\", {\n href: \"https://github.com/jeroenpardon/\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-github-box\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 246,\n columnNumber: 54\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 246,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n href: \"https://materialdesignicons.com/\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-material-design\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 247,\n columnNumber: 54\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 247,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"sneaky\",\n children: [/*#__PURE__*/_jsxDEV(\"input\", {\n type: \"checkbox\",\n id: \"contenttype\",\n onChange: udpateDisplayedItems\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 248,\n columnNumber: 35\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n for: \"contenttype\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-domino-mask\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 249,\n columnNumber: 36\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 249,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 248,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 245,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 202,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 201,\n columnNumber: 5\n }, this);\n}\n\n_c9 = ModalMenu;\n\nfunction Provider(props) {\n return /*#__PURE__*/_jsxDEV(\"tr\", {\n children: [/*#__PURE__*/_jsxDEV(\"td\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: props.provider.url,\n children: props.provider.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 259,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 259,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"td\", {\n children: props.provider.prefix\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 260,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 258,\n columnNumber: 5\n }, this);\n}\n\n_c10 = Provider;\n\nfunction ModalInit() {\n setDisplayedItems();\n return /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"modal_init\",\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n className: \"btn\",\n href: \"#modal\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify icon\",\n \"data-icon\": \"mdi-xbox-controller-menu\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 270,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 269,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 268,\n columnNumber: 5\n }, this);\n}\n\n_c11 = ModalInit;\nReactDOM.render( /*#__PURE__*/_jsxDEV(Homepage, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 277,\n columnNumber: 3\n}, this), document.getElementById('root')); //Functions below this line are for calculating data for\n//other functions\n\nfunction date() {\n let currentDate = new Date();\n let dateOptions = {\n weekday: \"long\",\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\"\n };\n let date = currentDate.toLocaleDateString(\"en-GB\", dateOptions);\n return date;\n}\n\nfunction fixDigits(k) {\n if (k < 10) {\n return \"0\" + k;\n } else {\n return k;\n }\n}\n\nfunction greet() {\n let currentTime = new Date();\n let greet = Math.floor(currentTime.getHours() / 6);\n let easterEggChance = Math.floor(Math.random() * 100);\n\n let greetings = require('./messages.json');\n\n let timeBased = [];\n let easterEggs = [];\n\n for (var i = 0; i < greetings.messages.length; i++) {\n if (greetings.messages[i].easteregg === \"FALSE\") {\n timeBased = timeBased.concat(greetings.messages[i]);\n } else {\n easterEggs = easterEggs.concat(greetings.messages[i]);\n }\n }\n\n if (easterEggChance > 10) {\n return timeBased[greet].message;\n } else {\n let easterEggText = Math.floor(Math.random() * easterEggs.length);\n return easterEggs[easterEggText].message;\n }\n}\n\nfunction Clock() {\n _s();\n\n const [date, setDate] = useState(new Date());\n\n function refreshClock() {\n setDate(new Date());\n }\n\n useEffect(() => {\n const timerId = setInterval(refreshClock, 1000);\n return function cleanup() {\n clearInterval(timerId);\n };\n }, []);\n var hour = date.getHours();\n var minutes = date.getMinutes(); //var seconds = date.getSeconds();\n\n var midday = \"AM\";\n midday = hour >= 12 ? \"PM\" : \"AM\";\n hour = hour === 0 ? 12 : hour > 12 ? hour - 12 : hour;\n minutes = fixDigits(minutes); //seconds = fixDigits(seconds);\n\n let time = hour + \":\" + minutes + \" \" + midday;\n return /*#__PURE__*/_jsxDEV(\"h2\", {\n id: \"clock\",\n children: time\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 348,\n columnNumber: 5\n }, this);\n}\n\n_s(Clock, \"Gqi45WOZhU2c0BLYX0HoJeiR0fk=\");\n\n_c12 = Clock;\n\nfunction getApps() {\n let applications = require('./apps.json');\n\n return applications;\n}\n\nfunction getLinks() {\n let links = require('./links.json');\n\n return links;\n}\n\nfunction getProviders() {\n let providers = require('./providers.json');\n\n return providers;\n}\n\nfunction getThemes() {\n let themes = require('./themes.json');\n\n return themes;\n}\n\nfunction updateTheme(e) {\n var themes = getThemes();\n var themeName = e.target.innerHTML.toLowerCase();\n var index = themes.themes.findIndex(function (item, i) {\n return item.name === themeName;\n });\n console.log(themes.themes[index]);\n localStorage.setItem(\"image-background\", themes.themes[index].imagebackground);\n localStorage.setItem(\"color-background\", themes.themes[index].colorbackground);\n localStorage.setItem(\"color-search-background\", themes.themes[index].colorserachbackground);\n localStorage.setItem(\"color-text-pri\", themes.themes[index].colortextpri);\n localStorage.setItem(\"color-text-acc\", themes.themes[index].colortextacc);\n localStorage.setItem(\"color-border\", themes.themes[index].colorborder); //document.documentElement.style.setProperty(prop, `var(--${themeName}${prop.substring(10)})`);\n\n setTheme();\n}\n\nfunction setTheme() {\n setValueFromLocalStorage('image-background');\n setValueFromLocalStorage('color-background');\n setValueFromLocalStorage('color-search-background');\n setValueFromLocalStorage('color-text-pri');\n setValueFromLocalStorage('color-text-acc');\n setValueFromLocalStorage('color-border');\n setValueFromLocalStorage('content-display');\n}\n\nfunction handleKeyPress(e) {\n var sindex = 0;\n var cycle = false;\n var key = e.keyCode || e.which;\n var text = e.target.value.replaceAll(\"+\", \"%2B\");\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n\n if (key == 13) {\n // Search functions\n search(text);\n }\n\n if (key == 9) {\n // Tab Completion Functions\n e.preventDefault();\n e.stopPropagation();\n\n if (text[0] === ';') {\n switch (option) {\n case 't':\n var streamers = ['admiralbahroo', 'moonmoon_ow', 'witwix'];\n\n if (!subtext || cycle) {\n cycle = true;\n if (sindex > streamers.length - 1) sindex = 0;\n document.getElementById(\"keywords\").value = ';t ' + streamers[sindex++];\n return;\n }\n\n for (var streamer of streamers) {\n if (subtext === streamer.substr(0, subtext.length)) {\n document.getElementById(\"keywords\").value = ';t ' + streamer;\n return;\n }\n }\n\n break;\n }\n }\n }\n\n if (key == 32) {\n //Space to go to search\n updateLabel(text);\n }\n\n sindex = 0;\n cycle = false;\n updateLabel(text);\n}\n\nfunction updateLabel(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n\n if (text[0] === '/') {\n // if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n document.getElementById(\"searchType\").innerHTML = \"Allmusic search\";\n break;\n\n case \"d\":\n document.getElementById(\"searchType\").innerHTML = \"Duck Duck Go search\";\n break;\n\n case \"di\":\n document.getElementById(\"searchType\").innerHTML = \"Discogs search\";\n break;\n\n case \"i\":\n document.getElementById(\"searchType\").innerHTML = \"IMDB search\";\n break;\n\n case \"m\":\n document.getElementById(\"searchType\").innerHTML = \"TheMovieDB search\";\n break;\n\n case \"r\":\n document.getElementById(\"searchType\").innerHTML = \"Reddit search\";\n break;\n\n case \"q\":\n document.getElementById(\"searchType\").innerHTML = \"Qwant search\";\n break;\n\n case \"so\":\n document.getElementById(\"searchType\").innerHTML = \"Soundcloud search\";\n break;\n\n case \"s\":\n document.getElementById(\"searchType\").innerHTML = \"Spotify search\";\n break;\n\n case \"tv\":\n document.getElementById(\"searchType\").innerHTML = \"TheTVDB search\";\n break;\n\n case \"t\":\n document.getElementById(\"searchType\").innerHTML = \"Trakt search\";\n break;\n\n case \"y\":\n document.getElementById(\"searchType\").innerHTML = \"YouTube search\";\n break;\n\n case \"w\":\n document.getElementById(\"searchType\").innerHTML = \"Wikipedia search\";\n break;\n\n case \"p\":\n document.getElementById(\"searchType\").innerHTML = \"Plex search\";\n break;\n\n case \"rt\":\n document.getElementById(\"searchType\").innerHTML = \"Rotten Tomatoes search\";\n break;\n\n default:\n document.getElementById(\"searchType\").innerHTML = \"Invalid search\";\n break;\n }\n } else {\n document.getElementById(\"searchType\").innerHTML = \"Google search\";\n }\n}\n\nfunction search(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n\n if (text[0] === '/') {\n if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n window.location = \"https://www.allmusic.com/search/all/\" + subtext;\n break;\n\n case \"d\":\n window.location = \"https://duckduckgo.com/?q=\" + subtext;\n break;\n\n case \"di\":\n window.location = \"https://www.discogs.com/search/?q=\" + subtext;\n break;\n\n case \"i\":\n window.location = \"https://www.imdb.com/find?q=\" + subtext;\n break;\n\n case \"m\":\n window.location = \"https://www.themoviedb.org/search?query=\" + subtext;\n break;\n\n case \"r\":\n window.location = \"https://www.reddit.com/search?q=\" + subtext;\n break;\n\n case \"q\":\n window.location = \"https://www.qwant.com/?q=\" + subtext;\n break;\n\n case \"so\":\n window.location = \"https://soundcloud.com/search?q=\" + subtext;\n break;\n\n case \"s\":\n window.location = \"https://open.spotify.com/search/results/\" + subtext;\n break;\n\n case \"t\":\n window.location = \"https://trakt.tv/search?query=\" + subtext;\n break;\n\n case \"tv\":\n window.location = \"https://www.thetvdb.com/search?query=\" + subtext;\n break;\n\n case \"y\":\n window.location = \"https://www.youtube.com/results?search_query=\" + subtext;\n break;\n\n case \"w\":\n window.location = \"https://en.wikipedia.org/w/index.php?search=\" + subtext;\n break;\n\n case \"p\":\n window.location = \"https://app.plex.tv/desktop/#!/search?query=\" + subtext;\n break;\n\n case \"rt\":\n window.location = \"https://www.rottentomatoes.com/search?search=\" + subtext;\n break;\n }\n } else {\n var option = text.substr(1);\n\n switch (option) {\n case \"d\":\n window.location = \"https://www.duckduckgo.com\";\n break;\n\n case \"y\":\n window.location = \"https://www.youtube.com\";\n break;\n\n case \"r\":\n window.location = \"https://reddit.com\";\n break;\n\n case \"s\":\n window.location = \"https://open.spotify.com\";\n break;\n }\n }\n } else if (validURL(text)) {\n if (containsProtocol(text)) window.location = text;else window.location = \"https://\" + text;\n } else {\n window.location = \"https://www.google.com/search?q=\" + text;\n }\n} // Source: https://stackoverflow.com/questions/5717093/check-if-a-javascript-string-is-a-url\n\n\nfunction validURL(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/)?' + // protocol\n '((([a-z\\\\d]([a-z\\\\d-]*[a-z\\\\d])*)\\\\.)+[a-z]{2,}|' + // domain name\n '((\\\\d{1,3}\\\\.){3}\\\\d{1,3}))' + // OR ip (v4) address\n '(\\\\:\\\\d+)?(\\\\/[-a-z\\\\d%_.~+]*)*' + // port and path\n '(\\\\?[;&a-z\\\\d%_.~+=-]*)?' + // query string\n '(\\\\#[-a-z\\\\d_]*)?$', 'i'); // fragment locator\n\n return !!pattern.test(str);\n}\n\nfunction containsProtocol(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/){1}.*', 'i');\n return !!pattern.test(str);\n}\n\nString.prototype.replaceAll = function (search, replacement) {\n var target = this;\n return target.split(search).join(replacement);\n};\n\nfunction udpateDisplayedItems(e) {\n localStorage.setItem('contenttype', e.target.checked);\n\n if (e.target.checked) {\n localStorage.setItem('content-display', 'none');\n } else {\n localStorage.setItem('content-display', 'block');\n }\n\n setDisplayedItems();\n}\n\nfunction setDisplayedItems() {\n setValueFromLocalStorage('contenttype');\n setValueFromLocalStorage('content-display');\n var checked = localStorage.getItem(\"contenttype\");\n document.getElementById('contenttype').checked = checked;\n}\n\nvar _c, _c2, _c3, _c4, _c5, _c6, _c7, _c8, _c9, _c10, _c11, _c12;\n\n$RefreshReg$(_c, \"Homepage\");\n$RefreshReg$(_c2, \"Search\");\n$RefreshReg$(_c3, \"Header\");\n$RefreshReg$(_c4, \"Applications\");\n$RefreshReg$(_c5, \"App\");\n$RefreshReg$(_c6, \"Bookmarks\");\n$RefreshReg$(_c7, \"LinkGroups\");\n$RefreshReg$(_c8, \"LinkItem\");\n$RefreshReg$(_c9, \"ModalMenu\");\n$RefreshReg$(_c10, \"Provider\");\n$RefreshReg$(_c11, \"ModalInit\");\n$RefreshReg$(_c12, \"Clock\");","map":{"version":3,"sources":["/home/seanedmunds/dev/home-page/src/index.js"],"names":["React","useState","useEffect","ReactDOM","setValueFromLocalStorage","property","value","localStorage","getItem","setValue","document","documentElement","style","setProperty","input","querySelector","replace","Homepage","setTheme","date","greet","Search","handleKeyPress","Header","props","Applications","appList","getApps","items","i","apps","length","safe","NSFW","NSFWEnabled","console","log","push","name","url","icon","App","classNameType","hrefUrl","iconName","Bookmarks","bookmarkList","getLinks","bookmarks","category","links","LinkGroups","LinkItem","link","ModalMenu","providers","getProviders","updateTheme","udpateDisplayedItems","Provider","provider","prefix","ModalInit","setDisplayedItems","render","getElementById","currentDate","Date","dateOptions","weekday","year","month","day","toLocaleDateString","fixDigits","k","currentTime","Math","floor","getHours","easterEggChance","random","greetings","require","timeBased","easterEggs","messages","easteregg","concat","message","easterEggText","Clock","setDate","refreshClock","timerId","setInterval","cleanup","clearInterval","hour","minutes","getMinutes","midday","time","applications","getThemes","themes","e","themeName","target","innerHTML","toLowerCase","index","findIndex","item","setItem","imagebackground","colorbackground","colorserachbackground","colortextpri","colortextacc","colorborder","sindex","cycle","key","keyCode","which","text","replaceAll","option","substr","indexOf","subtext","search","preventDefault","stopPropagation","streamers","streamer","updateLabel","window","location","validURL","containsProtocol","str","pattern","RegExp","test","String","prototype","replacement","split","join","checked"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { useState, useEffect } from 'react';\nimport ReactDOM from 'react-dom';\n//import { unstable_createPortal } from 'react-dom';\nimport './index.css';\n\nconst setValueFromLocalStorage = property => {\n let value = localStorage.getItem(property);\n setValue(property, value);\n};\nconst setValue = (property, value) => {\n if (value) {\n document.documentElement.style.setProperty(`--${property}`, value);\n\n const input = document.querySelector(`#${property}`);\n if (input) {\n value = value.replace('px', '');\n input.value = value;\n }\n }\n};\n\nfunction Homepage() {\n setTheme();\n return (\n \n \n \n
\n \n \n
\n \n \n \n
\n \n \n
\n \n \n
\n \n );\n}\n\nfunction Search() {\n return (\n \n )\n}\n\nfunction Header(props) {\n return (\n \n );\n}\n\nfunction Applications() {\n let appList = getApps();\n var items = [];\n for (var i = 0; i < appList.apps.length; i++) {\n var safe = appList.apps[i].NSFW;\n var NSFWEnabled = localStorage.getItem(\"contenttype\");\n console.log(safe);\n if (safe === \"SAFE\") {\n items.push(\n \n );\n } else if (safe === \"NSFW\" && NSFWEnabled) {\n items.push(\n \n );\n } else {\n console.log(NSFWEnabled);\n }\n \n }\n return (\n \n Applications
\n \n {items}\n
\n \n );\n}\n\nfunction App(props) {\n \n let classNameType = props.NSFW + \"-content\";\n let hrefUrl = \"https://\" + props.url;\n let iconName = \"mdi-\" + props.icon;\n return (\n \n );\n}\n\nfunction Bookmarks() {\n let bookmarkList = getLinks();\n var items = [];\n for (var i = 0; i < bookmarkList.bookmarks.length; i++) {\n items.push(\n \n );\n }\n return (\n \n Bookmarks
\n \n {items}\n
\n \n );\n}\n\nfunction LinkGroups(props) {\n var items = [];\n for (var i = 0; i < props.links.length; i++) {\n items.push(\n \n );\n }\n return (\n \n
{props.category}
\n {items}\n \n );\n}\n\nfunction LinkItem(props) {\n return (\n \n );\n}\n\nfunction ModalMenu() {\n var providers = getProviders();\n var items = [];\n for (var i = 0; i < providers.providers.length; i++) {\n items.push(\n \n );\n }\n return (\n \n \n \n\n
Color themes
\n\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n\n\n
Search options
\n
\n \n \n \n | Website | \n Prefix | \n
\n {items}\n \n
\n \n\n \n
\n \n );\n}\n\nfunction Provider(props) {\n return (\n \n | {props.provider.name} | \n {props.provider.prefix} | \n
\n );\n}\n\nfunction ModalInit() {\n setDisplayedItems();\n return (\n \n );\n}\n\nReactDOM.render(\n ,\n document.getElementById('root')\n);\n\n//Functions below this line are for calculating data for\n//other functions\n\nfunction date() {\n let currentDate = new Date();\n let dateOptions = {\n weekday: \"long\",\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\"\n };\n let date = currentDate.toLocaleDateString(\"en-GB\", dateOptions);\n return date;\n}\nfunction fixDigits(k) {\n if (k < 10) {\n return \"0\" + k;\n }\n else {\n return k;\n }\n}\nfunction greet() {\n let currentTime = new Date();\n let greet = Math.floor(currentTime.getHours() / 6);\n let easterEggChance = Math.floor(Math.random() * 100);\n let greetings = require('./messages.json');\n let timeBased = [];\n let easterEggs = [];\n for (var i = 0; i < greetings.messages.length; i++) {\n if (greetings.messages[i].easteregg === \"FALSE\") {\n timeBased = timeBased.concat(greetings.messages[i]);\n } else {\n easterEggs = easterEggs.concat(greetings.messages[i]);\n }\n }\n if (easterEggChance > 10) {\n return timeBased[greet].message;\n } else {\n let easterEggText = Math.floor(Math.random() * easterEggs.length);\n return easterEggs[easterEggText].message;\n }\n}\nfunction Clock() {\n const [date, setDate] = useState(new Date());\n\n function refreshClock() {\n setDate(new Date());\n }\n useEffect(() => {\n const timerId = setInterval(refreshClock, 1000);\n return function cleanup() {\n clearInterval(timerId);\n };\n }, []);\n\n var hour = date.getHours();\n var minutes = date.getMinutes();\n //var seconds = date.getSeconds();\n var midday = \"AM\";\n midday = (hour >= 12) ? \"PM\" : \"AM\";\n hour = (hour === 0) ? 12 : ((hour > 12) ? (hour - 12) : hour);\n minutes = fixDigits(minutes);\n //seconds = fixDigits(seconds);\n let time = hour + \":\" + minutes + \" \" + midday;\n\n return (\n {time}
\n\n );\n}\nfunction getApps() {\n let applications = require('./apps.json');\n return applications;\n}\nfunction getLinks() {\n let links = require('./links.json');\n return links;\n}\nfunction getProviders() {\n let providers = require('./providers.json');\n return providers;\n}\nfunction getThemes() {\n let themes = require('./themes.json');\n return themes;\n}\n\nfunction updateTheme(e) {\n var themes = getThemes();\n var themeName = e.target.innerHTML.toLowerCase();\n var index = themes.themes.findIndex(function(item, i){\n return item.name === themeName\n });\n console.log(themes.themes[index]);\n localStorage.setItem(\"image-background\", themes.themes[index].imagebackground);\n localStorage.setItem(\"color-background\", themes.themes[index].colorbackground);\n localStorage.setItem(\"color-search-background\", themes.themes[index].colorserachbackground);\n localStorage.setItem(\"color-text-pri\",themes.themes[index].colortextpri);\n localStorage.setItem(\"color-text-acc\", themes.themes[index].colortextacc);\n localStorage.setItem(\"color-border\", themes.themes[index].colorborder);\n \n //document.documentElement.style.setProperty(prop, `var(--${themeName}${prop.substring(10)})`);\n setTheme();\n}\n\nfunction setTheme() {\n setValueFromLocalStorage('image-background');\n setValueFromLocalStorage('color-background');\n setValueFromLocalStorage('color-search-background');\n setValueFromLocalStorage('color-text-pri');\n setValueFromLocalStorage('color-text-acc');\n setValueFromLocalStorage('color-border');\n setValueFromLocalStorage('content-display');\n}\n\nfunction handleKeyPress(e) {\n var sindex = 0;\n var cycle = false;\n var key = e.keyCode || e.which;\n var text = e.target.value.replaceAll(\"+\", \"%2B\");\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n if (key == 13) { // Search functions\n search(text);\n }\n if (key == 9) { // Tab Completion Functions\n e.preventDefault();\n e.stopPropagation();\n if (text[0] === ';') {\n switch (option) {\n case 't':\n var streamers = ['admiralbahroo', 'moonmoon_ow', 'witwix'];\n if (!subtext || cycle) {\n cycle = true;\n if (sindex > streamers.length - 1) sindex = 0;\n document.getElementById(\"keywords\").value = ';t ' + streamers[sindex++];\n return;\n }\n for (var streamer of streamers) {\n if (subtext === streamer.substr(0, subtext.length)) {\n document.getElementById(\"keywords\").value = ';t ' + streamer;\n return;\n }\n }\n break;\n }\n }\n }\n if(key == 32){ //Space to go to search\nupdateLabel(text);\n }\n sindex = 0;\n cycle = false;\n updateLabel(text);\n}\n\nfunction updateLabel(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n if (text[0] === '/') {\n// if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n document.getElementById(\"searchType\").innerHTML = \"Allmusic search\";\n break;\n case \"d\":\n document.getElementById(\"searchType\").innerHTML = \"Duck Duck Go search\";\n break;\n case \"di\":\n document.getElementById(\"searchType\").innerHTML = \"Discogs search\";\n break;\n case \"i\":\n document.getElementById(\"searchType\").innerHTML = \"IMDB search\";\n break;\n case \"m\":\n document.getElementById(\"searchType\").innerHTML = \"TheMovieDB search\";\n break;\n case \"r\":\n document.getElementById(\"searchType\").innerHTML = \"Reddit search\";\n break;\n case \"q\":\n document.getElementById(\"searchType\").innerHTML = \"Qwant search\";\n break;\n case \"so\":\n document.getElementById(\"searchType\").innerHTML = \"Soundcloud search\";\n break;\n case \"s\":\n document.getElementById(\"searchType\").innerHTML = \"Spotify search\";\n break;\n case \"tv\":\n document.getElementById(\"searchType\").innerHTML = \"TheTVDB search\";\n break;\n case \"t\":\n document.getElementById(\"searchType\").innerHTML = \"Trakt search\";\n break;\n case \"y\":\n document.getElementById(\"searchType\").innerHTML = \"YouTube search\";\n break;\n case \"w\":\n document.getElementById(\"searchType\").innerHTML = \"Wikipedia search\";\n break;\n case \"p\":\n document.getElementById(\"searchType\").innerHTML = \"Plex search\";\n break;\n case \"rt\":\n document.getElementById(\"searchType\").innerHTML = \"Rotten Tomatoes search\";\n break;\n default:\n document.getElementById(\"searchType\").innerHTML = \"Invalid search\";\n break;\n }\n}else {\n document.getElementById(\"searchType\").innerHTML = \"Google search\";\n }\n}\n\nfunction search(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n if (text[0] === '/') {\n if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n window.location = \"https://www.allmusic.com/search/all/\" + subtext;\n break;\n case \"d\":\n window.location = \"https://duckduckgo.com/?q=\" + subtext;\n break;\n case \"di\":\n window.location = \"https://www.discogs.com/search/?q=\" + subtext;\n break;\n case \"i\":\n window.location = \"https://www.imdb.com/find?q=\" + subtext;\n break;\n case \"m\":\n window.location = \"https://www.themoviedb.org/search?query=\" + subtext;\n break;\n case \"r\":\n window.location = \"https://www.reddit.com/search?q=\" + subtext;\n break;\n case \"q\":\n window.location = \"https://www.qwant.com/?q=\" + subtext;\n break;\n case \"so\":\n window.location = \"https://soundcloud.com/search?q=\" + subtext;\n break;\n case \"s\":\n window.location = \"https://open.spotify.com/search/results/\" + subtext;\n break;\n case \"t\":\n window.location = \"https://trakt.tv/search?query=\" + subtext;\n break;\n case \"tv\":\n window.location = \"https://www.thetvdb.com/search?query=\" + subtext;\n break;\n case \"y\":\n window.location = \"https://www.youtube.com/results?search_query=\" + subtext;\n break;\n case \"w\":\n window.location = \"https://en.wikipedia.org/w/index.php?search=\" + subtext;\n break;\n case \"p\":\n window.location = \"https://app.plex.tv/desktop/#!/search?query=\" + subtext;\n break;\n case \"rt\":\n window.location = \"https://www.rottentomatoes.com/search?search=\" + subtext;\n break;\n }\n } else {\n var option = text.substr(1);\n switch (option) {\n case \"d\":\n window.location = \"https://www.duckduckgo.com\";\n break;\n case \"y\":\n window.location = \"https://www.youtube.com\";\n break;\n case \"r\":\n window.location = \"https://reddit.com\";\n break;\n case \"s\":\n window.location = \"https://open.spotify.com\";\n break;\n }\n }\n } else if (validURL(text)) {\n if (containsProtocol(text))\n window.location = text;\n else\n window.location = \"https://\" + text;\n } else {\n window.location = \"https://www.google.com/search?q=\" + text;\n }\n}\n\n// Source: https://stackoverflow.com/questions/5717093/check-if-a-javascript-string-is-a-url\nfunction validURL(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/)?' + // protocol\n '((([a-z\\\\d]([a-z\\\\d-]*[a-z\\\\d])*)\\\\.)+[a-z]{2,}|' + // domain name\n '((\\\\d{1,3}\\\\.){3}\\\\d{1,3}))' + // OR ip (v4) address\n '(\\\\:\\\\d+)?(\\\\/[-a-z\\\\d%_.~+]*)*' + // port and path\n '(\\\\?[;&a-z\\\\d%_.~+=-]*)?' + // query string\n '(\\\\#[-a-z\\\\d_]*)?$', 'i'); // fragment locator\n return !!pattern.test(str);\n}\n\nfunction containsProtocol(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/){1}.*', 'i');\n return !!pattern.test(str);\n}\n\nString.prototype.replaceAll = function(search, replacement) {\n var target = this;\n return target.split(search).join(replacement);\n};\n\nfunction udpateDisplayedItems(e) {\n localStorage.setItem('contenttype', e.target.checked);\n if (e.target.checked) {\n localStorage.setItem('content-display', 'none');\n } else {\n localStorage.setItem('content-display', 'block');\n }\n setDisplayedItems();\n}\nfunction setDisplayedItems() {\n setValueFromLocalStorage('contenttype');\n setValueFromLocalStorage('content-display');\n var checked = localStorage.getItem(\"contenttype\");\n document.getElementById('contenttype').checked = checked;\n}"]},"metadata":{},"sourceType":"module"}
\ No newline at end of file
diff --git a/node_modules/.cache/babel-loader/984681cf2ab0edbc24dee05ad79d46ca.json b/node_modules/.cache/babel-loader/984681cf2ab0edbc24dee05ad79d46ca.json
new file mode 100644
index 00000000..def89b99
--- /dev/null
+++ b/node_modules/.cache/babel-loader/984681cf2ab0edbc24dee05ad79d46ca.json
@@ -0,0 +1 @@
+{"ast":null,"code":"var _jsxFileName = \"/home/seanedmunds/dev/home-page/src/index.js\",\n _s = $RefreshSig$();\n\nimport React from 'react';\nimport { useState, useEffect } from 'react';\nimport ReactDOM from 'react-dom';\nimport './index.css';\nimport { jsxDEV as _jsxDEV } from \"react/jsx-dev-runtime\";\n\nconst setValueFromLocalStorage = property => {\n let value = localStorage.getItem(property);\n setValue(property, value);\n};\n\nconst setValue = (property, value) => {\n if (value) {\n document.documentElement.style.setProperty(`--${property}`, value);\n const input = document.querySelector(`#${property}`);\n\n if (input) {\n value = value.replace('px', '');\n input.value = value;\n }\n }\n};\n\nfunction Homepage() {\n setTheme();\n return /*#__PURE__*/_jsxDEV(\"main\", {\n id: \"container\",\n className: \"fade\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Search, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 28,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 27,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Header, {\n date: date(),\n greet: greet()\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 31,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 30,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Applications, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 37,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 36,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Bookmarks, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 40,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 39,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(ModalMenu, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 43,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 42,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(ModalInit, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 46,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 45,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 26,\n columnNumber: 5\n }, this);\n}\n\n_c = Homepage;\n\nfunction Search() {\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"search\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"abackground\",\n children: [/*#__PURE__*/_jsxDEV(\"input\", {\n name: \"keywords\",\n type: \"text\",\n className: \"keyword\",\n id: \"keywords\",\n size: \"50\",\n spellCheck: \"true\",\n placeholder: \"\"\n /*onFocus={this.placeholder = \"\"} onBlur={this.placeholder = ''}*/\n ,\n autoComplete: \"off\",\n autoFocus: true,\n onKeyUp: handleKeyPress\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 56,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n id: \"searchType\",\n className: \"Input-label\",\n children: \"Google search\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 57,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 55,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 54,\n columnNumber: 5\n }, this);\n}\n\n_c2 = Search;\n\nfunction Header(props) {\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"header\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n id: \"greeting_block\",\n children: /*#__PURE__*/_jsxDEV(\"h1\", {\n id: \"header_greet\",\n children: props.greet\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 67,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 66,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"date_block\",\n children: [/*#__PURE__*/_jsxDEV(\"h2\", {\n id: \"header_date\",\n children: props.date\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 70,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(Clock, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 71,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 69,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 65,\n columnNumber: 5\n }, this);\n}\n\n_c3 = Header;\n\nfunction Applications() {\n let appList = getApps();\n var items = [];\n\n for (var i = 0; i < appList.apps.length; i++) {\n var safe = appList.apps[i].NSFW;\n var NSFWEnabled = localStorage.getItem(\"contenttype\");\n\n if (safe === \"SAFE\") {\n items.push( /*#__PURE__*/_jsxDEV(App, {\n name: appList.apps[i].name,\n url: appList.apps[i].url,\n icon: appList.apps[i].icon,\n NSFW: appList.apps[i].NSFW\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 85,\n columnNumber: 9\n }, this));\n } else if (safe === \"NSFW\" && NSFWEnabled) {\n items.push( /*#__PURE__*/_jsxDEV(App, {\n name: appList.apps[i].name,\n url: appList.apps[i].url,\n icon: appList.apps[i].icon,\n NSFW: appList.apps[i].NSFW\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 95,\n columnNumber: 9\n }, this));\n } else {}\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"apps\",\n children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n children: \"Applications\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 110,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"apps_loop\",\n children: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 111,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 109,\n columnNumber: 5\n }, this);\n}\n\n_c4 = Applications;\n\nfunction App(props) {\n let classNameType = props.NSFW + \"-content\";\n let hrefUrl = \"https://\" + props.url;\n let iconName = \"mdi-\" + props.icon;\n return /*#__PURE__*/_jsxDEV(\"div\", {\n className: classNameType,\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: hrefUrl,\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_item\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_icon\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify icon\",\n \"data-icon\": iconName\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 128,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 127,\n columnNumber: 13\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_text\",\n children: [/*#__PURE__*/_jsxDEV(\"span\", {\n id: \"app-name\",\n children: props.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 131,\n columnNumber: 15\n }, this), /*#__PURE__*/_jsxDEV(\"span\", {\n id: \"app-address\",\n children: props.url\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 132,\n columnNumber: 15\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 130,\n columnNumber: 13\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 126,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 125,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 124,\n columnNumber: 7\n }, this);\n}\n\n_c5 = App;\n\nfunction Bookmarks() {\n let bookmarkList = getLinks();\n var items = [];\n\n for (var i = 0; i < bookmarkList.bookmarks.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(LinkGroups, {\n category: bookmarkList.bookmarks[i].category,\n links: bookmarkList.bookmarks[i].links\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 145,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"links\",\n children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n children: \"Bookmarks\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 154,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"links_loop\",\n children: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 155,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 153,\n columnNumber: 5\n }, this);\n}\n\n_c6 = Bookmarks;\n\nfunction LinkGroups(props) {\n var items = [];\n\n for (var i = 0; i < props.links.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(LinkItem, {\n link: props.links[i]\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 166,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"links_item\",\n children: [/*#__PURE__*/_jsxDEV(\"h4\", {\n children: props.category\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 174,\n columnNumber: 7\n }, this), items]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 173,\n columnNumber: 5\n }, this);\n}\n\n_c7 = LinkGroups;\n\nfunction LinkItem(props) {\n return /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: props.link.url,\n className: \"theme_color-border theme_text-select\",\n children: props.link.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 183,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 182,\n columnNumber: 5\n }, this);\n}\n\n_c8 = LinkItem;\n\nfunction ModalMenu() {\n var providers = getProviders();\n var items = [];\n var isChecked = localStorage.getItem(\"contenttype\");\n\n for (var i = 0; i < providers.providers.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(Provider, {\n provider: providers.providers[i]\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 194,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"modal\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n children: [/*#__PURE__*/_jsxDEV(\"header\", {\n id: \"modal-header\",\n children: [/*#__PURE__*/_jsxDEV(\"h1\", {\n children: \"Options\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 204,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n href: \"#\",\n title: \"Close\",\n className: \"modal-close\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-close\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 206,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 205,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 203,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"h2\", {\n children: \"Color themes\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 210,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"modal-theme\",\n children: [/*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"blackboard\",\n className: \"theme-button theme-blackboard\",\n onClick: updateTheme,\n children: \"Blackboard\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 213,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"gazette\",\n className: \"theme-button theme-gazette\",\n onClick: updateTheme,\n children: \"Gazette\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 214,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"espresso\",\n className: \"theme-button theme-espresso\",\n onClick: updateTheme,\n children: \"Espresso\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 215,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cab\",\n className: \"theme-button theme-cab\",\n onClick: updateTheme,\n children: \"Cab\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 216,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cloud\",\n className: \"theme-button theme-cloud\",\n onClick: updateTheme,\n children: \"Cloud\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 217,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"lime\",\n className: \"theme-button theme-lime\",\n onClick: updateTheme,\n children: \"Lime\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 218,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"passion\",\n className: \"theme-button theme-passion\",\n onClick: updateTheme,\n children: \"Passion\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 219,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"blues\",\n className: \"theme-button theme-blues\",\n onClick: updateTheme,\n children: \"Blues\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 220,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"chalk\",\n className: \"theme-button theme-chalk\",\n onClick: updateTheme,\n children: \"Chalk\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 221,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"tron\",\n className: \"theme-button theme-tron\",\n onClick: updateTheme,\n children: \"Tron\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 222,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"paper\",\n className: \"theme-button theme-paper\",\n onClick: updateTheme,\n children: \"Paper\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 223,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cyberpunk\",\n className: \"theme-button theme-cyberpunk\",\n onClick: updateTheme,\n children: \"Cyberpunk\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 224,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"quadra\",\n className: \"theme-button theme-panam\",\n onClick: updateTheme,\n children: \"Quadra\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 225,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"panam\",\n className: \"theme-button theme-panam\",\n onClick: updateTheme,\n children: \"Panam\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 226,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"touch\",\n className: \"theme-button theme-touch\",\n onClick: updateTheme,\n children: \"Touch\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 227,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"peek\",\n className: \"theme-button theme-peek\",\n onClick: updateTheme,\n children: \"Peek\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 228,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 212,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"h2\", {\n children: \"Search options\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 232,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"providers\",\n children: /*#__PURE__*/_jsxDEV(\"table\", {\n children: /*#__PURE__*/_jsxDEV(\"tbody\", {\n children: [/*#__PURE__*/_jsxDEV(\"tr\", {\n children: [/*#__PURE__*/_jsxDEV(\"th\", {\n children: \"Website\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 237,\n columnNumber: 19\n }, this), /*#__PURE__*/_jsxDEV(\"th\", {\n children: \"Prefix\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 238,\n columnNumber: 19\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 236,\n columnNumber: 17\n }, this), items]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 235,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 234,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 233,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"header\", {\n id: \"modal-footer\",\n children: [/*#__PURE__*/_jsxDEV(\"a\", {\n href: \"https://github.com/jeroenpardon/\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-github-box\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 246,\n columnNumber: 54\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 246,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n href: \"https://materialdesignicons.com/\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-material-design\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 247,\n columnNumber: 54\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 247,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(HideButton, {\n checked: isChecked\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 248,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 245,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 202,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 201,\n columnNumber: 5\n }, this);\n}\n\n_c9 = ModalMenu;\n\nfunction HideButton(props) {\n console.log(props.checked);\n return /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"sneaky\",\n children: [/*#__PURE__*/_jsxDEV(\"input\", {\n type: \"checkbox\",\n id: \"contenttype\",\n onClick: udpateDisplayedItems,\n defaultChecked: !props.checked\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 260,\n columnNumber: 29\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n for: \"contenttype\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-domino-mask\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 261,\n columnNumber: 30\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 261,\n columnNumber: 5\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 260,\n columnNumber: 5\n }, this);\n}\n\n_c10 = HideButton;\n\nfunction Provider(props) {\n return /*#__PURE__*/_jsxDEV(\"tr\", {\n children: [/*#__PURE__*/_jsxDEV(\"td\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: props.provider.url,\n children: props.provider.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 268,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 268,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"td\", {\n children: props.provider.prefix\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 269,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 267,\n columnNumber: 5\n }, this);\n}\n\n_c11 = Provider;\n\nfunction ModalInit() {\n setDisplayedItems();\n return /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"modal_init\",\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n className: \"btn\",\n href: \"#modal\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify icon\",\n \"data-icon\": \"mdi-xbox-controller-menu\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 279,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 278,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 277,\n columnNumber: 5\n }, this);\n}\n\n_c12 = ModalInit;\nReactDOM.render( /*#__PURE__*/_jsxDEV(Homepage, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 286,\n columnNumber: 3\n}, this), document.getElementById('root')); //Functions below this line are for calculating data for\n//other functions\n\nfunction date() {\n let currentDate = new Date();\n let dateOptions = {\n weekday: \"long\",\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\"\n };\n let date = currentDate.toLocaleDateString(\"en-GB\", dateOptions);\n return date;\n}\n\nfunction fixDigits(k) {\n if (k < 10) {\n return \"0\" + k;\n } else {\n return k;\n }\n}\n\nfunction greet() {\n let currentTime = new Date();\n let greet = Math.floor(currentTime.getHours() / 6);\n let easterEggChance = Math.floor(Math.random() * 100);\n\n let greetings = require('./messages.json');\n\n let timeBased = [];\n let easterEggs = [];\n\n for (var i = 0; i < greetings.messages.length; i++) {\n if (greetings.messages[i].easteregg === \"FALSE\") {\n timeBased = timeBased.concat(greetings.messages[i]);\n } else {\n easterEggs = easterEggs.concat(greetings.messages[i]);\n }\n }\n\n if (easterEggChance > 10) {\n return timeBased[greet].message;\n } else {\n let easterEggText = Math.floor(Math.random() * easterEggs.length);\n return easterEggs[easterEggText].message;\n }\n}\n\nfunction Clock() {\n _s();\n\n const [date, setDate] = useState(new Date());\n\n function refreshClock() {\n setDate(new Date());\n }\n\n useEffect(() => {\n const timerId = setInterval(refreshClock, 1000);\n return function cleanup() {\n clearInterval(timerId);\n };\n }, []);\n var hour = date.getHours();\n var minutes = date.getMinutes(); //var seconds = date.getSeconds();\n\n var midday = \"AM\";\n midday = hour >= 12 ? \"PM\" : \"AM\";\n hour = hour === 0 ? 12 : hour > 12 ? hour - 12 : hour;\n minutes = fixDigits(minutes); //seconds = fixDigits(seconds);\n\n let time = hour + \":\" + minutes + \" \" + midday;\n return /*#__PURE__*/_jsxDEV(\"h2\", {\n id: \"clock\",\n children: time\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 357,\n columnNumber: 5\n }, this);\n}\n\n_s(Clock, \"Gqi45WOZhU2c0BLYX0HoJeiR0fk=\");\n\n_c13 = Clock;\n\nfunction getApps() {\n let applications = require('./apps.json');\n\n return applications;\n}\n\nfunction getLinks() {\n let links = require('./links.json');\n\n return links;\n}\n\nfunction getProviders() {\n let providers = require('./providers.json');\n\n return providers;\n}\n\nfunction getThemes() {\n let themes = require('./themes.json');\n\n return themes;\n}\n\nfunction updateTheme(e) {\n var themes = getThemes();\n var themeName = e.target.innerHTML.toLowerCase();\n var index = themes.themes.findIndex(function (item, i) {\n return item.name === themeName;\n });\n localStorage.setItem(\"image-background\", themes.themes[index].imagebackground);\n localStorage.setItem(\"color-background\", themes.themes[index].colorbackground);\n localStorage.setItem(\"color-search-background\", themes.themes[index].colorserachbackground);\n localStorage.setItem(\"color-text-pri\", themes.themes[index].colortextpri);\n localStorage.setItem(\"color-text-acc\", themes.themes[index].colortextacc);\n localStorage.setItem(\"color-border\", themes.themes[index].colorborder); //document.documentElement.style.setProperty(prop, `var(--${themeName}${prop.substring(10)})`);\n\n setTheme();\n}\n\nfunction setTheme() {\n setValueFromLocalStorage('image-background');\n setValueFromLocalStorage('color-background');\n setValueFromLocalStorage('color-search-background');\n setValueFromLocalStorage('color-text-pri');\n setValueFromLocalStorage('color-text-acc');\n setValueFromLocalStorage('color-border');\n setValueFromLocalStorage('content-display');\n}\n\nfunction handleKeyPress(e) {\n var sindex = 0;\n var cycle = false;\n var key = e.keyCode || e.which;\n var text = e.target.value.replaceAll(\"+\", \"%2B\");\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n\n if (key == 13) {\n // Search functions\n search(text);\n }\n\n if (key == 9) {\n // Tab Completion Functions\n e.preventDefault();\n e.stopPropagation();\n\n if (text[0] === ';') {\n switch (option) {\n case 't':\n var streamers = ['admiralbahroo', 'moonmoon_ow', 'witwix'];\n\n if (!subtext || cycle) {\n cycle = true;\n if (sindex > streamers.length - 1) sindex = 0;\n document.getElementById(\"keywords\").value = ';t ' + streamers[sindex++];\n return;\n }\n\n for (var streamer of streamers) {\n if (subtext === streamer.substr(0, subtext.length)) {\n document.getElementById(\"keywords\").value = ';t ' + streamer;\n return;\n }\n }\n\n break;\n }\n }\n }\n\n if (key == 32) {\n //Space to go to search\n updateLabel(text);\n }\n\n sindex = 0;\n cycle = false;\n updateLabel(text);\n}\n\nfunction updateLabel(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n\n if (text[0] === '/') {\n // if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n document.getElementById(\"searchType\").innerHTML = \"Allmusic search\";\n break;\n\n case \"d\":\n document.getElementById(\"searchType\").innerHTML = \"Duck Duck Go search\";\n break;\n\n case \"di\":\n document.getElementById(\"searchType\").innerHTML = \"Discogs search\";\n break;\n\n case \"i\":\n document.getElementById(\"searchType\").innerHTML = \"IMDB search\";\n break;\n\n case \"m\":\n document.getElementById(\"searchType\").innerHTML = \"TheMovieDB search\";\n break;\n\n case \"r\":\n document.getElementById(\"searchType\").innerHTML = \"Reddit search\";\n break;\n\n case \"q\":\n document.getElementById(\"searchType\").innerHTML = \"Qwant search\";\n break;\n\n case \"so\":\n document.getElementById(\"searchType\").innerHTML = \"Soundcloud search\";\n break;\n\n case \"s\":\n document.getElementById(\"searchType\").innerHTML = \"Spotify search\";\n break;\n\n case \"tv\":\n document.getElementById(\"searchType\").innerHTML = \"TheTVDB search\";\n break;\n\n case \"t\":\n document.getElementById(\"searchType\").innerHTML = \"Trakt search\";\n break;\n\n case \"y\":\n document.getElementById(\"searchType\").innerHTML = \"YouTube search\";\n break;\n\n case \"w\":\n document.getElementById(\"searchType\").innerHTML = \"Wikipedia search\";\n break;\n\n case \"p\":\n document.getElementById(\"searchType\").innerHTML = \"Plex search\";\n break;\n\n case \"rt\":\n document.getElementById(\"searchType\").innerHTML = \"Rotten Tomatoes search\";\n break;\n\n default:\n document.getElementById(\"searchType\").innerHTML = \"Invalid search\";\n break;\n }\n } else {\n document.getElementById(\"searchType\").innerHTML = \"Google search\";\n }\n}\n\nfunction search(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n\n if (text[0] === '/') {\n if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n window.location = \"https://www.allmusic.com/search/all/\" + subtext;\n break;\n\n case \"d\":\n window.location = \"https://duckduckgo.com/?q=\" + subtext;\n break;\n\n case \"di\":\n window.location = \"https://www.discogs.com/search/?q=\" + subtext;\n break;\n\n case \"i\":\n window.location = \"https://www.imdb.com/find?q=\" + subtext;\n break;\n\n case \"m\":\n window.location = \"https://www.themoviedb.org/search?query=\" + subtext;\n break;\n\n case \"r\":\n window.location = \"https://www.reddit.com/search?q=\" + subtext;\n break;\n\n case \"q\":\n window.location = \"https://www.qwant.com/?q=\" + subtext;\n break;\n\n case \"so\":\n window.location = \"https://soundcloud.com/search?q=\" + subtext;\n break;\n\n case \"s\":\n window.location = \"https://open.spotify.com/search/results/\" + subtext;\n break;\n\n case \"t\":\n window.location = \"https://trakt.tv/search?query=\" + subtext;\n break;\n\n case \"tv\":\n window.location = \"https://www.thetvdb.com/search?query=\" + subtext;\n break;\n\n case \"y\":\n window.location = \"https://www.youtube.com/results?search_query=\" + subtext;\n break;\n\n case \"w\":\n window.location = \"https://en.wikipedia.org/w/index.php?search=\" + subtext;\n break;\n\n case \"p\":\n window.location = \"https://app.plex.tv/desktop/#!/search?query=\" + subtext;\n break;\n\n case \"rt\":\n window.location = \"https://www.rottentomatoes.com/search?search=\" + subtext;\n break;\n }\n } else {\n var option = text.substr(1);\n\n switch (option) {\n case \"d\":\n window.location = \"https://www.duckduckgo.com\";\n break;\n\n case \"y\":\n window.location = \"https://www.youtube.com\";\n break;\n\n case \"r\":\n window.location = \"https://reddit.com\";\n break;\n\n case \"s\":\n window.location = \"https://open.spotify.com\";\n break;\n }\n }\n } else if (validURL(text)) {\n if (containsProtocol(text)) window.location = text;else window.location = \"https://\" + text;\n } else {\n window.location = \"https://www.google.com/search?q=\" + text;\n }\n}\n\nfunction validURL(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/)?' + // protocol\n '((([a-z\\\\d]([a-z\\\\d-]*[a-z\\\\d])*)\\\\.)+[a-z]{2,}|' + // domain name\n '((\\\\d{1,3}\\\\.){3}\\\\d{1,3}))' + // OR ip (v4) address\n '(\\\\:\\\\d+)?(\\\\/[-a-z\\\\d%_.~+]*)*' + // port and path\n '(\\\\?[;&a-z\\\\d%_.~+=-]*)?' + // query string\n '(\\\\#[-a-z\\\\d_]*)?$', 'i'); // fragment locator\n\n return !!pattern.test(str);\n}\n\nfunction containsProtocol(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/){1}.*', 'i');\n return !!pattern.test(str);\n}\n\nString.prototype.replaceAll = function (search, replacement) {\n var target = this;\n return target.split(search).join(replacement);\n};\n\nfunction udpateDisplayedItems(e) {\n localStorage.setItem('contenttype', e.target.checked);\n\n if (e.target.checked) {\n localStorage.setItem('content-display', 'none');\n } else {\n localStorage.setItem('content-display', 'block');\n }\n\n setDisplayedItems();\n}\n\nfunction setDisplayedItems() {\n setValueFromLocalStorage('contenttype');\n setValueFromLocalStorage('content-display');\n}\n\nvar _c, _c2, _c3, _c4, _c5, _c6, _c7, _c8, _c9, _c10, _c11, _c12, _c13;\n\n$RefreshReg$(_c, \"Homepage\");\n$RefreshReg$(_c2, \"Search\");\n$RefreshReg$(_c3, \"Header\");\n$RefreshReg$(_c4, \"Applications\");\n$RefreshReg$(_c5, \"App\");\n$RefreshReg$(_c6, \"Bookmarks\");\n$RefreshReg$(_c7, \"LinkGroups\");\n$RefreshReg$(_c8, \"LinkItem\");\n$RefreshReg$(_c9, \"ModalMenu\");\n$RefreshReg$(_c10, \"HideButton\");\n$RefreshReg$(_c11, \"Provider\");\n$RefreshReg$(_c12, \"ModalInit\");\n$RefreshReg$(_c13, \"Clock\");","map":{"version":3,"sources":["/home/seanedmunds/dev/home-page/src/index.js"],"names":["React","useState","useEffect","ReactDOM","setValueFromLocalStorage","property","value","localStorage","getItem","setValue","document","documentElement","style","setProperty","input","querySelector","replace","Homepage","setTheme","date","greet","Search","handleKeyPress","Header","props","Applications","appList","getApps","items","i","apps","length","safe","NSFW","NSFWEnabled","push","name","url","icon","App","classNameType","hrefUrl","iconName","Bookmarks","bookmarkList","getLinks","bookmarks","category","links","LinkGroups","LinkItem","link","ModalMenu","providers","getProviders","isChecked","updateTheme","HideButton","console","log","checked","udpateDisplayedItems","Provider","provider","prefix","ModalInit","setDisplayedItems","render","getElementById","currentDate","Date","dateOptions","weekday","year","month","day","toLocaleDateString","fixDigits","k","currentTime","Math","floor","getHours","easterEggChance","random","greetings","require","timeBased","easterEggs","messages","easteregg","concat","message","easterEggText","Clock","setDate","refreshClock","timerId","setInterval","cleanup","clearInterval","hour","minutes","getMinutes","midday","time","applications","getThemes","themes","e","themeName","target","innerHTML","toLowerCase","index","findIndex","item","setItem","imagebackground","colorbackground","colorserachbackground","colortextpri","colortextacc","colorborder","sindex","cycle","key","keyCode","which","text","replaceAll","option","substr","indexOf","subtext","search","preventDefault","stopPropagation","streamers","streamer","updateLabel","window","location","validURL","containsProtocol","str","pattern","RegExp","test","String","prototype","replacement","split","join"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { useState, useEffect } from 'react';\nimport ReactDOM from 'react-dom';\nimport './index.css';\n\nconst setValueFromLocalStorage = property => {\n let value = localStorage.getItem(property);\n setValue(property, value);\n};\nconst setValue = (property, value) => {\n if (value) {\n document.documentElement.style.setProperty(`--${property}`, value);\n\n const input = document.querySelector(`#${property}`);\n if (input) {\n value = value.replace('px', '');\n input.value = value;\n }\n }\n};\n\nfunction Homepage() {\n setTheme();\n \n return (\n \n \n \n
\n \n \n
\n \n \n \n
\n \n \n
\n \n \n
\n \n );\n}\n\nfunction Search() {\n return (\n \n )\n}\n\nfunction Header(props) {\n return (\n \n );\n}\n\nfunction Applications() {\n let appList = getApps();\n var items = [];\n for (var i = 0; i < appList.apps.length; i++) {\n var safe = appList.apps[i].NSFW;\n var NSFWEnabled = localStorage.getItem(\"contenttype\");\n if (safe === \"SAFE\") {\n items.push(\n \n );\n } else if (safe === \"NSFW\" && NSFWEnabled) {\n items.push(\n \n );\n } else {\n \n }\n \n }\n return (\n \n Applications
\n \n {items}\n
\n \n );\n}\n\nfunction App(props) {\n \n let classNameType = props.NSFW + \"-content\";\n let hrefUrl = \"https://\" + props.url;\n let iconName = \"mdi-\" + props.icon;\n return (\n \n );\n}\n\nfunction Bookmarks() {\n let bookmarkList = getLinks();\n var items = [];\n for (var i = 0; i < bookmarkList.bookmarks.length; i++) {\n items.push(\n \n );\n }\n return (\n \n Bookmarks
\n \n {items}\n
\n \n );\n}\n\nfunction LinkGroups(props) {\n var items = [];\n for (var i = 0; i < props.links.length; i++) {\n items.push(\n \n );\n }\n return (\n \n
{props.category}
\n {items}\n \n );\n}\n\nfunction LinkItem(props) {\n return (\n \n );\n}\n\nfunction ModalMenu() {\n var providers = getProviders();\n var items = [];\n var isChecked = localStorage.getItem(\"contenttype\");\n for (var i = 0; i < providers.providers.length; i++) {\n items.push(\n \n );\n }\n return (\n \n \n \n\n
Color themes
\n\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n\n\n
Search options
\n
\n \n \n \n | Website | \n Prefix | \n
\n {items}\n \n
\n \n\n \n
\n \n );\n}\n\nfunction HideButton(props) {\n console.log(props.checked);\n return (\n \n
\n );\n}\n\nfunction Provider(props) {\n return (\n \n | {props.provider.name} | \n {props.provider.prefix} | \n
\n );\n}\n\nfunction ModalInit() {\n setDisplayedItems();\n return (\n \n );\n}\n\nReactDOM.render(\n ,\n document.getElementById('root')\n);\n\n//Functions below this line are for calculating data for\n//other functions\n\nfunction date() {\n let currentDate = new Date();\n let dateOptions = {\n weekday: \"long\",\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\"\n };\n let date = currentDate.toLocaleDateString(\"en-GB\", dateOptions);\n return date;\n}\nfunction fixDigits(k) {\n if (k < 10) {\n return \"0\" + k;\n }\n else {\n return k;\n }\n}\nfunction greet() {\n let currentTime = new Date();\n let greet = Math.floor(currentTime.getHours() / 6);\n let easterEggChance = Math.floor(Math.random() * 100);\n let greetings = require('./messages.json');\n let timeBased = [];\n let easterEggs = [];\n for (var i = 0; i < greetings.messages.length; i++) {\n if (greetings.messages[i].easteregg === \"FALSE\") {\n timeBased = timeBased.concat(greetings.messages[i]);\n } else {\n easterEggs = easterEggs.concat(greetings.messages[i]);\n }\n }\n if (easterEggChance > 10) {\n return timeBased[greet].message;\n } else {\n let easterEggText = Math.floor(Math.random() * easterEggs.length);\n return easterEggs[easterEggText].message;\n }\n}\nfunction Clock() {\n const [date, setDate] = useState(new Date());\n\n function refreshClock() {\n setDate(new Date());\n }\n useEffect(() => {\n const timerId = setInterval(refreshClock, 1000);\n return function cleanup() {\n clearInterval(timerId);\n };\n }, []);\n\n var hour = date.getHours();\n var minutes = date.getMinutes();\n //var seconds = date.getSeconds();\n var midday = \"AM\";\n midday = (hour >= 12) ? \"PM\" : \"AM\";\n hour = (hour === 0) ? 12 : ((hour > 12) ? (hour - 12) : hour);\n minutes = fixDigits(minutes);\n //seconds = fixDigits(seconds);\n let time = hour + \":\" + minutes + \" \" + midday;\n\n return (\n {time}
\n\n );\n}\nfunction getApps() {\n let applications = require('./apps.json');\n return applications;\n}\nfunction getLinks() {\n let links = require('./links.json');\n return links;\n}\nfunction getProviders() {\n let providers = require('./providers.json');\n return providers;\n}\nfunction getThemes() {\n let themes = require('./themes.json');\n return themes;\n}\nfunction updateTheme(e) {\n var themes = getThemes();\n var themeName = e.target.innerHTML.toLowerCase();\n var index = themes.themes.findIndex(function(item, i){\n return item.name === themeName\n });\n localStorage.setItem(\"image-background\", themes.themes[index].imagebackground);\n localStorage.setItem(\"color-background\", themes.themes[index].colorbackground);\n localStorage.setItem(\"color-search-background\", themes.themes[index].colorserachbackground);\n localStorage.setItem(\"color-text-pri\",themes.themes[index].colortextpri);\n localStorage.setItem(\"color-text-acc\", themes.themes[index].colortextacc);\n localStorage.setItem(\"color-border\", themes.themes[index].colorborder);\n \n //document.documentElement.style.setProperty(prop, `var(--${themeName}${prop.substring(10)})`);\n setTheme();\n}\nfunction setTheme() {\n setValueFromLocalStorage('image-background');\n setValueFromLocalStorage('color-background');\n setValueFromLocalStorage('color-search-background');\n setValueFromLocalStorage('color-text-pri');\n setValueFromLocalStorage('color-text-acc');\n setValueFromLocalStorage('color-border');\n setValueFromLocalStorage('content-display');\n}\nfunction handleKeyPress(e) {\n var sindex = 0;\n var cycle = false;\n var key = e.keyCode || e.which;\n var text = e.target.value.replaceAll(\"+\", \"%2B\");\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n if (key == 13) { // Search functions\n search(text);\n }\n if (key == 9) { // Tab Completion Functions\n e.preventDefault();\n e.stopPropagation();\n if (text[0] === ';') {\n switch (option) {\n case 't':\n var streamers = ['admiralbahroo', 'moonmoon_ow', 'witwix'];\n if (!subtext || cycle) {\n cycle = true;\n if (sindex > streamers.length - 1) sindex = 0;\n document.getElementById(\"keywords\").value = ';t ' + streamers[sindex++];\n return;\n }\n for (var streamer of streamers) {\n if (subtext === streamer.substr(0, subtext.length)) {\n document.getElementById(\"keywords\").value = ';t ' + streamer;\n return;\n }\n }\n break;\n }\n }\n }\n if(key == 32){ //Space to go to search\nupdateLabel(text);\n }\n sindex = 0;\n cycle = false;\n updateLabel(text);\n}\nfunction updateLabel(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n if (text[0] === '/') {\n// if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n document.getElementById(\"searchType\").innerHTML = \"Allmusic search\";\n break;\n case \"d\":\n document.getElementById(\"searchType\").innerHTML = \"Duck Duck Go search\";\n break;\n case \"di\":\n document.getElementById(\"searchType\").innerHTML = \"Discogs search\";\n break;\n case \"i\":\n document.getElementById(\"searchType\").innerHTML = \"IMDB search\";\n break;\n case \"m\":\n document.getElementById(\"searchType\").innerHTML = \"TheMovieDB search\";\n break;\n case \"r\":\n document.getElementById(\"searchType\").innerHTML = \"Reddit search\";\n break;\n case \"q\":\n document.getElementById(\"searchType\").innerHTML = \"Qwant search\";\n break;\n case \"so\":\n document.getElementById(\"searchType\").innerHTML = \"Soundcloud search\";\n break;\n case \"s\":\n document.getElementById(\"searchType\").innerHTML = \"Spotify search\";\n break;\n case \"tv\":\n document.getElementById(\"searchType\").innerHTML = \"TheTVDB search\";\n break;\n case \"t\":\n document.getElementById(\"searchType\").innerHTML = \"Trakt search\";\n break;\n case \"y\":\n document.getElementById(\"searchType\").innerHTML = \"YouTube search\";\n break;\n case \"w\":\n document.getElementById(\"searchType\").innerHTML = \"Wikipedia search\";\n break;\n case \"p\":\n document.getElementById(\"searchType\").innerHTML = \"Plex search\";\n break;\n case \"rt\":\n document.getElementById(\"searchType\").innerHTML = \"Rotten Tomatoes search\";\n break;\n default:\n document.getElementById(\"searchType\").innerHTML = \"Invalid search\";\n break;\n }\n}else {\n document.getElementById(\"searchType\").innerHTML = \"Google search\";\n }\n}\nfunction search(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n if (text[0] === '/') {\n if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n window.location = \"https://www.allmusic.com/search/all/\" + subtext;\n break;\n case \"d\":\n window.location = \"https://duckduckgo.com/?q=\" + subtext;\n break;\n case \"di\":\n window.location = \"https://www.discogs.com/search/?q=\" + subtext;\n break;\n case \"i\":\n window.location = \"https://www.imdb.com/find?q=\" + subtext;\n break;\n case \"m\":\n window.location = \"https://www.themoviedb.org/search?query=\" + subtext;\n break;\n case \"r\":\n window.location = \"https://www.reddit.com/search?q=\" + subtext;\n break;\n case \"q\":\n window.location = \"https://www.qwant.com/?q=\" + subtext;\n break;\n case \"so\":\n window.location = \"https://soundcloud.com/search?q=\" + subtext;\n break;\n case \"s\":\n window.location = \"https://open.spotify.com/search/results/\" + subtext;\n break;\n case \"t\":\n window.location = \"https://trakt.tv/search?query=\" + subtext;\n break;\n case \"tv\":\n window.location = \"https://www.thetvdb.com/search?query=\" + subtext;\n break;\n case \"y\":\n window.location = \"https://www.youtube.com/results?search_query=\" + subtext;\n break;\n case \"w\":\n window.location = \"https://en.wikipedia.org/w/index.php?search=\" + subtext;\n break;\n case \"p\":\n window.location = \"https://app.plex.tv/desktop/#!/search?query=\" + subtext;\n break;\n case \"rt\":\n window.location = \"https://www.rottentomatoes.com/search?search=\" + subtext;\n break;\n }\n } else {\n var option = text.substr(1);\n switch (option) {\n case \"d\":\n window.location = \"https://www.duckduckgo.com\";\n break;\n case \"y\":\n window.location = \"https://www.youtube.com\";\n break;\n case \"r\":\n window.location = \"https://reddit.com\";\n break;\n case \"s\":\n window.location = \"https://open.spotify.com\";\n break;\n }\n }\n } else if (validURL(text)) {\n if (containsProtocol(text))\n window.location = text;\n else\n window.location = \"https://\" + text;\n } else {\n window.location = \"https://www.google.com/search?q=\" + text;\n }\n}\nfunction validURL(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/)?' + // protocol\n '((([a-z\\\\d]([a-z\\\\d-]*[a-z\\\\d])*)\\\\.)+[a-z]{2,}|' + // domain name\n '((\\\\d{1,3}\\\\.){3}\\\\d{1,3}))' + // OR ip (v4) address\n '(\\\\:\\\\d+)?(\\\\/[-a-z\\\\d%_.~+]*)*' + // port and path\n '(\\\\?[;&a-z\\\\d%_.~+=-]*)?' + // query string\n '(\\\\#[-a-z\\\\d_]*)?$', 'i'); // fragment locator\n return !!pattern.test(str);\n}\nfunction containsProtocol(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/){1}.*', 'i');\n return !!pattern.test(str);\n}\nString.prototype.replaceAll = function(search, replacement) {\n var target = this;\n return target.split(search).join(replacement);\n};\nfunction udpateDisplayedItems(e) {\n localStorage.setItem('contenttype', e.target.checked);\n if (e.target.checked) {\n localStorage.setItem('content-display', 'none');\n } else {\n localStorage.setItem('content-display', 'block');\n }\n setDisplayedItems();\n}\nfunction setDisplayedItems() {\n setValueFromLocalStorage('contenttype');\n setValueFromLocalStorage('content-display');\n}"]},"metadata":{},"sourceType":"module"}
\ No newline at end of file
diff --git a/node_modules/.cache/babel-loader/98b387111b0a430dbef839e6d0711904.json b/node_modules/.cache/babel-loader/98b387111b0a430dbef839e6d0711904.json
new file mode 100644
index 00000000..56422141
--- /dev/null
+++ b/node_modules/.cache/babel-loader/98b387111b0a430dbef839e6d0711904.json
@@ -0,0 +1 @@
+{"ast":null,"code":"var _jsxFileName = \"/home/seanedmunds/dev/home-page/src/index.js\",\n _s = $RefreshSig$();\n\nimport React from 'react';\nimport { useState, useEffect } from 'react';\nimport ReactDOM from 'react-dom'; //import { unstable_createPortal } from 'react-dom';\n\nimport './index.css';\nimport { jsxDEV as _jsxDEV } from \"react/jsx-dev-runtime\";\n\nfunction Homepage() {\n return /*#__PURE__*/_jsxDEV(\"main\", {\n id: \"container\",\n className: \"fade\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Search, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 11,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 10,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Header, {\n date: date(),\n greet: greet()\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 14,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 13,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Applications, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 20,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 19,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Bookmarks, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 23,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 22,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(ModalMenu, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 26,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 25,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(ModalInit, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 29,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 28,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 9,\n columnNumber: 5\n }, this);\n}\n\n_c = Homepage;\n\nfunction Search() {\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"search\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"abackground\",\n children: [/*#__PURE__*/_jsxDEV(\"input\", {\n name: \"keywords\",\n value: \"test\",\n type: \"text\",\n className: \"keyword\",\n id: \"keywords\",\n size: \"50\",\n spellCheck: \"true\",\n placeholder: \"\"\n /*onFocus={this.placeholder = \"\"} onBlur={this.placeholder = ''}*/\n ,\n autoComplete: \"off\",\n autoFocus: \"true\",\n onKeyUp: handleKeyPress(Event)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 39,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n id: \"searchType\",\n className: \"Input-label\",\n children: \"Google search\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 40,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 38,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 37,\n columnNumber: 5\n }, this);\n}\n\n_c2 = Search;\n\nfunction Header(props) {\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"header\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n id: \"greeting_block\",\n children: /*#__PURE__*/_jsxDEV(\"h1\", {\n id: \"header_greet\",\n children: props.greet\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 50,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 49,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"date_block\",\n children: [/*#__PURE__*/_jsxDEV(\"h2\", {\n id: \"header_date\",\n children: props.date\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 53,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(Clock, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 54,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 52,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 48,\n columnNumber: 5\n }, this);\n}\n\n_c3 = Header;\n\nfunction Applications() {\n let appList = getApps();\n var items = [];\n\n for (var i = 0; i < appList.apps.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(App, {\n name: appList.apps[i].name,\n url: appList.apps[i].url,\n icon: appList.apps[i].icon,\n NSFW: appList.apps[i].NSFW\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 65,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"apps\",\n children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n children: \"Applications\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 76,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"apps_loop\",\n children: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 77,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 75,\n columnNumber: 5\n }, this);\n}\n\n_c4 = Applications;\n\nfunction App(props) {\n let classNameType = props.NSFW + \"-content\";\n let hrefUrl = \"https://\" + props.url;\n let iconName = \"mdi-\" + props.icon;\n return /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: hrefUrl,\n className: classNameType,\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_item\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_icon\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify icon\",\n \"data-icon\": iconName\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 93,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 92,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_text\",\n children: [/*#__PURE__*/_jsxDEV(\"span\", {\n id: \"app-name\",\n children: props.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 96,\n columnNumber: 13\n }, this), /*#__PURE__*/_jsxDEV(\"span\", {\n id: \"app-address\",\n children: props.url\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 97,\n columnNumber: 13\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 95,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 91,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 90,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 89,\n columnNumber: 5\n }, this);\n}\n\n_c5 = App;\n\nfunction Bookmarks() {\n let bookmarkList = getLinks();\n var items = [];\n\n for (var i = 0; i < bookmarkList.bookmarks.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(LinkGroups, {\n category: bookmarkList.bookmarks[i].category,\n links: bookmarkList.bookmarks[i].links\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 110,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"links\",\n children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n children: \"Bookmarks\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 119,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"links_loop\",\n children: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 120,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 118,\n columnNumber: 5\n }, this);\n}\n\n_c6 = Bookmarks;\n\nfunction LinkGroups(props) {\n var items = [];\n\n for (var i = 0; i < props.links.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(LinkItem, {\n link: props.links[i]\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 131,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"links_item\",\n children: [/*#__PURE__*/_jsxDEV(\"h4\", {\n children: props.category\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 139,\n columnNumber: 7\n }, this), items]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 138,\n columnNumber: 5\n }, this);\n}\n\n_c7 = LinkGroups;\n\nfunction LinkItem(props) {\n return /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: props.link.url,\n className: \"theme_color-border theme_text-select\",\n children: props.link.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 148,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 147,\n columnNumber: 5\n }, this);\n}\n\n_c8 = LinkItem;\n\nfunction ModalMenu() {\n var providers = getProviders();\n var items = [];\n\n for (var i = 0; i < providers.providers.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(Provider, {\n provider: providers.providers[i]\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 158,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"modal\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n children: [/*#__PURE__*/_jsxDEV(\"header\", {\n id: \"modal-header\",\n children: [/*#__PURE__*/_jsxDEV(\"h1\", {\n children: \"Options\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 168,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n href: \"#\",\n title: \"Close\",\n className: \"modal-close\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-close\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 170,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 169,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 167,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"h2\", {\n children: \"Color themes\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 174,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"modal-theme\",\n children: [/*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"blackboard\",\n className: \"theme-button theme-blackboard\",\n children: \"Blackboard\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 177,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"gazette\",\n className: \"theme-button theme-gazette\",\n children: \"Gazette\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 178,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"espresso\",\n className: \"theme-button theme-espresso\",\n children: \"Espresso\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 179,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cab\",\n className: \"theme-button theme-cab\",\n children: \"Cab\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 180,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cloud\",\n className: \"theme-button theme-cloud\",\n children: \"Cloud\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 181,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"lime\",\n className: \"theme-button theme-lime\",\n children: \"Lime\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 182,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"passion\",\n className: \"theme-button theme-passion\",\n children: \"Passion\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 183,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"blues\",\n className: \"theme-button theme-blues\",\n children: \"Blues\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 184,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"chalk\",\n className: \"theme-button theme-chalk\",\n children: \"Chalk\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 185,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"tron\",\n className: \"theme-button theme-tron\",\n children: \"Tron\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 186,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"paper\",\n className: \"theme-button theme-paper\",\n children: \"Paper\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 187,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cyberpunk\",\n className: \"theme-button theme-cyberpunk\",\n children: \"Cyberpunk\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 188,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"quadra\",\n className: \"theme-button theme-panam\",\n children: \"Quadra\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 189,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"panam\",\n className: \"theme-button theme-panam\",\n children: \"Panam\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 190,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"touch\",\n className: \"theme-button theme-touch\",\n children: \"Touch\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 191,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"peek\",\n className: \"theme-button theme-peek\",\n children: \"Peek\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 192,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 176,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"h2\", {\n children: \"Search options\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 196,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"providers\",\n children: /*#__PURE__*/_jsxDEV(\"table\", {\n children: /*#__PURE__*/_jsxDEV(\"tbody\", {\n children: [/*#__PURE__*/_jsxDEV(\"tr\", {\n children: [/*#__PURE__*/_jsxDEV(\"th\", {\n children: \"Website\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 201,\n columnNumber: 19\n }, this), /*#__PURE__*/_jsxDEV(\"th\", {\n children: \"Prefix\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 202,\n columnNumber: 19\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 200,\n columnNumber: 17\n }, this), items]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 199,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 198,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 197,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"header\", {\n id: \"modal-footer\",\n children: [/*#__PURE__*/_jsxDEV(\"a\", {\n href: \"https://github.com/jeroenpardon/\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-github-box\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 210,\n columnNumber: 54\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 210,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n href: \"https://materialdesignicons.com/\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-material-design\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 211,\n columnNumber: 54\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 211,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"sneaky\",\n children: [/*#__PURE__*/_jsxDEV(\"input\", {\n type: \"checkbox\",\n id: \"contenttype\",\n onChange: \"nsfw(this)\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 212,\n columnNumber: 35\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n for: \"contenttype\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-domino-mask\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 213,\n columnNumber: 36\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 213,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 212,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 209,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 166,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 165,\n columnNumber: 5\n }, this);\n}\n\n_c9 = ModalMenu;\n\nfunction Provider(props) {\n return /*#__PURE__*/_jsxDEV(\"tr\", {\n children: [/*#__PURE__*/_jsxDEV(\"td\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: props.provider.url,\n children: props.provider.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 223,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 223,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"td\", {\n children: props.provider.prefix\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 224,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 222,\n columnNumber: 5\n }, this);\n}\n\n_c10 = Provider;\n\nfunction ModalInit() {\n return /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"modal_init\",\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n className: \"btn\",\n href: \"#modal\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify icon\",\n \"data-icon\": \"mdi-xbox-controller-menu\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 233,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 232,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 231,\n columnNumber: 5\n }, this);\n}\n\n_c11 = ModalInit;\nReactDOM.render( /*#__PURE__*/_jsxDEV(Homepage, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 240,\n columnNumber: 3\n}, this), document.getElementById('root')); //Functions below this line are for calculating data for\n//other functions\n\nfunction date() {\n let currentDate = new Date();\n let dateOptions = {\n weekday: \"long\",\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\"\n };\n let date = currentDate.toLocaleDateString(\"en-GB\", dateOptions);\n return date;\n}\n\nfunction fixDigits(k) {\n if (k < 10) {\n return \"0\" + k;\n } else {\n return k;\n }\n}\n\nfunction greet() {\n let currentTime = new Date();\n let greet = Math.floor(currentTime.getHours() / 6);\n let easterEggChance = Math.floor(Math.random() * 100);\n\n let greetings = require('./messages.json');\n\n let timeBased = [];\n let easterEggs = [];\n\n for (var i = 0; i < greetings.messages.length; i++) {\n if (greetings.messages[i].easteregg === \"FALSE\") {\n timeBased = timeBased.concat(greetings.messages[i]);\n } else {\n easterEggs = easterEggs.concat(greetings.messages[i]);\n }\n }\n\n if (easterEggChance > 10) {\n return timeBased[greet].message;\n } else {\n let easterEggText = Math.floor(Math.random() * easterEggs.length);\n return easterEggs[easterEggText].message;\n }\n}\n\nfunction Clock() {\n _s();\n\n const [date, setDate] = useState(new Date());\n\n function refreshClock() {\n setDate(new Date());\n }\n\n useEffect(() => {\n const timerId = setInterval(refreshClock, 1000);\n return function cleanup() {\n clearInterval(timerId);\n };\n }, []);\n var hour = date.getHours();\n var minutes = date.getMinutes(); //var seconds = date.getSeconds();\n\n var midday = \"AM\";\n midday = hour >= 12 ? \"PM\" : \"AM\";\n hour = hour === 0 ? 12 : hour > 12 ? hour - 12 : hour;\n minutes = fixDigits(minutes); //seconds = fixDigits(seconds);\n\n let time = hour + \":\" + minutes + \" \" + midday;\n return /*#__PURE__*/_jsxDEV(\"h2\", {\n id: \"clock\",\n children: time\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 311,\n columnNumber: 5\n }, this);\n}\n\n_s(Clock, \"Gqi45WOZhU2c0BLYX0HoJeiR0fk=\");\n\n_c12 = Clock;\n\nfunction getApps() {\n let applications = require('./apps.json');\n\n return applications;\n}\n\nfunction getLinks() {\n let links = require('./links.json');\n\n return links;\n}\n\nfunction getProviders() {\n let providers = require('./providers.json');\n\n return providers;\n}\n\nfunction handleKeyPress(e, value) {\n var sindex = 0;\n var cycle = false;\n var key = e.keyCode || e.which;\n var text = value.replaceAll(\"+\", \"%2B\");\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n\n if (key == 13) {\n // Search functions\n search(text);\n }\n\n if (key == 9) {\n // Tab Completion Functions\n e.preventDefault();\n e.stopPropagation();\n\n if (text[0] === ';') {\n switch (option) {\n case 't':\n var streamers = ['admiralbahroo', 'moonmoon_ow', 'witwix'];\n\n if (!subtext || cycle) {\n cycle = true;\n if (sindex > streamers.length - 1) sindex = 0;\n document.getElementById(\"keywords\").value = ';t ' + streamers[sindex++];\n return;\n }\n\n for (var streamer of streamers) {\n if (subtext === streamer.substr(0, subtext.length)) {\n document.getElementById(\"keywords\").value = ';t ' + streamer;\n return;\n }\n }\n\n break;\n }\n }\n }\n\n if (key == 32) {\n //Space to go to search\n updateLabel(text);\n }\n\n sindex = 0;\n cycle = false;\n updateLabel(text);\n}\n\nfunction updateLabel(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n\n if (text[0] === '/') {\n // if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n document.getElementById(\"searchType\").innerHTML = \"Allmusic search\";\n break;\n\n case \"d\":\n document.getElementById(\"searchType\").innerHTML = \"Duck Duck Go search\";\n break;\n\n case \"di\":\n document.getElementById(\"searchType\").innerHTML = \"Discogs search\";\n break;\n\n case \"i\":\n document.getElementById(\"searchType\").innerHTML = \"IMDB search\";\n break;\n\n case \"m\":\n document.getElementById(\"searchType\").innerHTML = \"TheMovieDB search\";\n break;\n\n case \"r\":\n document.getElementById(\"searchType\").innerHTML = \"Reddit search\";\n break;\n\n case \"q\":\n document.getElementById(\"searchType\").innerHTML = \"Qwant search\";\n break;\n\n case \"so\":\n document.getElementById(\"searchType\").innerHTML = \"Soundcloud search\";\n break;\n\n case \"s\":\n document.getElementById(\"searchType\").innerHTML = \"Spotify search\";\n break;\n\n case \"tv\":\n document.getElementById(\"searchType\").innerHTML = \"TheTVDB search\";\n break;\n\n case \"t\":\n document.getElementById(\"searchType\").innerHTML = \"Trakt search\";\n break;\n\n case \"y\":\n document.getElementById(\"searchType\").innerHTML = \"YouTube search\";\n break;\n\n case \"w\":\n document.getElementById(\"searchType\").innerHTML = \"Wikipedia search\";\n break;\n\n case \"p\":\n document.getElementById(\"searchType\").innerHTML = \"Plex search\";\n break;\n\n case \"rt\":\n document.getElementById(\"searchType\").innerHTML = \"Rotten Tomatoes search\";\n break;\n\n default:\n document.getElementById(\"searchType\").innerHTML = \"Invalid search\";\n break;\n }\n } else {\n document.getElementById(\"searchType\").innerHTML = \"Google search\";\n }\n}\n\nfunction search(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n\n if (text[0] === '/') {\n if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n window.location = \"https://www.allmusic.com/search/all/\" + subtext;\n break;\n\n case \"d\":\n window.location = \"https://duckduckgo.com/?q=\" + subtext;\n break;\n\n case \"di\":\n window.location = \"https://www.discogs.com/search/?q=\" + subtext;\n break;\n\n case \"i\":\n window.location = \"https://www.imdb.com/find?q=\" + subtext;\n break;\n\n case \"m\":\n window.location = \"https://www.themoviedb.org/search?query=\" + subtext;\n break;\n\n case \"r\":\n window.location = \"https://www.reddit.com/search?q=\" + subtext;\n break;\n\n case \"q\":\n window.location = \"https://www.qwant.com/?q=\" + subtext;\n break;\n\n case \"so\":\n window.location = \"https://soundcloud.com/search?q=\" + subtext;\n break;\n\n case \"s\":\n window.location = \"https://open.spotify.com/search/results/\" + subtext;\n break;\n\n case \"t\":\n window.location = \"https://trakt.tv/search?query=\" + subtext;\n break;\n\n case \"tv\":\n window.location = \"https://www.thetvdb.com/search?query=\" + subtext;\n break;\n\n case \"y\":\n window.location = \"https://www.youtube.com/results?search_query=\" + subtext;\n break;\n\n case \"w\":\n window.location = \"https://en.wikipedia.org/w/index.php?search=\" + subtext;\n break;\n\n case \"p\":\n window.location = \"https://app.plex.tv/desktop/#!/search?query=\" + subtext;\n break;\n\n case \"rt\":\n window.location = \"https://www.rottentomatoes.com/search?search=\" + subtext;\n break;\n }\n } else {\n var option = text.substr(1);\n\n switch (option) {\n case \"d\":\n window.location = \"https://www.duckduckgo.com\";\n break;\n\n case \"y\":\n window.location = \"https://www.youtube.com\";\n break;\n\n case \"r\":\n window.location = \"https://reddit.com\";\n break;\n\n case \"s\":\n window.location = \"https://open.spotify.com\";\n break;\n }\n }\n } else if (validURL(text)) {\n if (containsProtocol(text)) window.location = text;else window.location = \"https://\" + text;\n } else {\n window.location = \"https://www.google.com/search?q=\" + text;\n }\n} // Source: https://stackoverflow.com/questions/5717093/check-if-a-javascript-string-is-a-url\n\n\nfunction validURL(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/)?' + // protocol\n '((([a-z\\\\d]([a-z\\\\d-]*[a-z\\\\d])*)\\\\.)+[a-z]{2,}|' + // domain name\n '((\\\\d{1,3}\\\\.){3}\\\\d{1,3}))' + // OR ip (v4) address\n '(\\\\:\\\\d+)?(\\\\/[-a-z\\\\d%_.~+]*)*' + // port and path\n '(\\\\?[;&a-z\\\\d%_.~+=-]*)?' + // query string\n '(\\\\#[-a-z\\\\d_]*)?$', 'i'); // fragment locator\n\n return !!pattern.test(str);\n}\n\nfunction containsProtocol(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/){1}.*', 'i');\n return !!pattern.test(str);\n}\n\nString.prototype.replaceAll = function (search, replacement) {\n var target = this;\n return target.split(search).join(replacement);\n};\n\nvar _c, _c2, _c3, _c4, _c5, _c6, _c7, _c8, _c9, _c10, _c11, _c12;\n\n$RefreshReg$(_c, \"Homepage\");\n$RefreshReg$(_c2, \"Search\");\n$RefreshReg$(_c3, \"Header\");\n$RefreshReg$(_c4, \"Applications\");\n$RefreshReg$(_c5, \"App\");\n$RefreshReg$(_c6, \"Bookmarks\");\n$RefreshReg$(_c7, \"LinkGroups\");\n$RefreshReg$(_c8, \"LinkItem\");\n$RefreshReg$(_c9, \"ModalMenu\");\n$RefreshReg$(_c10, \"Provider\");\n$RefreshReg$(_c11, \"ModalInit\");\n$RefreshReg$(_c12, \"Clock\");","map":{"version":3,"sources":["/home/seanedmunds/dev/home-page/src/index.js"],"names":["React","useState","useEffect","ReactDOM","Homepage","date","greet","Search","handleKeyPress","Event","Header","props","Applications","appList","getApps","items","i","apps","length","push","name","url","icon","NSFW","App","classNameType","hrefUrl","iconName","Bookmarks","bookmarkList","getLinks","bookmarks","category","links","LinkGroups","LinkItem","link","ModalMenu","providers","getProviders","Provider","provider","prefix","ModalInit","render","document","getElementById","currentDate","Date","dateOptions","weekday","year","month","day","toLocaleDateString","fixDigits","k","currentTime","Math","floor","getHours","easterEggChance","random","greetings","require","timeBased","easterEggs","messages","easteregg","concat","message","easterEggText","Clock","setDate","refreshClock","timerId","setInterval","cleanup","clearInterval","hour","minutes","getMinutes","midday","time","applications","e","value","sindex","cycle","key","keyCode","which","text","replaceAll","option","substr","indexOf","subtext","search","preventDefault","stopPropagation","streamers","streamer","updateLabel","innerHTML","window","location","validURL","containsProtocol","str","pattern","RegExp","test","String","prototype","replacement","target","split","join"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { useState, useEffect } from 'react';\nimport ReactDOM from 'react-dom';\n//import { unstable_createPortal } from 'react-dom';\nimport './index.css';\n\nfunction Homepage() {\n return (\n \n \n \n
\n \n \n
\n \n \n \n
\n \n \n
\n \n \n
\n \n );\n}\n\nfunction Search() {\n return (\n \n )\n}\n\nfunction Header(props) {\n return (\n \n );\n}\n\nfunction Applications() {\n let appList = getApps();\n var items = [];\n for (var i = 0; i < appList.apps.length; i++) {\n items.push(\n \n );\n }\n return (\n \n Applications
\n \n {items}\n
\n \n );\n}\n\nfunction App(props) {\n let classNameType = props.NSFW + \"-content\";\n let hrefUrl = \"https://\" + props.url;\n let iconName = \"mdi-\" + props.icon;\n return (\n \n );\n}\n\nfunction Bookmarks() {\n let bookmarkList = getLinks();\n var items = [];\n for (var i = 0; i < bookmarkList.bookmarks.length; i++) {\n items.push(\n \n );\n }\n return (\n \n Bookmarks
\n \n {items}\n
\n \n );\n}\n\nfunction LinkGroups(props) {\n var items = [];\n for (var i = 0; i < props.links.length; i++) {\n items.push(\n \n );\n }\n return (\n \n
{props.category}
\n {items}\n \n );\n}\n\nfunction LinkItem(props) {\n return (\n \n );\n}\n\nfunction ModalMenu() {\n var providers = getProviders();\n var items = [];\n for (var i = 0; i < providers.providers.length; i++) {\n items.push(\n \n );\n }\n return (\n \n \n \n\n
Color themes
\n\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n\n\n
Search options
\n
\n \n \n \n | Website | \n Prefix | \n
\n {items}\n \n
\n \n\n \n
\n \n );\n}\n\nfunction Provider(props) {\n return (\n \n | {props.provider.name} | \n {props.provider.prefix} | \n
\n );\n}\n\nfunction ModalInit() {\n return (\n \n );\n}\n\nReactDOM.render(\n ,\n document.getElementById('root')\n);\n\n//Functions below this line are for calculating data for\n//other functions\n\nfunction date() {\n let currentDate = new Date();\n let dateOptions = {\n weekday: \"long\",\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\"\n };\n let date = currentDate.toLocaleDateString(\"en-GB\", dateOptions);\n return date;\n}\nfunction fixDigits(k) {\n if (k < 10) {\n return \"0\" + k;\n }\n else {\n return k;\n }\n}\nfunction greet() {\n let currentTime = new Date();\n let greet = Math.floor(currentTime.getHours() / 6);\n let easterEggChance = Math.floor(Math.random() * 100);\n let greetings = require('./messages.json');\n let timeBased = [];\n let easterEggs = [];\n for (var i = 0; i < greetings.messages.length; i++) {\n if (greetings.messages[i].easteregg === \"FALSE\") {\n timeBased = timeBased.concat(greetings.messages[i]);\n } else {\n easterEggs = easterEggs.concat(greetings.messages[i]);\n }\n }\n if (easterEggChance > 10) {\n return timeBased[greet].message;\n } else {\n let easterEggText = Math.floor(Math.random() * easterEggs.length);\n return easterEggs[easterEggText].message;\n }\n}\nfunction Clock() {\n const [date, setDate] = useState(new Date());\n\n function refreshClock() {\n setDate(new Date());\n }\n useEffect(() => {\n const timerId = setInterval(refreshClock, 1000);\n return function cleanup() {\n clearInterval(timerId);\n };\n }, []);\n\n var hour = date.getHours();\n var minutes = date.getMinutes();\n //var seconds = date.getSeconds();\n var midday = \"AM\";\n midday = (hour >= 12) ? \"PM\" : \"AM\";\n hour = (hour === 0) ? 12 : ((hour > 12) ? (hour - 12) : hour);\n minutes = fixDigits(minutes);\n //seconds = fixDigits(seconds);\n let time = hour + \":\" + minutes + \" \" + midday;\n\n return (\n {time}
\n\n );\n}\nfunction getApps() {\n let applications = require('./apps.json');\n return applications;\n}\nfunction getLinks() {\n let links = require('./links.json');\n return links;\n}\nfunction getProviders() {\n let providers = require('./providers.json');\n return providers;\n}\n\nfunction handleKeyPress(e,value) {\n var sindex = 0;\n var cycle = false;\n var key = e.keyCode || e.which;\n var text = value.replaceAll(\"+\", \"%2B\");\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n if (key == 13) { // Search functions\n search(text);\n }\n if (key == 9) { // Tab Completion Functions\n e.preventDefault();\n e.stopPropagation();\n if (text[0] === ';') {\n switch (option) {\n case 't':\n var streamers = ['admiralbahroo', 'moonmoon_ow', 'witwix'];\n if (!subtext || cycle) {\n cycle = true;\n if (sindex > streamers.length - 1) sindex = 0;\n document.getElementById(\"keywords\").value = ';t ' + streamers[sindex++];\n return;\n }\n for (var streamer of streamers) {\n if (subtext === streamer.substr(0, subtext.length)) {\n document.getElementById(\"keywords\").value = ';t ' + streamer;\n return;\n }\n }\n break;\n }\n }\n }\n if(key == 32){ //Space to go to search\nupdateLabel(text);\n }\n sindex = 0;\n cycle = false;\n updateLabel(text);\n}\n\nfunction updateLabel(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n if (text[0] === '/') {\n// if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n document.getElementById(\"searchType\").innerHTML = \"Allmusic search\";\n break;\n case \"d\":\n document.getElementById(\"searchType\").innerHTML = \"Duck Duck Go search\";\n break;\n case \"di\":\n document.getElementById(\"searchType\").innerHTML = \"Discogs search\";\n break;\n case \"i\":\n document.getElementById(\"searchType\").innerHTML = \"IMDB search\";\n break;\n case \"m\":\n document.getElementById(\"searchType\").innerHTML = \"TheMovieDB search\";\n break;\n case \"r\":\n document.getElementById(\"searchType\").innerHTML = \"Reddit search\";\n break;\n case \"q\":\n document.getElementById(\"searchType\").innerHTML = \"Qwant search\";\n break;\n case \"so\":\n document.getElementById(\"searchType\").innerHTML = \"Soundcloud search\";\n break;\n case \"s\":\n document.getElementById(\"searchType\").innerHTML = \"Spotify search\";\n break;\n case \"tv\":\n document.getElementById(\"searchType\").innerHTML = \"TheTVDB search\";\n break;\n case \"t\":\n document.getElementById(\"searchType\").innerHTML = \"Trakt search\";\n break;\n case \"y\":\n document.getElementById(\"searchType\").innerHTML = \"YouTube search\";\n break;\n case \"w\":\n document.getElementById(\"searchType\").innerHTML = \"Wikipedia search\";\n break;\n case \"p\":\n document.getElementById(\"searchType\").innerHTML = \"Plex search\";\n break;\n case \"rt\":\n document.getElementById(\"searchType\").innerHTML = \"Rotten Tomatoes search\";\n break;\n default:\n document.getElementById(\"searchType\").innerHTML = \"Invalid search\";\n break;\n }\n}else {\n document.getElementById(\"searchType\").innerHTML = \"Google search\";\n }\n}\n\nfunction search(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n if (text[0] === '/') {\n if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n window.location = \"https://www.allmusic.com/search/all/\" + subtext;\n break;\n case \"d\":\n window.location = \"https://duckduckgo.com/?q=\" + subtext;\n break;\n case \"di\":\n window.location = \"https://www.discogs.com/search/?q=\" + subtext;\n break;\n case \"i\":\n window.location = \"https://www.imdb.com/find?q=\" + subtext;\n break;\n case \"m\":\n window.location = \"https://www.themoviedb.org/search?query=\" + subtext;\n break;\n case \"r\":\n window.location = \"https://www.reddit.com/search?q=\" + subtext;\n break;\n case \"q\":\n window.location = \"https://www.qwant.com/?q=\" + subtext;\n break;\n case \"so\":\n window.location = \"https://soundcloud.com/search?q=\" + subtext;\n break;\n case \"s\":\n window.location = \"https://open.spotify.com/search/results/\" + subtext;\n break;\n case \"t\":\n window.location = \"https://trakt.tv/search?query=\" + subtext;\n break;\n case \"tv\":\n window.location = \"https://www.thetvdb.com/search?query=\" + subtext;\n break;\n case \"y\":\n window.location = \"https://www.youtube.com/results?search_query=\" + subtext;\n break;\n case \"w\":\n window.location = \"https://en.wikipedia.org/w/index.php?search=\" + subtext;\n break;\n case \"p\":\n window.location = \"https://app.plex.tv/desktop/#!/search?query=\" + subtext;\n break;\n case \"rt\":\n window.location = \"https://www.rottentomatoes.com/search?search=\" + subtext;\n break;\n }\n } else {\n var option = text.substr(1);\n switch (option) {\n case \"d\":\n window.location = \"https://www.duckduckgo.com\";\n break;\n case \"y\":\n window.location = \"https://www.youtube.com\";\n break;\n case \"r\":\n window.location = \"https://reddit.com\";\n break;\n case \"s\":\n window.location = \"https://open.spotify.com\";\n break;\n }\n }\n } else if (validURL(text)) {\n if (containsProtocol(text))\n window.location = text;\n else\n window.location = \"https://\" + text;\n } else {\n window.location = \"https://www.google.com/search?q=\" + text;\n }\n}\n\n// Source: https://stackoverflow.com/questions/5717093/check-if-a-javascript-string-is-a-url\nfunction validURL(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/)?' + // protocol\n '((([a-z\\\\d]([a-z\\\\d-]*[a-z\\\\d])*)\\\\.)+[a-z]{2,}|' + // domain name\n '((\\\\d{1,3}\\\\.){3}\\\\d{1,3}))' + // OR ip (v4) address\n '(\\\\:\\\\d+)?(\\\\/[-a-z\\\\d%_.~+]*)*' + // port and path\n '(\\\\?[;&a-z\\\\d%_.~+=-]*)?' + // query string\n '(\\\\#[-a-z\\\\d_]*)?$', 'i'); // fragment locator\n return !!pattern.test(str);\n}\n\nfunction containsProtocol(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/){1}.*', 'i');\n return !!pattern.test(str);\n}\n\nString.prototype.replaceAll = function(search, replacement) {\n var target = this;\n return target.split(search).join(replacement);\n};"]},"metadata":{},"sourceType":"module"}
\ No newline at end of file
diff --git a/node_modules/.cache/babel-loader/999659a81ea9e21c82fed9832ab5a95e.json b/node_modules/.cache/babel-loader/999659a81ea9e21c82fed9832ab5a95e.json
new file mode 100644
index 00000000..b0dbe7fc
--- /dev/null
+++ b/node_modules/.cache/babel-loader/999659a81ea9e21c82fed9832ab5a95e.json
@@ -0,0 +1 @@
+{"ast":null,"code":"var _jsxFileName = \"/home/seanedmunds/dev/home-page/src/index.js\",\n _s = $RefreshSig$();\n\nimport React from 'react';\nimport { useState, useEffect } from 'react';\nimport ReactDOM from 'react-dom';\nimport './index.css';\nimport { jsxDEV as _jsxDEV } from \"react/jsx-dev-runtime\";\n\nconst setValueFromLocalStorage = property => {\n let value = localStorage.getItem(property);\n setValue(property, value);\n};\n\nconst setValue = (property, value) => {\n if (value) {\n document.documentElement.style.setProperty(`--${property}`, value);\n const input = document.querySelector(`#${property}`);\n\n if (input) {\n value = value.replace('px', '');\n input.value = value;\n }\n }\n};\n\nfunction Homepage() {\n setTheme();\n return /*#__PURE__*/_jsxDEV(\"main\", {\n id: \"container\",\n className: \"fade\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Search, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 28,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 27,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Header, {\n date: date(),\n greet: greet()\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 31,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 30,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Applications, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 37,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 36,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Bookmarks, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 40,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 39,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(ModalMenu, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 43,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 42,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(ModalInit, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 46,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 45,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 26,\n columnNumber: 5\n }, this);\n}\n\n_c = Homepage;\n\nfunction Search() {\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"search\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"abackground\",\n children: [/*#__PURE__*/_jsxDEV(\"input\", {\n name: \"keywords\",\n type: \"text\",\n className: \"keyword\",\n id: \"keywords\",\n size: \"50\",\n spellCheck: \"true\",\n placeholder: \"\"\n /*onFocus={this.placeholder = \"\"} onBlur={this.placeholder = ''}*/\n ,\n autoComplete: \"off\",\n autoFocus: true,\n onKeyUp: handleKeyPress\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 56,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n id: \"searchType\",\n className: \"Input-label\",\n children: \"Google search\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 57,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 55,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 54,\n columnNumber: 5\n }, this);\n}\n\n_c2 = Search;\n\nfunction Header(props) {\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"header\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n id: \"greeting_block\",\n children: /*#__PURE__*/_jsxDEV(\"h1\", {\n id: \"header_greet\",\n children: props.greet\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 67,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 66,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"date_block\",\n children: [/*#__PURE__*/_jsxDEV(\"h2\", {\n id: \"header_date\",\n children: props.date\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 70,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(Clock, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 71,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 69,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 65,\n columnNumber: 5\n }, this);\n}\n\n_c3 = Header;\n\nfunction Applications() {\n let appList = getApps();\n var items = [];\n\n for (var i = 0; i < appList.apps.length; i++) {\n var safe = appList.apps[i].NSFW;\n var NSFWEnabled = localStorage.getItem(\"contenttype\");\n\n if (safe === \"SAFE\") {\n items.push( /*#__PURE__*/_jsxDEV(App, {\n name: appList.apps[i].name,\n url: appList.apps[i].url,\n icon: appList.apps[i].icon,\n NSFW: appList.apps[i].NSFW\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 85,\n columnNumber: 9\n }, this));\n } else if (safe === \"NSFW\" && NSFWEnabled) {\n items.push( /*#__PURE__*/_jsxDEV(App, {\n name: appList.apps[i].name,\n url: appList.apps[i].url,\n icon: appList.apps[i].icon,\n NSFW: appList.apps[i].NSFW\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 95,\n columnNumber: 9\n }, this));\n } else {}\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"apps\",\n children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n children: \"Applications\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 110,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"apps_loop\",\n children: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 111,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 109,\n columnNumber: 5\n }, this);\n}\n\n_c4 = Applications;\n\nfunction App(props) {\n let classNameType = props.NSFW + \"-content\";\n let hrefUrl = \"https://\" + props.url;\n let iconName = \"mdi-\" + props.icon;\n return /*#__PURE__*/_jsxDEV(\"div\", {\n className: classNameType,\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: hrefUrl,\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_item\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_icon\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify icon\",\n \"data-icon\": iconName\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 128,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 127,\n columnNumber: 13\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_text\",\n children: [/*#__PURE__*/_jsxDEV(\"span\", {\n id: \"app-name\",\n children: props.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 131,\n columnNumber: 15\n }, this), /*#__PURE__*/_jsxDEV(\"span\", {\n id: \"app-address\",\n children: props.url\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 132,\n columnNumber: 15\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 130,\n columnNumber: 13\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 126,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 125,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 124,\n columnNumber: 7\n }, this);\n}\n\n_c5 = App;\n\nfunction Bookmarks() {\n let bookmarkList = getLinks();\n var items = [];\n\n for (var i = 0; i < bookmarkList.bookmarks.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(LinkGroups, {\n category: bookmarkList.bookmarks[i].category,\n links: bookmarkList.bookmarks[i].links\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 145,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"links\",\n children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n children: \"Bookmarks\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 154,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"links_loop\",\n children: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 155,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 153,\n columnNumber: 5\n }, this);\n}\n\n_c6 = Bookmarks;\n\nfunction LinkGroups(props) {\n var items = [];\n\n for (var i = 0; i < props.links.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(LinkItem, {\n link: props.links[i]\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 166,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"links_item\",\n children: [/*#__PURE__*/_jsxDEV(\"h4\", {\n children: props.category\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 174,\n columnNumber: 7\n }, this), items]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 173,\n columnNumber: 5\n }, this);\n}\n\n_c7 = LinkGroups;\n\nfunction LinkItem(props) {\n return /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: props.link.url,\n className: \"theme_color-border theme_text-select\",\n children: props.link.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 183,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 182,\n columnNumber: 5\n }, this);\n}\n\n_c8 = LinkItem;\n\nfunction ModalMenu() {\n var providers = getProviders();\n var items = [];\n\n for (var i = 0; i < providers.providers.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(Provider, {\n provider: providers.providers[i]\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 193,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"modal\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n children: [/*#__PURE__*/_jsxDEV(\"header\", {\n id: \"modal-header\",\n children: [/*#__PURE__*/_jsxDEV(\"h1\", {\n children: \"Options\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 203,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n href: \"#\",\n title: \"Close\",\n className: \"modal-close\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-close\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 205,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 204,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 202,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"h2\", {\n children: \"Color themes\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 209,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"modal-theme\",\n children: [/*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"blackboard\",\n className: \"theme-button theme-blackboard\",\n onClick: updateTheme,\n children: \"Blackboard\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 212,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"gazette\",\n className: \"theme-button theme-gazette\",\n onClick: updateTheme,\n children: \"Gazette\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 213,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"espresso\",\n className: \"theme-button theme-espresso\",\n onClick: updateTheme,\n children: \"Espresso\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 214,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cab\",\n className: \"theme-button theme-cab\",\n onClick: updateTheme,\n children: \"Cab\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 215,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cloud\",\n className: \"theme-button theme-cloud\",\n onClick: updateTheme,\n children: \"Cloud\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 216,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"lime\",\n className: \"theme-button theme-lime\",\n onClick: updateTheme,\n children: \"Lime\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 217,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"passion\",\n className: \"theme-button theme-passion\",\n onClick: updateTheme,\n children: \"Passion\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 218,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"blues\",\n className: \"theme-button theme-blues\",\n onClick: updateTheme,\n children: \"Blues\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 219,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"chalk\",\n className: \"theme-button theme-chalk\",\n onClick: updateTheme,\n children: \"Chalk\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 220,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"tron\",\n className: \"theme-button theme-tron\",\n onClick: updateTheme,\n children: \"Tron\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 221,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"paper\",\n className: \"theme-button theme-paper\",\n onClick: updateTheme,\n children: \"Paper\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 222,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cyberpunk\",\n className: \"theme-button theme-cyberpunk\",\n onClick: updateTheme,\n children: \"Cyberpunk\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 223,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"quadra\",\n className: \"theme-button theme-panam\",\n onClick: updateTheme,\n children: \"Quadra\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 224,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"panam\",\n className: \"theme-button theme-panam\",\n onClick: updateTheme,\n children: \"Panam\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 225,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"touch\",\n className: \"theme-button theme-touch\",\n onClick: updateTheme,\n children: \"Touch\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 226,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"peek\",\n className: \"theme-button theme-peek\",\n onClick: updateTheme,\n children: \"Peek\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 227,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 211,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"h2\", {\n children: \"Search options\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 231,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"providers\",\n children: /*#__PURE__*/_jsxDEV(\"table\", {\n children: /*#__PURE__*/_jsxDEV(\"tbody\", {\n children: [/*#__PURE__*/_jsxDEV(\"tr\", {\n children: [/*#__PURE__*/_jsxDEV(\"th\", {\n children: \"Website\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 236,\n columnNumber: 19\n }, this), /*#__PURE__*/_jsxDEV(\"th\", {\n children: \"Prefix\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 237,\n columnNumber: 19\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 235,\n columnNumber: 17\n }, this), items]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 234,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 233,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 232,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"header\", {\n id: \"modal-footer\",\n children: [/*#__PURE__*/_jsxDEV(\"a\", {\n href: \"https://github.com/jeroenpardon/\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-github-box\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 245,\n columnNumber: 54\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 245,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n href: \"https://materialdesignicons.com/\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-material-design\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 246,\n columnNumber: 54\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 246,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(HideButton, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 247,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 244,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 201,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 200,\n columnNumber: 5\n }, this);\n}\n\n_c9 = ModalMenu;\n\nfunction HideButton() {\n var isChecked = localStorage.getItem(\"content-type\");\n return /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"sneaky\",\n children: [/*#__PURE__*/_jsxDEV(\"input\", {\n type: \"checkbox\",\n id: \"contenttype\",\n checked: isChecked,\n onChange: udpateDisplayedItems\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 258,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n for: \"contenttype\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-domino-mask\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 259,\n columnNumber: 32\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 259,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 257,\n columnNumber: 5\n }, this);\n}\n\n_c10 = HideButton;\n\nfunction Provider(props) {\n return /*#__PURE__*/_jsxDEV(\"tr\", {\n children: [/*#__PURE__*/_jsxDEV(\"td\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: props.provider.url,\n children: props.provider.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 267,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 267,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"td\", {\n children: props.provider.prefix\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 268,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 266,\n columnNumber: 5\n }, this);\n}\n\n_c11 = Provider;\n\nfunction ModalInit() {\n setDisplayedItems();\n return /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"modal_init\",\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n className: \"btn\",\n href: \"#modal\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify icon\",\n \"data-icon\": \"mdi-xbox-controller-menu\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 278,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 277,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 276,\n columnNumber: 5\n }, this);\n}\n\n_c12 = ModalInit;\nReactDOM.render( /*#__PURE__*/_jsxDEV(Homepage, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 285,\n columnNumber: 3\n}, this), document.getElementById('root')); //Functions below this line are for calculating data for\n//other functions\n\nfunction date() {\n let currentDate = new Date();\n let dateOptions = {\n weekday: \"long\",\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\"\n };\n let date = currentDate.toLocaleDateString(\"en-GB\", dateOptions);\n return date;\n}\n\nfunction fixDigits(k) {\n if (k < 10) {\n return \"0\" + k;\n } else {\n return k;\n }\n}\n\nfunction greet() {\n let currentTime = new Date();\n let greet = Math.floor(currentTime.getHours() / 6);\n let easterEggChance = Math.floor(Math.random() * 100);\n\n let greetings = require('./messages.json');\n\n let timeBased = [];\n let easterEggs = [];\n\n for (var i = 0; i < greetings.messages.length; i++) {\n if (greetings.messages[i].easteregg === \"FALSE\") {\n timeBased = timeBased.concat(greetings.messages[i]);\n } else {\n easterEggs = easterEggs.concat(greetings.messages[i]);\n }\n }\n\n if (easterEggChance > 10) {\n return timeBased[greet].message;\n } else {\n let easterEggText = Math.floor(Math.random() * easterEggs.length);\n return easterEggs[easterEggText].message;\n }\n}\n\nfunction Clock() {\n _s();\n\n const [date, setDate] = useState(new Date());\n\n function refreshClock() {\n setDate(new Date());\n }\n\n useEffect(() => {\n const timerId = setInterval(refreshClock, 1000);\n return function cleanup() {\n clearInterval(timerId);\n };\n }, []);\n var hour = date.getHours();\n var minutes = date.getMinutes(); //var seconds = date.getSeconds();\n\n var midday = \"AM\";\n midday = hour >= 12 ? \"PM\" : \"AM\";\n hour = hour === 0 ? 12 : hour > 12 ? hour - 12 : hour;\n minutes = fixDigits(minutes); //seconds = fixDigits(seconds);\n\n let time = hour + \":\" + minutes + \" \" + midday;\n return /*#__PURE__*/_jsxDEV(\"h2\", {\n id: \"clock\",\n children: time\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 356,\n columnNumber: 5\n }, this);\n}\n\n_s(Clock, \"Gqi45WOZhU2c0BLYX0HoJeiR0fk=\");\n\n_c13 = Clock;\n\nfunction getApps() {\n let applications = require('./apps.json');\n\n return applications;\n}\n\nfunction getLinks() {\n let links = require('./links.json');\n\n return links;\n}\n\nfunction getProviders() {\n let providers = require('./providers.json');\n\n return providers;\n}\n\nfunction getThemes() {\n let themes = require('./themes.json');\n\n return themes;\n}\n\nfunction updateTheme(e) {\n var themes = getThemes();\n var themeName = e.target.innerHTML.toLowerCase();\n var index = themes.themes.findIndex(function (item, i) {\n return item.name === themeName;\n });\n localStorage.setItem(\"image-background\", themes.themes[index].imagebackground);\n localStorage.setItem(\"color-background\", themes.themes[index].colorbackground);\n localStorage.setItem(\"color-search-background\", themes.themes[index].colorserachbackground);\n localStorage.setItem(\"color-text-pri\", themes.themes[index].colortextpri);\n localStorage.setItem(\"color-text-acc\", themes.themes[index].colortextacc);\n localStorage.setItem(\"color-border\", themes.themes[index].colorborder); //document.documentElement.style.setProperty(prop, `var(--${themeName}${prop.substring(10)})`);\n\n setTheme();\n}\n\nfunction setTheme() {\n setValueFromLocalStorage('image-background');\n setValueFromLocalStorage('color-background');\n setValueFromLocalStorage('color-search-background');\n setValueFromLocalStorage('color-text-pri');\n setValueFromLocalStorage('color-text-acc');\n setValueFromLocalStorage('color-border');\n setValueFromLocalStorage('content-display');\n}\n\nfunction handleKeyPress(e) {\n var sindex = 0;\n var cycle = false;\n var key = e.keyCode || e.which;\n var text = e.target.value.replaceAll(\"+\", \"%2B\");\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n\n if (key == 13) {\n // Search functions\n search(text);\n }\n\n if (key == 9) {\n // Tab Completion Functions\n e.preventDefault();\n e.stopPropagation();\n\n if (text[0] === ';') {\n switch (option) {\n case 't':\n var streamers = ['admiralbahroo', 'moonmoon_ow', 'witwix'];\n\n if (!subtext || cycle) {\n cycle = true;\n if (sindex > streamers.length - 1) sindex = 0;\n document.getElementById(\"keywords\").value = ';t ' + streamers[sindex++];\n return;\n }\n\n for (var streamer of streamers) {\n if (subtext === streamer.substr(0, subtext.length)) {\n document.getElementById(\"keywords\").value = ';t ' + streamer;\n return;\n }\n }\n\n break;\n }\n }\n }\n\n if (key == 32) {\n //Space to go to search\n updateLabel(text);\n }\n\n sindex = 0;\n cycle = false;\n updateLabel(text);\n}\n\nfunction updateLabel(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n\n if (text[0] === '/') {\n // if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n document.getElementById(\"searchType\").innerHTML = \"Allmusic search\";\n break;\n\n case \"d\":\n document.getElementById(\"searchType\").innerHTML = \"Duck Duck Go search\";\n break;\n\n case \"di\":\n document.getElementById(\"searchType\").innerHTML = \"Discogs search\";\n break;\n\n case \"i\":\n document.getElementById(\"searchType\").innerHTML = \"IMDB search\";\n break;\n\n case \"m\":\n document.getElementById(\"searchType\").innerHTML = \"TheMovieDB search\";\n break;\n\n case \"r\":\n document.getElementById(\"searchType\").innerHTML = \"Reddit search\";\n break;\n\n case \"q\":\n document.getElementById(\"searchType\").innerHTML = \"Qwant search\";\n break;\n\n case \"so\":\n document.getElementById(\"searchType\").innerHTML = \"Soundcloud search\";\n break;\n\n case \"s\":\n document.getElementById(\"searchType\").innerHTML = \"Spotify search\";\n break;\n\n case \"tv\":\n document.getElementById(\"searchType\").innerHTML = \"TheTVDB search\";\n break;\n\n case \"t\":\n document.getElementById(\"searchType\").innerHTML = \"Trakt search\";\n break;\n\n case \"y\":\n document.getElementById(\"searchType\").innerHTML = \"YouTube search\";\n break;\n\n case \"w\":\n document.getElementById(\"searchType\").innerHTML = \"Wikipedia search\";\n break;\n\n case \"p\":\n document.getElementById(\"searchType\").innerHTML = \"Plex search\";\n break;\n\n case \"rt\":\n document.getElementById(\"searchType\").innerHTML = \"Rotten Tomatoes search\";\n break;\n\n default:\n document.getElementById(\"searchType\").innerHTML = \"Invalid search\";\n break;\n }\n } else {\n document.getElementById(\"searchType\").innerHTML = \"Google search\";\n }\n}\n\nfunction search(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n\n if (text[0] === '/') {\n if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n window.location = \"https://www.allmusic.com/search/all/\" + subtext;\n break;\n\n case \"d\":\n window.location = \"https://duckduckgo.com/?q=\" + subtext;\n break;\n\n case \"di\":\n window.location = \"https://www.discogs.com/search/?q=\" + subtext;\n break;\n\n case \"i\":\n window.location = \"https://www.imdb.com/find?q=\" + subtext;\n break;\n\n case \"m\":\n window.location = \"https://www.themoviedb.org/search?query=\" + subtext;\n break;\n\n case \"r\":\n window.location = \"https://www.reddit.com/search?q=\" + subtext;\n break;\n\n case \"q\":\n window.location = \"https://www.qwant.com/?q=\" + subtext;\n break;\n\n case \"so\":\n window.location = \"https://soundcloud.com/search?q=\" + subtext;\n break;\n\n case \"s\":\n window.location = \"https://open.spotify.com/search/results/\" + subtext;\n break;\n\n case \"t\":\n window.location = \"https://trakt.tv/search?query=\" + subtext;\n break;\n\n case \"tv\":\n window.location = \"https://www.thetvdb.com/search?query=\" + subtext;\n break;\n\n case \"y\":\n window.location = \"https://www.youtube.com/results?search_query=\" + subtext;\n break;\n\n case \"w\":\n window.location = \"https://en.wikipedia.org/w/index.php?search=\" + subtext;\n break;\n\n case \"p\":\n window.location = \"https://app.plex.tv/desktop/#!/search?query=\" + subtext;\n break;\n\n case \"rt\":\n window.location = \"https://www.rottentomatoes.com/search?search=\" + subtext;\n break;\n }\n } else {\n var option = text.substr(1);\n\n switch (option) {\n case \"d\":\n window.location = \"https://www.duckduckgo.com\";\n break;\n\n case \"y\":\n window.location = \"https://www.youtube.com\";\n break;\n\n case \"r\":\n window.location = \"https://reddit.com\";\n break;\n\n case \"s\":\n window.location = \"https://open.spotify.com\";\n break;\n }\n }\n } else if (validURL(text)) {\n if (containsProtocol(text)) window.location = text;else window.location = \"https://\" + text;\n } else {\n window.location = \"https://www.google.com/search?q=\" + text;\n }\n}\n\nfunction validURL(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/)?' + // protocol\n '((([a-z\\\\d]([a-z\\\\d-]*[a-z\\\\d])*)\\\\.)+[a-z]{2,}|' + // domain name\n '((\\\\d{1,3}\\\\.){3}\\\\d{1,3}))' + // OR ip (v4) address\n '(\\\\:\\\\d+)?(\\\\/[-a-z\\\\d%_.~+]*)*' + // port and path\n '(\\\\?[;&a-z\\\\d%_.~+=-]*)?' + // query string\n '(\\\\#[-a-z\\\\d_]*)?$', 'i'); // fragment locator\n\n return !!pattern.test(str);\n}\n\nfunction containsProtocol(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/){1}.*', 'i');\n return !!pattern.test(str);\n}\n\nString.prototype.replaceAll = function (search, replacement) {\n var target = this;\n return target.split(search).join(replacement);\n};\n\nfunction udpateDisplayedItems(e) {\n console.log(e);\n localStorage.setItem('contenttype', e.target.checked);\n\n if (e.target.checked) {\n localStorage.setItem('content-display', 'none');\n } else {\n localStorage.setItem('content-display', 'block');\n }\n\n setDisplayedItems();\n}\n\nfunction setDisplayedItems() {\n setValueFromLocalStorage('contenttype');\n setValueFromLocalStorage('content-display');\n}\n\nvar _c, _c2, _c3, _c4, _c5, _c6, _c7, _c8, _c9, _c10, _c11, _c12, _c13;\n\n$RefreshReg$(_c, \"Homepage\");\n$RefreshReg$(_c2, \"Search\");\n$RefreshReg$(_c3, \"Header\");\n$RefreshReg$(_c4, \"Applications\");\n$RefreshReg$(_c5, \"App\");\n$RefreshReg$(_c6, \"Bookmarks\");\n$RefreshReg$(_c7, \"LinkGroups\");\n$RefreshReg$(_c8, \"LinkItem\");\n$RefreshReg$(_c9, \"ModalMenu\");\n$RefreshReg$(_c10, \"HideButton\");\n$RefreshReg$(_c11, \"Provider\");\n$RefreshReg$(_c12, \"ModalInit\");\n$RefreshReg$(_c13, \"Clock\");","map":{"version":3,"sources":["/home/seanedmunds/dev/home-page/src/index.js"],"names":["React","useState","useEffect","ReactDOM","setValueFromLocalStorage","property","value","localStorage","getItem","setValue","document","documentElement","style","setProperty","input","querySelector","replace","Homepage","setTheme","date","greet","Search","handleKeyPress","Header","props","Applications","appList","getApps","items","i","apps","length","safe","NSFW","NSFWEnabled","push","name","url","icon","App","classNameType","hrefUrl","iconName","Bookmarks","bookmarkList","getLinks","bookmarks","category","links","LinkGroups","LinkItem","link","ModalMenu","providers","getProviders","updateTheme","HideButton","isChecked","udpateDisplayedItems","Provider","provider","prefix","ModalInit","setDisplayedItems","render","getElementById","currentDate","Date","dateOptions","weekday","year","month","day","toLocaleDateString","fixDigits","k","currentTime","Math","floor","getHours","easterEggChance","random","greetings","require","timeBased","easterEggs","messages","easteregg","concat","message","easterEggText","Clock","setDate","refreshClock","timerId","setInterval","cleanup","clearInterval","hour","minutes","getMinutes","midday","time","applications","getThemes","themes","e","themeName","target","innerHTML","toLowerCase","index","findIndex","item","setItem","imagebackground","colorbackground","colorserachbackground","colortextpri","colortextacc","colorborder","sindex","cycle","key","keyCode","which","text","replaceAll","option","substr","indexOf","subtext","search","preventDefault","stopPropagation","streamers","streamer","updateLabel","window","location","validURL","containsProtocol","str","pattern","RegExp","test","String","prototype","replacement","split","join","console","log","checked"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { useState, useEffect } from 'react';\nimport ReactDOM from 'react-dom';\nimport './index.css';\n\nconst setValueFromLocalStorage = property => {\n let value = localStorage.getItem(property);\n setValue(property, value);\n};\nconst setValue = (property, value) => {\n if (value) {\n document.documentElement.style.setProperty(`--${property}`, value);\n\n const input = document.querySelector(`#${property}`);\n if (input) {\n value = value.replace('px', '');\n input.value = value;\n }\n }\n};\n\nfunction Homepage() {\n setTheme();\n \n return (\n \n \n \n
\n \n \n
\n \n \n \n
\n \n \n
\n \n \n
\n \n );\n}\n\nfunction Search() {\n return (\n \n )\n}\n\nfunction Header(props) {\n return (\n \n );\n}\n\nfunction Applications() {\n let appList = getApps();\n var items = [];\n for (var i = 0; i < appList.apps.length; i++) {\n var safe = appList.apps[i].NSFW;\n var NSFWEnabled = localStorage.getItem(\"contenttype\");\n if (safe === \"SAFE\") {\n items.push(\n \n );\n } else if (safe === \"NSFW\" && NSFWEnabled) {\n items.push(\n \n );\n } else {\n \n }\n \n }\n return (\n \n Applications
\n \n {items}\n
\n \n );\n}\n\nfunction App(props) {\n \n let classNameType = props.NSFW + \"-content\";\n let hrefUrl = \"https://\" + props.url;\n let iconName = \"mdi-\" + props.icon;\n return (\n \n );\n}\n\nfunction Bookmarks() {\n let bookmarkList = getLinks();\n var items = [];\n for (var i = 0; i < bookmarkList.bookmarks.length; i++) {\n items.push(\n \n );\n }\n return (\n \n Bookmarks
\n \n {items}\n
\n \n );\n}\n\nfunction LinkGroups(props) {\n var items = [];\n for (var i = 0; i < props.links.length; i++) {\n items.push(\n \n );\n }\n return (\n \n
{props.category}
\n {items}\n \n );\n}\n\nfunction LinkItem(props) {\n return (\n \n );\n}\n\nfunction ModalMenu() {\n var providers = getProviders();\n var items = [];\n for (var i = 0; i < providers.providers.length; i++) {\n items.push(\n \n );\n }\n return (\n \n \n \n\n
Color themes
\n\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n\n\n
Search options
\n
\n \n \n \n | Website | \n Prefix | \n
\n {items}\n \n
\n \n\n \n
\n \n );\n}\n\nfunction HideButton() {\n var isChecked = localStorage.getItem(\"content-type\");\n return(\n \n \n \n
\n );\n}\n\nfunction Provider(props) {\n return (\n \n | {props.provider.name} | \n {props.provider.prefix} | \n
\n );\n}\n\nfunction ModalInit() {\n setDisplayedItems();\n return (\n \n );\n}\n\nReactDOM.render(\n ,\n document.getElementById('root')\n);\n\n//Functions below this line are for calculating data for\n//other functions\n\nfunction date() {\n let currentDate = new Date();\n let dateOptions = {\n weekday: \"long\",\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\"\n };\n let date = currentDate.toLocaleDateString(\"en-GB\", dateOptions);\n return date;\n}\nfunction fixDigits(k) {\n if (k < 10) {\n return \"0\" + k;\n }\n else {\n return k;\n }\n}\nfunction greet() {\n let currentTime = new Date();\n let greet = Math.floor(currentTime.getHours() / 6);\n let easterEggChance = Math.floor(Math.random() * 100);\n let greetings = require('./messages.json');\n let timeBased = [];\n let easterEggs = [];\n for (var i = 0; i < greetings.messages.length; i++) {\n if (greetings.messages[i].easteregg === \"FALSE\") {\n timeBased = timeBased.concat(greetings.messages[i]);\n } else {\n easterEggs = easterEggs.concat(greetings.messages[i]);\n }\n }\n if (easterEggChance > 10) {\n return timeBased[greet].message;\n } else {\n let easterEggText = Math.floor(Math.random() * easterEggs.length);\n return easterEggs[easterEggText].message;\n }\n}\nfunction Clock() {\n const [date, setDate] = useState(new Date());\n\n function refreshClock() {\n setDate(new Date());\n }\n useEffect(() => {\n const timerId = setInterval(refreshClock, 1000);\n return function cleanup() {\n clearInterval(timerId);\n };\n }, []);\n\n var hour = date.getHours();\n var minutes = date.getMinutes();\n //var seconds = date.getSeconds();\n var midday = \"AM\";\n midday = (hour >= 12) ? \"PM\" : \"AM\";\n hour = (hour === 0) ? 12 : ((hour > 12) ? (hour - 12) : hour);\n minutes = fixDigits(minutes);\n //seconds = fixDigits(seconds);\n let time = hour + \":\" + minutes + \" \" + midday;\n\n return (\n {time}
\n\n );\n}\nfunction getApps() {\n let applications = require('./apps.json');\n return applications;\n}\nfunction getLinks() {\n let links = require('./links.json');\n return links;\n}\nfunction getProviders() {\n let providers = require('./providers.json');\n return providers;\n}\nfunction getThemes() {\n let themes = require('./themes.json');\n return themes;\n}\nfunction updateTheme(e) {\n var themes = getThemes();\n var themeName = e.target.innerHTML.toLowerCase();\n var index = themes.themes.findIndex(function(item, i){\n return item.name === themeName\n });\n localStorage.setItem(\"image-background\", themes.themes[index].imagebackground);\n localStorage.setItem(\"color-background\", themes.themes[index].colorbackground);\n localStorage.setItem(\"color-search-background\", themes.themes[index].colorserachbackground);\n localStorage.setItem(\"color-text-pri\",themes.themes[index].colortextpri);\n localStorage.setItem(\"color-text-acc\", themes.themes[index].colortextacc);\n localStorage.setItem(\"color-border\", themes.themes[index].colorborder);\n \n //document.documentElement.style.setProperty(prop, `var(--${themeName}${prop.substring(10)})`);\n setTheme();\n}\nfunction setTheme() {\n setValueFromLocalStorage('image-background');\n setValueFromLocalStorage('color-background');\n setValueFromLocalStorage('color-search-background');\n setValueFromLocalStorage('color-text-pri');\n setValueFromLocalStorage('color-text-acc');\n setValueFromLocalStorage('color-border');\n setValueFromLocalStorage('content-display');\n}\nfunction handleKeyPress(e) {\n var sindex = 0;\n var cycle = false;\n var key = e.keyCode || e.which;\n var text = e.target.value.replaceAll(\"+\", \"%2B\");\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n if (key == 13) { // Search functions\n search(text);\n }\n if (key == 9) { // Tab Completion Functions\n e.preventDefault();\n e.stopPropagation();\n if (text[0] === ';') {\n switch (option) {\n case 't':\n var streamers = ['admiralbahroo', 'moonmoon_ow', 'witwix'];\n if (!subtext || cycle) {\n cycle = true;\n if (sindex > streamers.length - 1) sindex = 0;\n document.getElementById(\"keywords\").value = ';t ' + streamers[sindex++];\n return;\n }\n for (var streamer of streamers) {\n if (subtext === streamer.substr(0, subtext.length)) {\n document.getElementById(\"keywords\").value = ';t ' + streamer;\n return;\n }\n }\n break;\n }\n }\n }\n if(key == 32){ //Space to go to search\nupdateLabel(text);\n }\n sindex = 0;\n cycle = false;\n updateLabel(text);\n}\nfunction updateLabel(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n if (text[0] === '/') {\n// if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n document.getElementById(\"searchType\").innerHTML = \"Allmusic search\";\n break;\n case \"d\":\n document.getElementById(\"searchType\").innerHTML = \"Duck Duck Go search\";\n break;\n case \"di\":\n document.getElementById(\"searchType\").innerHTML = \"Discogs search\";\n break;\n case \"i\":\n document.getElementById(\"searchType\").innerHTML = \"IMDB search\";\n break;\n case \"m\":\n document.getElementById(\"searchType\").innerHTML = \"TheMovieDB search\";\n break;\n case \"r\":\n document.getElementById(\"searchType\").innerHTML = \"Reddit search\";\n break;\n case \"q\":\n document.getElementById(\"searchType\").innerHTML = \"Qwant search\";\n break;\n case \"so\":\n document.getElementById(\"searchType\").innerHTML = \"Soundcloud search\";\n break;\n case \"s\":\n document.getElementById(\"searchType\").innerHTML = \"Spotify search\";\n break;\n case \"tv\":\n document.getElementById(\"searchType\").innerHTML = \"TheTVDB search\";\n break;\n case \"t\":\n document.getElementById(\"searchType\").innerHTML = \"Trakt search\";\n break;\n case \"y\":\n document.getElementById(\"searchType\").innerHTML = \"YouTube search\";\n break;\n case \"w\":\n document.getElementById(\"searchType\").innerHTML = \"Wikipedia search\";\n break;\n case \"p\":\n document.getElementById(\"searchType\").innerHTML = \"Plex search\";\n break;\n case \"rt\":\n document.getElementById(\"searchType\").innerHTML = \"Rotten Tomatoes search\";\n break;\n default:\n document.getElementById(\"searchType\").innerHTML = \"Invalid search\";\n break;\n }\n}else {\n document.getElementById(\"searchType\").innerHTML = \"Google search\";\n }\n}\nfunction search(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n if (text[0] === '/') {\n if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n window.location = \"https://www.allmusic.com/search/all/\" + subtext;\n break;\n case \"d\":\n window.location = \"https://duckduckgo.com/?q=\" + subtext;\n break;\n case \"di\":\n window.location = \"https://www.discogs.com/search/?q=\" + subtext;\n break;\n case \"i\":\n window.location = \"https://www.imdb.com/find?q=\" + subtext;\n break;\n case \"m\":\n window.location = \"https://www.themoviedb.org/search?query=\" + subtext;\n break;\n case \"r\":\n window.location = \"https://www.reddit.com/search?q=\" + subtext;\n break;\n case \"q\":\n window.location = \"https://www.qwant.com/?q=\" + subtext;\n break;\n case \"so\":\n window.location = \"https://soundcloud.com/search?q=\" + subtext;\n break;\n case \"s\":\n window.location = \"https://open.spotify.com/search/results/\" + subtext;\n break;\n case \"t\":\n window.location = \"https://trakt.tv/search?query=\" + subtext;\n break;\n case \"tv\":\n window.location = \"https://www.thetvdb.com/search?query=\" + subtext;\n break;\n case \"y\":\n window.location = \"https://www.youtube.com/results?search_query=\" + subtext;\n break;\n case \"w\":\n window.location = \"https://en.wikipedia.org/w/index.php?search=\" + subtext;\n break;\n case \"p\":\n window.location = \"https://app.plex.tv/desktop/#!/search?query=\" + subtext;\n break;\n case \"rt\":\n window.location = \"https://www.rottentomatoes.com/search?search=\" + subtext;\n break;\n }\n } else {\n var option = text.substr(1);\n switch (option) {\n case \"d\":\n window.location = \"https://www.duckduckgo.com\";\n break;\n case \"y\":\n window.location = \"https://www.youtube.com\";\n break;\n case \"r\":\n window.location = \"https://reddit.com\";\n break;\n case \"s\":\n window.location = \"https://open.spotify.com\";\n break;\n }\n }\n } else if (validURL(text)) {\n if (containsProtocol(text))\n window.location = text;\n else\n window.location = \"https://\" + text;\n } else {\n window.location = \"https://www.google.com/search?q=\" + text;\n }\n}\nfunction validURL(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/)?' + // protocol\n '((([a-z\\\\d]([a-z\\\\d-]*[a-z\\\\d])*)\\\\.)+[a-z]{2,}|' + // domain name\n '((\\\\d{1,3}\\\\.){3}\\\\d{1,3}))' + // OR ip (v4) address\n '(\\\\:\\\\d+)?(\\\\/[-a-z\\\\d%_.~+]*)*' + // port and path\n '(\\\\?[;&a-z\\\\d%_.~+=-]*)?' + // query string\n '(\\\\#[-a-z\\\\d_]*)?$', 'i'); // fragment locator\n return !!pattern.test(str);\n}\nfunction containsProtocol(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/){1}.*', 'i');\n return !!pattern.test(str);\n}\nString.prototype.replaceAll = function(search, replacement) {\n var target = this;\n return target.split(search).join(replacement);\n};\nfunction udpateDisplayedItems(e) {\n console.log(e);\n localStorage.setItem('contenttype', e.target.checked);\n if (e.target.checked) {\n localStorage.setItem('content-display', 'none');\n } else {\n localStorage.setItem('content-display', 'block');\n }\n setDisplayedItems();\n}\nfunction setDisplayedItems() {\n setValueFromLocalStorage('contenttype');\n setValueFromLocalStorage('content-display');\n}"]},"metadata":{},"sourceType":"module"}
\ No newline at end of file
diff --git a/node_modules/.cache/babel-loader/99e027f7430b963950930a89cde9e0ff.json b/node_modules/.cache/babel-loader/99e027f7430b963950930a89cde9e0ff.json
new file mode 100644
index 00000000..4885dfc5
--- /dev/null
+++ b/node_modules/.cache/babel-loader/99e027f7430b963950930a89cde9e0ff.json
@@ -0,0 +1 @@
+{"ast":null,"code":"'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react.production.min.js');\n} else {\n module.exports = require('./cjs/react.development.js');\n}","map":{"version":3,"sources":["/home/seanedmunds/dev/home-page/node_modules/react/index.js"],"names":["process","env","NODE_ENV","module","exports","require"],"mappings":"AAAA;;AAEA,IAAIA,OAAO,CAACC,GAAR,CAAYC,QAAZ,KAAyB,YAA7B,EAA2C;AACzCC,EAAAA,MAAM,CAACC,OAAP,GAAiBC,OAAO,CAAC,+BAAD,CAAxB;AACD,CAFD,MAEO;AACLF,EAAAA,MAAM,CAACC,OAAP,GAAiBC,OAAO,CAAC,4BAAD,CAAxB;AACD","sourcesContent":["'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react.production.min.js');\n} else {\n module.exports = require('./cjs/react.development.js');\n}\n"]},"metadata":{},"sourceType":"script"}
\ No newline at end of file
diff --git a/node_modules/.cache/babel-loader/9a5be0afbfa788834c576f9874b772a9.json b/node_modules/.cache/babel-loader/9a5be0afbfa788834c576f9874b772a9.json
new file mode 100644
index 00000000..79ff770e
--- /dev/null
+++ b/node_modules/.cache/babel-loader/9a5be0afbfa788834c576f9874b772a9.json
@@ -0,0 +1 @@
+{"ast":null,"code":"var _jsxFileName = \"/home/seanedmunds/dev/home-page/src/index.js\",\n _s = $RefreshSig$();\n\nimport React from 'react';\nimport { useState, useEffect } from 'react';\nimport ReactDOM from 'react-dom';\nimport './index.css';\nimport { jsxDEV as _jsxDEV } from \"react/jsx-dev-runtime\";\n\nconst setValueFromLocalStorage = property => {\n let value = localStorage.getItem(property);\n setValue(property, value);\n};\n\nconst setValue = (property, value) => {\n if (value) {\n document.documentElement.style.setProperty(`--${property}`, value);\n const input = document.querySelector(`#${property}`);\n\n if (input) {\n value = value.replace('px', '');\n input.value = value;\n }\n }\n};\n\nfunction Homepage() {\n setTheme();\n return /*#__PURE__*/_jsxDEV(\"main\", {\n id: \"container\",\n className: \"fade\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Search, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 28,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 27,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Header, {\n date: date(),\n greet: greet()\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 31,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 30,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Applications, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 37,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 36,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Bookmarks, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 40,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 39,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(ModalMenu, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 43,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 42,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(ModalInit, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 46,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 45,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 26,\n columnNumber: 5\n }, this);\n}\n\n_c = Homepage;\n\nfunction Search() {\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"search\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"abackground\",\n children: [/*#__PURE__*/_jsxDEV(\"input\", {\n name: \"keywords\",\n type: \"text\",\n className: \"keyword\",\n id: \"keywords\",\n size: \"50\",\n spellCheck: \"true\",\n placeholder: \"\"\n /*onFocus={this.placeholder = \"\"} onBlur={this.placeholder = ''}*/\n ,\n autoComplete: \"off\",\n autoFocus: true,\n onKeyUp: handleKeyPress\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 56,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n id: \"searchType\",\n className: \"Input-label\",\n children: \"Google search\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 57,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 55,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 54,\n columnNumber: 5\n }, this);\n}\n\n_c2 = Search;\n\nfunction Header(props) {\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"header\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n id: \"greeting_block\",\n children: /*#__PURE__*/_jsxDEV(\"h1\", {\n id: \"header_greet\",\n children: props.greet\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 67,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 66,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"date_block\",\n children: [/*#__PURE__*/_jsxDEV(\"h2\", {\n id: \"header_date\",\n children: props.date\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 70,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(Clock, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 71,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 69,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 65,\n columnNumber: 5\n }, this);\n}\n\n_c3 = Header;\n\nfunction Applications() {\n let appList = getApps();\n var items = [];\n\n for (var i = 0; i < appList.apps.length; i++) {\n var safe = appList.apps[i].NSFW;\n var NSFWEnabled = localStorage.getItem(\"contenttype\");\n\n if (safe === \"SAFE\") {\n items.push( /*#__PURE__*/_jsxDEV(App, {\n name: appList.apps[i].name,\n url: appList.apps[i].url,\n icon: appList.apps[i].icon,\n NSFW: appList.apps[i].NSFW\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 85,\n columnNumber: 9\n }, this));\n } else if (safe === \"NSFW\" && NSFWEnabled) {\n items.push( /*#__PURE__*/_jsxDEV(App, {\n name: appList.apps[i].name,\n url: appList.apps[i].url,\n icon: appList.apps[i].icon,\n NSFW: appList.apps[i].NSFW\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 95,\n columnNumber: 9\n }, this));\n } else {}\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"apps\",\n children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n children: \"Applications\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 110,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"apps_loop\",\n children: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 111,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 109,\n columnNumber: 5\n }, this);\n}\n\n_c4 = Applications;\n\nfunction App(props) {\n let classNameType = props.NSFW + \"-content\";\n let hrefUrl = \"https://\" + props.url;\n let iconName = \"mdi-\" + props.icon;\n return /*#__PURE__*/_jsxDEV(\"div\", {\n className: classNameType,\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: hrefUrl,\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_item\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_icon\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify icon\",\n \"data-icon\": iconName\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 128,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 127,\n columnNumber: 13\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_text\",\n children: [/*#__PURE__*/_jsxDEV(\"span\", {\n id: \"app-name\",\n children: props.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 131,\n columnNumber: 15\n }, this), /*#__PURE__*/_jsxDEV(\"span\", {\n id: \"app-address\",\n children: props.url\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 132,\n columnNumber: 15\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 130,\n columnNumber: 13\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 126,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 125,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 124,\n columnNumber: 7\n }, this);\n}\n\n_c5 = App;\n\nfunction Bookmarks() {\n let bookmarkList = getLinks();\n var items = [];\n\n for (var i = 0; i < bookmarkList.bookmarks.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(LinkGroups, {\n category: bookmarkList.bookmarks[i].category,\n links: bookmarkList.bookmarks[i].links\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 145,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"links\",\n children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n children: \"Bookmarks\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 154,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"links_loop\",\n children: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 155,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 153,\n columnNumber: 5\n }, this);\n}\n\n_c6 = Bookmarks;\n\nfunction LinkGroups(props) {\n var items = [];\n\n for (var i = 0; i < props.links.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(LinkItem, {\n link: props.links[i]\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 166,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"links_item\",\n children: [/*#__PURE__*/_jsxDEV(\"h4\", {\n children: props.category\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 174,\n columnNumber: 7\n }, this), items]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 173,\n columnNumber: 5\n }, this);\n}\n\n_c7 = LinkGroups;\n\nfunction LinkItem(props) {\n return /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: props.link.url,\n className: \"theme_color-border theme_text-select\",\n children: props.link.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 183,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 182,\n columnNumber: 5\n }, this);\n}\n\n_c8 = LinkItem;\n\nfunction ModalMenu() {\n var providers = getProviders();\n var items = [];\n var isChecked = localStorage.getItem(\"contenttype\");\n\n for (var i = 0; i < providers.providers.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(Provider, {\n provider: providers.providers[i]\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 194,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"modal\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n children: [/*#__PURE__*/_jsxDEV(\"header\", {\n id: \"modal-header\",\n children: [/*#__PURE__*/_jsxDEV(\"h1\", {\n children: \"Options\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 204,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n href: \"#\",\n title: \"Close\",\n className: \"modal-close\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-close\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 206,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 205,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 203,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"h2\", {\n children: \"Color themes\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 210,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"modal-theme\",\n children: [/*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"blackboard\",\n className: \"theme-button theme-blackboard\",\n onClick: updateTheme,\n children: \"Blackboard\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 213,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"gazette\",\n className: \"theme-button theme-gazette\",\n onClick: updateTheme,\n children: \"Gazette\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 214,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"espresso\",\n className: \"theme-button theme-espresso\",\n onClick: updateTheme,\n children: \"Espresso\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 215,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cab\",\n className: \"theme-button theme-cab\",\n onClick: updateTheme,\n children: \"Cab\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 216,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cloud\",\n className: \"theme-button theme-cloud\",\n onClick: updateTheme,\n children: \"Cloud\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 217,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"lime\",\n className: \"theme-button theme-lime\",\n onClick: updateTheme,\n children: \"Lime\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 218,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"passion\",\n className: \"theme-button theme-passion\",\n onClick: updateTheme,\n children: \"Passion\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 219,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"blues\",\n className: \"theme-button theme-blues\",\n onClick: updateTheme,\n children: \"Blues\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 220,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"chalk\",\n className: \"theme-button theme-chalk\",\n onClick: updateTheme,\n children: \"Chalk\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 221,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"tron\",\n className: \"theme-button theme-tron\",\n onClick: updateTheme,\n children: \"Tron\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 222,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"paper\",\n className: \"theme-button theme-paper\",\n onClick: updateTheme,\n children: \"Paper\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 223,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cyberpunk\",\n className: \"theme-button theme-cyberpunk\",\n onClick: updateTheme,\n children: \"Cyberpunk\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 224,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"quadra\",\n className: \"theme-button theme-panam\",\n onClick: updateTheme,\n children: \"Quadra\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 225,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"panam\",\n className: \"theme-button theme-panam\",\n onClick: updateTheme,\n children: \"Panam\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 226,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"touch\",\n className: \"theme-button theme-touch\",\n onClick: updateTheme,\n children: \"Touch\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 227,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"peek\",\n className: \"theme-button theme-peek\",\n onClick: updateTheme,\n children: \"Peek\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 228,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 212,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"h2\", {\n children: \"Search options\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 232,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"providers\",\n children: /*#__PURE__*/_jsxDEV(\"table\", {\n children: /*#__PURE__*/_jsxDEV(\"tbody\", {\n children: [/*#__PURE__*/_jsxDEV(\"tr\", {\n children: [/*#__PURE__*/_jsxDEV(\"th\", {\n children: \"Website\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 237,\n columnNumber: 19\n }, this), /*#__PURE__*/_jsxDEV(\"th\", {\n children: \"Prefix\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 238,\n columnNumber: 19\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 236,\n columnNumber: 17\n }, this), items]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 235,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 234,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 233,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"header\", {\n id: \"modal-footer\",\n children: [/*#__PURE__*/_jsxDEV(\"a\", {\n href: \"https://github.com/jeroenpardon/\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-github-box\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 246,\n columnNumber: 54\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 246,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n href: \"https://materialdesignicons.com/\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-material-design\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 247,\n columnNumber: 54\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 247,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(HideButton, {\n checked: isChecked\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 248,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 245,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 202,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 201,\n columnNumber: 5\n }, this);\n}\n\n_c9 = ModalMenu;\n\nfunction HideButton(props) {\n console.log(props.checked);\n return /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"sneaky\",\n children: [/*#__PURE__*/_jsxDEV(\"input\", {\n type: \"checkbox\",\n id: \"contenttype\",\n onChange: udpateDisplayedItems,\n defaultChecked: props.checked\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 260,\n columnNumber: 29\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n for: \"contenttype\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-domino-mask\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 261,\n columnNumber: 30\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 261,\n columnNumber: 5\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 260,\n columnNumber: 5\n }, this);\n}\n\n_c10 = HideButton;\n\nfunction Provider(props) {\n return /*#__PURE__*/_jsxDEV(\"tr\", {\n children: [/*#__PURE__*/_jsxDEV(\"td\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: props.provider.url,\n children: props.provider.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 268,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 268,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"td\", {\n children: props.provider.prefix\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 269,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 267,\n columnNumber: 5\n }, this);\n}\n\n_c11 = Provider;\n\nfunction ModalInit() {\n setDisplayedItems();\n return /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"modal_init\",\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n className: \"btn\",\n href: \"#modal\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify icon\",\n \"data-icon\": \"mdi-xbox-controller-menu\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 279,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 278,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 277,\n columnNumber: 5\n }, this);\n}\n\n_c12 = ModalInit;\nReactDOM.render( /*#__PURE__*/_jsxDEV(Homepage, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 286,\n columnNumber: 3\n}, this), document.getElementById('root')); //Functions below this line are for calculating data for\n//other functions\n\nfunction date() {\n let currentDate = new Date();\n let dateOptions = {\n weekday: \"long\",\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\"\n };\n let date = currentDate.toLocaleDateString(\"en-GB\", dateOptions);\n return date;\n}\n\nfunction fixDigits(k) {\n if (k < 10) {\n return \"0\" + k;\n } else {\n return k;\n }\n}\n\nfunction greet() {\n let currentTime = new Date();\n let greet = Math.floor(currentTime.getHours() / 6);\n let easterEggChance = Math.floor(Math.random() * 100);\n\n let greetings = require('./messages.json');\n\n let timeBased = [];\n let easterEggs = [];\n\n for (var i = 0; i < greetings.messages.length; i++) {\n if (greetings.messages[i].easteregg === \"FALSE\") {\n timeBased = timeBased.concat(greetings.messages[i]);\n } else {\n easterEggs = easterEggs.concat(greetings.messages[i]);\n }\n }\n\n if (easterEggChance > 10) {\n return timeBased[greet].message;\n } else {\n let easterEggText = Math.floor(Math.random() * easterEggs.length);\n return easterEggs[easterEggText].message;\n }\n}\n\nfunction Clock() {\n _s();\n\n const [date, setDate] = useState(new Date());\n\n function refreshClock() {\n setDate(new Date());\n }\n\n useEffect(() => {\n const timerId = setInterval(refreshClock, 1000);\n return function cleanup() {\n clearInterval(timerId);\n };\n }, []);\n var hour = date.getHours();\n var minutes = date.getMinutes(); //var seconds = date.getSeconds();\n\n var midday = \"AM\";\n midday = hour >= 12 ? \"PM\" : \"AM\";\n hour = hour === 0 ? 12 : hour > 12 ? hour - 12 : hour;\n minutes = fixDigits(minutes); //seconds = fixDigits(seconds);\n\n let time = hour + \":\" + minutes + \" \" + midday;\n return /*#__PURE__*/_jsxDEV(\"h2\", {\n id: \"clock\",\n children: time\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 357,\n columnNumber: 5\n }, this);\n}\n\n_s(Clock, \"Gqi45WOZhU2c0BLYX0HoJeiR0fk=\");\n\n_c13 = Clock;\n\nfunction getApps() {\n let applications = require('./apps.json');\n\n return applications;\n}\n\nfunction getLinks() {\n let links = require('./links.json');\n\n return links;\n}\n\nfunction getProviders() {\n let providers = require('./providers.json');\n\n return providers;\n}\n\nfunction getThemes() {\n let themes = require('./themes.json');\n\n return themes;\n}\n\nfunction updateTheme(e) {\n var themes = getThemes();\n var themeName = e.target.innerHTML.toLowerCase();\n var index = themes.themes.findIndex(function (item, i) {\n return item.name === themeName;\n });\n localStorage.setItem(\"image-background\", themes.themes[index].imagebackground);\n localStorage.setItem(\"color-background\", themes.themes[index].colorbackground);\n localStorage.setItem(\"color-search-background\", themes.themes[index].colorserachbackground);\n localStorage.setItem(\"color-text-pri\", themes.themes[index].colortextpri);\n localStorage.setItem(\"color-text-acc\", themes.themes[index].colortextacc);\n localStorage.setItem(\"color-border\", themes.themes[index].colorborder); //document.documentElement.style.setProperty(prop, `var(--${themeName}${prop.substring(10)})`);\n\n setTheme();\n}\n\nfunction setTheme() {\n setValueFromLocalStorage('image-background');\n setValueFromLocalStorage('color-background');\n setValueFromLocalStorage('color-search-background');\n setValueFromLocalStorage('color-text-pri');\n setValueFromLocalStorage('color-text-acc');\n setValueFromLocalStorage('color-border');\n setValueFromLocalStorage('content-display');\n}\n\nfunction handleKeyPress(e) {\n var sindex = 0;\n var cycle = false;\n var key = e.keyCode || e.which;\n var text = e.target.value.replaceAll(\"+\", \"%2B\");\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n\n if (key == 13) {\n // Search functions\n search(text);\n }\n\n if (key == 9) {\n // Tab Completion Functions\n e.preventDefault();\n e.stopPropagation();\n\n if (text[0] === ';') {\n switch (option) {\n case 't':\n var streamers = ['admiralbahroo', 'moonmoon_ow', 'witwix'];\n\n if (!subtext || cycle) {\n cycle = true;\n if (sindex > streamers.length - 1) sindex = 0;\n document.getElementById(\"keywords\").value = ';t ' + streamers[sindex++];\n return;\n }\n\n for (var streamer of streamers) {\n if (subtext === streamer.substr(0, subtext.length)) {\n document.getElementById(\"keywords\").value = ';t ' + streamer;\n return;\n }\n }\n\n break;\n }\n }\n }\n\n if (key == 32) {\n //Space to go to search\n updateLabel(text);\n }\n\n sindex = 0;\n cycle = false;\n updateLabel(text);\n}\n\nfunction updateLabel(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n\n if (text[0] === '/') {\n // if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n document.getElementById(\"searchType\").innerHTML = \"Allmusic search\";\n break;\n\n case \"d\":\n document.getElementById(\"searchType\").innerHTML = \"Duck Duck Go search\";\n break;\n\n case \"di\":\n document.getElementById(\"searchType\").innerHTML = \"Discogs search\";\n break;\n\n case \"i\":\n document.getElementById(\"searchType\").innerHTML = \"IMDB search\";\n break;\n\n case \"m\":\n document.getElementById(\"searchType\").innerHTML = \"TheMovieDB search\";\n break;\n\n case \"r\":\n document.getElementById(\"searchType\").innerHTML = \"Reddit search\";\n break;\n\n case \"q\":\n document.getElementById(\"searchType\").innerHTML = \"Qwant search\";\n break;\n\n case \"so\":\n document.getElementById(\"searchType\").innerHTML = \"Soundcloud search\";\n break;\n\n case \"s\":\n document.getElementById(\"searchType\").innerHTML = \"Spotify search\";\n break;\n\n case \"tv\":\n document.getElementById(\"searchType\").innerHTML = \"TheTVDB search\";\n break;\n\n case \"t\":\n document.getElementById(\"searchType\").innerHTML = \"Trakt search\";\n break;\n\n case \"y\":\n document.getElementById(\"searchType\").innerHTML = \"YouTube search\";\n break;\n\n case \"w\":\n document.getElementById(\"searchType\").innerHTML = \"Wikipedia search\";\n break;\n\n case \"p\":\n document.getElementById(\"searchType\").innerHTML = \"Plex search\";\n break;\n\n case \"rt\":\n document.getElementById(\"searchType\").innerHTML = \"Rotten Tomatoes search\";\n break;\n\n default:\n document.getElementById(\"searchType\").innerHTML = \"Invalid search\";\n break;\n }\n } else {\n document.getElementById(\"searchType\").innerHTML = \"Google search\";\n }\n}\n\nfunction search(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n\n if (text[0] === '/') {\n if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n window.location = \"https://www.allmusic.com/search/all/\" + subtext;\n break;\n\n case \"d\":\n window.location = \"https://duckduckgo.com/?q=\" + subtext;\n break;\n\n case \"di\":\n window.location = \"https://www.discogs.com/search/?q=\" + subtext;\n break;\n\n case \"i\":\n window.location = \"https://www.imdb.com/find?q=\" + subtext;\n break;\n\n case \"m\":\n window.location = \"https://www.themoviedb.org/search?query=\" + subtext;\n break;\n\n case \"r\":\n window.location = \"https://www.reddit.com/search?q=\" + subtext;\n break;\n\n case \"q\":\n window.location = \"https://www.qwant.com/?q=\" + subtext;\n break;\n\n case \"so\":\n window.location = \"https://soundcloud.com/search?q=\" + subtext;\n break;\n\n case \"s\":\n window.location = \"https://open.spotify.com/search/results/\" + subtext;\n break;\n\n case \"t\":\n window.location = \"https://trakt.tv/search?query=\" + subtext;\n break;\n\n case \"tv\":\n window.location = \"https://www.thetvdb.com/search?query=\" + subtext;\n break;\n\n case \"y\":\n window.location = \"https://www.youtube.com/results?search_query=\" + subtext;\n break;\n\n case \"w\":\n window.location = \"https://en.wikipedia.org/w/index.php?search=\" + subtext;\n break;\n\n case \"p\":\n window.location = \"https://app.plex.tv/desktop/#!/search?query=\" + subtext;\n break;\n\n case \"rt\":\n window.location = \"https://www.rottentomatoes.com/search?search=\" + subtext;\n break;\n }\n } else {\n var option = text.substr(1);\n\n switch (option) {\n case \"d\":\n window.location = \"https://www.duckduckgo.com\";\n break;\n\n case \"y\":\n window.location = \"https://www.youtube.com\";\n break;\n\n case \"r\":\n window.location = \"https://reddit.com\";\n break;\n\n case \"s\":\n window.location = \"https://open.spotify.com\";\n break;\n }\n }\n } else if (validURL(text)) {\n if (containsProtocol(text)) window.location = text;else window.location = \"https://\" + text;\n } else {\n window.location = \"https://www.google.com/search?q=\" + text;\n }\n}\n\nfunction validURL(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/)?' + // protocol\n '((([a-z\\\\d]([a-z\\\\d-]*[a-z\\\\d])*)\\\\.)+[a-z]{2,}|' + // domain name\n '((\\\\d{1,3}\\\\.){3}\\\\d{1,3}))' + // OR ip (v4) address\n '(\\\\:\\\\d+)?(\\\\/[-a-z\\\\d%_.~+]*)*' + // port and path\n '(\\\\?[;&a-z\\\\d%_.~+=-]*)?' + // query string\n '(\\\\#[-a-z\\\\d_]*)?$', 'i'); // fragment locator\n\n return !!pattern.test(str);\n}\n\nfunction containsProtocol(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/){1}.*', 'i');\n return !!pattern.test(str);\n}\n\nString.prototype.replaceAll = function (search, replacement) {\n var target = this;\n return target.split(search).join(replacement);\n};\n\nfunction udpateDisplayedItems(e) {\n localStorage.setItem('contenttype', e.target.checked);\n\n if (e.target.checked) {\n localStorage.setItem('content-display', 'none');\n } else {\n localStorage.setItem('content-display', 'block');\n } //setDisplayedItems();\n\n}\n\nfunction setDisplayedItems() {\n setValueFromLocalStorage('contenttype');\n setValueFromLocalStorage('content-display');\n}\n\nvar _c, _c2, _c3, _c4, _c5, _c6, _c7, _c8, _c9, _c10, _c11, _c12, _c13;\n\n$RefreshReg$(_c, \"Homepage\");\n$RefreshReg$(_c2, \"Search\");\n$RefreshReg$(_c3, \"Header\");\n$RefreshReg$(_c4, \"Applications\");\n$RefreshReg$(_c5, \"App\");\n$RefreshReg$(_c6, \"Bookmarks\");\n$RefreshReg$(_c7, \"LinkGroups\");\n$RefreshReg$(_c8, \"LinkItem\");\n$RefreshReg$(_c9, \"ModalMenu\");\n$RefreshReg$(_c10, \"HideButton\");\n$RefreshReg$(_c11, \"Provider\");\n$RefreshReg$(_c12, \"ModalInit\");\n$RefreshReg$(_c13, \"Clock\");","map":{"version":3,"sources":["/home/seanedmunds/dev/home-page/src/index.js"],"names":["React","useState","useEffect","ReactDOM","setValueFromLocalStorage","property","value","localStorage","getItem","setValue","document","documentElement","style","setProperty","input","querySelector","replace","Homepage","setTheme","date","greet","Search","handleKeyPress","Header","props","Applications","appList","getApps","items","i","apps","length","safe","NSFW","NSFWEnabled","push","name","url","icon","App","classNameType","hrefUrl","iconName","Bookmarks","bookmarkList","getLinks","bookmarks","category","links","LinkGroups","LinkItem","link","ModalMenu","providers","getProviders","isChecked","updateTheme","HideButton","console","log","checked","udpateDisplayedItems","Provider","provider","prefix","ModalInit","setDisplayedItems","render","getElementById","currentDate","Date","dateOptions","weekday","year","month","day","toLocaleDateString","fixDigits","k","currentTime","Math","floor","getHours","easterEggChance","random","greetings","require","timeBased","easterEggs","messages","easteregg","concat","message","easterEggText","Clock","setDate","refreshClock","timerId","setInterval","cleanup","clearInterval","hour","minutes","getMinutes","midday","time","applications","getThemes","themes","e","themeName","target","innerHTML","toLowerCase","index","findIndex","item","setItem","imagebackground","colorbackground","colorserachbackground","colortextpri","colortextacc","colorborder","sindex","cycle","key","keyCode","which","text","replaceAll","option","substr","indexOf","subtext","search","preventDefault","stopPropagation","streamers","streamer","updateLabel","window","location","validURL","containsProtocol","str","pattern","RegExp","test","String","prototype","replacement","split","join"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { useState, useEffect } from 'react';\nimport ReactDOM from 'react-dom';\nimport './index.css';\n\nconst setValueFromLocalStorage = property => {\n let value = localStorage.getItem(property);\n setValue(property, value);\n};\nconst setValue = (property, value) => {\n if (value) {\n document.documentElement.style.setProperty(`--${property}`, value);\n\n const input = document.querySelector(`#${property}`);\n if (input) {\n value = value.replace('px', '');\n input.value = value;\n }\n }\n};\n\nfunction Homepage() {\n setTheme();\n \n return (\n \n \n \n
\n \n \n
\n \n \n \n
\n \n \n
\n \n \n
\n \n );\n}\n\nfunction Search() {\n return (\n \n )\n}\n\nfunction Header(props) {\n return (\n \n );\n}\n\nfunction Applications() {\n let appList = getApps();\n var items = [];\n for (var i = 0; i < appList.apps.length; i++) {\n var safe = appList.apps[i].NSFW;\n var NSFWEnabled = localStorage.getItem(\"contenttype\");\n if (safe === \"SAFE\") {\n items.push(\n \n );\n } else if (safe === \"NSFW\" && NSFWEnabled) {\n items.push(\n \n );\n } else {\n \n }\n \n }\n return (\n \n Applications
\n \n {items}\n
\n \n );\n}\n\nfunction App(props) {\n \n let classNameType = props.NSFW + \"-content\";\n let hrefUrl = \"https://\" + props.url;\n let iconName = \"mdi-\" + props.icon;\n return (\n \n );\n}\n\nfunction Bookmarks() {\n let bookmarkList = getLinks();\n var items = [];\n for (var i = 0; i < bookmarkList.bookmarks.length; i++) {\n items.push(\n \n );\n }\n return (\n \n Bookmarks
\n \n {items}\n
\n \n );\n}\n\nfunction LinkGroups(props) {\n var items = [];\n for (var i = 0; i < props.links.length; i++) {\n items.push(\n \n );\n }\n return (\n \n
{props.category}
\n {items}\n \n );\n}\n\nfunction LinkItem(props) {\n return (\n \n );\n}\n\nfunction ModalMenu() {\n var providers = getProviders();\n var items = [];\n var isChecked = localStorage.getItem(\"contenttype\");\n for (var i = 0; i < providers.providers.length; i++) {\n items.push(\n \n );\n }\n return (\n \n \n \n\n
Color themes
\n\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n\n\n
Search options
\n
\n \n \n \n | Website | \n Prefix | \n
\n {items}\n \n
\n \n\n \n
\n \n );\n}\n\nfunction HideButton(props) {\n console.log(props.checked);\n return (\n \n
\n );\n}\n\nfunction Provider(props) {\n return (\n \n | {props.provider.name} | \n {props.provider.prefix} | \n
\n );\n}\n\nfunction ModalInit() {\n setDisplayedItems();\n return (\n \n );\n}\n\nReactDOM.render(\n ,\n document.getElementById('root')\n);\n\n//Functions below this line are for calculating data for\n//other functions\n\nfunction date() {\n let currentDate = new Date();\n let dateOptions = {\n weekday: \"long\",\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\"\n };\n let date = currentDate.toLocaleDateString(\"en-GB\", dateOptions);\n return date;\n}\nfunction fixDigits(k) {\n if (k < 10) {\n return \"0\" + k;\n }\n else {\n return k;\n }\n}\nfunction greet() {\n let currentTime = new Date();\n let greet = Math.floor(currentTime.getHours() / 6);\n let easterEggChance = Math.floor(Math.random() * 100);\n let greetings = require('./messages.json');\n let timeBased = [];\n let easterEggs = [];\n for (var i = 0; i < greetings.messages.length; i++) {\n if (greetings.messages[i].easteregg === \"FALSE\") {\n timeBased = timeBased.concat(greetings.messages[i]);\n } else {\n easterEggs = easterEggs.concat(greetings.messages[i]);\n }\n }\n if (easterEggChance > 10) {\n return timeBased[greet].message;\n } else {\n let easterEggText = Math.floor(Math.random() * easterEggs.length);\n return easterEggs[easterEggText].message;\n }\n}\nfunction Clock() {\n const [date, setDate] = useState(new Date());\n\n function refreshClock() {\n setDate(new Date());\n }\n useEffect(() => {\n const timerId = setInterval(refreshClock, 1000);\n return function cleanup() {\n clearInterval(timerId);\n };\n }, []);\n\n var hour = date.getHours();\n var minutes = date.getMinutes();\n //var seconds = date.getSeconds();\n var midday = \"AM\";\n midday = (hour >= 12) ? \"PM\" : \"AM\";\n hour = (hour === 0) ? 12 : ((hour > 12) ? (hour - 12) : hour);\n minutes = fixDigits(minutes);\n //seconds = fixDigits(seconds);\n let time = hour + \":\" + minutes + \" \" + midday;\n\n return (\n {time}
\n\n );\n}\nfunction getApps() {\n let applications = require('./apps.json');\n return applications;\n}\nfunction getLinks() {\n let links = require('./links.json');\n return links;\n}\nfunction getProviders() {\n let providers = require('./providers.json');\n return providers;\n}\nfunction getThemes() {\n let themes = require('./themes.json');\n return themes;\n}\nfunction updateTheme(e) {\n var themes = getThemes();\n var themeName = e.target.innerHTML.toLowerCase();\n var index = themes.themes.findIndex(function(item, i){\n return item.name === themeName;\n });\n localStorage.setItem(\"image-background\", themes.themes[index].imagebackground);\n localStorage.setItem(\"color-background\", themes.themes[index].colorbackground);\n localStorage.setItem(\"color-search-background\", themes.themes[index].colorserachbackground);\n localStorage.setItem(\"color-text-pri\",themes.themes[index].colortextpri);\n localStorage.setItem(\"color-text-acc\", themes.themes[index].colortextacc);\n localStorage.setItem(\"color-border\", themes.themes[index].colorborder);\n \n //document.documentElement.style.setProperty(prop, `var(--${themeName}${prop.substring(10)})`);\n setTheme();\n}\nfunction setTheme() {\n setValueFromLocalStorage('image-background');\n setValueFromLocalStorage('color-background');\n setValueFromLocalStorage('color-search-background');\n setValueFromLocalStorage('color-text-pri');\n setValueFromLocalStorage('color-text-acc');\n setValueFromLocalStorage('color-border');\n setValueFromLocalStorage('content-display');\n}\nfunction handleKeyPress(e) {\n var sindex = 0;\n var cycle = false;\n var key = e.keyCode || e.which;\n var text = e.target.value.replaceAll(\"+\", \"%2B\");\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n if (key == 13) { // Search functions\n search(text);\n }\n if (key == 9) { // Tab Completion Functions\n e.preventDefault();\n e.stopPropagation();\n if (text[0] === ';') {\n switch (option) {\n case 't':\n var streamers = ['admiralbahroo', 'moonmoon_ow', 'witwix'];\n if (!subtext || cycle) {\n cycle = true;\n if (sindex > streamers.length - 1) sindex = 0;\n document.getElementById(\"keywords\").value = ';t ' + streamers[sindex++];\n return;\n }\n for (var streamer of streamers) {\n if (subtext === streamer.substr(0, subtext.length)) {\n document.getElementById(\"keywords\").value = ';t ' + streamer;\n return;\n }\n }\n break;\n }\n }\n }\n if(key == 32){ //Space to go to search\nupdateLabel(text);\n }\n sindex = 0;\n cycle = false;\n updateLabel(text);\n}\nfunction updateLabel(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n if (text[0] === '/') {\n// if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n document.getElementById(\"searchType\").innerHTML = \"Allmusic search\";\n break;\n case \"d\":\n document.getElementById(\"searchType\").innerHTML = \"Duck Duck Go search\";\n break;\n case \"di\":\n document.getElementById(\"searchType\").innerHTML = \"Discogs search\";\n break;\n case \"i\":\n document.getElementById(\"searchType\").innerHTML = \"IMDB search\";\n break;\n case \"m\":\n document.getElementById(\"searchType\").innerHTML = \"TheMovieDB search\";\n break;\n case \"r\":\n document.getElementById(\"searchType\").innerHTML = \"Reddit search\";\n break;\n case \"q\":\n document.getElementById(\"searchType\").innerHTML = \"Qwant search\";\n break;\n case \"so\":\n document.getElementById(\"searchType\").innerHTML = \"Soundcloud search\";\n break;\n case \"s\":\n document.getElementById(\"searchType\").innerHTML = \"Spotify search\";\n break;\n case \"tv\":\n document.getElementById(\"searchType\").innerHTML = \"TheTVDB search\";\n break;\n case \"t\":\n document.getElementById(\"searchType\").innerHTML = \"Trakt search\";\n break;\n case \"y\":\n document.getElementById(\"searchType\").innerHTML = \"YouTube search\";\n break;\n case \"w\":\n document.getElementById(\"searchType\").innerHTML = \"Wikipedia search\";\n break;\n case \"p\":\n document.getElementById(\"searchType\").innerHTML = \"Plex search\";\n break;\n case \"rt\":\n document.getElementById(\"searchType\").innerHTML = \"Rotten Tomatoes search\";\n break;\n default:\n document.getElementById(\"searchType\").innerHTML = \"Invalid search\";\n break;\n }\n}else {\n document.getElementById(\"searchType\").innerHTML = \"Google search\";\n }\n}\nfunction search(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n if (text[0] === '/') {\n if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n window.location = \"https://www.allmusic.com/search/all/\" + subtext;\n break;\n case \"d\":\n window.location = \"https://duckduckgo.com/?q=\" + subtext;\n break;\n case \"di\":\n window.location = \"https://www.discogs.com/search/?q=\" + subtext;\n break;\n case \"i\":\n window.location = \"https://www.imdb.com/find?q=\" + subtext;\n break;\n case \"m\":\n window.location = \"https://www.themoviedb.org/search?query=\" + subtext;\n break;\n case \"r\":\n window.location = \"https://www.reddit.com/search?q=\" + subtext;\n break;\n case \"q\":\n window.location = \"https://www.qwant.com/?q=\" + subtext;\n break;\n case \"so\":\n window.location = \"https://soundcloud.com/search?q=\" + subtext;\n break;\n case \"s\":\n window.location = \"https://open.spotify.com/search/results/\" + subtext;\n break;\n case \"t\":\n window.location = \"https://trakt.tv/search?query=\" + subtext;\n break;\n case \"tv\":\n window.location = \"https://www.thetvdb.com/search?query=\" + subtext;\n break;\n case \"y\":\n window.location = \"https://www.youtube.com/results?search_query=\" + subtext;\n break;\n case \"w\":\n window.location = \"https://en.wikipedia.org/w/index.php?search=\" + subtext;\n break;\n case \"p\":\n window.location = \"https://app.plex.tv/desktop/#!/search?query=\" + subtext;\n break;\n case \"rt\":\n window.location = \"https://www.rottentomatoes.com/search?search=\" + subtext;\n break;\n }\n } else {\n var option = text.substr(1);\n switch (option) {\n case \"d\":\n window.location = \"https://www.duckduckgo.com\";\n break;\n case \"y\":\n window.location = \"https://www.youtube.com\";\n break;\n case \"r\":\n window.location = \"https://reddit.com\";\n break;\n case \"s\":\n window.location = \"https://open.spotify.com\";\n break;\n }\n }\n } else if (validURL(text)) {\n if (containsProtocol(text))\n window.location = text;\n else\n window.location = \"https://\" + text;\n } else {\n window.location = \"https://www.google.com/search?q=\" + text;\n }\n}\nfunction validURL(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/)?' + // protocol\n '((([a-z\\\\d]([a-z\\\\d-]*[a-z\\\\d])*)\\\\.)+[a-z]{2,}|' + // domain name\n '((\\\\d{1,3}\\\\.){3}\\\\d{1,3}))' + // OR ip (v4) address\n '(\\\\:\\\\d+)?(\\\\/[-a-z\\\\d%_.~+]*)*' + // port and path\n '(\\\\?[;&a-z\\\\d%_.~+=-]*)?' + // query string\n '(\\\\#[-a-z\\\\d_]*)?$', 'i'); // fragment locator\n return !!pattern.test(str);\n}\nfunction containsProtocol(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/){1}.*', 'i');\n return !!pattern.test(str);\n}\nString.prototype.replaceAll = function(search, replacement) {\n var target = this;\n return target.split(search).join(replacement);\n};\nfunction udpateDisplayedItems(e) {\n localStorage.setItem('contenttype', e.target.checked);\n if (e.target.checked) {\n localStorage.setItem('content-display', 'none');\n } else {\n localStorage.setItem('content-display', 'block');\n }\n //setDisplayedItems();\n}\nfunction setDisplayedItems() {\n setValueFromLocalStorage('contenttype');\n setValueFromLocalStorage('content-display');\n}"]},"metadata":{},"sourceType":"module"}
\ No newline at end of file
diff --git a/node_modules/.cache/babel-loader/9be7166aef8b688dc52091bb29a527de.json b/node_modules/.cache/babel-loader/9be7166aef8b688dc52091bb29a527de.json
new file mode 100644
index 00000000..c6c54d1b
--- /dev/null
+++ b/node_modules/.cache/babel-loader/9be7166aef8b688dc52091bb29a527de.json
@@ -0,0 +1 @@
+{"ast":null,"code":"var _jsxFileName = \"/home/seanedmunds/dev/home-page/src/index.js\",\n _s = $RefreshSig$(),\n _s2 = $RefreshSig$();\n\nimport React from 'react';\nimport { useState, useEffect } from 'react';\nimport ReactDOM from 'react-dom';\nimport './index.css';\nimport { jsxDEV as _jsxDEV } from \"react/jsx-dev-runtime\";\n\nconst setValueFromLocalStorage = property => {\n let value = localStorage.getItem(property);\n setValue(property, value);\n};\n\nconst setValue = (property, value) => {\n if (value) {\n document.documentElement.style.setProperty(`--${property}`, value);\n const input = document.querySelector(`#${property}`);\n\n if (input) {\n value = value.replace('px', '');\n input.value = value;\n }\n }\n};\n\nfunction Homepage() {\n setTheme();\n return /*#__PURE__*/_jsxDEV(\"main\", {\n id: \"container\",\n className: \"fade\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Search, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 28,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 27,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Header, {\n date: date(),\n greet: greet()\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 31,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 30,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Applications, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 37,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 36,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Bookmarks, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 40,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 39,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(ModalMenu, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 43,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 42,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(ModalInit, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 46,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 45,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 26,\n columnNumber: 5\n }, this);\n}\n\n_c = Homepage;\n\nfunction Search() {\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"search\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"abackground\",\n children: [/*#__PURE__*/_jsxDEV(\"input\", {\n name: \"keywords\",\n type: \"text\",\n className: \"keyword\",\n id: \"keywords\",\n size: \"50\",\n spellCheck: \"true\",\n placeholder: \"\"\n /*onFocus={this.placeholder = \"\"} onBlur={this.placeholder = ''}*/\n ,\n autoComplete: \"off\",\n autoFocus: true,\n onKeyUp: handleKeyPress\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 56,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n id: \"searchType\",\n className: \"Input-label\",\n children: \"Google search\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 57,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 55,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 54,\n columnNumber: 5\n }, this);\n}\n\n_c2 = Search;\n\nfunction Header(props) {\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"header\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n id: \"greeting_block\",\n children: /*#__PURE__*/_jsxDEV(\"h1\", {\n id: \"header_greet\",\n children: props.greet\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 67,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 66,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"date_block\",\n children: [/*#__PURE__*/_jsxDEV(\"h2\", {\n id: \"header_date\",\n children: props.date\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 70,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(Clock, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 71,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 69,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 65,\n columnNumber: 5\n }, this);\n}\n\n_c3 = Header;\n\nfunction Applications() {\n let appList = getApps();\n var items = [];\n\n for (var i = 0; i < appList.apps.length; i++) {\n var safe = appList.apps[i].NSFW;\n var NSFWEnabled = localStorage.getItem(\"contenttype\");\n\n if (safe === \"SAFE\") {\n items.push( /*#__PURE__*/_jsxDEV(App, {\n name: appList.apps[i].name,\n url: appList.apps[i].url,\n icon: appList.apps[i].icon,\n NSFW: appList.apps[i].NSFW\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 85,\n columnNumber: 9\n }, this));\n } else if (safe === \"NSFW\" && NSFWEnabled) {\n items.push( /*#__PURE__*/_jsxDEV(App, {\n name: appList.apps[i].name,\n url: appList.apps[i].url,\n icon: appList.apps[i].icon,\n NSFW: appList.apps[i].NSFW\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 95,\n columnNumber: 9\n }, this));\n } else {}\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"apps\",\n children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n children: \"Applications\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 110,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"apps_loop\",\n children: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 111,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 109,\n columnNumber: 5\n }, this);\n}\n\n_c4 = Applications;\n\nfunction App(props) {\n let classNameType = props.NSFW + \"-content\";\n let hrefUrl = \"https://\" + props.url;\n let iconName = \"mdi-\" + props.icon;\n return /*#__PURE__*/_jsxDEV(\"div\", {\n className: classNameType,\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: hrefUrl,\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_item\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_icon\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify icon\",\n \"data-icon\": iconName\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 128,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 127,\n columnNumber: 13\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_text\",\n children: [/*#__PURE__*/_jsxDEV(\"span\", {\n id: \"app-name\",\n children: props.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 131,\n columnNumber: 15\n }, this), /*#__PURE__*/_jsxDEV(\"span\", {\n id: \"app-address\",\n children: props.url\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 132,\n columnNumber: 15\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 130,\n columnNumber: 13\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 126,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 125,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 124,\n columnNumber: 7\n }, this);\n}\n\n_c5 = App;\n\nfunction Bookmarks() {\n let bookmarkList = getLinks();\n var items = [];\n\n for (var i = 0; i < bookmarkList.bookmarks.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(LinkGroups, {\n category: bookmarkList.bookmarks[i].category,\n links: bookmarkList.bookmarks[i].links\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 145,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"links\",\n children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n children: \"Bookmarks\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 154,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"links_loop\",\n children: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 155,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 153,\n columnNumber: 5\n }, this);\n}\n\n_c6 = Bookmarks;\n\nfunction LinkGroups(props) {\n var items = [];\n\n for (var i = 0; i < props.links.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(LinkItem, {\n link: props.links[i]\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 166,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"links_item\",\n children: [/*#__PURE__*/_jsxDEV(\"h4\", {\n children: props.category\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 174,\n columnNumber: 7\n }, this), items]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 173,\n columnNumber: 5\n }, this);\n}\n\n_c7 = LinkGroups;\n\nfunction LinkItem(props) {\n return /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: props.link.url,\n className: \"theme_color-border theme_text-select\",\n children: props.link.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 183,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 182,\n columnNumber: 5\n }, this);\n}\n\n_c8 = LinkItem;\n\nfunction ModalMenu() {\n var providers = getProviders();\n var items = [];\n\n for (var i = 0; i < providers.providers.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(Provider, {\n provider: providers.providers[i]\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 193,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"modal\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n children: [/*#__PURE__*/_jsxDEV(\"header\", {\n id: \"modal-header\",\n children: [/*#__PURE__*/_jsxDEV(\"h1\", {\n children: \"Options\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 203,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n href: \"#\",\n title: \"Close\",\n className: \"modal-close\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-close\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 205,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 204,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 202,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"h2\", {\n children: \"Color themes\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 209,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"modal-theme\",\n children: [/*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"blackboard\",\n className: \"theme-button theme-blackboard\",\n onClick: updateTheme,\n children: \"Blackboard\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 212,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"gazette\",\n className: \"theme-button theme-gazette\",\n onClick: updateTheme,\n children: \"Gazette\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 213,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"espresso\",\n className: \"theme-button theme-espresso\",\n onClick: updateTheme,\n children: \"Espresso\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 214,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cab\",\n className: \"theme-button theme-cab\",\n onClick: updateTheme,\n children: \"Cab\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 215,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cloud\",\n className: \"theme-button theme-cloud\",\n onClick: updateTheme,\n children: \"Cloud\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 216,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"lime\",\n className: \"theme-button theme-lime\",\n onClick: updateTheme,\n children: \"Lime\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 217,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"passion\",\n className: \"theme-button theme-passion\",\n onClick: updateTheme,\n children: \"Passion\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 218,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"blues\",\n className: \"theme-button theme-blues\",\n onClick: updateTheme,\n children: \"Blues\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 219,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"chalk\",\n className: \"theme-button theme-chalk\",\n onClick: updateTheme,\n children: \"Chalk\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 220,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"tron\",\n className: \"theme-button theme-tron\",\n onClick: updateTheme,\n children: \"Tron\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 221,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"paper\",\n className: \"theme-button theme-paper\",\n onClick: updateTheme,\n children: \"Paper\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 222,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cyberpunk\",\n className: \"theme-button theme-cyberpunk\",\n onClick: updateTheme,\n children: \"Cyberpunk\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 223,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"quadra\",\n className: \"theme-button theme-panam\",\n onClick: updateTheme,\n children: \"Quadra\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 224,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"panam\",\n className: \"theme-button theme-panam\",\n onClick: updateTheme,\n children: \"Panam\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 225,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"touch\",\n className: \"theme-button theme-touch\",\n onClick: updateTheme,\n children: \"Touch\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 226,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"peek\",\n className: \"theme-button theme-peek\",\n onClick: updateTheme,\n children: \"Peek\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 227,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 211,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"h2\", {\n children: \"Search options\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 231,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"providers\",\n children: /*#__PURE__*/_jsxDEV(\"table\", {\n children: /*#__PURE__*/_jsxDEV(\"tbody\", {\n children: [/*#__PURE__*/_jsxDEV(\"tr\", {\n children: [/*#__PURE__*/_jsxDEV(\"th\", {\n children: \"Website\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 236,\n columnNumber: 19\n }, this), /*#__PURE__*/_jsxDEV(\"th\", {\n children: \"Prefix\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 237,\n columnNumber: 19\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 235,\n columnNumber: 17\n }, this), items]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 234,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 233,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 232,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"header\", {\n id: \"modal-footer\",\n children: [/*#__PURE__*/_jsxDEV(\"a\", {\n href: \"https://github.com/jeroenpardon/\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-github-box\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 245,\n columnNumber: 54\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 245,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n href: \"https://materialdesignicons.com/\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-material-design\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 246,\n columnNumber: 54\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 246,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(HideButton, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 247,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 244,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 201,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 200,\n columnNumber: 5\n }, this);\n}\n\n_c9 = ModalMenu;\n\nfunction HideButton() {\n _s();\n\n const [checked, setChecked] = useState(0);\n useEffect(() => {\n document.getElementById(\"contenttype\").checked = checked;\n });\n return /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"sneaky\",\n children: [/*#__PURE__*/_jsxDEV(\"input\", {\n type: \"checkbox\",\n id: \"contenttype\",\n checked: () => setChecked,\n onChange: udpateDisplayedItems\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 262,\n columnNumber: 29\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n for: \"contenttype\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-domino-mask\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 263,\n columnNumber: 30\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 263,\n columnNumber: 5\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 262,\n columnNumber: 5\n }, this);\n}\n\n_s(HideButton, \"RwYq7+q0Ip3azBT8Ar8AZBBB05c=\");\n\n_c10 = HideButton;\n\nfunction Provider(props) {\n return /*#__PURE__*/_jsxDEV(\"tr\", {\n children: [/*#__PURE__*/_jsxDEV(\"td\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: props.provider.url,\n children: props.provider.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 270,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 270,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"td\", {\n children: props.provider.prefix\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 271,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 269,\n columnNumber: 5\n }, this);\n}\n\n_c11 = Provider;\n\nfunction ModalInit() {\n setDisplayedItems();\n return /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"modal_init\",\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n className: \"btn\",\n href: \"#modal\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify icon\",\n \"data-icon\": \"mdi-xbox-controller-menu\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 281,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 280,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 279,\n columnNumber: 5\n }, this);\n}\n\n_c12 = ModalInit;\nReactDOM.render( /*#__PURE__*/_jsxDEV(Homepage, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 288,\n columnNumber: 3\n}, this), document.getElementById('root')); //Functions below this line are for calculating data for\n//other functions\n\nfunction date() {\n let currentDate = new Date();\n let dateOptions = {\n weekday: \"long\",\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\"\n };\n let date = currentDate.toLocaleDateString(\"en-GB\", dateOptions);\n return date;\n}\n\nfunction fixDigits(k) {\n if (k < 10) {\n return \"0\" + k;\n } else {\n return k;\n }\n}\n\nfunction greet() {\n let currentTime = new Date();\n let greet = Math.floor(currentTime.getHours() / 6);\n let easterEggChance = Math.floor(Math.random() * 100);\n\n let greetings = require('./messages.json');\n\n let timeBased = [];\n let easterEggs = [];\n\n for (var i = 0; i < greetings.messages.length; i++) {\n if (greetings.messages[i].easteregg === \"FALSE\") {\n timeBased = timeBased.concat(greetings.messages[i]);\n } else {\n easterEggs = easterEggs.concat(greetings.messages[i]);\n }\n }\n\n if (easterEggChance > 10) {\n return timeBased[greet].message;\n } else {\n let easterEggText = Math.floor(Math.random() * easterEggs.length);\n return easterEggs[easterEggText].message;\n }\n}\n\nfunction Clock() {\n _s2();\n\n const [date, setDate] = useState(new Date());\n\n function refreshClock() {\n setDate(new Date());\n }\n\n useEffect(() => {\n const timerId = setInterval(refreshClock, 1000);\n return function cleanup() {\n clearInterval(timerId);\n };\n }, []);\n var hour = date.getHours();\n var minutes = date.getMinutes(); //var seconds = date.getSeconds();\n\n var midday = \"AM\";\n midday = hour >= 12 ? \"PM\" : \"AM\";\n hour = hour === 0 ? 12 : hour > 12 ? hour - 12 : hour;\n minutes = fixDigits(minutes); //seconds = fixDigits(seconds);\n\n let time = hour + \":\" + minutes + \" \" + midday;\n return /*#__PURE__*/_jsxDEV(\"h2\", {\n id: \"clock\",\n children: time\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 359,\n columnNumber: 5\n }, this);\n}\n\n_s2(Clock, \"Gqi45WOZhU2c0BLYX0HoJeiR0fk=\");\n\n_c13 = Clock;\n\nfunction getApps() {\n let applications = require('./apps.json');\n\n return applications;\n}\n\nfunction getLinks() {\n let links = require('./links.json');\n\n return links;\n}\n\nfunction getProviders() {\n let providers = require('./providers.json');\n\n return providers;\n}\n\nfunction getThemes() {\n let themes = require('./themes.json');\n\n return themes;\n}\n\nfunction updateTheme(e) {\n var themes = getThemes();\n var themeName = e.target.innerHTML.toLowerCase();\n var index = themes.themes.findIndex(function (item, i) {\n return item.name === themeName;\n });\n localStorage.setItem(\"image-background\", themes.themes[index].imagebackground);\n localStorage.setItem(\"color-background\", themes.themes[index].colorbackground);\n localStorage.setItem(\"color-search-background\", themes.themes[index].colorserachbackground);\n localStorage.setItem(\"color-text-pri\", themes.themes[index].colortextpri);\n localStorage.setItem(\"color-text-acc\", themes.themes[index].colortextacc);\n localStorage.setItem(\"color-border\", themes.themes[index].colorborder); //document.documentElement.style.setProperty(prop, `var(--${themeName}${prop.substring(10)})`);\n\n setTheme();\n}\n\nfunction setTheme() {\n setValueFromLocalStorage('image-background');\n setValueFromLocalStorage('color-background');\n setValueFromLocalStorage('color-search-background');\n setValueFromLocalStorage('color-text-pri');\n setValueFromLocalStorage('color-text-acc');\n setValueFromLocalStorage('color-border');\n setValueFromLocalStorage('content-display');\n}\n\nfunction handleKeyPress(e) {\n var sindex = 0;\n var cycle = false;\n var key = e.keyCode || e.which;\n var text = e.target.value.replaceAll(\"+\", \"%2B\");\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n\n if (key == 13) {\n // Search functions\n search(text);\n }\n\n if (key == 9) {\n // Tab Completion Functions\n e.preventDefault();\n e.stopPropagation();\n\n if (text[0] === ';') {\n switch (option) {\n case 't':\n var streamers = ['admiralbahroo', 'moonmoon_ow', 'witwix'];\n\n if (!subtext || cycle) {\n cycle = true;\n if (sindex > streamers.length - 1) sindex = 0;\n document.getElementById(\"keywords\").value = ';t ' + streamers[sindex++];\n return;\n }\n\n for (var streamer of streamers) {\n if (subtext === streamer.substr(0, subtext.length)) {\n document.getElementById(\"keywords\").value = ';t ' + streamer;\n return;\n }\n }\n\n break;\n }\n }\n }\n\n if (key == 32) {\n //Space to go to search\n updateLabel(text);\n }\n\n sindex = 0;\n cycle = false;\n updateLabel(text);\n}\n\nfunction updateLabel(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n\n if (text[0] === '/') {\n // if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n document.getElementById(\"searchType\").innerHTML = \"Allmusic search\";\n break;\n\n case \"d\":\n document.getElementById(\"searchType\").innerHTML = \"Duck Duck Go search\";\n break;\n\n case \"di\":\n document.getElementById(\"searchType\").innerHTML = \"Discogs search\";\n break;\n\n case \"i\":\n document.getElementById(\"searchType\").innerHTML = \"IMDB search\";\n break;\n\n case \"m\":\n document.getElementById(\"searchType\").innerHTML = \"TheMovieDB search\";\n break;\n\n case \"r\":\n document.getElementById(\"searchType\").innerHTML = \"Reddit search\";\n break;\n\n case \"q\":\n document.getElementById(\"searchType\").innerHTML = \"Qwant search\";\n break;\n\n case \"so\":\n document.getElementById(\"searchType\").innerHTML = \"Soundcloud search\";\n break;\n\n case \"s\":\n document.getElementById(\"searchType\").innerHTML = \"Spotify search\";\n break;\n\n case \"tv\":\n document.getElementById(\"searchType\").innerHTML = \"TheTVDB search\";\n break;\n\n case \"t\":\n document.getElementById(\"searchType\").innerHTML = \"Trakt search\";\n break;\n\n case \"y\":\n document.getElementById(\"searchType\").innerHTML = \"YouTube search\";\n break;\n\n case \"w\":\n document.getElementById(\"searchType\").innerHTML = \"Wikipedia search\";\n break;\n\n case \"p\":\n document.getElementById(\"searchType\").innerHTML = \"Plex search\";\n break;\n\n case \"rt\":\n document.getElementById(\"searchType\").innerHTML = \"Rotten Tomatoes search\";\n break;\n\n default:\n document.getElementById(\"searchType\").innerHTML = \"Invalid search\";\n break;\n }\n } else {\n document.getElementById(\"searchType\").innerHTML = \"Google search\";\n }\n}\n\nfunction search(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n\n if (text[0] === '/') {\n if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n window.location = \"https://www.allmusic.com/search/all/\" + subtext;\n break;\n\n case \"d\":\n window.location = \"https://duckduckgo.com/?q=\" + subtext;\n break;\n\n case \"di\":\n window.location = \"https://www.discogs.com/search/?q=\" + subtext;\n break;\n\n case \"i\":\n window.location = \"https://www.imdb.com/find?q=\" + subtext;\n break;\n\n case \"m\":\n window.location = \"https://www.themoviedb.org/search?query=\" + subtext;\n break;\n\n case \"r\":\n window.location = \"https://www.reddit.com/search?q=\" + subtext;\n break;\n\n case \"q\":\n window.location = \"https://www.qwant.com/?q=\" + subtext;\n break;\n\n case \"so\":\n window.location = \"https://soundcloud.com/search?q=\" + subtext;\n break;\n\n case \"s\":\n window.location = \"https://open.spotify.com/search/results/\" + subtext;\n break;\n\n case \"t\":\n window.location = \"https://trakt.tv/search?query=\" + subtext;\n break;\n\n case \"tv\":\n window.location = \"https://www.thetvdb.com/search?query=\" + subtext;\n break;\n\n case \"y\":\n window.location = \"https://www.youtube.com/results?search_query=\" + subtext;\n break;\n\n case \"w\":\n window.location = \"https://en.wikipedia.org/w/index.php?search=\" + subtext;\n break;\n\n case \"p\":\n window.location = \"https://app.plex.tv/desktop/#!/search?query=\" + subtext;\n break;\n\n case \"rt\":\n window.location = \"https://www.rottentomatoes.com/search?search=\" + subtext;\n break;\n }\n } else {\n var option = text.substr(1);\n\n switch (option) {\n case \"d\":\n window.location = \"https://www.duckduckgo.com\";\n break;\n\n case \"y\":\n window.location = \"https://www.youtube.com\";\n break;\n\n case \"r\":\n window.location = \"https://reddit.com\";\n break;\n\n case \"s\":\n window.location = \"https://open.spotify.com\";\n break;\n }\n }\n } else if (validURL(text)) {\n if (containsProtocol(text)) window.location = text;else window.location = \"https://\" + text;\n } else {\n window.location = \"https://www.google.com/search?q=\" + text;\n }\n}\n\nfunction validURL(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/)?' + // protocol\n '((([a-z\\\\d]([a-z\\\\d-]*[a-z\\\\d])*)\\\\.)+[a-z]{2,}|' + // domain name\n '((\\\\d{1,3}\\\\.){3}\\\\d{1,3}))' + // OR ip (v4) address\n '(\\\\:\\\\d+)?(\\\\/[-a-z\\\\d%_.~+]*)*' + // port and path\n '(\\\\?[;&a-z\\\\d%_.~+=-]*)?' + // query string\n '(\\\\#[-a-z\\\\d_]*)?$', 'i'); // fragment locator\n\n return !!pattern.test(str);\n}\n\nfunction containsProtocol(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/){1}.*', 'i');\n return !!pattern.test(str);\n}\n\nString.prototype.replaceAll = function (search, replacement) {\n var target = this;\n return target.split(search).join(replacement);\n};\n\nfunction udpateDisplayedItems(e) {\n console.log(e);\n localStorage.setItem('contenttype', e.target.checked);\n\n if (e.target.checked) {\n localStorage.setItem('content-display', 'none');\n } else {\n localStorage.setItem('content-display', 'block');\n }\n\n setDisplayedItems();\n}\n\nfunction setDisplayedItems() {\n setValueFromLocalStorage('contenttype');\n setValueFromLocalStorage('content-display');\n}\n\nvar _c, _c2, _c3, _c4, _c5, _c6, _c7, _c8, _c9, _c10, _c11, _c12, _c13;\n\n$RefreshReg$(_c, \"Homepage\");\n$RefreshReg$(_c2, \"Search\");\n$RefreshReg$(_c3, \"Header\");\n$RefreshReg$(_c4, \"Applications\");\n$RefreshReg$(_c5, \"App\");\n$RefreshReg$(_c6, \"Bookmarks\");\n$RefreshReg$(_c7, \"LinkGroups\");\n$RefreshReg$(_c8, \"LinkItem\");\n$RefreshReg$(_c9, \"ModalMenu\");\n$RefreshReg$(_c10, \"HideButton\");\n$RefreshReg$(_c11, \"Provider\");\n$RefreshReg$(_c12, \"ModalInit\");\n$RefreshReg$(_c13, \"Clock\");","map":{"version":3,"sources":["/home/seanedmunds/dev/home-page/src/index.js"],"names":["React","useState","useEffect","ReactDOM","setValueFromLocalStorage","property","value","localStorage","getItem","setValue","document","documentElement","style","setProperty","input","querySelector","replace","Homepage","setTheme","date","greet","Search","handleKeyPress","Header","props","Applications","appList","getApps","items","i","apps","length","safe","NSFW","NSFWEnabled","push","name","url","icon","App","classNameType","hrefUrl","iconName","Bookmarks","bookmarkList","getLinks","bookmarks","category","links","LinkGroups","LinkItem","link","ModalMenu","providers","getProviders","updateTheme","HideButton","checked","setChecked","getElementById","udpateDisplayedItems","Provider","provider","prefix","ModalInit","setDisplayedItems","render","currentDate","Date","dateOptions","weekday","year","month","day","toLocaleDateString","fixDigits","k","currentTime","Math","floor","getHours","easterEggChance","random","greetings","require","timeBased","easterEggs","messages","easteregg","concat","message","easterEggText","Clock","setDate","refreshClock","timerId","setInterval","cleanup","clearInterval","hour","minutes","getMinutes","midday","time","applications","getThemes","themes","e","themeName","target","innerHTML","toLowerCase","index","findIndex","item","setItem","imagebackground","colorbackground","colorserachbackground","colortextpri","colortextacc","colorborder","sindex","cycle","key","keyCode","which","text","replaceAll","option","substr","indexOf","subtext","search","preventDefault","stopPropagation","streamers","streamer","updateLabel","window","location","validURL","containsProtocol","str","pattern","RegExp","test","String","prototype","replacement","split","join","console","log"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { useState, useEffect } from 'react';\nimport ReactDOM from 'react-dom';\nimport './index.css';\n\nconst setValueFromLocalStorage = property => {\n let value = localStorage.getItem(property);\n setValue(property, value);\n};\nconst setValue = (property, value) => {\n if (value) {\n document.documentElement.style.setProperty(`--${property}`, value);\n\n const input = document.querySelector(`#${property}`);\n if (input) {\n value = value.replace('px', '');\n input.value = value;\n }\n }\n};\n\nfunction Homepage() {\n setTheme();\n \n return (\n \n \n \n
\n \n \n
\n \n \n \n
\n \n \n
\n \n \n
\n \n );\n}\n\nfunction Search() {\n return (\n \n )\n}\n\nfunction Header(props) {\n return (\n \n );\n}\n\nfunction Applications() {\n let appList = getApps();\n var items = [];\n for (var i = 0; i < appList.apps.length; i++) {\n var safe = appList.apps[i].NSFW;\n var NSFWEnabled = localStorage.getItem(\"contenttype\");\n if (safe === \"SAFE\") {\n items.push(\n \n );\n } else if (safe === \"NSFW\" && NSFWEnabled) {\n items.push(\n \n );\n } else {\n \n }\n \n }\n return (\n \n Applications
\n \n {items}\n
\n \n );\n}\n\nfunction App(props) {\n \n let classNameType = props.NSFW + \"-content\";\n let hrefUrl = \"https://\" + props.url;\n let iconName = \"mdi-\" + props.icon;\n return (\n \n );\n}\n\nfunction Bookmarks() {\n let bookmarkList = getLinks();\n var items = [];\n for (var i = 0; i < bookmarkList.bookmarks.length; i++) {\n items.push(\n \n );\n }\n return (\n \n Bookmarks
\n \n {items}\n
\n \n );\n}\n\nfunction LinkGroups(props) {\n var items = [];\n for (var i = 0; i < props.links.length; i++) {\n items.push(\n \n );\n }\n return (\n \n
{props.category}
\n {items}\n \n );\n}\n\nfunction LinkItem(props) {\n return (\n \n );\n}\n\nfunction ModalMenu() {\n var providers = getProviders();\n var items = [];\n for (var i = 0; i < providers.providers.length; i++) {\n items.push(\n \n );\n }\n return (\n \n \n \n\n
Color themes
\n\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n\n\n
Search options
\n
\n \n \n \n | Website | \n Prefix | \n
\n {items}\n \n
\n \n\n \n
\n \n );\n}\n\nfunction HideButton() {\n const [checked, setChecked] = useState(0);\n \n useEffect(() =>{\n document.getElementById(\"contenttype\").checked = checked;\n });\n\n return (\n setChecked} onChange={udpateDisplayedItems}>\n
\n );\n}\n\nfunction Provider(props) {\n return (\n \n | {props.provider.name} | \n {props.provider.prefix} | \n
\n );\n}\n\nfunction ModalInit() {\n setDisplayedItems();\n return (\n \n );\n}\n\nReactDOM.render(\n ,\n document.getElementById('root')\n);\n\n//Functions below this line are for calculating data for\n//other functions\n\nfunction date() {\n let currentDate = new Date();\n let dateOptions = {\n weekday: \"long\",\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\"\n };\n let date = currentDate.toLocaleDateString(\"en-GB\", dateOptions);\n return date;\n}\nfunction fixDigits(k) {\n if (k < 10) {\n return \"0\" + k;\n }\n else {\n return k;\n }\n}\nfunction greet() {\n let currentTime = new Date();\n let greet = Math.floor(currentTime.getHours() / 6);\n let easterEggChance = Math.floor(Math.random() * 100);\n let greetings = require('./messages.json');\n let timeBased = [];\n let easterEggs = [];\n for (var i = 0; i < greetings.messages.length; i++) {\n if (greetings.messages[i].easteregg === \"FALSE\") {\n timeBased = timeBased.concat(greetings.messages[i]);\n } else {\n easterEggs = easterEggs.concat(greetings.messages[i]);\n }\n }\n if (easterEggChance > 10) {\n return timeBased[greet].message;\n } else {\n let easterEggText = Math.floor(Math.random() * easterEggs.length);\n return easterEggs[easterEggText].message;\n }\n}\nfunction Clock() {\n const [date, setDate] = useState(new Date());\n\n function refreshClock() {\n setDate(new Date());\n }\n useEffect(() => {\n const timerId = setInterval(refreshClock, 1000);\n return function cleanup() {\n clearInterval(timerId);\n };\n }, []);\n\n var hour = date.getHours();\n var minutes = date.getMinutes();\n //var seconds = date.getSeconds();\n var midday = \"AM\";\n midday = (hour >= 12) ? \"PM\" : \"AM\";\n hour = (hour === 0) ? 12 : ((hour > 12) ? (hour - 12) : hour);\n minutes = fixDigits(minutes);\n //seconds = fixDigits(seconds);\n let time = hour + \":\" + minutes + \" \" + midday;\n\n return (\n {time}
\n\n );\n}\nfunction getApps() {\n let applications = require('./apps.json');\n return applications;\n}\nfunction getLinks() {\n let links = require('./links.json');\n return links;\n}\nfunction getProviders() {\n let providers = require('./providers.json');\n return providers;\n}\nfunction getThemes() {\n let themes = require('./themes.json');\n return themes;\n}\nfunction updateTheme(e) {\n var themes = getThemes();\n var themeName = e.target.innerHTML.toLowerCase();\n var index = themes.themes.findIndex(function(item, i){\n return item.name === themeName\n });\n localStorage.setItem(\"image-background\", themes.themes[index].imagebackground);\n localStorage.setItem(\"color-background\", themes.themes[index].colorbackground);\n localStorage.setItem(\"color-search-background\", themes.themes[index].colorserachbackground);\n localStorage.setItem(\"color-text-pri\",themes.themes[index].colortextpri);\n localStorage.setItem(\"color-text-acc\", themes.themes[index].colortextacc);\n localStorage.setItem(\"color-border\", themes.themes[index].colorborder);\n \n //document.documentElement.style.setProperty(prop, `var(--${themeName}${prop.substring(10)})`);\n setTheme();\n}\nfunction setTheme() {\n setValueFromLocalStorage('image-background');\n setValueFromLocalStorage('color-background');\n setValueFromLocalStorage('color-search-background');\n setValueFromLocalStorage('color-text-pri');\n setValueFromLocalStorage('color-text-acc');\n setValueFromLocalStorage('color-border');\n setValueFromLocalStorage('content-display');\n}\nfunction handleKeyPress(e) {\n var sindex = 0;\n var cycle = false;\n var key = e.keyCode || e.which;\n var text = e.target.value.replaceAll(\"+\", \"%2B\");\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n if (key == 13) { // Search functions\n search(text);\n }\n if (key == 9) { // Tab Completion Functions\n e.preventDefault();\n e.stopPropagation();\n if (text[0] === ';') {\n switch (option) {\n case 't':\n var streamers = ['admiralbahroo', 'moonmoon_ow', 'witwix'];\n if (!subtext || cycle) {\n cycle = true;\n if (sindex > streamers.length - 1) sindex = 0;\n document.getElementById(\"keywords\").value = ';t ' + streamers[sindex++];\n return;\n }\n for (var streamer of streamers) {\n if (subtext === streamer.substr(0, subtext.length)) {\n document.getElementById(\"keywords\").value = ';t ' + streamer;\n return;\n }\n }\n break;\n }\n }\n }\n if(key == 32){ //Space to go to search\nupdateLabel(text);\n }\n sindex = 0;\n cycle = false;\n updateLabel(text);\n}\nfunction updateLabel(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n if (text[0] === '/') {\n// if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n document.getElementById(\"searchType\").innerHTML = \"Allmusic search\";\n break;\n case \"d\":\n document.getElementById(\"searchType\").innerHTML = \"Duck Duck Go search\";\n break;\n case \"di\":\n document.getElementById(\"searchType\").innerHTML = \"Discogs search\";\n break;\n case \"i\":\n document.getElementById(\"searchType\").innerHTML = \"IMDB search\";\n break;\n case \"m\":\n document.getElementById(\"searchType\").innerHTML = \"TheMovieDB search\";\n break;\n case \"r\":\n document.getElementById(\"searchType\").innerHTML = \"Reddit search\";\n break;\n case \"q\":\n document.getElementById(\"searchType\").innerHTML = \"Qwant search\";\n break;\n case \"so\":\n document.getElementById(\"searchType\").innerHTML = \"Soundcloud search\";\n break;\n case \"s\":\n document.getElementById(\"searchType\").innerHTML = \"Spotify search\";\n break;\n case \"tv\":\n document.getElementById(\"searchType\").innerHTML = \"TheTVDB search\";\n break;\n case \"t\":\n document.getElementById(\"searchType\").innerHTML = \"Trakt search\";\n break;\n case \"y\":\n document.getElementById(\"searchType\").innerHTML = \"YouTube search\";\n break;\n case \"w\":\n document.getElementById(\"searchType\").innerHTML = \"Wikipedia search\";\n break;\n case \"p\":\n document.getElementById(\"searchType\").innerHTML = \"Plex search\";\n break;\n case \"rt\":\n document.getElementById(\"searchType\").innerHTML = \"Rotten Tomatoes search\";\n break;\n default:\n document.getElementById(\"searchType\").innerHTML = \"Invalid search\";\n break;\n }\n}else {\n document.getElementById(\"searchType\").innerHTML = \"Google search\";\n }\n}\nfunction search(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n if (text[0] === '/') {\n if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n window.location = \"https://www.allmusic.com/search/all/\" + subtext;\n break;\n case \"d\":\n window.location = \"https://duckduckgo.com/?q=\" + subtext;\n break;\n case \"di\":\n window.location = \"https://www.discogs.com/search/?q=\" + subtext;\n break;\n case \"i\":\n window.location = \"https://www.imdb.com/find?q=\" + subtext;\n break;\n case \"m\":\n window.location = \"https://www.themoviedb.org/search?query=\" + subtext;\n break;\n case \"r\":\n window.location = \"https://www.reddit.com/search?q=\" + subtext;\n break;\n case \"q\":\n window.location = \"https://www.qwant.com/?q=\" + subtext;\n break;\n case \"so\":\n window.location = \"https://soundcloud.com/search?q=\" + subtext;\n break;\n case \"s\":\n window.location = \"https://open.spotify.com/search/results/\" + subtext;\n break;\n case \"t\":\n window.location = \"https://trakt.tv/search?query=\" + subtext;\n break;\n case \"tv\":\n window.location = \"https://www.thetvdb.com/search?query=\" + subtext;\n break;\n case \"y\":\n window.location = \"https://www.youtube.com/results?search_query=\" + subtext;\n break;\n case \"w\":\n window.location = \"https://en.wikipedia.org/w/index.php?search=\" + subtext;\n break;\n case \"p\":\n window.location = \"https://app.plex.tv/desktop/#!/search?query=\" + subtext;\n break;\n case \"rt\":\n window.location = \"https://www.rottentomatoes.com/search?search=\" + subtext;\n break;\n }\n } else {\n var option = text.substr(1);\n switch (option) {\n case \"d\":\n window.location = \"https://www.duckduckgo.com\";\n break;\n case \"y\":\n window.location = \"https://www.youtube.com\";\n break;\n case \"r\":\n window.location = \"https://reddit.com\";\n break;\n case \"s\":\n window.location = \"https://open.spotify.com\";\n break;\n }\n }\n } else if (validURL(text)) {\n if (containsProtocol(text))\n window.location = text;\n else\n window.location = \"https://\" + text;\n } else {\n window.location = \"https://www.google.com/search?q=\" + text;\n }\n}\nfunction validURL(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/)?' + // protocol\n '((([a-z\\\\d]([a-z\\\\d-]*[a-z\\\\d])*)\\\\.)+[a-z]{2,}|' + // domain name\n '((\\\\d{1,3}\\\\.){3}\\\\d{1,3}))' + // OR ip (v4) address\n '(\\\\:\\\\d+)?(\\\\/[-a-z\\\\d%_.~+]*)*' + // port and path\n '(\\\\?[;&a-z\\\\d%_.~+=-]*)?' + // query string\n '(\\\\#[-a-z\\\\d_]*)?$', 'i'); // fragment locator\n return !!pattern.test(str);\n}\nfunction containsProtocol(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/){1}.*', 'i');\n return !!pattern.test(str);\n}\nString.prototype.replaceAll = function(search, replacement) {\n var target = this;\n return target.split(search).join(replacement);\n};\nfunction udpateDisplayedItems(e) {\n console.log(e);\n localStorage.setItem('contenttype', e.target.checked);\n if (e.target.checked) {\n localStorage.setItem('content-display', 'none');\n } else {\n localStorage.setItem('content-display', 'block');\n }\n setDisplayedItems();\n}\nfunction setDisplayedItems() {\n setValueFromLocalStorage('contenttype');\n setValueFromLocalStorage('content-display');\n}"]},"metadata":{},"sourceType":"module"}
\ No newline at end of file
diff --git a/node_modules/.cache/babel-loader/9cabce59a7f3f7c7eda93edb5f5bd534.json b/node_modules/.cache/babel-loader/9cabce59a7f3f7c7eda93edb5f5bd534.json
new file mode 100644
index 00000000..cf37b415
--- /dev/null
+++ b/node_modules/.cache/babel-loader/9cabce59a7f3f7c7eda93edb5f5bd534.json
@@ -0,0 +1 @@
+{"ast":null,"code":"var _jsxFileName = \"/home/seanedmunds/dev/home-page/src/index.js\",\n _s = $RefreshSig$();\n\nimport React from 'react';\nimport { useState, useEffect } from 'react';\nimport ReactDOM from 'react-dom'; //import { unstable_createPortal } from 'react-dom';\n\nimport './index.css';\nimport { jsxDEV as _jsxDEV } from \"react/jsx-dev-runtime\";\n\nconst setValueFromLocalStorage = property => {\n let value = localStorage.getItem(property);\n setValue(property, value);\n};\n\nconst setValue = (property, value) => {\n if (value) {\n document.documentElement.style.setProperty(`--${property}`, value);\n const input = document.querySelector(`#${property}`);\n\n if (input) {\n value = value.replace('px', '');\n input.value = value;\n }\n }\n};\n\nfunction Homepage() {\n setTheme();\n return /*#__PURE__*/_jsxDEV(\"main\", {\n id: \"container\",\n className: \"fade\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Search, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 28,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 27,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Header, {\n date: date(),\n greet: greet()\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 31,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 30,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Applications, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 37,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 36,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Bookmarks, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 40,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 39,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(ModalMenu, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 43,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 42,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(ModalInit, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 46,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 45,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 26,\n columnNumber: 5\n }, this);\n}\n\n_c = Homepage;\n\nfunction Search() {\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"search\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"abackground\",\n children: [/*#__PURE__*/_jsxDEV(\"input\", {\n name: \"keywords\",\n type: \"text\",\n className: \"keyword\",\n id: \"keywords\",\n size: \"50\",\n spellCheck: \"true\",\n placeholder: \"\"\n /*onFocus={this.placeholder = \"\"} onBlur={this.placeholder = ''}*/\n ,\n autoComplete: \"off\",\n autoFocus: true,\n onKeyUp: handleKeyPress\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 56,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n id: \"searchType\",\n className: \"Input-label\",\n children: \"Google search\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 57,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 55,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 54,\n columnNumber: 5\n }, this);\n}\n\n_c2 = Search;\n\nfunction Header(props) {\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"header\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n id: \"greeting_block\",\n children: /*#__PURE__*/_jsxDEV(\"h1\", {\n id: \"header_greet\",\n children: props.greet\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 67,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 66,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"date_block\",\n children: [/*#__PURE__*/_jsxDEV(\"h2\", {\n id: \"header_date\",\n children: props.date\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 70,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(Clock, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 71,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 69,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 65,\n columnNumber: 5\n }, this);\n}\n\n_c3 = Header;\n\nfunction Applications() {\n let appList = getApps();\n var items = [];\n\n for (var i = 0; i < appList.apps.length; i++) {\n var safe = appList.apps[i].NSFW;\n var NSFWEnabled = localStorage.getItem(\"contenttype\");\n\n if (safe === \"SAFE\") {\n items.push( /*#__PURE__*/_jsxDEV(App, {\n name: appList.apps[i].name,\n url: appList.apps[i].url,\n icon: appList.apps[i].icon,\n NSFW: appList.apps[i].NSFW\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 85,\n columnNumber: 9\n }, this));\n } else if (safe === \"NSFW\" && NSFWEnabled) {\n items.push( /*#__PURE__*/_jsxDEV(App, {\n name: appList.apps[i].name,\n url: appList.apps[i].url,\n icon: appList.apps[i].icon,\n NSFW: appList.apps[i].NSFW\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 95,\n columnNumber: 9\n }, this));\n } else {}\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"apps\",\n children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n children: \"Applications\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 110,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"apps_loop\",\n children: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 111,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 109,\n columnNumber: 5\n }, this);\n}\n\n_c4 = Applications;\n\nfunction App(props) {\n let classNameType = props.NSFW + \"-content\";\n let hrefUrl = \"https://\" + props.url;\n let iconName = \"mdi-\" + props.icon;\n return /*#__PURE__*/_jsxDEV(\"div\", {\n className: classNameType,\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: hrefUrl,\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_item\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_icon\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify icon\",\n \"data-icon\": iconName\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 128,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 127,\n columnNumber: 13\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_text\",\n children: [/*#__PURE__*/_jsxDEV(\"span\", {\n id: \"app-name\",\n children: props.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 131,\n columnNumber: 15\n }, this), /*#__PURE__*/_jsxDEV(\"span\", {\n id: \"app-address\",\n children: props.url\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 132,\n columnNumber: 15\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 130,\n columnNumber: 13\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 126,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 125,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 124,\n columnNumber: 7\n }, this);\n}\n\n_c5 = App;\n\nfunction Bookmarks() {\n let bookmarkList = getLinks();\n var items = [];\n\n for (var i = 0; i < bookmarkList.bookmarks.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(LinkGroups, {\n category: bookmarkList.bookmarks[i].category,\n links: bookmarkList.bookmarks[i].links\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 145,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"links\",\n children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n children: \"Bookmarks\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 154,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"links_loop\",\n children: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 155,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 153,\n columnNumber: 5\n }, this);\n}\n\n_c6 = Bookmarks;\n\nfunction LinkGroups(props) {\n var items = [];\n\n for (var i = 0; i < props.links.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(LinkItem, {\n link: props.links[i]\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 166,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"links_item\",\n children: [/*#__PURE__*/_jsxDEV(\"h4\", {\n children: props.category\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 174,\n columnNumber: 7\n }, this), items]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 173,\n columnNumber: 5\n }, this);\n}\n\n_c7 = LinkGroups;\n\nfunction LinkItem(props) {\n return /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: props.link.url,\n className: \"theme_color-border theme_text-select\",\n children: props.link.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 183,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 182,\n columnNumber: 5\n }, this);\n}\n\n_c8 = LinkItem;\n\nfunction ModalMenu() {\n var providers = getProviders();\n var items = [];\n\n for (var i = 0; i < providers.providers.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(Provider, {\n provider: providers.providers[i]\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 193,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"modal\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n children: [/*#__PURE__*/_jsxDEV(\"header\", {\n id: \"modal-header\",\n children: [/*#__PURE__*/_jsxDEV(\"h1\", {\n children: \"Options\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 203,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n href: \"#\",\n title: \"Close\",\n className: \"modal-close\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-close\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 205,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 204,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 202,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"h2\", {\n children: \"Color themes\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 209,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"modal-theme\",\n children: [/*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"blackboard\",\n className: \"theme-button theme-blackboard\",\n onClick: updateTheme,\n children: \"Blackboard\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 212,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"gazette\",\n className: \"theme-button theme-gazette\",\n onClick: updateTheme,\n children: \"Gazette\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 213,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"espresso\",\n className: \"theme-button theme-espresso\",\n onClick: updateTheme,\n children: \"Espresso\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 214,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cab\",\n className: \"theme-button theme-cab\",\n onClick: updateTheme,\n children: \"Cab\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 215,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cloud\",\n className: \"theme-button theme-cloud\",\n onClick: updateTheme,\n children: \"Cloud\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 216,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"lime\",\n className: \"theme-button theme-lime\",\n onClick: updateTheme,\n children: \"Lime\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 217,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"passion\",\n className: \"theme-button theme-passion\",\n onClick: updateTheme,\n children: \"Passion\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 218,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"blues\",\n className: \"theme-button theme-blues\",\n onClick: updateTheme,\n children: \"Blues\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 219,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"chalk\",\n className: \"theme-button theme-chalk\",\n onClick: updateTheme,\n children: \"Chalk\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 220,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"tron\",\n className: \"theme-button theme-tron\",\n onClick: updateTheme,\n children: \"Tron\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 221,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"paper\",\n className: \"theme-button theme-paper\",\n onClick: updateTheme,\n children: \"Paper\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 222,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cyberpunk\",\n className: \"theme-button theme-cyberpunk\",\n onClick: updateTheme,\n children: \"Cyberpunk\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 223,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"quadra\",\n className: \"theme-button theme-panam\",\n onClick: updateTheme,\n children: \"Quadra\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 224,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"panam\",\n className: \"theme-button theme-panam\",\n onClick: updateTheme,\n children: \"Panam\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 225,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"touch\",\n className: \"theme-button theme-touch\",\n onClick: updateTheme,\n children: \"Touch\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 226,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"peek\",\n className: \"theme-button theme-peek\",\n onClick: updateTheme,\n children: \"Peek\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 227,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 211,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"h2\", {\n children: \"Search options\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 231,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"providers\",\n children: /*#__PURE__*/_jsxDEV(\"table\", {\n children: /*#__PURE__*/_jsxDEV(\"tbody\", {\n children: [/*#__PURE__*/_jsxDEV(\"tr\", {\n children: [/*#__PURE__*/_jsxDEV(\"th\", {\n children: \"Website\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 236,\n columnNumber: 19\n }, this), /*#__PURE__*/_jsxDEV(\"th\", {\n children: \"Prefix\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 237,\n columnNumber: 19\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 235,\n columnNumber: 17\n }, this), items]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 234,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 233,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 232,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"header\", {\n id: \"modal-footer\",\n children: [/*#__PURE__*/_jsxDEV(\"a\", {\n href: \"https://github.com/jeroenpardon/\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-github-box\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 245,\n columnNumber: 54\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 245,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n href: \"https://materialdesignicons.com/\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-material-design\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 246,\n columnNumber: 54\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 246,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"sneaky\",\n children: [/*#__PURE__*/_jsxDEV(\"input\", {\n type: \"checkbox\",\n id: \"contenttype\",\n onChange: udpateDisplayedItems\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 247,\n columnNumber: 35\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n for: \"contenttype\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-domino-mask\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 248,\n columnNumber: 36\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 248,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 247,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 244,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 201,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 200,\n columnNumber: 5\n }, this);\n}\n\n_c9 = ModalMenu;\n\nfunction Provider(props) {\n return /*#__PURE__*/_jsxDEV(\"tr\", {\n children: [/*#__PURE__*/_jsxDEV(\"td\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: props.provider.url,\n children: props.provider.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 258,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 258,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"td\", {\n children: props.provider.prefix\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 259,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 257,\n columnNumber: 5\n }, this);\n}\n\n_c10 = Provider;\n\nfunction ModalInit() {\n setDisplayedItems();\n return /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"modal_init\",\n children: [/*#__PURE__*/_jsxDEV(\"a\", {\n className: \"btn\",\n href: \"#modal\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify icon\",\n \"data-icon\": \"mdi-xbox-controller-menu\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 269,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 268,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"script\", {\n type: \"javascript\",\n children: \"document.getElementById('contenttype').checked = checked;\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 271,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 267,\n columnNumber: 5\n }, this);\n}\n\n_c11 = ModalInit;\nReactDOM.render( /*#__PURE__*/_jsxDEV(Homepage, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 279,\n columnNumber: 3\n}, this), document.getElementById('root')); //Functions below this line are for calculating data for\n//other functions\n\nfunction date() {\n let currentDate = new Date();\n let dateOptions = {\n weekday: \"long\",\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\"\n };\n let date = currentDate.toLocaleDateString(\"en-GB\", dateOptions);\n return date;\n}\n\nfunction fixDigits(k) {\n if (k < 10) {\n return \"0\" + k;\n } else {\n return k;\n }\n}\n\nfunction greet() {\n let currentTime = new Date();\n let greet = Math.floor(currentTime.getHours() / 6);\n let easterEggChance = Math.floor(Math.random() * 100);\n\n let greetings = require('./messages.json');\n\n let timeBased = [];\n let easterEggs = [];\n\n for (var i = 0; i < greetings.messages.length; i++) {\n if (greetings.messages[i].easteregg === \"FALSE\") {\n timeBased = timeBased.concat(greetings.messages[i]);\n } else {\n easterEggs = easterEggs.concat(greetings.messages[i]);\n }\n }\n\n if (easterEggChance > 10) {\n return timeBased[greet].message;\n } else {\n let easterEggText = Math.floor(Math.random() * easterEggs.length);\n return easterEggs[easterEggText].message;\n }\n}\n\nfunction Clock() {\n _s();\n\n const [date, setDate] = useState(new Date());\n\n function refreshClock() {\n setDate(new Date());\n }\n\n useEffect(() => {\n const timerId = setInterval(refreshClock, 1000);\n return function cleanup() {\n clearInterval(timerId);\n };\n }, []);\n var hour = date.getHours();\n var minutes = date.getMinutes(); //var seconds = date.getSeconds();\n\n var midday = \"AM\";\n midday = hour >= 12 ? \"PM\" : \"AM\";\n hour = hour === 0 ? 12 : hour > 12 ? hour - 12 : hour;\n minutes = fixDigits(minutes); //seconds = fixDigits(seconds);\n\n let time = hour + \":\" + minutes + \" \" + midday;\n return /*#__PURE__*/_jsxDEV(\"h2\", {\n id: \"clock\",\n children: time\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 350,\n columnNumber: 5\n }, this);\n}\n\n_s(Clock, \"Gqi45WOZhU2c0BLYX0HoJeiR0fk=\");\n\n_c12 = Clock;\n\nfunction getApps() {\n let applications = require('./apps.json');\n\n return applications;\n}\n\nfunction getLinks() {\n let links = require('./links.json');\n\n return links;\n}\n\nfunction getProviders() {\n let providers = require('./providers.json');\n\n return providers;\n}\n\nfunction getThemes() {\n let themes = require('./themes.json');\n\n return themes;\n}\n\nfunction updateTheme(e) {\n var themes = getThemes();\n var themeName = e.target.innerHTML.toLowerCase();\n var index = themes.themes.findIndex(function (item, i) {\n return item.name === themeName;\n });\n localStorage.setItem(\"image-background\", themes.themes[index].imagebackground);\n localStorage.setItem(\"color-background\", themes.themes[index].colorbackground);\n localStorage.setItem(\"color-search-background\", themes.themes[index].colorserachbackground);\n localStorage.setItem(\"color-text-pri\", themes.themes[index].colortextpri);\n localStorage.setItem(\"color-text-acc\", themes.themes[index].colortextacc);\n localStorage.setItem(\"color-border\", themes.themes[index].colorborder); //document.documentElement.style.setProperty(prop, `var(--${themeName}${prop.substring(10)})`);\n\n setTheme();\n}\n\nfunction setTheme() {\n setValueFromLocalStorage('image-background');\n setValueFromLocalStorage('color-background');\n setValueFromLocalStorage('color-search-background');\n setValueFromLocalStorage('color-text-pri');\n setValueFromLocalStorage('color-text-acc');\n setValueFromLocalStorage('color-border');\n setValueFromLocalStorage('content-display');\n}\n\nfunction handleKeyPress(e) {\n var sindex = 0;\n var cycle = false;\n var key = e.keyCode || e.which;\n var text = e.target.value.replaceAll(\"+\", \"%2B\");\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n\n if (key == 13) {\n // Search functions\n search(text);\n }\n\n if (key == 9) {\n // Tab Completion Functions\n e.preventDefault();\n e.stopPropagation();\n\n if (text[0] === ';') {\n switch (option) {\n case 't':\n var streamers = ['admiralbahroo', 'moonmoon_ow', 'witwix'];\n\n if (!subtext || cycle) {\n cycle = true;\n if (sindex > streamers.length - 1) sindex = 0;\n document.getElementById(\"keywords\").value = ';t ' + streamers[sindex++];\n return;\n }\n\n for (var streamer of streamers) {\n if (subtext === streamer.substr(0, subtext.length)) {\n document.getElementById(\"keywords\").value = ';t ' + streamer;\n return;\n }\n }\n\n break;\n }\n }\n }\n\n if (key == 32) {\n //Space to go to search\n updateLabel(text);\n }\n\n sindex = 0;\n cycle = false;\n updateLabel(text);\n}\n\nfunction updateLabel(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n\n if (text[0] === '/') {\n // if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n document.getElementById(\"searchType\").innerHTML = \"Allmusic search\";\n break;\n\n case \"d\":\n document.getElementById(\"searchType\").innerHTML = \"Duck Duck Go search\";\n break;\n\n case \"di\":\n document.getElementById(\"searchType\").innerHTML = \"Discogs search\";\n break;\n\n case \"i\":\n document.getElementById(\"searchType\").innerHTML = \"IMDB search\";\n break;\n\n case \"m\":\n document.getElementById(\"searchType\").innerHTML = \"TheMovieDB search\";\n break;\n\n case \"r\":\n document.getElementById(\"searchType\").innerHTML = \"Reddit search\";\n break;\n\n case \"q\":\n document.getElementById(\"searchType\").innerHTML = \"Qwant search\";\n break;\n\n case \"so\":\n document.getElementById(\"searchType\").innerHTML = \"Soundcloud search\";\n break;\n\n case \"s\":\n document.getElementById(\"searchType\").innerHTML = \"Spotify search\";\n break;\n\n case \"tv\":\n document.getElementById(\"searchType\").innerHTML = \"TheTVDB search\";\n break;\n\n case \"t\":\n document.getElementById(\"searchType\").innerHTML = \"Trakt search\";\n break;\n\n case \"y\":\n document.getElementById(\"searchType\").innerHTML = \"YouTube search\";\n break;\n\n case \"w\":\n document.getElementById(\"searchType\").innerHTML = \"Wikipedia search\";\n break;\n\n case \"p\":\n document.getElementById(\"searchType\").innerHTML = \"Plex search\";\n break;\n\n case \"rt\":\n document.getElementById(\"searchType\").innerHTML = \"Rotten Tomatoes search\";\n break;\n\n default:\n document.getElementById(\"searchType\").innerHTML = \"Invalid search\";\n break;\n }\n } else {\n document.getElementById(\"searchType\").innerHTML = \"Google search\";\n }\n}\n\nfunction search(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n\n if (text[0] === '/') {\n if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n window.location = \"https://www.allmusic.com/search/all/\" + subtext;\n break;\n\n case \"d\":\n window.location = \"https://duckduckgo.com/?q=\" + subtext;\n break;\n\n case \"di\":\n window.location = \"https://www.discogs.com/search/?q=\" + subtext;\n break;\n\n case \"i\":\n window.location = \"https://www.imdb.com/find?q=\" + subtext;\n break;\n\n case \"m\":\n window.location = \"https://www.themoviedb.org/search?query=\" + subtext;\n break;\n\n case \"r\":\n window.location = \"https://www.reddit.com/search?q=\" + subtext;\n break;\n\n case \"q\":\n window.location = \"https://www.qwant.com/?q=\" + subtext;\n break;\n\n case \"so\":\n window.location = \"https://soundcloud.com/search?q=\" + subtext;\n break;\n\n case \"s\":\n window.location = \"https://open.spotify.com/search/results/\" + subtext;\n break;\n\n case \"t\":\n window.location = \"https://trakt.tv/search?query=\" + subtext;\n break;\n\n case \"tv\":\n window.location = \"https://www.thetvdb.com/search?query=\" + subtext;\n break;\n\n case \"y\":\n window.location = \"https://www.youtube.com/results?search_query=\" + subtext;\n break;\n\n case \"w\":\n window.location = \"https://en.wikipedia.org/w/index.php?search=\" + subtext;\n break;\n\n case \"p\":\n window.location = \"https://app.plex.tv/desktop/#!/search?query=\" + subtext;\n break;\n\n case \"rt\":\n window.location = \"https://www.rottentomatoes.com/search?search=\" + subtext;\n break;\n }\n } else {\n var option = text.substr(1);\n\n switch (option) {\n case \"d\":\n window.location = \"https://www.duckduckgo.com\";\n break;\n\n case \"y\":\n window.location = \"https://www.youtube.com\";\n break;\n\n case \"r\":\n window.location = \"https://reddit.com\";\n break;\n\n case \"s\":\n window.location = \"https://open.spotify.com\";\n break;\n }\n }\n } else if (validURL(text)) {\n if (containsProtocol(text)) window.location = text;else window.location = \"https://\" + text;\n } else {\n window.location = \"https://www.google.com/search?q=\" + text;\n }\n}\n\nfunction validURL(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/)?' + // protocol\n '((([a-z\\\\d]([a-z\\\\d-]*[a-z\\\\d])*)\\\\.)+[a-z]{2,}|' + // domain name\n '((\\\\d{1,3}\\\\.){3}\\\\d{1,3}))' + // OR ip (v4) address\n '(\\\\:\\\\d+)?(\\\\/[-a-z\\\\d%_.~+]*)*' + // port and path\n '(\\\\?[;&a-z\\\\d%_.~+=-]*)?' + // query string\n '(\\\\#[-a-z\\\\d_]*)?$', 'i'); // fragment locator\n\n return !!pattern.test(str);\n}\n\nfunction containsProtocol(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/){1}.*', 'i');\n return !!pattern.test(str);\n}\n\nString.prototype.replaceAll = function (search, replacement) {\n var target = this;\n return target.split(search).join(replacement);\n};\n\nfunction udpateDisplayedItems(e) {\n localStorage.setItem('contenttype', e.target.checked);\n\n if (e.target.checked) {\n localStorage.setItem('content-display', 'none');\n } else {\n localStorage.setItem('content-display', 'block');\n }\n\n setDisplayedItems();\n}\n\nfunction setDisplayedItems() {\n setValueFromLocalStorage('contenttype');\n setValueFromLocalStorage('content-display');\n var checked = localStorage.getItem(\"contenttype\");\n console.log(\"Checked is \" + checked);\n}\n\nvar _c, _c2, _c3, _c4, _c5, _c6, _c7, _c8, _c9, _c10, _c11, _c12;\n\n$RefreshReg$(_c, \"Homepage\");\n$RefreshReg$(_c2, \"Search\");\n$RefreshReg$(_c3, \"Header\");\n$RefreshReg$(_c4, \"Applications\");\n$RefreshReg$(_c5, \"App\");\n$RefreshReg$(_c6, \"Bookmarks\");\n$RefreshReg$(_c7, \"LinkGroups\");\n$RefreshReg$(_c8, \"LinkItem\");\n$RefreshReg$(_c9, \"ModalMenu\");\n$RefreshReg$(_c10, \"Provider\");\n$RefreshReg$(_c11, \"ModalInit\");\n$RefreshReg$(_c12, \"Clock\");","map":{"version":3,"sources":["/home/seanedmunds/dev/home-page/src/index.js"],"names":["React","useState","useEffect","ReactDOM","setValueFromLocalStorage","property","value","localStorage","getItem","setValue","document","documentElement","style","setProperty","input","querySelector","replace","Homepage","setTheme","date","greet","Search","handleKeyPress","Header","props","Applications","appList","getApps","items","i","apps","length","safe","NSFW","NSFWEnabled","push","name","url","icon","App","classNameType","hrefUrl","iconName","Bookmarks","bookmarkList","getLinks","bookmarks","category","links","LinkGroups","LinkItem","link","ModalMenu","providers","getProviders","updateTheme","udpateDisplayedItems","Provider","provider","prefix","ModalInit","setDisplayedItems","render","getElementById","currentDate","Date","dateOptions","weekday","year","month","day","toLocaleDateString","fixDigits","k","currentTime","Math","floor","getHours","easterEggChance","random","greetings","require","timeBased","easterEggs","messages","easteregg","concat","message","easterEggText","Clock","setDate","refreshClock","timerId","setInterval","cleanup","clearInterval","hour","minutes","getMinutes","midday","time","applications","getThemes","themes","e","themeName","target","innerHTML","toLowerCase","index","findIndex","item","setItem","imagebackground","colorbackground","colorserachbackground","colortextpri","colortextacc","colorborder","sindex","cycle","key","keyCode","which","text","replaceAll","option","substr","indexOf","subtext","search","preventDefault","stopPropagation","streamers","streamer","updateLabel","window","location","validURL","containsProtocol","str","pattern","RegExp","test","String","prototype","replacement","split","join","checked","console","log"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { useState, useEffect } from 'react';\nimport ReactDOM from 'react-dom';\n//import { unstable_createPortal } from 'react-dom';\nimport './index.css';\n\nconst setValueFromLocalStorage = property => {\n let value = localStorage.getItem(property);\n setValue(property, value);\n};\nconst setValue = (property, value) => {\n if (value) {\n document.documentElement.style.setProperty(`--${property}`, value);\n\n const input = document.querySelector(`#${property}`);\n if (input) {\n value = value.replace('px', '');\n input.value = value;\n }\n }\n};\n\nfunction Homepage() {\n setTheme();\n return (\n \n \n \n
\n \n \n
\n \n \n \n
\n \n \n
\n \n \n
\n \n );\n}\n\nfunction Search() {\n return (\n \n )\n}\n\nfunction Header(props) {\n return (\n \n );\n}\n\nfunction Applications() {\n let appList = getApps();\n var items = [];\n for (var i = 0; i < appList.apps.length; i++) {\n var safe = appList.apps[i].NSFW;\n var NSFWEnabled = localStorage.getItem(\"contenttype\");\n if (safe === \"SAFE\") {\n items.push(\n \n );\n } else if (safe === \"NSFW\" && NSFWEnabled) {\n items.push(\n \n );\n } else {\n \n }\n \n }\n return (\n \n Applications
\n \n {items}\n
\n \n );\n}\n\nfunction App(props) {\n \n let classNameType = props.NSFW + \"-content\";\n let hrefUrl = \"https://\" + props.url;\n let iconName = \"mdi-\" + props.icon;\n return (\n \n );\n}\n\nfunction Bookmarks() {\n let bookmarkList = getLinks();\n var items = [];\n for (var i = 0; i < bookmarkList.bookmarks.length; i++) {\n items.push(\n \n );\n }\n return (\n \n Bookmarks
\n \n {items}\n
\n \n );\n}\n\nfunction LinkGroups(props) {\n var items = [];\n for (var i = 0; i < props.links.length; i++) {\n items.push(\n \n );\n }\n return (\n \n
{props.category}
\n {items}\n \n );\n}\n\nfunction LinkItem(props) {\n return (\n \n );\n}\n\nfunction ModalMenu() {\n var providers = getProviders();\n var items = [];\n for (var i = 0; i < providers.providers.length; i++) {\n items.push(\n \n );\n }\n return (\n \n \n \n\n
Color themes
\n\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n\n\n
Search options
\n
\n \n \n \n | Website | \n Prefix | \n
\n {items}\n \n
\n \n\n \n
\n \n );\n}\n\nfunction Provider(props) {\n return (\n \n | {props.provider.name} | \n {props.provider.prefix} | \n
\n );\n}\n\nfunction ModalInit() {\n setDisplayedItems();\n return (\n \n );\n}\n\nReactDOM.render(\n ,\n document.getElementById('root')\n);\n\n//Functions below this line are for calculating data for\n//other functions\n\nfunction date() {\n let currentDate = new Date();\n let dateOptions = {\n weekday: \"long\",\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\"\n };\n let date = currentDate.toLocaleDateString(\"en-GB\", dateOptions);\n return date;\n}\nfunction fixDigits(k) {\n if (k < 10) {\n return \"0\" + k;\n }\n else {\n return k;\n }\n}\nfunction greet() {\n let currentTime = new Date();\n let greet = Math.floor(currentTime.getHours() / 6);\n let easterEggChance = Math.floor(Math.random() * 100);\n let greetings = require('./messages.json');\n let timeBased = [];\n let easterEggs = [];\n for (var i = 0; i < greetings.messages.length; i++) {\n if (greetings.messages[i].easteregg === \"FALSE\") {\n timeBased = timeBased.concat(greetings.messages[i]);\n } else {\n easterEggs = easterEggs.concat(greetings.messages[i]);\n }\n }\n if (easterEggChance > 10) {\n return timeBased[greet].message;\n } else {\n let easterEggText = Math.floor(Math.random() * easterEggs.length);\n return easterEggs[easterEggText].message;\n }\n}\nfunction Clock() {\n const [date, setDate] = useState(new Date());\n\n function refreshClock() {\n setDate(new Date());\n }\n useEffect(() => {\n const timerId = setInterval(refreshClock, 1000);\n return function cleanup() {\n clearInterval(timerId);\n };\n }, []);\n\n var hour = date.getHours();\n var minutes = date.getMinutes();\n //var seconds = date.getSeconds();\n var midday = \"AM\";\n midday = (hour >= 12) ? \"PM\" : \"AM\";\n hour = (hour === 0) ? 12 : ((hour > 12) ? (hour - 12) : hour);\n minutes = fixDigits(minutes);\n //seconds = fixDigits(seconds);\n let time = hour + \":\" + minutes + \" \" + midday;\n\n return (\n {time}
\n\n );\n}\nfunction getApps() {\n let applications = require('./apps.json');\n return applications;\n}\nfunction getLinks() {\n let links = require('./links.json');\n return links;\n}\nfunction getProviders() {\n let providers = require('./providers.json');\n return providers;\n}\nfunction getThemes() {\n let themes = require('./themes.json');\n return themes;\n}\nfunction updateTheme(e) {\n var themes = getThemes();\n var themeName = e.target.innerHTML.toLowerCase();\n var index = themes.themes.findIndex(function(item, i){\n return item.name === themeName\n });\n localStorage.setItem(\"image-background\", themes.themes[index].imagebackground);\n localStorage.setItem(\"color-background\", themes.themes[index].colorbackground);\n localStorage.setItem(\"color-search-background\", themes.themes[index].colorserachbackground);\n localStorage.setItem(\"color-text-pri\",themes.themes[index].colortextpri);\n localStorage.setItem(\"color-text-acc\", themes.themes[index].colortextacc);\n localStorage.setItem(\"color-border\", themes.themes[index].colorborder);\n \n //document.documentElement.style.setProperty(prop, `var(--${themeName}${prop.substring(10)})`);\n setTheme();\n}\nfunction setTheme() {\n setValueFromLocalStorage('image-background');\n setValueFromLocalStorage('color-background');\n setValueFromLocalStorage('color-search-background');\n setValueFromLocalStorage('color-text-pri');\n setValueFromLocalStorage('color-text-acc');\n setValueFromLocalStorage('color-border');\n setValueFromLocalStorage('content-display');\n}\nfunction handleKeyPress(e) {\n var sindex = 0;\n var cycle = false;\n var key = e.keyCode || e.which;\n var text = e.target.value.replaceAll(\"+\", \"%2B\");\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n if (key == 13) { // Search functions\n search(text);\n }\n if (key == 9) { // Tab Completion Functions\n e.preventDefault();\n e.stopPropagation();\n if (text[0] === ';') {\n switch (option) {\n case 't':\n var streamers = ['admiralbahroo', 'moonmoon_ow', 'witwix'];\n if (!subtext || cycle) {\n cycle = true;\n if (sindex > streamers.length - 1) sindex = 0;\n document.getElementById(\"keywords\").value = ';t ' + streamers[sindex++];\n return;\n }\n for (var streamer of streamers) {\n if (subtext === streamer.substr(0, subtext.length)) {\n document.getElementById(\"keywords\").value = ';t ' + streamer;\n return;\n }\n }\n break;\n }\n }\n }\n if(key == 32){ //Space to go to search\nupdateLabel(text);\n }\n sindex = 0;\n cycle = false;\n updateLabel(text);\n}\nfunction updateLabel(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n if (text[0] === '/') {\n// if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n document.getElementById(\"searchType\").innerHTML = \"Allmusic search\";\n break;\n case \"d\":\n document.getElementById(\"searchType\").innerHTML = \"Duck Duck Go search\";\n break;\n case \"di\":\n document.getElementById(\"searchType\").innerHTML = \"Discogs search\";\n break;\n case \"i\":\n document.getElementById(\"searchType\").innerHTML = \"IMDB search\";\n break;\n case \"m\":\n document.getElementById(\"searchType\").innerHTML = \"TheMovieDB search\";\n break;\n case \"r\":\n document.getElementById(\"searchType\").innerHTML = \"Reddit search\";\n break;\n case \"q\":\n document.getElementById(\"searchType\").innerHTML = \"Qwant search\";\n break;\n case \"so\":\n document.getElementById(\"searchType\").innerHTML = \"Soundcloud search\";\n break;\n case \"s\":\n document.getElementById(\"searchType\").innerHTML = \"Spotify search\";\n break;\n case \"tv\":\n document.getElementById(\"searchType\").innerHTML = \"TheTVDB search\";\n break;\n case \"t\":\n document.getElementById(\"searchType\").innerHTML = \"Trakt search\";\n break;\n case \"y\":\n document.getElementById(\"searchType\").innerHTML = \"YouTube search\";\n break;\n case \"w\":\n document.getElementById(\"searchType\").innerHTML = \"Wikipedia search\";\n break;\n case \"p\":\n document.getElementById(\"searchType\").innerHTML = \"Plex search\";\n break;\n case \"rt\":\n document.getElementById(\"searchType\").innerHTML = \"Rotten Tomatoes search\";\n break;\n default:\n document.getElementById(\"searchType\").innerHTML = \"Invalid search\";\n break;\n }\n}else {\n document.getElementById(\"searchType\").innerHTML = \"Google search\";\n }\n}\nfunction search(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n if (text[0] === '/') {\n if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n window.location = \"https://www.allmusic.com/search/all/\" + subtext;\n break;\n case \"d\":\n window.location = \"https://duckduckgo.com/?q=\" + subtext;\n break;\n case \"di\":\n window.location = \"https://www.discogs.com/search/?q=\" + subtext;\n break;\n case \"i\":\n window.location = \"https://www.imdb.com/find?q=\" + subtext;\n break;\n case \"m\":\n window.location = \"https://www.themoviedb.org/search?query=\" + subtext;\n break;\n case \"r\":\n window.location = \"https://www.reddit.com/search?q=\" + subtext;\n break;\n case \"q\":\n window.location = \"https://www.qwant.com/?q=\" + subtext;\n break;\n case \"so\":\n window.location = \"https://soundcloud.com/search?q=\" + subtext;\n break;\n case \"s\":\n window.location = \"https://open.spotify.com/search/results/\" + subtext;\n break;\n case \"t\":\n window.location = \"https://trakt.tv/search?query=\" + subtext;\n break;\n case \"tv\":\n window.location = \"https://www.thetvdb.com/search?query=\" + subtext;\n break;\n case \"y\":\n window.location = \"https://www.youtube.com/results?search_query=\" + subtext;\n break;\n case \"w\":\n window.location = \"https://en.wikipedia.org/w/index.php?search=\" + subtext;\n break;\n case \"p\":\n window.location = \"https://app.plex.tv/desktop/#!/search?query=\" + subtext;\n break;\n case \"rt\":\n window.location = \"https://www.rottentomatoes.com/search?search=\" + subtext;\n break;\n }\n } else {\n var option = text.substr(1);\n switch (option) {\n case \"d\":\n window.location = \"https://www.duckduckgo.com\";\n break;\n case \"y\":\n window.location = \"https://www.youtube.com\";\n break;\n case \"r\":\n window.location = \"https://reddit.com\";\n break;\n case \"s\":\n window.location = \"https://open.spotify.com\";\n break;\n }\n }\n } else if (validURL(text)) {\n if (containsProtocol(text))\n window.location = text;\n else\n window.location = \"https://\" + text;\n } else {\n window.location = \"https://www.google.com/search?q=\" + text;\n }\n}\nfunction validURL(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/)?' + // protocol\n '((([a-z\\\\d]([a-z\\\\d-]*[a-z\\\\d])*)\\\\.)+[a-z]{2,}|' + // domain name\n '((\\\\d{1,3}\\\\.){3}\\\\d{1,3}))' + // OR ip (v4) address\n '(\\\\:\\\\d+)?(\\\\/[-a-z\\\\d%_.~+]*)*' + // port and path\n '(\\\\?[;&a-z\\\\d%_.~+=-]*)?' + // query string\n '(\\\\#[-a-z\\\\d_]*)?$', 'i'); // fragment locator\n return !!pattern.test(str);\n}\nfunction containsProtocol(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/){1}.*', 'i');\n return !!pattern.test(str);\n}\nString.prototype.replaceAll = function(search, replacement) {\n var target = this;\n return target.split(search).join(replacement);\n};\nfunction udpateDisplayedItems(e) {\n localStorage.setItem('contenttype', e.target.checked);\n if (e.target.checked) {\n localStorage.setItem('content-display', 'none');\n } else {\n localStorage.setItem('content-display', 'block');\n }\n setDisplayedItems();\n}\nfunction setDisplayedItems() {\n setValueFromLocalStorage('contenttype');\n setValueFromLocalStorage('content-display');\n var checked = localStorage.getItem(\"contenttype\");\n console.log(\"Checked is \" + checked);\n}"]},"metadata":{},"sourceType":"module"}
\ No newline at end of file
diff --git a/node_modules/.cache/babel-loader/9cb2a59acfe62a962bea8420e60d8188.json b/node_modules/.cache/babel-loader/9cb2a59acfe62a962bea8420e60d8188.json
new file mode 100644
index 00000000..969d222d
--- /dev/null
+++ b/node_modules/.cache/babel-loader/9cb2a59acfe62a962bea8420e60d8188.json
@@ -0,0 +1 @@
+{"ast":null,"code":"var _jsxFileName = \"/home/seanedmunds/dev/home-page/src/index.js\",\n _s = $RefreshSig$();\n\nimport React from 'react';\nimport { useState, useEffect } from 'react';\nimport ReactDOM from 'react-dom'; //import { unstable_createPortal } from 'react-dom';\n\nimport './index.css';\nimport { jsxDEV as _jsxDEV } from \"react/jsx-dev-runtime\";\n\nconst setValueFromLocalStorage = property => {\n let value = localStorage.getItem(property);\n setValue(property, value);\n};\n\nconst setValue = (property, value) => {\n if (value) {\n document.documentElement.style.setProperty(`--${property}`, value);\n const input = document.querySelector(`#${property}`);\n\n if (input) {\n value = value.replace('px', '');\n input.value = value;\n }\n }\n};\n\nfunction Homepage() {\n setTheme();\n return /*#__PURE__*/_jsxDEV(\"main\", {\n id: \"container\",\n className: \"fade\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Search, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 28,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 27,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Header, {\n date: date(),\n greet: greet()\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 31,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 30,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Applications, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 37,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 36,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Bookmarks, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 40,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 39,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(ModalMenu, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 43,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 42,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(ModalInit, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 46,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 45,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 26,\n columnNumber: 5\n }, this);\n}\n\n_c = Homepage;\n\nfunction Search() {\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"search\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"abackground\",\n children: [/*#__PURE__*/_jsxDEV(\"input\", {\n name: \"keywords\",\n type: \"text\",\n className: \"keyword\",\n id: \"keywords\",\n size: \"50\",\n spellCheck: \"true\",\n placeholder: \"\"\n /*onFocus={this.placeholder = \"\"} onBlur={this.placeholder = ''}*/\n ,\n autoComplete: \"off\",\n autoFocus: true,\n onKeyUp: handleKeyPress\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 56,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n id: \"searchType\",\n className: \"Input-label\",\n children: \"Google search\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 57,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 55,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 54,\n columnNumber: 5\n }, this);\n}\n\n_c2 = Search;\n\nfunction Header(props) {\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"header\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n id: \"greeting_block\",\n children: /*#__PURE__*/_jsxDEV(\"h1\", {\n id: \"header_greet\",\n children: props.greet\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 67,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 66,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"date_block\",\n children: [/*#__PURE__*/_jsxDEV(\"h2\", {\n id: \"header_date\",\n children: props.date\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 70,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(Clock, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 71,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 69,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 65,\n columnNumber: 5\n }, this);\n}\n\n_c3 = Header;\n\nfunction Applications() {\n let appList = getApps();\n var items = [];\n\n for (var i = 0; i < appList.apps.length; i++) {\n var safe = appList.apps[i].NSFW;\n var NSFWEnabled = localStorage.getItem(\"contenttype\");\n\n if (safe === \"SAFE\") {\n items.push( /*#__PURE__*/_jsxDEV(App, {\n name: appList.apps[i].name,\n url: appList.apps[i].url,\n icon: appList.apps[i].icon,\n NSFW: appList.apps[i].NSFW\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 85,\n columnNumber: 9\n }, this));\n } else if (safe === \"NSFW\" && NSFWEnabled) {\n items.push( /*#__PURE__*/_jsxDEV(App, {\n name: appList.apps[i].name,\n url: appList.apps[i].url,\n icon: appList.apps[i].icon,\n NSFW: appList.apps[i].NSFW\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 95,\n columnNumber: 9\n }, this));\n } else {\n console.log(NSFWEnabled);\n }\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"apps\",\n children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n children: \"Applications\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 110,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"apps_loop\",\n children: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 111,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 109,\n columnNumber: 5\n }, this);\n}\n\n_c4 = Applications;\n\nfunction App(props) {\n let classNameType = props.NSFW + \"-content\";\n let hrefUrl = \"https://\" + props.url;\n let iconName = \"mdi-\" + props.icon;\n return /*#__PURE__*/_jsxDEV(\"div\", {\n className: classNameType,\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: hrefUrl,\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_item\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_icon\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify icon\",\n \"data-icon\": iconName\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 128,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 127,\n columnNumber: 13\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_text\",\n children: [/*#__PURE__*/_jsxDEV(\"span\", {\n id: \"app-name\",\n children: props.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 131,\n columnNumber: 15\n }, this), /*#__PURE__*/_jsxDEV(\"span\", {\n id: \"app-address\",\n children: props.url\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 132,\n columnNumber: 15\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 130,\n columnNumber: 13\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 126,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 125,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 124,\n columnNumber: 7\n }, this);\n}\n\n_c5 = App;\n\nfunction Bookmarks() {\n let bookmarkList = getLinks();\n var items = [];\n\n for (var i = 0; i < bookmarkList.bookmarks.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(LinkGroups, {\n category: bookmarkList.bookmarks[i].category,\n links: bookmarkList.bookmarks[i].links\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 145,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"links\",\n children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n children: \"Bookmarks\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 154,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"links_loop\",\n children: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 155,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 153,\n columnNumber: 5\n }, this);\n}\n\n_c6 = Bookmarks;\n\nfunction LinkGroups(props) {\n var items = [];\n\n for (var i = 0; i < props.links.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(LinkItem, {\n link: props.links[i]\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 166,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"links_item\",\n children: [/*#__PURE__*/_jsxDEV(\"h4\", {\n children: props.category\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 174,\n columnNumber: 7\n }, this), items]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 173,\n columnNumber: 5\n }, this);\n}\n\n_c7 = LinkGroups;\n\nfunction LinkItem(props) {\n return /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: props.link.url,\n className: \"theme_color-border theme_text-select\",\n children: props.link.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 183,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 182,\n columnNumber: 5\n }, this);\n}\n\n_c8 = LinkItem;\n\nfunction ModalMenu() {\n var providers = getProviders();\n var items = [];\n\n for (var i = 0; i < providers.providers.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(Provider, {\n provider: providers.providers[i]\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 193,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"modal\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n children: [/*#__PURE__*/_jsxDEV(\"header\", {\n id: \"modal-header\",\n children: [/*#__PURE__*/_jsxDEV(\"h1\", {\n children: \"Options\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 203,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n href: \"#\",\n title: \"Close\",\n className: \"modal-close\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-close\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 205,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 204,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 202,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"h2\", {\n children: \"Color themes\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 209,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"modal-theme\",\n children: [/*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"blackboard\",\n className: \"theme-button theme-blackboard\",\n onClick: updateTheme,\n children: \"Blackboard\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 212,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"gazette\",\n className: \"theme-button theme-gazette\",\n onClick: updateTheme,\n children: \"Gazette\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 213,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"espresso\",\n className: \"theme-button theme-espresso\",\n onClick: updateTheme,\n children: \"Espresso\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 214,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cab\",\n className: \"theme-button theme-cab\",\n onClick: updateTheme,\n children: \"Cab\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 215,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cloud\",\n className: \"theme-button theme-cloud\",\n onClick: updateTheme,\n children: \"Cloud\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 216,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"lime\",\n className: \"theme-button theme-lime\",\n onClick: updateTheme,\n children: \"Lime\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 217,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"passion\",\n className: \"theme-button theme-passion\",\n onClick: updateTheme,\n children: \"Passion\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 218,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"blues\",\n className: \"theme-button theme-blues\",\n onClick: updateTheme,\n children: \"Blues\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 219,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"chalk\",\n className: \"theme-button theme-chalk\",\n onClick: updateTheme,\n children: \"Chalk\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 220,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"tron\",\n className: \"theme-button theme-tron\",\n onClick: updateTheme,\n children: \"Tron\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 221,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"paper\",\n className: \"theme-button theme-paper\",\n onClick: updateTheme,\n children: \"Paper\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 222,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cyberpunk\",\n className: \"theme-button theme-cyberpunk\",\n onClick: updateTheme,\n children: \"Cyberpunk\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 223,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"quadra\",\n className: \"theme-button theme-panam\",\n onClick: updateTheme,\n children: \"Quadra\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 224,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"panam\",\n className: \"theme-button theme-panam\",\n onClick: updateTheme,\n children: \"Panam\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 225,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"touch\",\n className: \"theme-button theme-touch\",\n onClick: updateTheme,\n children: \"Touch\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 226,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"peek\",\n className: \"theme-button theme-peek\",\n onClick: updateTheme,\n children: \"Peek\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 227,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 211,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"h2\", {\n children: \"Search options\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 231,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"providers\",\n children: /*#__PURE__*/_jsxDEV(\"table\", {\n children: /*#__PURE__*/_jsxDEV(\"tbody\", {\n children: [/*#__PURE__*/_jsxDEV(\"tr\", {\n children: [/*#__PURE__*/_jsxDEV(\"th\", {\n children: \"Website\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 236,\n columnNumber: 19\n }, this), /*#__PURE__*/_jsxDEV(\"th\", {\n children: \"Prefix\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 237,\n columnNumber: 19\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 235,\n columnNumber: 17\n }, this), items]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 234,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 233,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 232,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"header\", {\n id: \"modal-footer\",\n children: [/*#__PURE__*/_jsxDEV(\"a\", {\n href: \"https://github.com/jeroenpardon/\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-github-box\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 245,\n columnNumber: 54\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 245,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n href: \"https://materialdesignicons.com/\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-material-design\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 246,\n columnNumber: 54\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 246,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"sneaky\",\n children: [/*#__PURE__*/_jsxDEV(\"input\", {\n type: \"checkbox\",\n id: \"contenttype\",\n onChange: udpateDisplayedItems\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 247,\n columnNumber: 35\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n for: \"contenttype\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-domino-mask\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 248,\n columnNumber: 36\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 248,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 247,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 244,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 201,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 200,\n columnNumber: 5\n }, this);\n}\n\n_c9 = ModalMenu;\n\nfunction Provider(props) {\n return /*#__PURE__*/_jsxDEV(\"tr\", {\n children: [/*#__PURE__*/_jsxDEV(\"td\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: props.provider.url,\n children: props.provider.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 258,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 258,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"td\", {\n children: props.provider.prefix\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 259,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 257,\n columnNumber: 5\n }, this);\n}\n\n_c10 = Provider;\n\nfunction ModalInit() {\n setDisplayedItems();\n return /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"modal_init\",\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n className: \"btn\",\n href: \"#modal\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify icon\",\n \"data-icon\": \"mdi-xbox-controller-menu\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 269,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 268,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 267,\n columnNumber: 5\n }, this);\n}\n\n_c11 = ModalInit;\nReactDOM.render( /*#__PURE__*/_jsxDEV(Homepage, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 276,\n columnNumber: 3\n}, this), document.getElementById('root')); //Functions below this line are for calculating data for\n//other functions\n\nfunction date() {\n let currentDate = new Date();\n let dateOptions = {\n weekday: \"long\",\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\"\n };\n let date = currentDate.toLocaleDateString(\"en-GB\", dateOptions);\n return date;\n}\n\nfunction fixDigits(k) {\n if (k < 10) {\n return \"0\" + k;\n } else {\n return k;\n }\n}\n\nfunction greet() {\n let currentTime = new Date();\n let greet = Math.floor(currentTime.getHours() / 6);\n let easterEggChance = Math.floor(Math.random() * 100);\n\n let greetings = require('./messages.json');\n\n let timeBased = [];\n let easterEggs = [];\n\n for (var i = 0; i < greetings.messages.length; i++) {\n if (greetings.messages[i].easteregg === \"FALSE\") {\n timeBased = timeBased.concat(greetings.messages[i]);\n } else {\n easterEggs = easterEggs.concat(greetings.messages[i]);\n }\n }\n\n if (easterEggChance > 10) {\n return timeBased[greet].message;\n } else {\n let easterEggText = Math.floor(Math.random() * easterEggs.length);\n return easterEggs[easterEggText].message;\n }\n}\n\nfunction Clock() {\n _s();\n\n const [date, setDate] = useState(new Date());\n\n function refreshClock() {\n setDate(new Date());\n }\n\n useEffect(() => {\n const timerId = setInterval(refreshClock, 1000);\n return function cleanup() {\n clearInterval(timerId);\n };\n }, []);\n var hour = date.getHours();\n var minutes = date.getMinutes(); //var seconds = date.getSeconds();\n\n var midday = \"AM\";\n midday = hour >= 12 ? \"PM\" : \"AM\";\n hour = hour === 0 ? 12 : hour > 12 ? hour - 12 : hour;\n minutes = fixDigits(minutes); //seconds = fixDigits(seconds);\n\n let time = hour + \":\" + minutes + \" \" + midday;\n return /*#__PURE__*/_jsxDEV(\"h2\", {\n id: \"clock\",\n children: time\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 347,\n columnNumber: 5\n }, this);\n}\n\n_s(Clock, \"Gqi45WOZhU2c0BLYX0HoJeiR0fk=\");\n\n_c12 = Clock;\n\nfunction getApps() {\n let applications = require('./apps.json');\n\n return applications;\n}\n\nfunction getLinks() {\n let links = require('./links.json');\n\n return links;\n}\n\nfunction getProviders() {\n let providers = require('./providers.json');\n\n return providers;\n}\n\nfunction getThemes() {\n let themes = require('./themes.json');\n\n return themes;\n}\n\nfunction updateTheme(e) {\n var themes = getThemes();\n var themeName = e.target.innerHTML.toLowerCase();\n var index = themes.themes.findIndex(function (item, i) {\n return item.name === themeName;\n });\n console.log(themes.themes[index]);\n localStorage.setItem(\"image-background\", themes.themes[index].imagebackground);\n localStorage.setItem(\"color-background\", themes.themes[index].colorbackground);\n localStorage.setItem(\"color-search-background\", themes.themes[index].colorserachbackground);\n localStorage.setItem(\"color-text-pri\", themes.themes[index].colortextpri);\n localStorage.setItem(\"color-text-acc\", themes.themes[index].colortextacc);\n localStorage.setItem(\"color-border\", themes.themes[index].colorborder); //document.documentElement.style.setProperty(prop, `var(--${themeName}${prop.substring(10)})`);\n\n setTheme();\n}\n\nfunction setTheme() {\n setValueFromLocalStorage('image-background');\n setValueFromLocalStorage('color-background');\n setValueFromLocalStorage('color-search-background');\n setValueFromLocalStorage('color-text-pri');\n setValueFromLocalStorage('color-text-acc');\n setValueFromLocalStorage('color-border');\n setValueFromLocalStorage('content-display');\n}\n\nfunction handleKeyPress(e) {\n var sindex = 0;\n var cycle = false;\n var key = e.keyCode || e.which;\n var text = e.target.value.replaceAll(\"+\", \"%2B\");\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n\n if (key == 13) {\n // Search functions\n search(text);\n }\n\n if (key == 9) {\n // Tab Completion Functions\n e.preventDefault();\n e.stopPropagation();\n\n if (text[0] === ';') {\n switch (option) {\n case 't':\n var streamers = ['admiralbahroo', 'moonmoon_ow', 'witwix'];\n\n if (!subtext || cycle) {\n cycle = true;\n if (sindex > streamers.length - 1) sindex = 0;\n document.getElementById(\"keywords\").value = ';t ' + streamers[sindex++];\n return;\n }\n\n for (var streamer of streamers) {\n if (subtext === streamer.substr(0, subtext.length)) {\n document.getElementById(\"keywords\").value = ';t ' + streamer;\n return;\n }\n }\n\n break;\n }\n }\n }\n\n if (key == 32) {\n //Space to go to search\n updateLabel(text);\n }\n\n sindex = 0;\n cycle = false;\n updateLabel(text);\n}\n\nfunction updateLabel(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n\n if (text[0] === '/') {\n // if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n document.getElementById(\"searchType\").innerHTML = \"Allmusic search\";\n break;\n\n case \"d\":\n document.getElementById(\"searchType\").innerHTML = \"Duck Duck Go search\";\n break;\n\n case \"di\":\n document.getElementById(\"searchType\").innerHTML = \"Discogs search\";\n break;\n\n case \"i\":\n document.getElementById(\"searchType\").innerHTML = \"IMDB search\";\n break;\n\n case \"m\":\n document.getElementById(\"searchType\").innerHTML = \"TheMovieDB search\";\n break;\n\n case \"r\":\n document.getElementById(\"searchType\").innerHTML = \"Reddit search\";\n break;\n\n case \"q\":\n document.getElementById(\"searchType\").innerHTML = \"Qwant search\";\n break;\n\n case \"so\":\n document.getElementById(\"searchType\").innerHTML = \"Soundcloud search\";\n break;\n\n case \"s\":\n document.getElementById(\"searchType\").innerHTML = \"Spotify search\";\n break;\n\n case \"tv\":\n document.getElementById(\"searchType\").innerHTML = \"TheTVDB search\";\n break;\n\n case \"t\":\n document.getElementById(\"searchType\").innerHTML = \"Trakt search\";\n break;\n\n case \"y\":\n document.getElementById(\"searchType\").innerHTML = \"YouTube search\";\n break;\n\n case \"w\":\n document.getElementById(\"searchType\").innerHTML = \"Wikipedia search\";\n break;\n\n case \"p\":\n document.getElementById(\"searchType\").innerHTML = \"Plex search\";\n break;\n\n case \"rt\":\n document.getElementById(\"searchType\").innerHTML = \"Rotten Tomatoes search\";\n break;\n\n default:\n document.getElementById(\"searchType\").innerHTML = \"Invalid search\";\n break;\n }\n } else {\n document.getElementById(\"searchType\").innerHTML = \"Google search\";\n }\n}\n\nfunction search(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n\n if (text[0] === '/') {\n if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n window.location = \"https://www.allmusic.com/search/all/\" + subtext;\n break;\n\n case \"d\":\n window.location = \"https://duckduckgo.com/?q=\" + subtext;\n break;\n\n case \"di\":\n window.location = \"https://www.discogs.com/search/?q=\" + subtext;\n break;\n\n case \"i\":\n window.location = \"https://www.imdb.com/find?q=\" + subtext;\n break;\n\n case \"m\":\n window.location = \"https://www.themoviedb.org/search?query=\" + subtext;\n break;\n\n case \"r\":\n window.location = \"https://www.reddit.com/search?q=\" + subtext;\n break;\n\n case \"q\":\n window.location = \"https://www.qwant.com/?q=\" + subtext;\n break;\n\n case \"so\":\n window.location = \"https://soundcloud.com/search?q=\" + subtext;\n break;\n\n case \"s\":\n window.location = \"https://open.spotify.com/search/results/\" + subtext;\n break;\n\n case \"t\":\n window.location = \"https://trakt.tv/search?query=\" + subtext;\n break;\n\n case \"tv\":\n window.location = \"https://www.thetvdb.com/search?query=\" + subtext;\n break;\n\n case \"y\":\n window.location = \"https://www.youtube.com/results?search_query=\" + subtext;\n break;\n\n case \"w\":\n window.location = \"https://en.wikipedia.org/w/index.php?search=\" + subtext;\n break;\n\n case \"p\":\n window.location = \"https://app.plex.tv/desktop/#!/search?query=\" + subtext;\n break;\n\n case \"rt\":\n window.location = \"https://www.rottentomatoes.com/search?search=\" + subtext;\n break;\n }\n } else {\n var option = text.substr(1);\n\n switch (option) {\n case \"d\":\n window.location = \"https://www.duckduckgo.com\";\n break;\n\n case \"y\":\n window.location = \"https://www.youtube.com\";\n break;\n\n case \"r\":\n window.location = \"https://reddit.com\";\n break;\n\n case \"s\":\n window.location = \"https://open.spotify.com\";\n break;\n }\n }\n } else if (validURL(text)) {\n if (containsProtocol(text)) window.location = text;else window.location = \"https://\" + text;\n } else {\n window.location = \"https://www.google.com/search?q=\" + text;\n }\n} // Source: https://stackoverflow.com/questions/5717093/check-if-a-javascript-string-is-a-url\n\n\nfunction validURL(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/)?' + // protocol\n '((([a-z\\\\d]([a-z\\\\d-]*[a-z\\\\d])*)\\\\.)+[a-z]{2,}|' + // domain name\n '((\\\\d{1,3}\\\\.){3}\\\\d{1,3}))' + // OR ip (v4) address\n '(\\\\:\\\\d+)?(\\\\/[-a-z\\\\d%_.~+]*)*' + // port and path\n '(\\\\?[;&a-z\\\\d%_.~+=-]*)?' + // query string\n '(\\\\#[-a-z\\\\d_]*)?$', 'i'); // fragment locator\n\n return !!pattern.test(str);\n}\n\nfunction containsProtocol(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/){1}.*', 'i');\n return !!pattern.test(str);\n}\n\nString.prototype.replaceAll = function (search, replacement) {\n var target = this;\n return target.split(search).join(replacement);\n};\n\nfunction udpateDisplayedItems(e) {\n localStorage.setItem('contenttype', e.target.checked);\n\n if (e.target.checked) {\n localStorage.setItem('content-display', 'none');\n } else {\n localStorage.setItem('content-display', 'block');\n }\n\n setDisplayedItems();\n}\n\nfunction setDisplayedItems() {\n setValueFromLocalStorage('contenttype');\n setValueFromLocalStorage('content-display');\n var checked = localStorage.getItem(\"contenttype\"); //document.getElementById('contenttype').checked = checked;\n}\n\nvar _c, _c2, _c3, _c4, _c5, _c6, _c7, _c8, _c9, _c10, _c11, _c12;\n\n$RefreshReg$(_c, \"Homepage\");\n$RefreshReg$(_c2, \"Search\");\n$RefreshReg$(_c3, \"Header\");\n$RefreshReg$(_c4, \"Applications\");\n$RefreshReg$(_c5, \"App\");\n$RefreshReg$(_c6, \"Bookmarks\");\n$RefreshReg$(_c7, \"LinkGroups\");\n$RefreshReg$(_c8, \"LinkItem\");\n$RefreshReg$(_c9, \"ModalMenu\");\n$RefreshReg$(_c10, \"Provider\");\n$RefreshReg$(_c11, \"ModalInit\");\n$RefreshReg$(_c12, \"Clock\");","map":{"version":3,"sources":["/home/seanedmunds/dev/home-page/src/index.js"],"names":["React","useState","useEffect","ReactDOM","setValueFromLocalStorage","property","value","localStorage","getItem","setValue","document","documentElement","style","setProperty","input","querySelector","replace","Homepage","setTheme","date","greet","Search","handleKeyPress","Header","props","Applications","appList","getApps","items","i","apps","length","safe","NSFW","NSFWEnabled","push","name","url","icon","console","log","App","classNameType","hrefUrl","iconName","Bookmarks","bookmarkList","getLinks","bookmarks","category","links","LinkGroups","LinkItem","link","ModalMenu","providers","getProviders","updateTheme","udpateDisplayedItems","Provider","provider","prefix","ModalInit","setDisplayedItems","render","getElementById","currentDate","Date","dateOptions","weekday","year","month","day","toLocaleDateString","fixDigits","k","currentTime","Math","floor","getHours","easterEggChance","random","greetings","require","timeBased","easterEggs","messages","easteregg","concat","message","easterEggText","Clock","setDate","refreshClock","timerId","setInterval","cleanup","clearInterval","hour","minutes","getMinutes","midday","time","applications","getThemes","themes","e","themeName","target","innerHTML","toLowerCase","index","findIndex","item","setItem","imagebackground","colorbackground","colorserachbackground","colortextpri","colortextacc","colorborder","sindex","cycle","key","keyCode","which","text","replaceAll","option","substr","indexOf","subtext","search","preventDefault","stopPropagation","streamers","streamer","updateLabel","window","location","validURL","containsProtocol","str","pattern","RegExp","test","String","prototype","replacement","split","join","checked"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { useState, useEffect } from 'react';\nimport ReactDOM from 'react-dom';\n//import { unstable_createPortal } from 'react-dom';\nimport './index.css';\n\nconst setValueFromLocalStorage = property => {\n let value = localStorage.getItem(property);\n setValue(property, value);\n};\nconst setValue = (property, value) => {\n if (value) {\n document.documentElement.style.setProperty(`--${property}`, value);\n\n const input = document.querySelector(`#${property}`);\n if (input) {\n value = value.replace('px', '');\n input.value = value;\n }\n }\n};\n\nfunction Homepage() {\n setTheme();\n return (\n \n \n \n
\n \n \n
\n \n \n \n
\n \n \n
\n \n \n
\n \n );\n}\n\nfunction Search() {\n return (\n \n )\n}\n\nfunction Header(props) {\n return (\n \n );\n}\n\nfunction Applications() {\n let appList = getApps();\n var items = [];\n for (var i = 0; i < appList.apps.length; i++) {\n var safe = appList.apps[i].NSFW;\n var NSFWEnabled = localStorage.getItem(\"contenttype\");\n if (safe === \"SAFE\") {\n items.push(\n \n );\n } else if (safe === \"NSFW\" && NSFWEnabled) {\n items.push(\n \n );\n } else {\n console.log(NSFWEnabled);\n }\n \n }\n return (\n \n Applications
\n \n {items}\n
\n \n );\n}\n\nfunction App(props) {\n \n let classNameType = props.NSFW + \"-content\";\n let hrefUrl = \"https://\" + props.url;\n let iconName = \"mdi-\" + props.icon;\n return (\n \n );\n}\n\nfunction Bookmarks() {\n let bookmarkList = getLinks();\n var items = [];\n for (var i = 0; i < bookmarkList.bookmarks.length; i++) {\n items.push(\n \n );\n }\n return (\n \n Bookmarks
\n \n {items}\n
\n \n );\n}\n\nfunction LinkGroups(props) {\n var items = [];\n for (var i = 0; i < props.links.length; i++) {\n items.push(\n \n );\n }\n return (\n \n
{props.category}
\n {items}\n \n );\n}\n\nfunction LinkItem(props) {\n return (\n \n );\n}\n\nfunction ModalMenu() {\n var providers = getProviders();\n var items = [];\n for (var i = 0; i < providers.providers.length; i++) {\n items.push(\n \n );\n }\n return (\n \n \n \n\n
Color themes
\n\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n\n\n
Search options
\n
\n \n \n \n | Website | \n Prefix | \n
\n {items}\n \n
\n \n\n \n
\n \n );\n}\n\nfunction Provider(props) {\n return (\n \n | {props.provider.name} | \n {props.provider.prefix} | \n
\n );\n}\n\nfunction ModalInit() {\n setDisplayedItems();\n return (\n \n );\n}\n\nReactDOM.render(\n ,\n document.getElementById('root')\n);\n\n//Functions below this line are for calculating data for\n//other functions\n\nfunction date() {\n let currentDate = new Date();\n let dateOptions = {\n weekday: \"long\",\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\"\n };\n let date = currentDate.toLocaleDateString(\"en-GB\", dateOptions);\n return date;\n}\nfunction fixDigits(k) {\n if (k < 10) {\n return \"0\" + k;\n }\n else {\n return k;\n }\n}\nfunction greet() {\n let currentTime = new Date();\n let greet = Math.floor(currentTime.getHours() / 6);\n let easterEggChance = Math.floor(Math.random() * 100);\n let greetings = require('./messages.json');\n let timeBased = [];\n let easterEggs = [];\n for (var i = 0; i < greetings.messages.length; i++) {\n if (greetings.messages[i].easteregg === \"FALSE\") {\n timeBased = timeBased.concat(greetings.messages[i]);\n } else {\n easterEggs = easterEggs.concat(greetings.messages[i]);\n }\n }\n if (easterEggChance > 10) {\n return timeBased[greet].message;\n } else {\n let easterEggText = Math.floor(Math.random() * easterEggs.length);\n return easterEggs[easterEggText].message;\n }\n}\nfunction Clock() {\n const [date, setDate] = useState(new Date());\n\n function refreshClock() {\n setDate(new Date());\n }\n useEffect(() => {\n const timerId = setInterval(refreshClock, 1000);\n return function cleanup() {\n clearInterval(timerId);\n };\n }, []);\n\n var hour = date.getHours();\n var minutes = date.getMinutes();\n //var seconds = date.getSeconds();\n var midday = \"AM\";\n midday = (hour >= 12) ? \"PM\" : \"AM\";\n hour = (hour === 0) ? 12 : ((hour > 12) ? (hour - 12) : hour);\n minutes = fixDigits(minutes);\n //seconds = fixDigits(seconds);\n let time = hour + \":\" + minutes + \" \" + midday;\n\n return (\n {time}
\n\n );\n}\nfunction getApps() {\n let applications = require('./apps.json');\n return applications;\n}\nfunction getLinks() {\n let links = require('./links.json');\n return links;\n}\nfunction getProviders() {\n let providers = require('./providers.json');\n return providers;\n}\nfunction getThemes() {\n let themes = require('./themes.json');\n return themes;\n}\n\nfunction updateTheme(e) {\n var themes = getThemes();\n var themeName = e.target.innerHTML.toLowerCase();\n var index = themes.themes.findIndex(function(item, i){\n return item.name === themeName\n });\n console.log(themes.themes[index]);\n localStorage.setItem(\"image-background\", themes.themes[index].imagebackground);\n localStorage.setItem(\"color-background\", themes.themes[index].colorbackground);\n localStorage.setItem(\"color-search-background\", themes.themes[index].colorserachbackground);\n localStorage.setItem(\"color-text-pri\",themes.themes[index].colortextpri);\n localStorage.setItem(\"color-text-acc\", themes.themes[index].colortextacc);\n localStorage.setItem(\"color-border\", themes.themes[index].colorborder);\n \n //document.documentElement.style.setProperty(prop, `var(--${themeName}${prop.substring(10)})`);\n setTheme();\n}\n\nfunction setTheme() {\n setValueFromLocalStorage('image-background');\n setValueFromLocalStorage('color-background');\n setValueFromLocalStorage('color-search-background');\n setValueFromLocalStorage('color-text-pri');\n setValueFromLocalStorage('color-text-acc');\n setValueFromLocalStorage('color-border');\n setValueFromLocalStorage('content-display');\n}\n\nfunction handleKeyPress(e) {\n var sindex = 0;\n var cycle = false;\n var key = e.keyCode || e.which;\n var text = e.target.value.replaceAll(\"+\", \"%2B\");\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n if (key == 13) { // Search functions\n search(text);\n }\n if (key == 9) { // Tab Completion Functions\n e.preventDefault();\n e.stopPropagation();\n if (text[0] === ';') {\n switch (option) {\n case 't':\n var streamers = ['admiralbahroo', 'moonmoon_ow', 'witwix'];\n if (!subtext || cycle) {\n cycle = true;\n if (sindex > streamers.length - 1) sindex = 0;\n document.getElementById(\"keywords\").value = ';t ' + streamers[sindex++];\n return;\n }\n for (var streamer of streamers) {\n if (subtext === streamer.substr(0, subtext.length)) {\n document.getElementById(\"keywords\").value = ';t ' + streamer;\n return;\n }\n }\n break;\n }\n }\n }\n if(key == 32){ //Space to go to search\nupdateLabel(text);\n }\n sindex = 0;\n cycle = false;\n updateLabel(text);\n}\n\nfunction updateLabel(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n if (text[0] === '/') {\n// if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n document.getElementById(\"searchType\").innerHTML = \"Allmusic search\";\n break;\n case \"d\":\n document.getElementById(\"searchType\").innerHTML = \"Duck Duck Go search\";\n break;\n case \"di\":\n document.getElementById(\"searchType\").innerHTML = \"Discogs search\";\n break;\n case \"i\":\n document.getElementById(\"searchType\").innerHTML = \"IMDB search\";\n break;\n case \"m\":\n document.getElementById(\"searchType\").innerHTML = \"TheMovieDB search\";\n break;\n case \"r\":\n document.getElementById(\"searchType\").innerHTML = \"Reddit search\";\n break;\n case \"q\":\n document.getElementById(\"searchType\").innerHTML = \"Qwant search\";\n break;\n case \"so\":\n document.getElementById(\"searchType\").innerHTML = \"Soundcloud search\";\n break;\n case \"s\":\n document.getElementById(\"searchType\").innerHTML = \"Spotify search\";\n break;\n case \"tv\":\n document.getElementById(\"searchType\").innerHTML = \"TheTVDB search\";\n break;\n case \"t\":\n document.getElementById(\"searchType\").innerHTML = \"Trakt search\";\n break;\n case \"y\":\n document.getElementById(\"searchType\").innerHTML = \"YouTube search\";\n break;\n case \"w\":\n document.getElementById(\"searchType\").innerHTML = \"Wikipedia search\";\n break;\n case \"p\":\n document.getElementById(\"searchType\").innerHTML = \"Plex search\";\n break;\n case \"rt\":\n document.getElementById(\"searchType\").innerHTML = \"Rotten Tomatoes search\";\n break;\n default:\n document.getElementById(\"searchType\").innerHTML = \"Invalid search\";\n break;\n }\n}else {\n document.getElementById(\"searchType\").innerHTML = \"Google search\";\n }\n}\n\nfunction search(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n if (text[0] === '/') {\n if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n window.location = \"https://www.allmusic.com/search/all/\" + subtext;\n break;\n case \"d\":\n window.location = \"https://duckduckgo.com/?q=\" + subtext;\n break;\n case \"di\":\n window.location = \"https://www.discogs.com/search/?q=\" + subtext;\n break;\n case \"i\":\n window.location = \"https://www.imdb.com/find?q=\" + subtext;\n break;\n case \"m\":\n window.location = \"https://www.themoviedb.org/search?query=\" + subtext;\n break;\n case \"r\":\n window.location = \"https://www.reddit.com/search?q=\" + subtext;\n break;\n case \"q\":\n window.location = \"https://www.qwant.com/?q=\" + subtext;\n break;\n case \"so\":\n window.location = \"https://soundcloud.com/search?q=\" + subtext;\n break;\n case \"s\":\n window.location = \"https://open.spotify.com/search/results/\" + subtext;\n break;\n case \"t\":\n window.location = \"https://trakt.tv/search?query=\" + subtext;\n break;\n case \"tv\":\n window.location = \"https://www.thetvdb.com/search?query=\" + subtext;\n break;\n case \"y\":\n window.location = \"https://www.youtube.com/results?search_query=\" + subtext;\n break;\n case \"w\":\n window.location = \"https://en.wikipedia.org/w/index.php?search=\" + subtext;\n break;\n case \"p\":\n window.location = \"https://app.plex.tv/desktop/#!/search?query=\" + subtext;\n break;\n case \"rt\":\n window.location = \"https://www.rottentomatoes.com/search?search=\" + subtext;\n break;\n }\n } else {\n var option = text.substr(1);\n switch (option) {\n case \"d\":\n window.location = \"https://www.duckduckgo.com\";\n break;\n case \"y\":\n window.location = \"https://www.youtube.com\";\n break;\n case \"r\":\n window.location = \"https://reddit.com\";\n break;\n case \"s\":\n window.location = \"https://open.spotify.com\";\n break;\n }\n }\n } else if (validURL(text)) {\n if (containsProtocol(text))\n window.location = text;\n else\n window.location = \"https://\" + text;\n } else {\n window.location = \"https://www.google.com/search?q=\" + text;\n }\n}\n\n// Source: https://stackoverflow.com/questions/5717093/check-if-a-javascript-string-is-a-url\nfunction validURL(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/)?' + // protocol\n '((([a-z\\\\d]([a-z\\\\d-]*[a-z\\\\d])*)\\\\.)+[a-z]{2,}|' + // domain name\n '((\\\\d{1,3}\\\\.){3}\\\\d{1,3}))' + // OR ip (v4) address\n '(\\\\:\\\\d+)?(\\\\/[-a-z\\\\d%_.~+]*)*' + // port and path\n '(\\\\?[;&a-z\\\\d%_.~+=-]*)?' + // query string\n '(\\\\#[-a-z\\\\d_]*)?$', 'i'); // fragment locator\n return !!pattern.test(str);\n}\n\nfunction containsProtocol(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/){1}.*', 'i');\n return !!pattern.test(str);\n}\n\nString.prototype.replaceAll = function(search, replacement) {\n var target = this;\n return target.split(search).join(replacement);\n};\n\nfunction udpateDisplayedItems(e) {\n localStorage.setItem('contenttype', e.target.checked);\n if (e.target.checked) {\n localStorage.setItem('content-display', 'none');\n } else {\n localStorage.setItem('content-display', 'block');\n }\n setDisplayedItems();\n}\nfunction setDisplayedItems() {\n setValueFromLocalStorage('contenttype');\n setValueFromLocalStorage('content-display');\n var checked = localStorage.getItem(\"contenttype\");\n //document.getElementById('contenttype').checked = checked;\n}"]},"metadata":{},"sourceType":"module"}
\ No newline at end of file
diff --git a/node_modules/.cache/babel-loader/9cd8f5b4d81a335ed9b5d41cd5bdc8e5.json b/node_modules/.cache/babel-loader/9cd8f5b4d81a335ed9b5d41cd5bdc8e5.json
new file mode 100644
index 00000000..bbe9c72a
--- /dev/null
+++ b/node_modules/.cache/babel-loader/9cd8f5b4d81a335ed9b5d41cd5bdc8e5.json
@@ -0,0 +1 @@
+{"ast":null,"code":"import _slicedToArray from\"/home/seanedmunds/dev/home-page/node_modules/@babel/runtime/helpers/esm/slicedToArray\";import React from'react';import{useState,useEffect}from'react';import ReactDOM from'react-dom';import'./index.css';import{jsx as _jsx}from\"react/jsx-runtime\";import{jsxs as _jsxs}from\"react/jsx-runtime\";var setValueFromLocalStorage=function setValueFromLocalStorage(property){var value=localStorage.getItem(property);setValue(property,value);};var setValue=function setValue(property,value){if(value){document.documentElement.style.setProperty(\"--\".concat(property),value);var input=document.querySelector(\"#\".concat(property));if(input){value=value.replace('px','');input.value=value;}}};function Homepage(){setTheme();return/*#__PURE__*/_jsxs(\"main\",{id:\"container\",className:\"fade\",children:[/*#__PURE__*/_jsx(\"div\",{children:/*#__PURE__*/_jsx(Search,{})}),/*#__PURE__*/_jsx(\"div\",{children:/*#__PURE__*/_jsx(Header,{date:date(),greet:greet()})}),/*#__PURE__*/_jsx(\"div\",{children:/*#__PURE__*/_jsx(Applications,{})}),/*#__PURE__*/_jsx(\"div\",{children:/*#__PURE__*/_jsx(Bookmarks,{})}),/*#__PURE__*/_jsx(\"div\",{children:/*#__PURE__*/_jsx(ModalMenu,{})}),/*#__PURE__*/_jsx(\"div\",{children:/*#__PURE__*/_jsx(ModalInit,{})})]});}function Search(){return/*#__PURE__*/_jsx(\"section\",{id:\"search\",children:/*#__PURE__*/_jsxs(\"div\",{className:\"abackground\",children:[/*#__PURE__*/_jsx(\"input\",{name:\"keywords\",type:\"text\",className:\"keyword\",id:\"keywords\",size:\"50\",spellCheck:\"true\",placeholder:\"\",autoComplete:\"off\",autoFocus:true,onKeyUp:handleKeyPress}),/*#__PURE__*/_jsx(\"label\",{id:\"searchType\",className:\"Input-label\",children:\"Google search\"})]})});}function Header(props){return/*#__PURE__*/_jsxs(\"section\",{id:\"header\",children:[/*#__PURE__*/_jsx(\"div\",{id:\"greeting_block\",children:/*#__PURE__*/_jsx(\"h1\",{id:\"header_greet\",children:props.greet})}),/*#__PURE__*/_jsxs(\"div\",{id:\"date_block\",children:[/*#__PURE__*/_jsx(\"h2\",{id:\"header_date\",children:props.date}),/*#__PURE__*/_jsx(Clock,{})]})]});}function Applications(){var appList=getApps();var items=[];for(var i=0;i10){return timeBased[greet].message;}else{var easterEggText=Math.floor(Math.random()*easterEggs.length);return easterEggs[easterEggText].message;}}function Clock(){var _useState=useState(new Date()),_useState2=_slicedToArray(_useState,2),date=_useState2[0],setDate=_useState2[1];function refreshClock(){setDate(new Date());}useEffect(function(){var timerId=setInterval(refreshClock,1000);return function cleanup(){clearInterval(timerId);};},[]);var hour=date.getHours();var minutes=date.getMinutes();//var seconds = date.getSeconds();\nvar midday=\"AM\";midday=hour>=12?\"PM\":\"AM\";hour=hour===0?12:hour>12?hour-12:hour;minutes=fixDigits(minutes);//seconds = fixDigits(seconds);\nvar time=hour+\":\"+minutes+\" \"+midday;return/*#__PURE__*/_jsx(\"h2\",{id:\"clock\",children:time});}function getApps(){var applications=require('./apps.json');return applications;}function getLinks(){var links=require('./links.json');return links;}function getProviders(){var providers=require('./providers.json');return providers;}function getThemes(){var themes=require('./themes.json');return themes;}function updateTheme(e){var themes=getThemes();var themeName=e.target.innerHTML.toLowerCase();var index=themes.themes.findIndex(function(item,i){return item.name===themeName;});localStorage.setItem(\"image-background\",themes.themes[index].imagebackground);localStorage.setItem(\"color-background\",themes.themes[index].colorbackground);localStorage.setItem(\"color-search-background\",themes.themes[index].colorserachbackground);localStorage.setItem(\"color-text-pri\",themes.themes[index].colortextpri);localStorage.setItem(\"color-text-acc\",themes.themes[index].colortextacc);localStorage.setItem(\"color-border\",themes.themes[index].colorborder);//document.documentElement.style.setProperty(prop, `var(--${themeName}${prop.substring(10)})`);\nsetTheme();}function setTheme(){setValueFromLocalStorage('image-background');setValueFromLocalStorage('color-background');setValueFromLocalStorage('color-search-background');setValueFromLocalStorage('color-text-pri');setValueFromLocalStorage('color-text-acc');setValueFromLocalStorage('color-border');setValueFromLocalStorage('content-display');}function handleKeyPress(e){var sindex=0;var cycle=false;var key=e.keyCode||e.which;var text=e.target.value.replaceAll(\"+\",\"%2B\");var option=text.substr(1,text.indexOf(' ')-1)||text.substr(1);var subtext=text.substr(2+option.length);if(key===13){// Search functions\nsearch(text);}if(key===9){// Tab Completion Functions\ne.preventDefault();e.stopPropagation();if(text[0]===';'){switch(option){case't':var streamers=['admiralbahroo','moonmoon_ow','witwix'];if(!subtext||cycle){cycle=true;if(sindex>streamers.length-1)sindex=0;document.getElementById(\"keywords\").value=';t '+streamers[sindex++];return;}for(var _i=0,_streamers=streamers;_i<_streamers.length;_i++){var streamer=_streamers[_i];if(subtext===streamer.substr(0,subtext.length)){document.getElementById(\"keywords\").value=';t '+streamer;return;}}break;default:break;}}}if(key===32){//Space to go to search\nupdateLabel(text);}sindex=0;cycle=false;updateLabel(text);}function updateLabel(text){var option=text.substr(1,text.indexOf(' ')-1)||text.substr(1);if(text[0]==='/'){// if (text.indexOf(' ') > -1) {\nswitch(option){case\"am\":document.getElementById(\"searchType\").innerHTML=\"Allmusic search\";break;case\"d\":document.getElementById(\"searchType\").innerHTML=\"Duck Duck Go search\";break;case\"di\":document.getElementById(\"searchType\").innerHTML=\"Discogs search\";break;case\"i\":document.getElementById(\"searchType\").innerHTML=\"IMDB search\";break;case\"m\":document.getElementById(\"searchType\").innerHTML=\"TheMovieDB search\";break;case\"r\":document.getElementById(\"searchType\").innerHTML=\"Reddit search\";break;case\"q\":document.getElementById(\"searchType\").innerHTML=\"Qwant search\";break;case\"so\":document.getElementById(\"searchType\").innerHTML=\"Soundcloud search\";break;case\"s\":document.getElementById(\"searchType\").innerHTML=\"Spotify search\";break;case\"tv\":document.getElementById(\"searchType\").innerHTML=\"TheTVDB search\";break;case\"t\":document.getElementById(\"searchType\").innerHTML=\"Trakt search\";break;case\"y\":document.getElementById(\"searchType\").innerHTML=\"YouTube search\";break;case\"w\":document.getElementById(\"searchType\").innerHTML=\"Wikipedia search\";break;case\"p\":document.getElementById(\"searchType\").innerHTML=\"Plex search\";break;case\"rt\":document.getElementById(\"searchType\").innerHTML=\"Rotten Tomatoes search\";break;default:document.getElementById(\"searchType\").innerHTML=\"Invalid search\";break;}}else{document.getElementById(\"searchType\").innerHTML=\"Google search\";}}function search(text){if(text[0]==='/'){if(text.indexOf(' ')>-1){var option=text.substr(1,text.indexOf(' ')-1)||text.substr(1);var subtext=text.substr(2+option.length);switch(option){case\"am\":window.location=\"https://www.allmusic.com/search/all/\"+subtext;break;case\"d\":window.location=\"https://duckduckgo.com/?q=\"+subtext;break;case\"di\":window.location=\"https://www.discogs.com/search/?q=\"+subtext;break;case\"i\":window.location=\"https://www.imdb.com/find?q=\"+subtext;break;case\"m\":window.location=\"https://www.themoviedb.org/search?query=\"+subtext;break;case\"r\":window.location=\"https://www.reddit.com/search?q=\"+subtext;break;case\"q\":window.location=\"https://www.qwant.com/?q=\"+subtext;break;case\"so\":window.location=\"https://soundcloud.com/search?q=\"+subtext;break;case\"s\":window.location=\"https://open.spotify.com/search/results/\"+subtext;break;case\"t\":window.location=\"https://trakt.tv/search?query=\"+subtext;break;case\"tv\":window.location=\"https://www.thetvdb.com/search?query=\"+subtext;break;case\"y\":window.location=\"https://www.youtube.com/results?search_query=\"+subtext;break;case\"w\":window.location=\"https://en.wikipedia.org/w/index.php?search=\"+subtext;break;case\"p\":window.location=\"https://app.plex.tv/desktop/#!/search?query=\"+subtext;break;case\"rt\":window.location=\"https://www.rottentomatoes.com/search?search=\"+subtext;break;default:break;}}else{var _option=text.substr(1);switch(_option){case\"d\":window.location=\"https://www.duckduckgo.com\";break;case\"y\":window.location=\"https://www.youtube.com\";break;case\"r\":window.location=\"https://reddit.com\";break;case\"s\":window.location=\"https://open.spotify.com\";break;default:break;}}}else if(validURL(text)){if(containsProtocol(text))window.location=text;else window.location=\"https://\"+text;}else{window.location=\"https://www.google.com/search?q=\"+text;}}function validURL(str){var pattern=new RegExp('^(https?:\\\\/\\\\/)?'+// protocol\n'((([a-z\\\\d]([a-z\\\\d-]*[a-z\\\\d])*)\\\\.)+[a-z]{2,}|'+// domain name\n'((\\\\d{1,3}\\\\.){3}\\\\d{1,3}))'+// OR ip (v4) address\n'(\\\\:\\\\d+)?(\\\\/[-a-z\\\\d%_.~+]*)*'+// port and path\n'(\\\\?[;&a-z\\\\d%_.~+=-]*)?'+// query string\n'(\\\\#[-a-z\\\\d_]*)?$','i');// fragment locator\nreturn!!pattern.test(str);}function containsProtocol(str){var pattern=new RegExp('^(https?:\\\\/\\\\/){1}.*','i');return!!pattern.test(str);}String.prototype.replaceAll=function(search,replacement){var target=this;return target.split(search).join(replacement);};function udpateDisplayedItems(e){localStorage.setItem('contenttype',e.target.checked);if(e.target.checked){localStorage.setItem('content-display','none');}else{localStorage.setItem('content-display','block');}setDisplayedItems();}function setDisplayedItems(){setValueFromLocalStorage('contenttype');setValueFromLocalStorage('content-display');}","map":{"version":3,"sources":["/home/seanedmunds/dev/home-page/src/index.js"],"names":["React","useState","useEffect","ReactDOM","setValueFromLocalStorage","property","value","localStorage","getItem","setValue","document","documentElement","style","setProperty","input","querySelector","replace","Homepage","setTheme","date","greet","Search","handleKeyPress","Header","props","Applications","appList","getApps","items","i","apps","length","safe","NSFW","NSFWEnabled","push","name","url","icon","App","classNameType","hrefUrl","iconName","Bookmarks","bookmarkList","getLinks","bookmarks","category","links","LinkGroups","LinkItem","link","ModalMenu","providers","getProviders","isChecked","console","log","updateTheme","HideButton","checked","udpateDisplayedItems","Provider","provider","prefix","ModalInit","setDisplayedItems","render","getElementById","currentDate","Date","dateOptions","weekday","year","month","day","toLocaleDateString","fixDigits","k","currentTime","Math","floor","getHours","easterEggChance","random","greetings","require","timeBased","easterEggs","messages","easteregg","concat","message","easterEggText","Clock","setDate","refreshClock","timerId","setInterval","cleanup","clearInterval","hour","minutes","getMinutes","midday","time","applications","getThemes","themes","e","themeName","target","innerHTML","toLowerCase","index","findIndex","item","setItem","imagebackground","colorbackground","colorserachbackground","colortextpri","colortextacc","colorborder","sindex","cycle","key","keyCode","which","text","replaceAll","option","substr","indexOf","subtext","search","preventDefault","stopPropagation","streamers","streamer","updateLabel","window","location","validURL","containsProtocol","str","pattern","RegExp","test","String","prototype","replacement","split","join"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { useState, useEffect } from 'react';\nimport ReactDOM from 'react-dom';\nimport './index.css';\n\nconst setValueFromLocalStorage = property => {\n let value = localStorage.getItem(property);\n setValue(property, value);\n};\nconst setValue = (property, value) => {\n if (value) {\n document.documentElement.style.setProperty(`--${property}`, value);\n\n const input = document.querySelector(`#${property}`);\n if (input) {\n value = value.replace('px', '');\n input.value = value;\n }\n }\n};\n\nfunction Homepage() {\n setTheme();\n \n return (\n \n \n \n
\n \n \n
\n \n \n \n
\n \n \n
\n \n \n
\n \n );\n}\n\nfunction Search() {\n return (\n \n )\n}\n\nfunction Header(props) {\n return (\n \n );\n}\n\nfunction Applications() {\n let appList = getApps();\n var items = [];\n for (var i = 0; i < appList.apps.length; i++) {\n var safe = appList.apps[i].NSFW;\n var NSFWEnabled = localStorage.getItem(\"contenttype\");\n if (safe === \"SAFE\") {\n items.push(\n \n );\n } else if (safe === \"NSFW\" && NSFWEnabled) {\n items.push(\n \n );\n } else {\n \n }\n \n }\n return (\n \n Applications
\n \n {items}\n
\n \n );\n}\n\nfunction App(props) {\n \n let classNameType = props.NSFW + \"-content\";\n let hrefUrl = \"https://\" + props.url;\n let iconName = \"mdi-\" + props.icon;\n return (\n \n );\n}\n\nfunction Bookmarks() {\n let bookmarkList = getLinks();\n var items = [];\n for (var i = 0; i < bookmarkList.bookmarks.length; i++) {\n items.push(\n \n );\n }\n return (\n \n Bookmarks
\n \n {items}\n
\n \n );\n}\n\nfunction LinkGroups(props) {\n var items = [];\n for (var i = 0; i < props.links.length; i++) {\n items.push(\n \n );\n }\n return (\n \n
{props.category}
\n {items}\n \n );\n}\n\nfunction LinkItem(props) {\n return (\n \n );\n}\n\nfunction ModalMenu() {\n var providers = getProviders();\n var items = [];\n var isChecked = localStorage.getItem(\"contenttype\");\n console.log(localStorage.getItem(\"contenttype\"));\n for (var i = 0; i < providers.providers.length; i++) {\n items.push(\n \n );\n }\n return (\n \n \n \n\n
Color themes
\n\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n\n\n
Search options
\n
\n \n \n \n | Website | \n Prefix | \n
\n {items}\n \n
\n \n\n \n
\n \n );\n}\n\nfunction HideButton(props) {\n console.log(props.checked);\n if(props.checked === \"true\") {\n console.log(\"icon should be grey\");\n return (\n \n
\n );\n } else {\n console.log(\"icon should be white\");\n return (\n \n
\n );\n }\n}\n\nfunction Provider(props) {\n return (\n \n | {props.provider.name} | \n {props.provider.prefix} | \n
\n );\n}\n\nfunction ModalInit() {\n setDisplayedItems();\n return (\n \n );\n}\n\nReactDOM.render(\n ,\n document.getElementById('root')\n);\n\n//Functions below this line are for calculating data for\n//other functions\n\nfunction date() {\n let currentDate = new Date();\n let dateOptions = {\n weekday: \"long\",\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\"\n };\n let date = currentDate.toLocaleDateString(\"en-GB\", dateOptions);\n return date;\n}\nfunction fixDigits(k) {\n if (k < 10) {\n return \"0\" + k;\n }\n else {\n return k;\n }\n}\nfunction greet() {\n let currentTime = new Date();\n let greet = Math.floor(currentTime.getHours() / 6);\n let easterEggChance = Math.floor(Math.random() * 100);\n let greetings = require('./messages.json');\n let timeBased = [];\n let easterEggs = [];\n for (var i = 0; i < greetings.messages.length; i++) {\n if (greetings.messages[i].easteregg === \"FALSE\") {\n timeBased = timeBased.concat(greetings.messages[i]);\n } else {\n easterEggs = easterEggs.concat(greetings.messages[i]);\n }\n }\n if (easterEggChance > 10) {\n return timeBased[greet].message;\n } else {\n let easterEggText = Math.floor(Math.random() * easterEggs.length);\n return easterEggs[easterEggText].message;\n }\n}\nfunction Clock() {\n const [date, setDate] = useState(new Date());\n\n function refreshClock() {\n setDate(new Date());\n }\n useEffect(() => {\n const timerId = setInterval(refreshClock, 1000);\n return function cleanup() {\n clearInterval(timerId);\n };\n }, []);\n\n var hour = date.getHours();\n var minutes = date.getMinutes();\n //var seconds = date.getSeconds();\n var midday = \"AM\";\n midday = (hour >= 12) ? \"PM\" : \"AM\";\n hour = (hour === 0) ? 12 : ((hour > 12) ? (hour - 12) : hour);\n minutes = fixDigits(minutes);\n //seconds = fixDigits(seconds);\n let time = hour + \":\" + minutes + \" \" + midday;\n\n return (\n {time}
\n\n );\n}\nfunction getApps() {\n let applications = require('./apps.json');\n return applications;\n}\nfunction getLinks() {\n let links = require('./links.json');\n return links;\n}\nfunction getProviders() {\n let providers = require('./providers.json');\n return providers;\n}\nfunction getThemes() {\n let themes = require('./themes.json');\n return themes;\n}\nfunction updateTheme(e) {\n var themes = getThemes();\n var themeName = e.target.innerHTML.toLowerCase();\n var index = themes.themes.findIndex(function(item, i){\n return item.name === themeName;\n });\n localStorage.setItem(\"image-background\", themes.themes[index].imagebackground);\n localStorage.setItem(\"color-background\", themes.themes[index].colorbackground);\n localStorage.setItem(\"color-search-background\", themes.themes[index].colorserachbackground);\n localStorage.setItem(\"color-text-pri\",themes.themes[index].colortextpri);\n localStorage.setItem(\"color-text-acc\", themes.themes[index].colortextacc);\n localStorage.setItem(\"color-border\", themes.themes[index].colorborder);\n \n //document.documentElement.style.setProperty(prop, `var(--${themeName}${prop.substring(10)})`);\n setTheme();\n}\nfunction setTheme() {\n setValueFromLocalStorage('image-background');\n setValueFromLocalStorage('color-background');\n setValueFromLocalStorage('color-search-background');\n setValueFromLocalStorage('color-text-pri');\n setValueFromLocalStorage('color-text-acc');\n setValueFromLocalStorage('color-border');\n setValueFromLocalStorage('content-display');\n}\nfunction handleKeyPress(e) {\n var sindex = 0;\n var cycle = false;\n var key = e.keyCode || e.which;\n var text = e.target.value.replaceAll(\"+\", \"%2B\");\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n if (key === 13) { // Search functions\n search(text);\n }\n if (key === 9) { // Tab Completion Functions\n e.preventDefault();\n e.stopPropagation();\n if (text[0] === ';') {\n switch (option) {\n case 't':\n var streamers = ['admiralbahroo', 'moonmoon_ow', 'witwix'];\n if (!subtext || cycle) {\n cycle = true;\n if (sindex > streamers.length - 1) sindex = 0;\n document.getElementById(\"keywords\").value = ';t ' + streamers[sindex++];\n return;\n }\n for (var streamer of streamers) {\n if (subtext === streamer.substr(0, subtext.length)) {\n document.getElementById(\"keywords\").value = ';t ' + streamer;\n return;\n }\n }\n break;\n default :\n break;\n }\n }\n }\n if(key === 32){ //Space to go to search\n updateLabel(text);\n }\n sindex = 0;\n cycle = false;\n updateLabel(text);\n}\nfunction updateLabel(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n if (text[0] === '/') {\n// if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n document.getElementById(\"searchType\").innerHTML = \"Allmusic search\";\n break;\n case \"d\":\n document.getElementById(\"searchType\").innerHTML = \"Duck Duck Go search\";\n break;\n case \"di\":\n document.getElementById(\"searchType\").innerHTML = \"Discogs search\";\n break;\n case \"i\":\n document.getElementById(\"searchType\").innerHTML = \"IMDB search\";\n break;\n case \"m\":\n document.getElementById(\"searchType\").innerHTML = \"TheMovieDB search\";\n break;\n case \"r\":\n document.getElementById(\"searchType\").innerHTML = \"Reddit search\";\n break;\n case \"q\":\n document.getElementById(\"searchType\").innerHTML = \"Qwant search\";\n break;\n case \"so\":\n document.getElementById(\"searchType\").innerHTML = \"Soundcloud search\";\n break;\n case \"s\":\n document.getElementById(\"searchType\").innerHTML = \"Spotify search\";\n break;\n case \"tv\":\n document.getElementById(\"searchType\").innerHTML = \"TheTVDB search\";\n break;\n case \"t\":\n document.getElementById(\"searchType\").innerHTML = \"Trakt search\";\n break;\n case \"y\":\n document.getElementById(\"searchType\").innerHTML = \"YouTube search\";\n break;\n case \"w\":\n document.getElementById(\"searchType\").innerHTML = \"Wikipedia search\";\n break;\n case \"p\":\n document.getElementById(\"searchType\").innerHTML = \"Plex search\";\n break;\n case \"rt\":\n document.getElementById(\"searchType\").innerHTML = \"Rotten Tomatoes search\";\n break;\n default:\n document.getElementById(\"searchType\").innerHTML = \"Invalid search\";\n break;\n }\n}else {\n document.getElementById(\"searchType\").innerHTML = \"Google search\";\n }\n}\nfunction search(text) {\n if (text[0] === '/') {\n if (text.indexOf(' ') > -1) {\n let option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n switch (option) {\n case \"am\":\n window.location = \"https://www.allmusic.com/search/all/\" + subtext;\n break;\n case \"d\":\n window.location = \"https://duckduckgo.com/?q=\" + subtext;\n break;\n case \"di\":\n window.location = \"https://www.discogs.com/search/?q=\" + subtext;\n break;\n case \"i\":\n window.location = \"https://www.imdb.com/find?q=\" + subtext;\n break;\n case \"m\":\n window.location = \"https://www.themoviedb.org/search?query=\" + subtext;\n break;\n case \"r\":\n window.location = \"https://www.reddit.com/search?q=\" + subtext;\n break;\n case \"q\":\n window.location = \"https://www.qwant.com/?q=\" + subtext;\n break;\n case \"so\":\n window.location = \"https://soundcloud.com/search?q=\" + subtext;\n break;\n case \"s\":\n window.location = \"https://open.spotify.com/search/results/\" + subtext;\n break;\n case \"t\":\n window.location = \"https://trakt.tv/search?query=\" + subtext;\n break;\n case \"tv\":\n window.location = \"https://www.thetvdb.com/search?query=\" + subtext;\n break;\n case \"y\":\n window.location = \"https://www.youtube.com/results?search_query=\" + subtext;\n break;\n case \"w\":\n window.location = \"https://en.wikipedia.org/w/index.php?search=\" + subtext;\n break;\n case \"p\":\n window.location = \"https://app.plex.tv/desktop/#!/search?query=\" + subtext;\n break;\n case \"rt\":\n window.location = \"https://www.rottentomatoes.com/search?search=\" + subtext;\n break;\n default :\n break;\n }\n } else {\n let option = text.substr(1);\n switch (option) {\n case \"d\":\n window.location = \"https://www.duckduckgo.com\";\n break;\n case \"y\":\n window.location = \"https://www.youtube.com\";\n break;\n case \"r\":\n window.location = \"https://reddit.com\";\n break;\n case \"s\":\n window.location = \"https://open.spotify.com\";\n break;\n default :\n break;\n }\n }\n } else if (validURL(text)) {\n if (containsProtocol(text))\n window.location = text;\n else\n window.location = \"https://\" + text;\n } else {\n window.location = \"https://www.google.com/search?q=\" + text;\n }\n}\nfunction validURL(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/)?' + // protocol\n '((([a-z\\\\d]([a-z\\\\d-]*[a-z\\\\d])*)\\\\.)+[a-z]{2,}|' + // domain name\n '((\\\\d{1,3}\\\\.){3}\\\\d{1,3}))' + // OR ip (v4) address\n '(\\\\:\\\\d+)?(\\\\/[-a-z\\\\d%_.~+]*)*' + // port and path\n '(\\\\?[;&a-z\\\\d%_.~+=-]*)?' + // query string\n '(\\\\#[-a-z\\\\d_]*)?$', 'i'); // fragment locator\n return !!pattern.test(str);\n}\nfunction containsProtocol(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/){1}.*', 'i');\n return !!pattern.test(str);\n}\nString.prototype.replaceAll = function(search, replacement) {\n var target = this;\n return target.split(search).join(replacement);\n};\nfunction udpateDisplayedItems(e) {\n localStorage.setItem('contenttype', e.target.checked);\n if (e.target.checked) {\n localStorage.setItem('content-display', 'none');\n } else {\n localStorage.setItem('content-display', 'block');\n }\n setDisplayedItems();\n}\nfunction setDisplayedItems() {\n setValueFromLocalStorage('contenttype');\n setValueFromLocalStorage('content-display');\n}"]},"metadata":{},"sourceType":"module"}
\ No newline at end of file
diff --git a/node_modules/.cache/babel-loader/9e863d7425dcb310e2cc80e45d246536.json b/node_modules/.cache/babel-loader/9e863d7425dcb310e2cc80e45d246536.json
new file mode 100644
index 00000000..f6660e2f
--- /dev/null
+++ b/node_modules/.cache/babel-loader/9e863d7425dcb310e2cc80e45d246536.json
@@ -0,0 +1 @@
+{"ast":null,"code":"var _jsxFileName = \"/home/seanedmunds/dev/home-page/src/index.js\",\n _s = $RefreshSig$();\n\nimport React from 'react';\nimport { useState, useEffect } from 'react';\nimport ReactDOM from 'react-dom'; //import { unstable_createPortal } from 'react-dom';\n\nimport './index.css';\nimport { jsxDEV as _jsxDEV } from \"react/jsx-dev-runtime\";\n\nfunction Homepage() {\n return /*#__PURE__*/_jsxDEV(\"main\", {\n id: \"container\",\n className: \"fade\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Search, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 11,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 10,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Header, {\n date: date(),\n greet: greet()\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 14,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 13,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Applications, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 20,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 19,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Bookmarks, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 23,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 22,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(ModalMenu, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 26,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 25,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(ModalInit, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 29,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 28,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 9,\n columnNumber: 5\n }, this);\n}\n\n_c = Homepage;\n\nfunction Search() {\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"search\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"abackground\",\n children: [/*#__PURE__*/_jsxDEV(\"input\", {\n name: \"keywords\",\n type: \"text\",\n className: \"keyword\",\n id: \"keywords\",\n size: \"50\",\n spellCheck: \"true\",\n placeholder: \"\"\n /*onFocus={this.placeholder = \"\"} onBlur={this.placeholder = ''}*/\n ,\n autoComplete: \"off\",\n autoFocus: true,\n onKeyUp: handleKeyPress\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 39,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n id: \"searchType\",\n className: \"Input-label\",\n children: \"Google search\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 40,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 38,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 37,\n columnNumber: 5\n }, this);\n}\n\n_c2 = Search;\n\nfunction Header(props) {\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"header\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n id: \"greeting_block\",\n children: /*#__PURE__*/_jsxDEV(\"h1\", {\n id: \"header_greet\",\n children: props.greet\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 50,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 49,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"date_block\",\n children: [/*#__PURE__*/_jsxDEV(\"h2\", {\n id: \"header_date\",\n children: props.date\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 53,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(Clock, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 54,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 52,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 48,\n columnNumber: 5\n }, this);\n}\n\n_c3 = Header;\n\nfunction Applications() {\n let appList = getApps();\n var items = [];\n\n for (var i = 0; i < appList.apps.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(App, {\n name: appList.apps[i].name,\n url: appList.apps[i].url,\n icon: appList.apps[i].icon,\n NSFW: appList.apps[i].NSFW\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 65,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"apps\",\n children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n children: \"Applications\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 76,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"apps_loop\",\n children: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 77,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 75,\n columnNumber: 5\n }, this);\n}\n\n_c4 = Applications;\n\nfunction App(props) {\n let classNameType = props.NSFW + \"-content\";\n let hrefUrl = \"https://\" + props.url;\n let iconName = \"mdi-\" + props.icon;\n return /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: hrefUrl,\n className: classNameType,\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_item\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_icon\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify icon\",\n \"data-icon\": iconName\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 93,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 92,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_text\",\n children: [/*#__PURE__*/_jsxDEV(\"span\", {\n id: \"app-name\",\n children: props.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 96,\n columnNumber: 13\n }, this), /*#__PURE__*/_jsxDEV(\"span\", {\n id: \"app-address\",\n children: props.url\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 97,\n columnNumber: 13\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 95,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 91,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 90,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 89,\n columnNumber: 5\n }, this);\n}\n\n_c5 = App;\n\nfunction Bookmarks() {\n let bookmarkList = getLinks();\n var items = [];\n\n for (var i = 0; i < bookmarkList.bookmarks.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(LinkGroups, {\n category: bookmarkList.bookmarks[i].category,\n links: bookmarkList.bookmarks[i].links\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 110,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"links\",\n children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n children: \"Bookmarks\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 119,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"links_loop\",\n children: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 120,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 118,\n columnNumber: 5\n }, this);\n}\n\n_c6 = Bookmarks;\n\nfunction LinkGroups(props) {\n var items = [];\n\n for (var i = 0; i < props.links.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(LinkItem, {\n link: props.links[i]\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 131,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"links_item\",\n children: [/*#__PURE__*/_jsxDEV(\"h4\", {\n children: props.category\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 139,\n columnNumber: 7\n }, this), items]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 138,\n columnNumber: 5\n }, this);\n}\n\n_c7 = LinkGroups;\n\nfunction LinkItem(props) {\n return /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: props.link.url,\n className: \"theme_color-border theme_text-select\",\n children: props.link.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 148,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 147,\n columnNumber: 5\n }, this);\n}\n\n_c8 = LinkItem;\n\nfunction ModalMenu() {\n var providers = getProviders();\n var items = [];\n\n for (var i = 0; i < providers.providers.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(Provider, {\n provider: providers.providers[i]\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 158,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"modal\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n children: [/*#__PURE__*/_jsxDEV(\"header\", {\n id: \"modal-header\",\n children: [/*#__PURE__*/_jsxDEV(\"h1\", {\n children: \"Options\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 168,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n href: \"#\",\n title: \"Close\",\n className: \"modal-close\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-close\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 170,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 169,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 167,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"h2\", {\n children: \"Color themes\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 174,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"modal-theme\",\n children: [/*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"blackboard\",\n className: \"theme-button theme-blackboard\",\n onClick: updateTheme,\n children: \"Blackboard\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 177,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"gazette\",\n className: \"theme-button theme-gazette\",\n children: \"Gazette\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 178,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"espresso\",\n className: \"theme-button theme-espresso\",\n children: \"Espresso\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 179,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cab\",\n className: \"theme-button theme-cab\",\n children: \"Cab\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 180,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cloud\",\n className: \"theme-button theme-cloud\",\n children: \"Cloud\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 181,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"lime\",\n className: \"theme-button theme-lime\",\n children: \"Lime\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 182,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"passion\",\n className: \"theme-button theme-passion\",\n children: \"Passion\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 183,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"blues\",\n className: \"theme-button theme-blues\",\n children: \"Blues\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 184,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"chalk\",\n className: \"theme-button theme-chalk\",\n children: \"Chalk\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 185,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"tron\",\n className: \"theme-button theme-tron\",\n children: \"Tron\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 186,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"paper\",\n className: \"theme-button theme-paper\",\n children: \"Paper\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 187,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cyberpunk\",\n className: \"theme-button theme-cyberpunk\",\n children: \"Cyberpunk\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 188,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"quadra\",\n className: \"theme-button theme-panam\",\n children: \"Quadra\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 189,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"panam\",\n className: \"theme-button theme-panam\",\n children: \"Panam\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 190,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"touch\",\n className: \"theme-button theme-touch\",\n children: \"Touch\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 191,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"peek\",\n className: \"theme-button theme-peek\",\n children: \"Peek\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 192,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 176,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"h2\", {\n children: \"Search options\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 196,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"providers\",\n children: /*#__PURE__*/_jsxDEV(\"table\", {\n children: /*#__PURE__*/_jsxDEV(\"tbody\", {\n children: [/*#__PURE__*/_jsxDEV(\"tr\", {\n children: [/*#__PURE__*/_jsxDEV(\"th\", {\n children: \"Website\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 201,\n columnNumber: 19\n }, this), /*#__PURE__*/_jsxDEV(\"th\", {\n children: \"Prefix\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 202,\n columnNumber: 19\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 200,\n columnNumber: 17\n }, this), items]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 199,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 198,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 197,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"header\", {\n id: \"modal-footer\",\n children: [/*#__PURE__*/_jsxDEV(\"a\", {\n href: \"https://github.com/jeroenpardon/\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-github-box\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 210,\n columnNumber: 54\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 210,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n href: \"https://materialdesignicons.com/\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-material-design\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 211,\n columnNumber: 54\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 211,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"sneaky\",\n children: [/*#__PURE__*/_jsxDEV(\"input\", {\n type: \"checkbox\",\n id: \"contenttype\",\n onChange: \"nsfw(this)\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 212,\n columnNumber: 35\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n for: \"contenttype\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-domino-mask\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 213,\n columnNumber: 36\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 213,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 212,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 209,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 166,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 165,\n columnNumber: 5\n }, this);\n}\n\n_c9 = ModalMenu;\n\nfunction Provider(props) {\n return /*#__PURE__*/_jsxDEV(\"tr\", {\n children: [/*#__PURE__*/_jsxDEV(\"td\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: props.provider.url,\n children: props.provider.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 223,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 223,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"td\", {\n children: props.provider.prefix\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 224,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 222,\n columnNumber: 5\n }, this);\n}\n\n_c10 = Provider;\n\nfunction ModalInit() {\n return /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"modal_init\",\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n className: \"btn\",\n href: \"#modal\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify icon\",\n \"data-icon\": \"mdi-xbox-controller-menu\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 233,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 232,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 231,\n columnNumber: 5\n }, this);\n}\n\n_c11 = ModalInit;\nReactDOM.render( /*#__PURE__*/_jsxDEV(Homepage, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 240,\n columnNumber: 3\n}, this), document.getElementById('root')); //Functions below this line are for calculating data for\n//other functions\n\nfunction date() {\n let currentDate = new Date();\n let dateOptions = {\n weekday: \"long\",\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\"\n };\n let date = currentDate.toLocaleDateString(\"en-GB\", dateOptions);\n return date;\n}\n\nfunction fixDigits(k) {\n if (k < 10) {\n return \"0\" + k;\n } else {\n return k;\n }\n}\n\nfunction greet() {\n let currentTime = new Date();\n let greet = Math.floor(currentTime.getHours() / 6);\n let easterEggChance = Math.floor(Math.random() * 100);\n\n let greetings = require('./messages.json');\n\n let timeBased = [];\n let easterEggs = [];\n\n for (var i = 0; i < greetings.messages.length; i++) {\n if (greetings.messages[i].easteregg === \"FALSE\") {\n timeBased = timeBased.concat(greetings.messages[i]);\n } else {\n easterEggs = easterEggs.concat(greetings.messages[i]);\n }\n }\n\n if (easterEggChance > 10) {\n return timeBased[greet].message;\n } else {\n let easterEggText = Math.floor(Math.random() * easterEggs.length);\n return easterEggs[easterEggText].message;\n }\n}\n\nfunction Clock() {\n _s();\n\n const [date, setDate] = useState(new Date());\n\n function refreshClock() {\n setDate(new Date());\n }\n\n useEffect(() => {\n const timerId = setInterval(refreshClock, 1000);\n return function cleanup() {\n clearInterval(timerId);\n };\n }, []);\n var hour = date.getHours();\n var minutes = date.getMinutes(); //var seconds = date.getSeconds();\n\n var midday = \"AM\";\n midday = hour >= 12 ? \"PM\" : \"AM\";\n hour = hour === 0 ? 12 : hour > 12 ? hour - 12 : hour;\n minutes = fixDigits(minutes); //seconds = fixDigits(seconds);\n\n let time = hour + \":\" + minutes + \" \" + midday;\n return /*#__PURE__*/_jsxDEV(\"h2\", {\n id: \"clock\",\n children: time\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 311,\n columnNumber: 5\n }, this);\n}\n\n_s(Clock, \"Gqi45WOZhU2c0BLYX0HoJeiR0fk=\");\n\n_c12 = Clock;\n\nfunction getApps() {\n let applications = require('./apps.json');\n\n return applications;\n}\n\nfunction getLinks() {\n let links = require('./links.json');\n\n return links;\n}\n\nfunction getProviders() {\n let providers = require('./providers.json');\n\n return providers;\n}\n\nfunction getThemes() {\n let themes = require('./themes.json');\n\n return themes;\n}\n\nfunction updateTheme(e) {\n var themes = getThemes();\n var themeName = e.target.innerHTML.toLowerCase();\n console.log(themes.name);\n}\n\nfunction handleKeyPress(e) {\n var sindex = 0;\n var cycle = false;\n var key = e.keyCode || e.which;\n var text = e.target.value.replaceAll(\"+\", \"%2B\");\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n\n if (key == 13) {\n // Search functions\n search(text);\n }\n\n if (key == 9) {\n // Tab Completion Functions\n e.preventDefault();\n e.stopPropagation();\n\n if (text[0] === ';') {\n switch (option) {\n case 't':\n var streamers = ['admiralbahroo', 'moonmoon_ow', 'witwix'];\n\n if (!subtext || cycle) {\n cycle = true;\n if (sindex > streamers.length - 1) sindex = 0;\n document.getElementById(\"keywords\").value = ';t ' + streamers[sindex++];\n return;\n }\n\n for (var streamer of streamers) {\n if (subtext === streamer.substr(0, subtext.length)) {\n document.getElementById(\"keywords\").value = ';t ' + streamer;\n return;\n }\n }\n\n break;\n }\n }\n }\n\n if (key == 32) {\n //Space to go to search\n updateLabel(text);\n }\n\n sindex = 0;\n cycle = false;\n updateLabel(text);\n}\n\nfunction updateLabel(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n\n if (text[0] === '/') {\n // if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n document.getElementById(\"searchType\").innerHTML = \"Allmusic search\";\n break;\n\n case \"d\":\n document.getElementById(\"searchType\").innerHTML = \"Duck Duck Go search\";\n break;\n\n case \"di\":\n document.getElementById(\"searchType\").innerHTML = \"Discogs search\";\n break;\n\n case \"i\":\n document.getElementById(\"searchType\").innerHTML = \"IMDB search\";\n break;\n\n case \"m\":\n document.getElementById(\"searchType\").innerHTML = \"TheMovieDB search\";\n break;\n\n case \"r\":\n document.getElementById(\"searchType\").innerHTML = \"Reddit search\";\n break;\n\n case \"q\":\n document.getElementById(\"searchType\").innerHTML = \"Qwant search\";\n break;\n\n case \"so\":\n document.getElementById(\"searchType\").innerHTML = \"Soundcloud search\";\n break;\n\n case \"s\":\n document.getElementById(\"searchType\").innerHTML = \"Spotify search\";\n break;\n\n case \"tv\":\n document.getElementById(\"searchType\").innerHTML = \"TheTVDB search\";\n break;\n\n case \"t\":\n document.getElementById(\"searchType\").innerHTML = \"Trakt search\";\n break;\n\n case \"y\":\n document.getElementById(\"searchType\").innerHTML = \"YouTube search\";\n break;\n\n case \"w\":\n document.getElementById(\"searchType\").innerHTML = \"Wikipedia search\";\n break;\n\n case \"p\":\n document.getElementById(\"searchType\").innerHTML = \"Plex search\";\n break;\n\n case \"rt\":\n document.getElementById(\"searchType\").innerHTML = \"Rotten Tomatoes search\";\n break;\n\n default:\n document.getElementById(\"searchType\").innerHTML = \"Invalid search\";\n break;\n }\n } else {\n document.getElementById(\"searchType\").innerHTML = \"Google search\";\n }\n}\n\nfunction search(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n\n if (text[0] === '/') {\n if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n window.location = \"https://www.allmusic.com/search/all/\" + subtext;\n break;\n\n case \"d\":\n window.location = \"https://duckduckgo.com/?q=\" + subtext;\n break;\n\n case \"di\":\n window.location = \"https://www.discogs.com/search/?q=\" + subtext;\n break;\n\n case \"i\":\n window.location = \"https://www.imdb.com/find?q=\" + subtext;\n break;\n\n case \"m\":\n window.location = \"https://www.themoviedb.org/search?query=\" + subtext;\n break;\n\n case \"r\":\n window.location = \"https://www.reddit.com/search?q=\" + subtext;\n break;\n\n case \"q\":\n window.location = \"https://www.qwant.com/?q=\" + subtext;\n break;\n\n case \"so\":\n window.location = \"https://soundcloud.com/search?q=\" + subtext;\n break;\n\n case \"s\":\n window.location = \"https://open.spotify.com/search/results/\" + subtext;\n break;\n\n case \"t\":\n window.location = \"https://trakt.tv/search?query=\" + subtext;\n break;\n\n case \"tv\":\n window.location = \"https://www.thetvdb.com/search?query=\" + subtext;\n break;\n\n case \"y\":\n window.location = \"https://www.youtube.com/results?search_query=\" + subtext;\n break;\n\n case \"w\":\n window.location = \"https://en.wikipedia.org/w/index.php?search=\" + subtext;\n break;\n\n case \"p\":\n window.location = \"https://app.plex.tv/desktop/#!/search?query=\" + subtext;\n break;\n\n case \"rt\":\n window.location = \"https://www.rottentomatoes.com/search?search=\" + subtext;\n break;\n }\n } else {\n var option = text.substr(1);\n\n switch (option) {\n case \"d\":\n window.location = \"https://www.duckduckgo.com\";\n break;\n\n case \"y\":\n window.location = \"https://www.youtube.com\";\n break;\n\n case \"r\":\n window.location = \"https://reddit.com\";\n break;\n\n case \"s\":\n window.location = \"https://open.spotify.com\";\n break;\n }\n }\n } else if (validURL(text)) {\n if (containsProtocol(text)) window.location = text;else window.location = \"https://\" + text;\n } else {\n window.location = \"https://www.google.com/search?q=\" + text;\n }\n} // Source: https://stackoverflow.com/questions/5717093/check-if-a-javascript-string-is-a-url\n\n\nfunction validURL(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/)?' + // protocol\n '((([a-z\\\\d]([a-z\\\\d-]*[a-z\\\\d])*)\\\\.)+[a-z]{2,}|' + // domain name\n '((\\\\d{1,3}\\\\.){3}\\\\d{1,3}))' + // OR ip (v4) address\n '(\\\\:\\\\d+)?(\\\\/[-a-z\\\\d%_.~+]*)*' + // port and path\n '(\\\\?[;&a-z\\\\d%_.~+=-]*)?' + // query string\n '(\\\\#[-a-z\\\\d_]*)?$', 'i'); // fragment locator\n\n return !!pattern.test(str);\n}\n\nfunction containsProtocol(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/){1}.*', 'i');\n return !!pattern.test(str);\n}\n\nString.prototype.replaceAll = function (search, replacement) {\n var target = this;\n return target.split(search).join(replacement);\n};\n\nvar _c, _c2, _c3, _c4, _c5, _c6, _c7, _c8, _c9, _c10, _c11, _c12;\n\n$RefreshReg$(_c, \"Homepage\");\n$RefreshReg$(_c2, \"Search\");\n$RefreshReg$(_c3, \"Header\");\n$RefreshReg$(_c4, \"Applications\");\n$RefreshReg$(_c5, \"App\");\n$RefreshReg$(_c6, \"Bookmarks\");\n$RefreshReg$(_c7, \"LinkGroups\");\n$RefreshReg$(_c8, \"LinkItem\");\n$RefreshReg$(_c9, \"ModalMenu\");\n$RefreshReg$(_c10, \"Provider\");\n$RefreshReg$(_c11, \"ModalInit\");\n$RefreshReg$(_c12, \"Clock\");","map":{"version":3,"sources":["/home/seanedmunds/dev/home-page/src/index.js"],"names":["React","useState","useEffect","ReactDOM","Homepage","date","greet","Search","handleKeyPress","Header","props","Applications","appList","getApps","items","i","apps","length","push","name","url","icon","NSFW","App","classNameType","hrefUrl","iconName","Bookmarks","bookmarkList","getLinks","bookmarks","category","links","LinkGroups","LinkItem","link","ModalMenu","providers","getProviders","updateTheme","Provider","provider","prefix","ModalInit","render","document","getElementById","currentDate","Date","dateOptions","weekday","year","month","day","toLocaleDateString","fixDigits","k","currentTime","Math","floor","getHours","easterEggChance","random","greetings","require","timeBased","easterEggs","messages","easteregg","concat","message","easterEggText","Clock","setDate","refreshClock","timerId","setInterval","cleanup","clearInterval","hour","minutes","getMinutes","midday","time","applications","getThemes","themes","e","themeName","target","innerHTML","toLowerCase","console","log","sindex","cycle","key","keyCode","which","text","value","replaceAll","option","substr","indexOf","subtext","search","preventDefault","stopPropagation","streamers","streamer","updateLabel","window","location","validURL","containsProtocol","str","pattern","RegExp","test","String","prototype","replacement","split","join"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { useState, useEffect } from 'react';\nimport ReactDOM from 'react-dom';\n//import { unstable_createPortal } from 'react-dom';\nimport './index.css';\n\nfunction Homepage() {\n return (\n \n \n \n
\n \n \n
\n \n \n \n
\n \n \n
\n \n \n
\n \n );\n}\n\nfunction Search() {\n return (\n \n )\n}\n\nfunction Header(props) {\n return (\n \n );\n}\n\nfunction Applications() {\n let appList = getApps();\n var items = [];\n for (var i = 0; i < appList.apps.length; i++) {\n items.push(\n \n );\n }\n return (\n \n Applications
\n \n {items}\n
\n \n );\n}\n\nfunction App(props) {\n let classNameType = props.NSFW + \"-content\";\n let hrefUrl = \"https://\" + props.url;\n let iconName = \"mdi-\" + props.icon;\n return (\n \n );\n}\n\nfunction Bookmarks() {\n let bookmarkList = getLinks();\n var items = [];\n for (var i = 0; i < bookmarkList.bookmarks.length; i++) {\n items.push(\n \n );\n }\n return (\n \n Bookmarks
\n \n {items}\n
\n \n );\n}\n\nfunction LinkGroups(props) {\n var items = [];\n for (var i = 0; i < props.links.length; i++) {\n items.push(\n \n );\n }\n return (\n \n
{props.category}
\n {items}\n \n );\n}\n\nfunction LinkItem(props) {\n return (\n \n );\n}\n\nfunction ModalMenu() {\n var providers = getProviders();\n var items = [];\n for (var i = 0; i < providers.providers.length; i++) {\n items.push(\n \n );\n }\n return (\n \n \n \n\n
Color themes
\n\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n\n\n
Search options
\n
\n \n \n \n | Website | \n Prefix | \n
\n {items}\n \n
\n \n\n \n
\n \n );\n}\n\nfunction Provider(props) {\n return (\n \n | {props.provider.name} | \n {props.provider.prefix} | \n
\n );\n}\n\nfunction ModalInit() {\n return (\n \n );\n}\n\nReactDOM.render(\n ,\n document.getElementById('root')\n);\n\n//Functions below this line are for calculating data for\n//other functions\n\nfunction date() {\n let currentDate = new Date();\n let dateOptions = {\n weekday: \"long\",\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\"\n };\n let date = currentDate.toLocaleDateString(\"en-GB\", dateOptions);\n return date;\n}\nfunction fixDigits(k) {\n if (k < 10) {\n return \"0\" + k;\n }\n else {\n return k;\n }\n}\nfunction greet() {\n let currentTime = new Date();\n let greet = Math.floor(currentTime.getHours() / 6);\n let easterEggChance = Math.floor(Math.random() * 100);\n let greetings = require('./messages.json');\n let timeBased = [];\n let easterEggs = [];\n for (var i = 0; i < greetings.messages.length; i++) {\n if (greetings.messages[i].easteregg === \"FALSE\") {\n timeBased = timeBased.concat(greetings.messages[i]);\n } else {\n easterEggs = easterEggs.concat(greetings.messages[i]);\n }\n }\n if (easterEggChance > 10) {\n return timeBased[greet].message;\n } else {\n let easterEggText = Math.floor(Math.random() * easterEggs.length);\n return easterEggs[easterEggText].message;\n }\n}\nfunction Clock() {\n const [date, setDate] = useState(new Date());\n\n function refreshClock() {\n setDate(new Date());\n }\n useEffect(() => {\n const timerId = setInterval(refreshClock, 1000);\n return function cleanup() {\n clearInterval(timerId);\n };\n }, []);\n\n var hour = date.getHours();\n var minutes = date.getMinutes();\n //var seconds = date.getSeconds();\n var midday = \"AM\";\n midday = (hour >= 12) ? \"PM\" : \"AM\";\n hour = (hour === 0) ? 12 : ((hour > 12) ? (hour - 12) : hour);\n minutes = fixDigits(minutes);\n //seconds = fixDigits(seconds);\n let time = hour + \":\" + minutes + \" \" + midday;\n\n return (\n {time}
\n\n );\n}\nfunction getApps() {\n let applications = require('./apps.json');\n return applications;\n}\nfunction getLinks() {\n let links = require('./links.json');\n return links;\n}\nfunction getProviders() {\n let providers = require('./providers.json');\n return providers;\n}\nfunction getThemes() {\n let themes = require('./themes.json');\n return themes;\n}\n\nfunction updateTheme(e) {\n var themes = getThemes();\n var themeName = e.target.innerHTML.toLowerCase();\n console.log(themes.name);\n}\n\nfunction handleKeyPress(e) {\n var sindex = 0;\n var cycle = false;\n var key = e.keyCode || e.which;\n var text = e.target.value.replaceAll(\"+\", \"%2B\");\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n if (key == 13) { // Search functions\n search(text);\n }\n if (key == 9) { // Tab Completion Functions\n e.preventDefault();\n e.stopPropagation();\n if (text[0] === ';') {\n switch (option) {\n case 't':\n var streamers = ['admiralbahroo', 'moonmoon_ow', 'witwix'];\n if (!subtext || cycle) {\n cycle = true;\n if (sindex > streamers.length - 1) sindex = 0;\n document.getElementById(\"keywords\").value = ';t ' + streamers[sindex++];\n return;\n }\n for (var streamer of streamers) {\n if (subtext === streamer.substr(0, subtext.length)) {\n document.getElementById(\"keywords\").value = ';t ' + streamer;\n return;\n }\n }\n break;\n }\n }\n }\n if(key == 32){ //Space to go to search\nupdateLabel(text);\n }\n sindex = 0;\n cycle = false;\n updateLabel(text);\n}\n\nfunction updateLabel(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n if (text[0] === '/') {\n// if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n document.getElementById(\"searchType\").innerHTML = \"Allmusic search\";\n break;\n case \"d\":\n document.getElementById(\"searchType\").innerHTML = \"Duck Duck Go search\";\n break;\n case \"di\":\n document.getElementById(\"searchType\").innerHTML = \"Discogs search\";\n break;\n case \"i\":\n document.getElementById(\"searchType\").innerHTML = \"IMDB search\";\n break;\n case \"m\":\n document.getElementById(\"searchType\").innerHTML = \"TheMovieDB search\";\n break;\n case \"r\":\n document.getElementById(\"searchType\").innerHTML = \"Reddit search\";\n break;\n case \"q\":\n document.getElementById(\"searchType\").innerHTML = \"Qwant search\";\n break;\n case \"so\":\n document.getElementById(\"searchType\").innerHTML = \"Soundcloud search\";\n break;\n case \"s\":\n document.getElementById(\"searchType\").innerHTML = \"Spotify search\";\n break;\n case \"tv\":\n document.getElementById(\"searchType\").innerHTML = \"TheTVDB search\";\n break;\n case \"t\":\n document.getElementById(\"searchType\").innerHTML = \"Trakt search\";\n break;\n case \"y\":\n document.getElementById(\"searchType\").innerHTML = \"YouTube search\";\n break;\n case \"w\":\n document.getElementById(\"searchType\").innerHTML = \"Wikipedia search\";\n break;\n case \"p\":\n document.getElementById(\"searchType\").innerHTML = \"Plex search\";\n break;\n case \"rt\":\n document.getElementById(\"searchType\").innerHTML = \"Rotten Tomatoes search\";\n break;\n default:\n document.getElementById(\"searchType\").innerHTML = \"Invalid search\";\n break;\n }\n}else {\n document.getElementById(\"searchType\").innerHTML = \"Google search\";\n }\n}\n\nfunction search(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n if (text[0] === '/') {\n if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n window.location = \"https://www.allmusic.com/search/all/\" + subtext;\n break;\n case \"d\":\n window.location = \"https://duckduckgo.com/?q=\" + subtext;\n break;\n case \"di\":\n window.location = \"https://www.discogs.com/search/?q=\" + subtext;\n break;\n case \"i\":\n window.location = \"https://www.imdb.com/find?q=\" + subtext;\n break;\n case \"m\":\n window.location = \"https://www.themoviedb.org/search?query=\" + subtext;\n break;\n case \"r\":\n window.location = \"https://www.reddit.com/search?q=\" + subtext;\n break;\n case \"q\":\n window.location = \"https://www.qwant.com/?q=\" + subtext;\n break;\n case \"so\":\n window.location = \"https://soundcloud.com/search?q=\" + subtext;\n break;\n case \"s\":\n window.location = \"https://open.spotify.com/search/results/\" + subtext;\n break;\n case \"t\":\n window.location = \"https://trakt.tv/search?query=\" + subtext;\n break;\n case \"tv\":\n window.location = \"https://www.thetvdb.com/search?query=\" + subtext;\n break;\n case \"y\":\n window.location = \"https://www.youtube.com/results?search_query=\" + subtext;\n break;\n case \"w\":\n window.location = \"https://en.wikipedia.org/w/index.php?search=\" + subtext;\n break;\n case \"p\":\n window.location = \"https://app.plex.tv/desktop/#!/search?query=\" + subtext;\n break;\n case \"rt\":\n window.location = \"https://www.rottentomatoes.com/search?search=\" + subtext;\n break;\n }\n } else {\n var option = text.substr(1);\n switch (option) {\n case \"d\":\n window.location = \"https://www.duckduckgo.com\";\n break;\n case \"y\":\n window.location = \"https://www.youtube.com\";\n break;\n case \"r\":\n window.location = \"https://reddit.com\";\n break;\n case \"s\":\n window.location = \"https://open.spotify.com\";\n break;\n }\n }\n } else if (validURL(text)) {\n if (containsProtocol(text))\n window.location = text;\n else\n window.location = \"https://\" + text;\n } else {\n window.location = \"https://www.google.com/search?q=\" + text;\n }\n}\n\n// Source: https://stackoverflow.com/questions/5717093/check-if-a-javascript-string-is-a-url\nfunction validURL(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/)?' + // protocol\n '((([a-z\\\\d]([a-z\\\\d-]*[a-z\\\\d])*)\\\\.)+[a-z]{2,}|' + // domain name\n '((\\\\d{1,3}\\\\.){3}\\\\d{1,3}))' + // OR ip (v4) address\n '(\\\\:\\\\d+)?(\\\\/[-a-z\\\\d%_.~+]*)*' + // port and path\n '(\\\\?[;&a-z\\\\d%_.~+=-]*)?' + // query string\n '(\\\\#[-a-z\\\\d_]*)?$', 'i'); // fragment locator\n return !!pattern.test(str);\n}\n\nfunction containsProtocol(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/){1}.*', 'i');\n return !!pattern.test(str);\n}\n\nString.prototype.replaceAll = function(search, replacement) {\n var target = this;\n return target.split(search).join(replacement);\n};"]},"metadata":{},"sourceType":"module"}
\ No newline at end of file
diff --git a/node_modules/.cache/babel-loader/a22015f93d49abd727691d0e68c047cc.json b/node_modules/.cache/babel-loader/a22015f93d49abd727691d0e68c047cc.json
new file mode 100644
index 00000000..24d8776b
--- /dev/null
+++ b/node_modules/.cache/babel-loader/a22015f93d49abd727691d0e68c047cc.json
@@ -0,0 +1 @@
+{"ast":null,"code":"var _jsxFileName = \"/home/seanedmunds/dev/home-page/src/index.js\",\n _s = $RefreshSig$();\n\nimport React from 'react';\nimport { useState, useEffect } from 'react';\nimport ReactDOM from 'react-dom';\nimport './index.css';\nimport { jsxDEV as _jsxDEV } from \"react/jsx-dev-runtime\";\n\nconst setValueFromLocalStorage = property => {\n let value = localStorage.getItem(property);\n setValue(property, value);\n};\n\nconst setValue = (property, value) => {\n if (value) {\n document.documentElement.style.setProperty(`--${property}`, value);\n const input = document.querySelector(`#${property}`);\n\n if (input) {\n value = value.replace('px', '');\n input.value = value;\n }\n }\n};\n\nfunction Homepage() {\n setTheme();\n return /*#__PURE__*/_jsxDEV(\"main\", {\n id: \"container\",\n className: \"fade\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Search, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 28,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 27,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Header, {\n date: date(),\n greet: greet()\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 31,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 30,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Applications, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 37,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 36,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Bookmarks, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 40,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 39,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(ModalMenu, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 43,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 42,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(ModalInit, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 46,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 45,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 26,\n columnNumber: 5\n }, this);\n}\n\n_c = Homepage;\n\nfunction Search() {\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"search\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"abackground\",\n children: [/*#__PURE__*/_jsxDEV(\"input\", {\n name: \"keywords\",\n type: \"text\",\n className: \"keyword\",\n id: \"keywords\",\n size: \"50\",\n spellCheck: \"true\",\n placeholder: \"\"\n /*onFocus={this.placeholder = \"\"} onBlur={this.placeholder = ''}*/\n ,\n autoComplete: \"off\",\n autoFocus: true,\n onKeyUp: handleKeyPress\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 56,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n id: \"searchType\",\n className: \"Input-label\",\n children: \"Google search\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 57,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 55,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 54,\n columnNumber: 5\n }, this);\n}\n\n_c2 = Search;\n\nfunction Header(props) {\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"header\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n id: \"greeting_block\",\n children: /*#__PURE__*/_jsxDEV(\"h1\", {\n id: \"header_greet\",\n children: props.greet\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 67,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 66,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"date_block\",\n children: [/*#__PURE__*/_jsxDEV(\"h2\", {\n id: \"header_date\",\n children: props.date\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 70,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(Clock, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 71,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 69,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 65,\n columnNumber: 5\n }, this);\n}\n\n_c3 = Header;\n\nfunction Applications() {\n let appList = getApps();\n var items = [];\n\n for (var i = 0; i < appList.apps.length; i++) {\n var safe = appList.apps[i].NSFW;\n var NSFWEnabled = localStorage.getItem(\"contenttype\");\n\n if (safe === \"SAFE\") {\n items.push( /*#__PURE__*/_jsxDEV(App, {\n name: appList.apps[i].name,\n url: appList.apps[i].url,\n icon: appList.apps[i].icon,\n NSFW: appList.apps[i].NSFW\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 85,\n columnNumber: 9\n }, this));\n } else if (safe === \"NSFW\" && NSFWEnabled) {\n items.push( /*#__PURE__*/_jsxDEV(App, {\n name: appList.apps[i].name,\n url: appList.apps[i].url,\n icon: appList.apps[i].icon,\n NSFW: appList.apps[i].NSFW\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 95,\n columnNumber: 9\n }, this));\n } else {}\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"apps\",\n children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n children: \"Applications\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 110,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"apps_loop\",\n children: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 111,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 109,\n columnNumber: 5\n }, this);\n}\n\n_c4 = Applications;\n\nfunction App(props) {\n let classNameType = props.NSFW + \"-content\";\n let hrefUrl = \"https://\" + props.url;\n let iconName = \"mdi-\" + props.icon;\n return /*#__PURE__*/_jsxDEV(\"div\", {\n className: classNameType,\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: hrefUrl,\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_item\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_icon\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify icon\",\n \"data-icon\": iconName\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 128,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 127,\n columnNumber: 13\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_text\",\n children: [/*#__PURE__*/_jsxDEV(\"span\", {\n id: \"app-name\",\n children: props.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 131,\n columnNumber: 15\n }, this), /*#__PURE__*/_jsxDEV(\"span\", {\n id: \"app-address\",\n children: props.url\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 132,\n columnNumber: 15\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 130,\n columnNumber: 13\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 126,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 125,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 124,\n columnNumber: 7\n }, this);\n}\n\n_c5 = App;\n\nfunction Bookmarks() {\n let bookmarkList = getLinks();\n var items = [];\n\n for (var i = 0; i < bookmarkList.bookmarks.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(LinkGroups, {\n category: bookmarkList.bookmarks[i].category,\n links: bookmarkList.bookmarks[i].links\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 145,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"links\",\n children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n children: \"Bookmarks\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 154,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"links_loop\",\n children: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 155,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 153,\n columnNumber: 5\n }, this);\n}\n\n_c6 = Bookmarks;\n\nfunction LinkGroups(props) {\n var items = [];\n\n for (var i = 0; i < props.links.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(LinkItem, {\n link: props.links[i]\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 166,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"links_item\",\n children: [/*#__PURE__*/_jsxDEV(\"h4\", {\n children: props.category\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 174,\n columnNumber: 7\n }, this), items]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 173,\n columnNumber: 5\n }, this);\n}\n\n_c7 = LinkGroups;\n\nfunction LinkItem(props) {\n return /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: props.link.url,\n className: \"theme_color-border theme_text-select\",\n children: props.link.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 183,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 182,\n columnNumber: 5\n }, this);\n}\n\n_c8 = LinkItem;\n\nfunction ModalMenu() {\n var providers = getProviders();\n var items = [];\n\n for (var i = 0; i < providers.providers.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(Provider, {\n provider: providers.providers[i]\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 193,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"modal\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n children: [/*#__PURE__*/_jsxDEV(\"header\", {\n id: \"modal-header\",\n children: [/*#__PURE__*/_jsxDEV(\"h1\", {\n children: \"Options\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 203,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n href: \"#\",\n title: \"Close\",\n className: \"modal-close\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-close\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 205,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 204,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 202,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"h2\", {\n children: \"Color themes\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 209,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"modal-theme\",\n children: [/*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"blackboard\",\n className: \"theme-button theme-blackboard\",\n onClick: updateTheme,\n children: \"Blackboard\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 212,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"gazette\",\n className: \"theme-button theme-gazette\",\n onClick: updateTheme,\n children: \"Gazette\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 213,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"espresso\",\n className: \"theme-button theme-espresso\",\n onClick: updateTheme,\n children: \"Espresso\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 214,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cab\",\n className: \"theme-button theme-cab\",\n onClick: updateTheme,\n children: \"Cab\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 215,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cloud\",\n className: \"theme-button theme-cloud\",\n onClick: updateTheme,\n children: \"Cloud\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 216,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"lime\",\n className: \"theme-button theme-lime\",\n onClick: updateTheme,\n children: \"Lime\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 217,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"passion\",\n className: \"theme-button theme-passion\",\n onClick: updateTheme,\n children: \"Passion\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 218,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"blues\",\n className: \"theme-button theme-blues\",\n onClick: updateTheme,\n children: \"Blues\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 219,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"chalk\",\n className: \"theme-button theme-chalk\",\n onClick: updateTheme,\n children: \"Chalk\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 220,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"tron\",\n className: \"theme-button theme-tron\",\n onClick: updateTheme,\n children: \"Tron\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 221,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"paper\",\n className: \"theme-button theme-paper\",\n onClick: updateTheme,\n children: \"Paper\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 222,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cyberpunk\",\n className: \"theme-button theme-cyberpunk\",\n onClick: updateTheme,\n children: \"Cyberpunk\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 223,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"quadra\",\n className: \"theme-button theme-panam\",\n onClick: updateTheme,\n children: \"Quadra\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 224,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"panam\",\n className: \"theme-button theme-panam\",\n onClick: updateTheme,\n children: \"Panam\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 225,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"touch\",\n className: \"theme-button theme-touch\",\n onClick: updateTheme,\n children: \"Touch\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 226,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"peek\",\n className: \"theme-button theme-peek\",\n onClick: updateTheme,\n children: \"Peek\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 227,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 211,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"h2\", {\n children: \"Search options\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 231,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"providers\",\n children: /*#__PURE__*/_jsxDEV(\"table\", {\n children: /*#__PURE__*/_jsxDEV(\"tbody\", {\n children: [/*#__PURE__*/_jsxDEV(\"tr\", {\n children: [/*#__PURE__*/_jsxDEV(\"th\", {\n children: \"Website\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 236,\n columnNumber: 19\n }, this), /*#__PURE__*/_jsxDEV(\"th\", {\n children: \"Prefix\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 237,\n columnNumber: 19\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 235,\n columnNumber: 17\n }, this), items]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 234,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 233,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 232,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"header\", {\n id: \"modal-footer\",\n children: [/*#__PURE__*/_jsxDEV(\"a\", {\n href: \"https://github.com/jeroenpardon/\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-github-box\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 245,\n columnNumber: 54\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 245,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n href: \"https://materialdesignicons.com/\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-material-design\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 246,\n columnNumber: 54\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 246,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(HideButton, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 247,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 244,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 201,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 200,\n columnNumber: 5\n }, this);\n}\n\n_c9 = ModalMenu;\n\nfunction HideButton() {\n var isChecked = localStorage.getItem(\"contenttype\");\n console.log(isChecked);\n return /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"sneaky\",\n children: [/*#__PURE__*/_jsxDEV(\"input\", {\n type: \"checkbox\",\n id: \"contenttype\",\n checked: isChecked,\n onClick: udpateDisplayedItems\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 259,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n for: \"contenttype\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-domino-mask\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 260,\n columnNumber: 32\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 260,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 258,\n columnNumber: 5\n }, this);\n}\n\n_c10 = HideButton;\n\nfunction Provider(props) {\n return /*#__PURE__*/_jsxDEV(\"tr\", {\n children: [/*#__PURE__*/_jsxDEV(\"td\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: props.provider.url,\n children: props.provider.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 268,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 268,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"td\", {\n children: props.provider.prefix\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 269,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 267,\n columnNumber: 5\n }, this);\n}\n\n_c11 = Provider;\n\nfunction ModalInit() {\n setDisplayedItems();\n return /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"modal_init\",\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n className: \"btn\",\n href: \"#modal\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify icon\",\n \"data-icon\": \"mdi-xbox-controller-menu\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 279,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 278,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 277,\n columnNumber: 5\n }, this);\n}\n\n_c12 = ModalInit;\nReactDOM.render( /*#__PURE__*/_jsxDEV(Homepage, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 286,\n columnNumber: 3\n}, this), document.getElementById('root')); //Functions below this line are for calculating data for\n//other functions\n\nfunction date() {\n let currentDate = new Date();\n let dateOptions = {\n weekday: \"long\",\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\"\n };\n let date = currentDate.toLocaleDateString(\"en-GB\", dateOptions);\n return date;\n}\n\nfunction fixDigits(k) {\n if (k < 10) {\n return \"0\" + k;\n } else {\n return k;\n }\n}\n\nfunction greet() {\n let currentTime = new Date();\n let greet = Math.floor(currentTime.getHours() / 6);\n let easterEggChance = Math.floor(Math.random() * 100);\n\n let greetings = require('./messages.json');\n\n let timeBased = [];\n let easterEggs = [];\n\n for (var i = 0; i < greetings.messages.length; i++) {\n if (greetings.messages[i].easteregg === \"FALSE\") {\n timeBased = timeBased.concat(greetings.messages[i]);\n } else {\n easterEggs = easterEggs.concat(greetings.messages[i]);\n }\n }\n\n if (easterEggChance > 10) {\n return timeBased[greet].message;\n } else {\n let easterEggText = Math.floor(Math.random() * easterEggs.length);\n return easterEggs[easterEggText].message;\n }\n}\n\nfunction Clock() {\n _s();\n\n const [date, setDate] = useState(new Date());\n\n function refreshClock() {\n setDate(new Date());\n }\n\n useEffect(() => {\n const timerId = setInterval(refreshClock, 1000);\n return function cleanup() {\n clearInterval(timerId);\n };\n }, []);\n var hour = date.getHours();\n var minutes = date.getMinutes(); //var seconds = date.getSeconds();\n\n var midday = \"AM\";\n midday = hour >= 12 ? \"PM\" : \"AM\";\n hour = hour === 0 ? 12 : hour > 12 ? hour - 12 : hour;\n minutes = fixDigits(minutes); //seconds = fixDigits(seconds);\n\n let time = hour + \":\" + minutes + \" \" + midday;\n return /*#__PURE__*/_jsxDEV(\"h2\", {\n id: \"clock\",\n children: time\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 357,\n columnNumber: 5\n }, this);\n}\n\n_s(Clock, \"Gqi45WOZhU2c0BLYX0HoJeiR0fk=\");\n\n_c13 = Clock;\n\nfunction getApps() {\n let applications = require('./apps.json');\n\n return applications;\n}\n\nfunction getLinks() {\n let links = require('./links.json');\n\n return links;\n}\n\nfunction getProviders() {\n let providers = require('./providers.json');\n\n return providers;\n}\n\nfunction getThemes() {\n let themes = require('./themes.json');\n\n return themes;\n}\n\nfunction updateTheme(e) {\n var themes = getThemes();\n var themeName = e.target.innerHTML.toLowerCase();\n var index = themes.themes.findIndex(function (item, i) {\n return item.name === themeName;\n });\n localStorage.setItem(\"image-background\", themes.themes[index].imagebackground);\n localStorage.setItem(\"color-background\", themes.themes[index].colorbackground);\n localStorage.setItem(\"color-search-background\", themes.themes[index].colorserachbackground);\n localStorage.setItem(\"color-text-pri\", themes.themes[index].colortextpri);\n localStorage.setItem(\"color-text-acc\", themes.themes[index].colortextacc);\n localStorage.setItem(\"color-border\", themes.themes[index].colorborder); //document.documentElement.style.setProperty(prop, `var(--${themeName}${prop.substring(10)})`);\n\n setTheme();\n}\n\nfunction setTheme() {\n setValueFromLocalStorage('image-background');\n setValueFromLocalStorage('color-background');\n setValueFromLocalStorage('color-search-background');\n setValueFromLocalStorage('color-text-pri');\n setValueFromLocalStorage('color-text-acc');\n setValueFromLocalStorage('color-border');\n setValueFromLocalStorage('content-display');\n}\n\nfunction handleKeyPress(e) {\n var sindex = 0;\n var cycle = false;\n var key = e.keyCode || e.which;\n var text = e.target.value.replaceAll(\"+\", \"%2B\");\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n\n if (key == 13) {\n // Search functions\n search(text);\n }\n\n if (key == 9) {\n // Tab Completion Functions\n e.preventDefault();\n e.stopPropagation();\n\n if (text[0] === ';') {\n switch (option) {\n case 't':\n var streamers = ['admiralbahroo', 'moonmoon_ow', 'witwix'];\n\n if (!subtext || cycle) {\n cycle = true;\n if (sindex > streamers.length - 1) sindex = 0;\n document.getElementById(\"keywords\").value = ';t ' + streamers[sindex++];\n return;\n }\n\n for (var streamer of streamers) {\n if (subtext === streamer.substr(0, subtext.length)) {\n document.getElementById(\"keywords\").value = ';t ' + streamer;\n return;\n }\n }\n\n break;\n }\n }\n }\n\n if (key == 32) {\n //Space to go to search\n updateLabel(text);\n }\n\n sindex = 0;\n cycle = false;\n updateLabel(text);\n}\n\nfunction updateLabel(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n\n if (text[0] === '/') {\n // if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n document.getElementById(\"searchType\").innerHTML = \"Allmusic search\";\n break;\n\n case \"d\":\n document.getElementById(\"searchType\").innerHTML = \"Duck Duck Go search\";\n break;\n\n case \"di\":\n document.getElementById(\"searchType\").innerHTML = \"Discogs search\";\n break;\n\n case \"i\":\n document.getElementById(\"searchType\").innerHTML = \"IMDB search\";\n break;\n\n case \"m\":\n document.getElementById(\"searchType\").innerHTML = \"TheMovieDB search\";\n break;\n\n case \"r\":\n document.getElementById(\"searchType\").innerHTML = \"Reddit search\";\n break;\n\n case \"q\":\n document.getElementById(\"searchType\").innerHTML = \"Qwant search\";\n break;\n\n case \"so\":\n document.getElementById(\"searchType\").innerHTML = \"Soundcloud search\";\n break;\n\n case \"s\":\n document.getElementById(\"searchType\").innerHTML = \"Spotify search\";\n break;\n\n case \"tv\":\n document.getElementById(\"searchType\").innerHTML = \"TheTVDB search\";\n break;\n\n case \"t\":\n document.getElementById(\"searchType\").innerHTML = \"Trakt search\";\n break;\n\n case \"y\":\n document.getElementById(\"searchType\").innerHTML = \"YouTube search\";\n break;\n\n case \"w\":\n document.getElementById(\"searchType\").innerHTML = \"Wikipedia search\";\n break;\n\n case \"p\":\n document.getElementById(\"searchType\").innerHTML = \"Plex search\";\n break;\n\n case \"rt\":\n document.getElementById(\"searchType\").innerHTML = \"Rotten Tomatoes search\";\n break;\n\n default:\n document.getElementById(\"searchType\").innerHTML = \"Invalid search\";\n break;\n }\n } else {\n document.getElementById(\"searchType\").innerHTML = \"Google search\";\n }\n}\n\nfunction search(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n\n if (text[0] === '/') {\n if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n window.location = \"https://www.allmusic.com/search/all/\" + subtext;\n break;\n\n case \"d\":\n window.location = \"https://duckduckgo.com/?q=\" + subtext;\n break;\n\n case \"di\":\n window.location = \"https://www.discogs.com/search/?q=\" + subtext;\n break;\n\n case \"i\":\n window.location = \"https://www.imdb.com/find?q=\" + subtext;\n break;\n\n case \"m\":\n window.location = \"https://www.themoviedb.org/search?query=\" + subtext;\n break;\n\n case \"r\":\n window.location = \"https://www.reddit.com/search?q=\" + subtext;\n break;\n\n case \"q\":\n window.location = \"https://www.qwant.com/?q=\" + subtext;\n break;\n\n case \"so\":\n window.location = \"https://soundcloud.com/search?q=\" + subtext;\n break;\n\n case \"s\":\n window.location = \"https://open.spotify.com/search/results/\" + subtext;\n break;\n\n case \"t\":\n window.location = \"https://trakt.tv/search?query=\" + subtext;\n break;\n\n case \"tv\":\n window.location = \"https://www.thetvdb.com/search?query=\" + subtext;\n break;\n\n case \"y\":\n window.location = \"https://www.youtube.com/results?search_query=\" + subtext;\n break;\n\n case \"w\":\n window.location = \"https://en.wikipedia.org/w/index.php?search=\" + subtext;\n break;\n\n case \"p\":\n window.location = \"https://app.plex.tv/desktop/#!/search?query=\" + subtext;\n break;\n\n case \"rt\":\n window.location = \"https://www.rottentomatoes.com/search?search=\" + subtext;\n break;\n }\n } else {\n var option = text.substr(1);\n\n switch (option) {\n case \"d\":\n window.location = \"https://www.duckduckgo.com\";\n break;\n\n case \"y\":\n window.location = \"https://www.youtube.com\";\n break;\n\n case \"r\":\n window.location = \"https://reddit.com\";\n break;\n\n case \"s\":\n window.location = \"https://open.spotify.com\";\n break;\n }\n }\n } else if (validURL(text)) {\n if (containsProtocol(text)) window.location = text;else window.location = \"https://\" + text;\n } else {\n window.location = \"https://www.google.com/search?q=\" + text;\n }\n}\n\nfunction validURL(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/)?' + // protocol\n '((([a-z\\\\d]([a-z\\\\d-]*[a-z\\\\d])*)\\\\.)+[a-z]{2,}|' + // domain name\n '((\\\\d{1,3}\\\\.){3}\\\\d{1,3}))' + // OR ip (v4) address\n '(\\\\:\\\\d+)?(\\\\/[-a-z\\\\d%_.~+]*)*' + // port and path\n '(\\\\?[;&a-z\\\\d%_.~+=-]*)?' + // query string\n '(\\\\#[-a-z\\\\d_]*)?$', 'i'); // fragment locator\n\n return !!pattern.test(str);\n}\n\nfunction containsProtocol(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/){1}.*', 'i');\n return !!pattern.test(str);\n}\n\nString.prototype.replaceAll = function (search, replacement) {\n var target = this;\n return target.split(search).join(replacement);\n};\n\nfunction udpateDisplayedItems(e) {\n localStorage.setItem('contenttype', e.target.checked);\n\n if (e.target.checked) {\n localStorage.setItem('content-display', 'none');\n } else {\n localStorage.setItem('content-display', 'block');\n }\n\n setDisplayedItems();\n}\n\nfunction setDisplayedItems() {\n setValueFromLocalStorage('contenttype');\n setValueFromLocalStorage('content-display');\n}\n\nvar _c, _c2, _c3, _c4, _c5, _c6, _c7, _c8, _c9, _c10, _c11, _c12, _c13;\n\n$RefreshReg$(_c, \"Homepage\");\n$RefreshReg$(_c2, \"Search\");\n$RefreshReg$(_c3, \"Header\");\n$RefreshReg$(_c4, \"Applications\");\n$RefreshReg$(_c5, \"App\");\n$RefreshReg$(_c6, \"Bookmarks\");\n$RefreshReg$(_c7, \"LinkGroups\");\n$RefreshReg$(_c8, \"LinkItem\");\n$RefreshReg$(_c9, \"ModalMenu\");\n$RefreshReg$(_c10, \"HideButton\");\n$RefreshReg$(_c11, \"Provider\");\n$RefreshReg$(_c12, \"ModalInit\");\n$RefreshReg$(_c13, \"Clock\");","map":{"version":3,"sources":["/home/seanedmunds/dev/home-page/src/index.js"],"names":["React","useState","useEffect","ReactDOM","setValueFromLocalStorage","property","value","localStorage","getItem","setValue","document","documentElement","style","setProperty","input","querySelector","replace","Homepage","setTheme","date","greet","Search","handleKeyPress","Header","props","Applications","appList","getApps","items","i","apps","length","safe","NSFW","NSFWEnabled","push","name","url","icon","App","classNameType","hrefUrl","iconName","Bookmarks","bookmarkList","getLinks","bookmarks","category","links","LinkGroups","LinkItem","link","ModalMenu","providers","getProviders","updateTheme","HideButton","isChecked","console","log","udpateDisplayedItems","Provider","provider","prefix","ModalInit","setDisplayedItems","render","getElementById","currentDate","Date","dateOptions","weekday","year","month","day","toLocaleDateString","fixDigits","k","currentTime","Math","floor","getHours","easterEggChance","random","greetings","require","timeBased","easterEggs","messages","easteregg","concat","message","easterEggText","Clock","setDate","refreshClock","timerId","setInterval","cleanup","clearInterval","hour","minutes","getMinutes","midday","time","applications","getThemes","themes","e","themeName","target","innerHTML","toLowerCase","index","findIndex","item","setItem","imagebackground","colorbackground","colorserachbackground","colortextpri","colortextacc","colorborder","sindex","cycle","key","keyCode","which","text","replaceAll","option","substr","indexOf","subtext","search","preventDefault","stopPropagation","streamers","streamer","updateLabel","window","location","validURL","containsProtocol","str","pattern","RegExp","test","String","prototype","replacement","split","join","checked"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { useState, useEffect } from 'react';\nimport ReactDOM from 'react-dom';\nimport './index.css';\n\nconst setValueFromLocalStorage = property => {\n let value = localStorage.getItem(property);\n setValue(property, value);\n};\nconst setValue = (property, value) => {\n if (value) {\n document.documentElement.style.setProperty(`--${property}`, value);\n\n const input = document.querySelector(`#${property}`);\n if (input) {\n value = value.replace('px', '');\n input.value = value;\n }\n }\n};\n\nfunction Homepage() {\n setTheme();\n \n return (\n \n \n \n
\n \n \n
\n \n \n \n
\n \n \n
\n \n \n
\n \n );\n}\n\nfunction Search() {\n return (\n \n )\n}\n\nfunction Header(props) {\n return (\n \n );\n}\n\nfunction Applications() {\n let appList = getApps();\n var items = [];\n for (var i = 0; i < appList.apps.length; i++) {\n var safe = appList.apps[i].NSFW;\n var NSFWEnabled = localStorage.getItem(\"contenttype\");\n if (safe === \"SAFE\") {\n items.push(\n \n );\n } else if (safe === \"NSFW\" && NSFWEnabled) {\n items.push(\n \n );\n } else {\n \n }\n \n }\n return (\n \n Applications
\n \n {items}\n
\n \n );\n}\n\nfunction App(props) {\n \n let classNameType = props.NSFW + \"-content\";\n let hrefUrl = \"https://\" + props.url;\n let iconName = \"mdi-\" + props.icon;\n return (\n \n );\n}\n\nfunction Bookmarks() {\n let bookmarkList = getLinks();\n var items = [];\n for (var i = 0; i < bookmarkList.bookmarks.length; i++) {\n items.push(\n \n );\n }\n return (\n \n Bookmarks
\n \n {items}\n
\n \n );\n}\n\nfunction LinkGroups(props) {\n var items = [];\n for (var i = 0; i < props.links.length; i++) {\n items.push(\n \n );\n }\n return (\n \n
{props.category}
\n {items}\n \n );\n}\n\nfunction LinkItem(props) {\n return (\n \n );\n}\n\nfunction ModalMenu() {\n var providers = getProviders();\n var items = [];\n for (var i = 0; i < providers.providers.length; i++) {\n items.push(\n \n );\n }\n return (\n \n \n \n\n
Color themes
\n\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n\n\n
Search options
\n
\n \n \n \n | Website | \n Prefix | \n
\n {items}\n \n
\n \n\n \n
\n \n );\n}\n\nfunction HideButton() {\n var isChecked = localStorage.getItem(\"contenttype\");\n console.log(isChecked);\n return(\n \n \n \n
\n );\n}\n\nfunction Provider(props) {\n return (\n \n | {props.provider.name} | \n {props.provider.prefix} | \n
\n );\n}\n\nfunction ModalInit() {\n setDisplayedItems();\n return (\n \n );\n}\n\nReactDOM.render(\n ,\n document.getElementById('root')\n);\n\n//Functions below this line are for calculating data for\n//other functions\n\nfunction date() {\n let currentDate = new Date();\n let dateOptions = {\n weekday: \"long\",\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\"\n };\n let date = currentDate.toLocaleDateString(\"en-GB\", dateOptions);\n return date;\n}\nfunction fixDigits(k) {\n if (k < 10) {\n return \"0\" + k;\n }\n else {\n return k;\n }\n}\nfunction greet() {\n let currentTime = new Date();\n let greet = Math.floor(currentTime.getHours() / 6);\n let easterEggChance = Math.floor(Math.random() * 100);\n let greetings = require('./messages.json');\n let timeBased = [];\n let easterEggs = [];\n for (var i = 0; i < greetings.messages.length; i++) {\n if (greetings.messages[i].easteregg === \"FALSE\") {\n timeBased = timeBased.concat(greetings.messages[i]);\n } else {\n easterEggs = easterEggs.concat(greetings.messages[i]);\n }\n }\n if (easterEggChance > 10) {\n return timeBased[greet].message;\n } else {\n let easterEggText = Math.floor(Math.random() * easterEggs.length);\n return easterEggs[easterEggText].message;\n }\n}\nfunction Clock() {\n const [date, setDate] = useState(new Date());\n\n function refreshClock() {\n setDate(new Date());\n }\n useEffect(() => {\n const timerId = setInterval(refreshClock, 1000);\n return function cleanup() {\n clearInterval(timerId);\n };\n }, []);\n\n var hour = date.getHours();\n var minutes = date.getMinutes();\n //var seconds = date.getSeconds();\n var midday = \"AM\";\n midday = (hour >= 12) ? \"PM\" : \"AM\";\n hour = (hour === 0) ? 12 : ((hour > 12) ? (hour - 12) : hour);\n minutes = fixDigits(minutes);\n //seconds = fixDigits(seconds);\n let time = hour + \":\" + minutes + \" \" + midday;\n\n return (\n {time}
\n\n );\n}\nfunction getApps() {\n let applications = require('./apps.json');\n return applications;\n}\nfunction getLinks() {\n let links = require('./links.json');\n return links;\n}\nfunction getProviders() {\n let providers = require('./providers.json');\n return providers;\n}\nfunction getThemes() {\n let themes = require('./themes.json');\n return themes;\n}\nfunction updateTheme(e) {\n var themes = getThemes();\n var themeName = e.target.innerHTML.toLowerCase();\n var index = themes.themes.findIndex(function(item, i){\n return item.name === themeName\n });\n localStorage.setItem(\"image-background\", themes.themes[index].imagebackground);\n localStorage.setItem(\"color-background\", themes.themes[index].colorbackground);\n localStorage.setItem(\"color-search-background\", themes.themes[index].colorserachbackground);\n localStorage.setItem(\"color-text-pri\",themes.themes[index].colortextpri);\n localStorage.setItem(\"color-text-acc\", themes.themes[index].colortextacc);\n localStorage.setItem(\"color-border\", themes.themes[index].colorborder);\n \n //document.documentElement.style.setProperty(prop, `var(--${themeName}${prop.substring(10)})`);\n setTheme();\n}\nfunction setTheme() {\n setValueFromLocalStorage('image-background');\n setValueFromLocalStorage('color-background');\n setValueFromLocalStorage('color-search-background');\n setValueFromLocalStorage('color-text-pri');\n setValueFromLocalStorage('color-text-acc');\n setValueFromLocalStorage('color-border');\n setValueFromLocalStorage('content-display');\n}\nfunction handleKeyPress(e) {\n var sindex = 0;\n var cycle = false;\n var key = e.keyCode || e.which;\n var text = e.target.value.replaceAll(\"+\", \"%2B\");\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n if (key == 13) { // Search functions\n search(text);\n }\n if (key == 9) { // Tab Completion Functions\n e.preventDefault();\n e.stopPropagation();\n if (text[0] === ';') {\n switch (option) {\n case 't':\n var streamers = ['admiralbahroo', 'moonmoon_ow', 'witwix'];\n if (!subtext || cycle) {\n cycle = true;\n if (sindex > streamers.length - 1) sindex = 0;\n document.getElementById(\"keywords\").value = ';t ' + streamers[sindex++];\n return;\n }\n for (var streamer of streamers) {\n if (subtext === streamer.substr(0, subtext.length)) {\n document.getElementById(\"keywords\").value = ';t ' + streamer;\n return;\n }\n }\n break;\n }\n }\n }\n if(key == 32){ //Space to go to search\nupdateLabel(text);\n }\n sindex = 0;\n cycle = false;\n updateLabel(text);\n}\nfunction updateLabel(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n if (text[0] === '/') {\n// if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n document.getElementById(\"searchType\").innerHTML = \"Allmusic search\";\n break;\n case \"d\":\n document.getElementById(\"searchType\").innerHTML = \"Duck Duck Go search\";\n break;\n case \"di\":\n document.getElementById(\"searchType\").innerHTML = \"Discogs search\";\n break;\n case \"i\":\n document.getElementById(\"searchType\").innerHTML = \"IMDB search\";\n break;\n case \"m\":\n document.getElementById(\"searchType\").innerHTML = \"TheMovieDB search\";\n break;\n case \"r\":\n document.getElementById(\"searchType\").innerHTML = \"Reddit search\";\n break;\n case \"q\":\n document.getElementById(\"searchType\").innerHTML = \"Qwant search\";\n break;\n case \"so\":\n document.getElementById(\"searchType\").innerHTML = \"Soundcloud search\";\n break;\n case \"s\":\n document.getElementById(\"searchType\").innerHTML = \"Spotify search\";\n break;\n case \"tv\":\n document.getElementById(\"searchType\").innerHTML = \"TheTVDB search\";\n break;\n case \"t\":\n document.getElementById(\"searchType\").innerHTML = \"Trakt search\";\n break;\n case \"y\":\n document.getElementById(\"searchType\").innerHTML = \"YouTube search\";\n break;\n case \"w\":\n document.getElementById(\"searchType\").innerHTML = \"Wikipedia search\";\n break;\n case \"p\":\n document.getElementById(\"searchType\").innerHTML = \"Plex search\";\n break;\n case \"rt\":\n document.getElementById(\"searchType\").innerHTML = \"Rotten Tomatoes search\";\n break;\n default:\n document.getElementById(\"searchType\").innerHTML = \"Invalid search\";\n break;\n }\n}else {\n document.getElementById(\"searchType\").innerHTML = \"Google search\";\n }\n}\nfunction search(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n if (text[0] === '/') {\n if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n window.location = \"https://www.allmusic.com/search/all/\" + subtext;\n break;\n case \"d\":\n window.location = \"https://duckduckgo.com/?q=\" + subtext;\n break;\n case \"di\":\n window.location = \"https://www.discogs.com/search/?q=\" + subtext;\n break;\n case \"i\":\n window.location = \"https://www.imdb.com/find?q=\" + subtext;\n break;\n case \"m\":\n window.location = \"https://www.themoviedb.org/search?query=\" + subtext;\n break;\n case \"r\":\n window.location = \"https://www.reddit.com/search?q=\" + subtext;\n break;\n case \"q\":\n window.location = \"https://www.qwant.com/?q=\" + subtext;\n break;\n case \"so\":\n window.location = \"https://soundcloud.com/search?q=\" + subtext;\n break;\n case \"s\":\n window.location = \"https://open.spotify.com/search/results/\" + subtext;\n break;\n case \"t\":\n window.location = \"https://trakt.tv/search?query=\" + subtext;\n break;\n case \"tv\":\n window.location = \"https://www.thetvdb.com/search?query=\" + subtext;\n break;\n case \"y\":\n window.location = \"https://www.youtube.com/results?search_query=\" + subtext;\n break;\n case \"w\":\n window.location = \"https://en.wikipedia.org/w/index.php?search=\" + subtext;\n break;\n case \"p\":\n window.location = \"https://app.plex.tv/desktop/#!/search?query=\" + subtext;\n break;\n case \"rt\":\n window.location = \"https://www.rottentomatoes.com/search?search=\" + subtext;\n break;\n }\n } else {\n var option = text.substr(1);\n switch (option) {\n case \"d\":\n window.location = \"https://www.duckduckgo.com\";\n break;\n case \"y\":\n window.location = \"https://www.youtube.com\";\n break;\n case \"r\":\n window.location = \"https://reddit.com\";\n break;\n case \"s\":\n window.location = \"https://open.spotify.com\";\n break;\n }\n }\n } else if (validURL(text)) {\n if (containsProtocol(text))\n window.location = text;\n else\n window.location = \"https://\" + text;\n } else {\n window.location = \"https://www.google.com/search?q=\" + text;\n }\n}\nfunction validURL(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/)?' + // protocol\n '((([a-z\\\\d]([a-z\\\\d-]*[a-z\\\\d])*)\\\\.)+[a-z]{2,}|' + // domain name\n '((\\\\d{1,3}\\\\.){3}\\\\d{1,3}))' + // OR ip (v4) address\n '(\\\\:\\\\d+)?(\\\\/[-a-z\\\\d%_.~+]*)*' + // port and path\n '(\\\\?[;&a-z\\\\d%_.~+=-]*)?' + // query string\n '(\\\\#[-a-z\\\\d_]*)?$', 'i'); // fragment locator\n return !!pattern.test(str);\n}\nfunction containsProtocol(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/){1}.*', 'i');\n return !!pattern.test(str);\n}\nString.prototype.replaceAll = function(search, replacement) {\n var target = this;\n return target.split(search).join(replacement);\n};\nfunction udpateDisplayedItems(e) {\n localStorage.setItem('contenttype', e.target.checked);\n if (e.target.checked) {\n localStorage.setItem('content-display', 'none');\n } else {\n localStorage.setItem('content-display', 'block');\n }\n setDisplayedItems();\n}\nfunction setDisplayedItems() {\n setValueFromLocalStorage('contenttype');\n setValueFromLocalStorage('content-display');\n}"]},"metadata":{},"sourceType":"module"}
\ No newline at end of file
diff --git a/node_modules/.cache/babel-loader/a22ae360e966f11416c8c643fcb35eb8.json b/node_modules/.cache/babel-loader/a22ae360e966f11416c8c643fcb35eb8.json
new file mode 100644
index 00000000..5bb3281f
--- /dev/null
+++ b/node_modules/.cache/babel-loader/a22ae360e966f11416c8c643fcb35eb8.json
@@ -0,0 +1 @@
+{"ast":null,"code":"var _jsxFileName = \"/home/seanedmunds/dev/home-page/src/index.js\",\n _s = $RefreshSig$();\n\nimport React from 'react';\nimport { useState, useEffect } from 'react';\nimport ReactDOM from 'react-dom'; //import { unstable_createPortal } from 'react-dom';\n\nimport './index.css';\nimport { jsxDEV as _jsxDEV } from \"react/jsx-dev-runtime\";\n\nfunction Homepage() {\n return /*#__PURE__*/_jsxDEV(\"main\", {\n id: \"container\",\n className: \"fade\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Search, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 11,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 10,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Header, {\n date: date(),\n greet: greet()\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 14,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 13,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Applications, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 20,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 19,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Bookmarks, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 23,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 22,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(ModalMenu, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 26,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 25,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(ModalInit, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 29,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 28,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 9,\n columnNumber: 5\n }, this);\n}\n\n_c = Homepage;\n\nfunction Search() {\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"search\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"abackground\",\n children: [/*#__PURE__*/_jsxDEV(\"input\", {\n name: \"keywords\",\n type: \"text\",\n className: \"keyword\",\n id: \"keywords\",\n size: \"50\",\n spellCheck: \"true\",\n placeholder: \"\"\n /*onFocus={this.placeholder = \"\"} onBlur={this.placeholder = ''}*/\n ,\n autoComplete: \"off\",\n autoFocus: true,\n onKeyUp: handleKeyPress\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 39,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n id: \"searchType\",\n className: \"Input-label\",\n children: \"Google search\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 40,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 38,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 37,\n columnNumber: 5\n }, this);\n}\n\n_c2 = Search;\n\nfunction Header(props) {\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"header\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n id: \"greeting_block\",\n children: /*#__PURE__*/_jsxDEV(\"h1\", {\n id: \"header_greet\",\n children: props.greet\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 50,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 49,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"date_block\",\n children: [/*#__PURE__*/_jsxDEV(\"h2\", {\n id: \"header_date\",\n children: props.date\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 53,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(Clock, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 54,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 52,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 48,\n columnNumber: 5\n }, this);\n}\n\n_c3 = Header;\n\nfunction Applications() {\n let appList = getApps();\n var items = [];\n\n for (var i = 0; i < appList.apps.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(App, {\n name: appList.apps[i].name,\n url: appList.apps[i].url,\n icon: appList.apps[i].icon,\n NSFW: appList.apps[i].NSFW\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 65,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"apps\",\n children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n children: \"Applications\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 76,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"apps_loop\",\n children: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 77,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 75,\n columnNumber: 5\n }, this);\n}\n\n_c4 = Applications;\n\nfunction App(props) {\n let classNameType = props.NSFW + \"-content\";\n let hrefUrl = \"https://\" + props.url;\n let iconName = \"mdi-\" + props.icon;\n return /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: hrefUrl,\n className: classNameType,\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_item\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_icon\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify icon\",\n \"data-icon\": iconName\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 93,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 92,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_text\",\n children: [/*#__PURE__*/_jsxDEV(\"span\", {\n id: \"app-name\",\n children: props.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 96,\n columnNumber: 13\n }, this), /*#__PURE__*/_jsxDEV(\"span\", {\n id: \"app-address\",\n children: props.url\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 97,\n columnNumber: 13\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 95,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 91,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 90,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 89,\n columnNumber: 5\n }, this);\n}\n\n_c5 = App;\n\nfunction Bookmarks() {\n let bookmarkList = getLinks();\n var items = [];\n\n for (var i = 0; i < bookmarkList.bookmarks.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(LinkGroups, {\n category: bookmarkList.bookmarks[i].category,\n links: bookmarkList.bookmarks[i].links\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 110,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"links\",\n children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n children: \"Bookmarks\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 119,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"links_loop\",\n children: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 120,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 118,\n columnNumber: 5\n }, this);\n}\n\n_c6 = Bookmarks;\n\nfunction LinkGroups(props) {\n var items = [];\n\n for (var i = 0; i < props.links.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(LinkItem, {\n link: props.links[i]\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 131,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"links_item\",\n children: [/*#__PURE__*/_jsxDEV(\"h4\", {\n children: props.category\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 139,\n columnNumber: 7\n }, this), items]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 138,\n columnNumber: 5\n }, this);\n}\n\n_c7 = LinkGroups;\n\nfunction LinkItem(props) {\n return /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: props.link.url,\n className: \"theme_color-border theme_text-select\",\n children: props.link.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 148,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 147,\n columnNumber: 5\n }, this);\n}\n\n_c8 = LinkItem;\n\nfunction ModalMenu() {\n var providers = getProviders();\n var items = [];\n\n for (var i = 0; i < providers.providers.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(Provider, {\n provider: providers.providers[i]\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 158,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"modal\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n children: [/*#__PURE__*/_jsxDEV(\"header\", {\n id: \"modal-header\",\n children: [/*#__PURE__*/_jsxDEV(\"h1\", {\n children: \"Options\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 168,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n href: \"#\",\n title: \"Close\",\n className: \"modal-close\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-close\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 170,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 169,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 167,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"h2\", {\n children: \"Color themes\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 174,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"modal-theme\",\n children: [/*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"blackboard\",\n className: \"theme-button theme-blackboard\",\n onClick: updateTheme,\n children: \"Blackboard\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 177,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"gazette\",\n className: \"theme-button theme-gazette\",\n children: \"Gazette\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 178,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"espresso\",\n className: \"theme-button theme-espresso\",\n children: \"Espresso\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 179,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cab\",\n className: \"theme-button theme-cab\",\n children: \"Cab\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 180,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cloud\",\n className: \"theme-button theme-cloud\",\n children: \"Cloud\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 181,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"lime\",\n className: \"theme-button theme-lime\",\n children: \"Lime\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 182,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"passion\",\n className: \"theme-button theme-passion\",\n children: \"Passion\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 183,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"blues\",\n className: \"theme-button theme-blues\",\n children: \"Blues\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 184,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"chalk\",\n className: \"theme-button theme-chalk\",\n children: \"Chalk\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 185,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"tron\",\n className: \"theme-button theme-tron\",\n children: \"Tron\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 186,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"paper\",\n className: \"theme-button theme-paper\",\n children: \"Paper\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 187,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cyberpunk\",\n className: \"theme-button theme-cyberpunk\",\n children: \"Cyberpunk\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 188,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"quadra\",\n className: \"theme-button theme-panam\",\n children: \"Quadra\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 189,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"panam\",\n className: \"theme-button theme-panam\",\n children: \"Panam\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 190,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"touch\",\n className: \"theme-button theme-touch\",\n children: \"Touch\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 191,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"peek\",\n className: \"theme-button theme-peek\",\n children: \"Peek\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 192,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 176,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"h2\", {\n children: \"Search options\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 196,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"providers\",\n children: /*#__PURE__*/_jsxDEV(\"table\", {\n children: /*#__PURE__*/_jsxDEV(\"tbody\", {\n children: [/*#__PURE__*/_jsxDEV(\"tr\", {\n children: [/*#__PURE__*/_jsxDEV(\"th\", {\n children: \"Website\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 201,\n columnNumber: 19\n }, this), /*#__PURE__*/_jsxDEV(\"th\", {\n children: \"Prefix\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 202,\n columnNumber: 19\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 200,\n columnNumber: 17\n }, this), items]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 199,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 198,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 197,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"header\", {\n id: \"modal-footer\",\n children: [/*#__PURE__*/_jsxDEV(\"a\", {\n href: \"https://github.com/jeroenpardon/\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-github-box\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 210,\n columnNumber: 54\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 210,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n href: \"https://materialdesignicons.com/\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-material-design\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 211,\n columnNumber: 54\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 211,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"sneaky\",\n children: [/*#__PURE__*/_jsxDEV(\"input\", {\n type: \"checkbox\",\n id: \"contenttype\",\n onChange: \"nsfw(this)\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 212,\n columnNumber: 35\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n for: \"contenttype\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-domino-mask\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 213,\n columnNumber: 36\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 213,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 212,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 209,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 166,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 165,\n columnNumber: 5\n }, this);\n}\n\n_c9 = ModalMenu;\n\nfunction Provider(props) {\n return /*#__PURE__*/_jsxDEV(\"tr\", {\n children: [/*#__PURE__*/_jsxDEV(\"td\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: props.provider.url,\n children: props.provider.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 223,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 223,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"td\", {\n children: props.provider.prefix\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 224,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 222,\n columnNumber: 5\n }, this);\n}\n\n_c10 = Provider;\n\nfunction ModalInit() {\n return /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"modal_init\",\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n className: \"btn\",\n href: \"#modal\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify icon\",\n \"data-icon\": \"mdi-xbox-controller-menu\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 233,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 232,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 231,\n columnNumber: 5\n }, this);\n}\n\n_c11 = ModalInit;\nReactDOM.render( /*#__PURE__*/_jsxDEV(Homepage, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 240,\n columnNumber: 3\n}, this), document.getElementById('root')); //Functions below this line are for calculating data for\n//other functions\n\nfunction date() {\n let currentDate = new Date();\n let dateOptions = {\n weekday: \"long\",\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\"\n };\n let date = currentDate.toLocaleDateString(\"en-GB\", dateOptions);\n return date;\n}\n\nfunction fixDigits(k) {\n if (k < 10) {\n return \"0\" + k;\n } else {\n return k;\n }\n}\n\nfunction greet() {\n let currentTime = new Date();\n let greet = Math.floor(currentTime.getHours() / 6);\n let easterEggChance = Math.floor(Math.random() * 100);\n\n let greetings = require('./messages.json');\n\n let timeBased = [];\n let easterEggs = [];\n\n for (var i = 0; i < greetings.messages.length; i++) {\n if (greetings.messages[i].easteregg === \"FALSE\") {\n timeBased = timeBased.concat(greetings.messages[i]);\n } else {\n easterEggs = easterEggs.concat(greetings.messages[i]);\n }\n }\n\n if (easterEggChance > 10) {\n return timeBased[greet].message;\n } else {\n let easterEggText = Math.floor(Math.random() * easterEggs.length);\n return easterEggs[easterEggText].message;\n }\n}\n\nfunction Clock() {\n _s();\n\n const [date, setDate] = useState(new Date());\n\n function refreshClock() {\n setDate(new Date());\n }\n\n useEffect(() => {\n const timerId = setInterval(refreshClock, 1000);\n return function cleanup() {\n clearInterval(timerId);\n };\n }, []);\n var hour = date.getHours();\n var minutes = date.getMinutes(); //var seconds = date.getSeconds();\n\n var midday = \"AM\";\n midday = hour >= 12 ? \"PM\" : \"AM\";\n hour = hour === 0 ? 12 : hour > 12 ? hour - 12 : hour;\n minutes = fixDigits(minutes); //seconds = fixDigits(seconds);\n\n let time = hour + \":\" + minutes + \" \" + midday;\n return /*#__PURE__*/_jsxDEV(\"h2\", {\n id: \"clock\",\n children: time\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 311,\n columnNumber: 5\n }, this);\n}\n\n_s(Clock, \"Gqi45WOZhU2c0BLYX0HoJeiR0fk=\");\n\n_c12 = Clock;\n\nfunction getApps() {\n let applications = require('./apps.json');\n\n return applications;\n}\n\nfunction getLinks() {\n let links = require('./links.json');\n\n return links;\n}\n\nfunction getProviders() {\n let providers = require('./providers.json');\n\n return providers;\n}\n\nfunction getThemes() {\n let themes = require('./themes.json');\n\n return themes;\n}\n\nfunction updateTheme(e) {\n var themes = getThemes();\n var themeName = e.target.innerHTML.toLowerCase();\n console.log(themes[0].name);\n}\n\nfunction handleKeyPress(e) {\n var sindex = 0;\n var cycle = false;\n var key = e.keyCode || e.which;\n var text = e.target.value.replaceAll(\"+\", \"%2B\");\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n\n if (key == 13) {\n // Search functions\n search(text);\n }\n\n if (key == 9) {\n // Tab Completion Functions\n e.preventDefault();\n e.stopPropagation();\n\n if (text[0] === ';') {\n switch (option) {\n case 't':\n var streamers = ['admiralbahroo', 'moonmoon_ow', 'witwix'];\n\n if (!subtext || cycle) {\n cycle = true;\n if (sindex > streamers.length - 1) sindex = 0;\n document.getElementById(\"keywords\").value = ';t ' + streamers[sindex++];\n return;\n }\n\n for (var streamer of streamers) {\n if (subtext === streamer.substr(0, subtext.length)) {\n document.getElementById(\"keywords\").value = ';t ' + streamer;\n return;\n }\n }\n\n break;\n }\n }\n }\n\n if (key == 32) {\n //Space to go to search\n updateLabel(text);\n }\n\n sindex = 0;\n cycle = false;\n updateLabel(text);\n}\n\nfunction updateLabel(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n\n if (text[0] === '/') {\n // if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n document.getElementById(\"searchType\").innerHTML = \"Allmusic search\";\n break;\n\n case \"d\":\n document.getElementById(\"searchType\").innerHTML = \"Duck Duck Go search\";\n break;\n\n case \"di\":\n document.getElementById(\"searchType\").innerHTML = \"Discogs search\";\n break;\n\n case \"i\":\n document.getElementById(\"searchType\").innerHTML = \"IMDB search\";\n break;\n\n case \"m\":\n document.getElementById(\"searchType\").innerHTML = \"TheMovieDB search\";\n break;\n\n case \"r\":\n document.getElementById(\"searchType\").innerHTML = \"Reddit search\";\n break;\n\n case \"q\":\n document.getElementById(\"searchType\").innerHTML = \"Qwant search\";\n break;\n\n case \"so\":\n document.getElementById(\"searchType\").innerHTML = \"Soundcloud search\";\n break;\n\n case \"s\":\n document.getElementById(\"searchType\").innerHTML = \"Spotify search\";\n break;\n\n case \"tv\":\n document.getElementById(\"searchType\").innerHTML = \"TheTVDB search\";\n break;\n\n case \"t\":\n document.getElementById(\"searchType\").innerHTML = \"Trakt search\";\n break;\n\n case \"y\":\n document.getElementById(\"searchType\").innerHTML = \"YouTube search\";\n break;\n\n case \"w\":\n document.getElementById(\"searchType\").innerHTML = \"Wikipedia search\";\n break;\n\n case \"p\":\n document.getElementById(\"searchType\").innerHTML = \"Plex search\";\n break;\n\n case \"rt\":\n document.getElementById(\"searchType\").innerHTML = \"Rotten Tomatoes search\";\n break;\n\n default:\n document.getElementById(\"searchType\").innerHTML = \"Invalid search\";\n break;\n }\n } else {\n document.getElementById(\"searchType\").innerHTML = \"Google search\";\n }\n}\n\nfunction search(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n\n if (text[0] === '/') {\n if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n window.location = \"https://www.allmusic.com/search/all/\" + subtext;\n break;\n\n case \"d\":\n window.location = \"https://duckduckgo.com/?q=\" + subtext;\n break;\n\n case \"di\":\n window.location = \"https://www.discogs.com/search/?q=\" + subtext;\n break;\n\n case \"i\":\n window.location = \"https://www.imdb.com/find?q=\" + subtext;\n break;\n\n case \"m\":\n window.location = \"https://www.themoviedb.org/search?query=\" + subtext;\n break;\n\n case \"r\":\n window.location = \"https://www.reddit.com/search?q=\" + subtext;\n break;\n\n case \"q\":\n window.location = \"https://www.qwant.com/?q=\" + subtext;\n break;\n\n case \"so\":\n window.location = \"https://soundcloud.com/search?q=\" + subtext;\n break;\n\n case \"s\":\n window.location = \"https://open.spotify.com/search/results/\" + subtext;\n break;\n\n case \"t\":\n window.location = \"https://trakt.tv/search?query=\" + subtext;\n break;\n\n case \"tv\":\n window.location = \"https://www.thetvdb.com/search?query=\" + subtext;\n break;\n\n case \"y\":\n window.location = \"https://www.youtube.com/results?search_query=\" + subtext;\n break;\n\n case \"w\":\n window.location = \"https://en.wikipedia.org/w/index.php?search=\" + subtext;\n break;\n\n case \"p\":\n window.location = \"https://app.plex.tv/desktop/#!/search?query=\" + subtext;\n break;\n\n case \"rt\":\n window.location = \"https://www.rottentomatoes.com/search?search=\" + subtext;\n break;\n }\n } else {\n var option = text.substr(1);\n\n switch (option) {\n case \"d\":\n window.location = \"https://www.duckduckgo.com\";\n break;\n\n case \"y\":\n window.location = \"https://www.youtube.com\";\n break;\n\n case \"r\":\n window.location = \"https://reddit.com\";\n break;\n\n case \"s\":\n window.location = \"https://open.spotify.com\";\n break;\n }\n }\n } else if (validURL(text)) {\n if (containsProtocol(text)) window.location = text;else window.location = \"https://\" + text;\n } else {\n window.location = \"https://www.google.com/search?q=\" + text;\n }\n} // Source: https://stackoverflow.com/questions/5717093/check-if-a-javascript-string-is-a-url\n\n\nfunction validURL(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/)?' + // protocol\n '((([a-z\\\\d]([a-z\\\\d-]*[a-z\\\\d])*)\\\\.)+[a-z]{2,}|' + // domain name\n '((\\\\d{1,3}\\\\.){3}\\\\d{1,3}))' + // OR ip (v4) address\n '(\\\\:\\\\d+)?(\\\\/[-a-z\\\\d%_.~+]*)*' + // port and path\n '(\\\\?[;&a-z\\\\d%_.~+=-]*)?' + // query string\n '(\\\\#[-a-z\\\\d_]*)?$', 'i'); // fragment locator\n\n return !!pattern.test(str);\n}\n\nfunction containsProtocol(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/){1}.*', 'i');\n return !!pattern.test(str);\n}\n\nString.prototype.replaceAll = function (search, replacement) {\n var target = this;\n return target.split(search).join(replacement);\n};\n\nvar _c, _c2, _c3, _c4, _c5, _c6, _c7, _c8, _c9, _c10, _c11, _c12;\n\n$RefreshReg$(_c, \"Homepage\");\n$RefreshReg$(_c2, \"Search\");\n$RefreshReg$(_c3, \"Header\");\n$RefreshReg$(_c4, \"Applications\");\n$RefreshReg$(_c5, \"App\");\n$RefreshReg$(_c6, \"Bookmarks\");\n$RefreshReg$(_c7, \"LinkGroups\");\n$RefreshReg$(_c8, \"LinkItem\");\n$RefreshReg$(_c9, \"ModalMenu\");\n$RefreshReg$(_c10, \"Provider\");\n$RefreshReg$(_c11, \"ModalInit\");\n$RefreshReg$(_c12, \"Clock\");","map":{"version":3,"sources":["/home/seanedmunds/dev/home-page/src/index.js"],"names":["React","useState","useEffect","ReactDOM","Homepage","date","greet","Search","handleKeyPress","Header","props","Applications","appList","getApps","items","i","apps","length","push","name","url","icon","NSFW","App","classNameType","hrefUrl","iconName","Bookmarks","bookmarkList","getLinks","bookmarks","category","links","LinkGroups","LinkItem","link","ModalMenu","providers","getProviders","updateTheme","Provider","provider","prefix","ModalInit","render","document","getElementById","currentDate","Date","dateOptions","weekday","year","month","day","toLocaleDateString","fixDigits","k","currentTime","Math","floor","getHours","easterEggChance","random","greetings","require","timeBased","easterEggs","messages","easteregg","concat","message","easterEggText","Clock","setDate","refreshClock","timerId","setInterval","cleanup","clearInterval","hour","minutes","getMinutes","midday","time","applications","getThemes","themes","e","themeName","target","innerHTML","toLowerCase","console","log","sindex","cycle","key","keyCode","which","text","value","replaceAll","option","substr","indexOf","subtext","search","preventDefault","stopPropagation","streamers","streamer","updateLabel","window","location","validURL","containsProtocol","str","pattern","RegExp","test","String","prototype","replacement","split","join"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { useState, useEffect } from 'react';\nimport ReactDOM from 'react-dom';\n//import { unstable_createPortal } from 'react-dom';\nimport './index.css';\n\nfunction Homepage() {\n return (\n \n \n \n
\n \n \n
\n \n \n \n
\n \n \n
\n \n \n
\n \n );\n}\n\nfunction Search() {\n return (\n \n )\n}\n\nfunction Header(props) {\n return (\n \n );\n}\n\nfunction Applications() {\n let appList = getApps();\n var items = [];\n for (var i = 0; i < appList.apps.length; i++) {\n items.push(\n \n );\n }\n return (\n \n Applications
\n \n {items}\n
\n \n );\n}\n\nfunction App(props) {\n let classNameType = props.NSFW + \"-content\";\n let hrefUrl = \"https://\" + props.url;\n let iconName = \"mdi-\" + props.icon;\n return (\n \n );\n}\n\nfunction Bookmarks() {\n let bookmarkList = getLinks();\n var items = [];\n for (var i = 0; i < bookmarkList.bookmarks.length; i++) {\n items.push(\n \n );\n }\n return (\n \n Bookmarks
\n \n {items}\n
\n \n );\n}\n\nfunction LinkGroups(props) {\n var items = [];\n for (var i = 0; i < props.links.length; i++) {\n items.push(\n \n );\n }\n return (\n \n
{props.category}
\n {items}\n \n );\n}\n\nfunction LinkItem(props) {\n return (\n \n );\n}\n\nfunction ModalMenu() {\n var providers = getProviders();\n var items = [];\n for (var i = 0; i < providers.providers.length; i++) {\n items.push(\n \n );\n }\n return (\n \n \n \n\n
Color themes
\n\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n\n\n
Search options
\n
\n \n \n \n | Website | \n Prefix | \n
\n {items}\n \n
\n \n\n \n
\n \n );\n}\n\nfunction Provider(props) {\n return (\n \n | {props.provider.name} | \n {props.provider.prefix} | \n
\n );\n}\n\nfunction ModalInit() {\n return (\n \n );\n}\n\nReactDOM.render(\n ,\n document.getElementById('root')\n);\n\n//Functions below this line are for calculating data for\n//other functions\n\nfunction date() {\n let currentDate = new Date();\n let dateOptions = {\n weekday: \"long\",\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\"\n };\n let date = currentDate.toLocaleDateString(\"en-GB\", dateOptions);\n return date;\n}\nfunction fixDigits(k) {\n if (k < 10) {\n return \"0\" + k;\n }\n else {\n return k;\n }\n}\nfunction greet() {\n let currentTime = new Date();\n let greet = Math.floor(currentTime.getHours() / 6);\n let easterEggChance = Math.floor(Math.random() * 100);\n let greetings = require('./messages.json');\n let timeBased = [];\n let easterEggs = [];\n for (var i = 0; i < greetings.messages.length; i++) {\n if (greetings.messages[i].easteregg === \"FALSE\") {\n timeBased = timeBased.concat(greetings.messages[i]);\n } else {\n easterEggs = easterEggs.concat(greetings.messages[i]);\n }\n }\n if (easterEggChance > 10) {\n return timeBased[greet].message;\n } else {\n let easterEggText = Math.floor(Math.random() * easterEggs.length);\n return easterEggs[easterEggText].message;\n }\n}\nfunction Clock() {\n const [date, setDate] = useState(new Date());\n\n function refreshClock() {\n setDate(new Date());\n }\n useEffect(() => {\n const timerId = setInterval(refreshClock, 1000);\n return function cleanup() {\n clearInterval(timerId);\n };\n }, []);\n\n var hour = date.getHours();\n var minutes = date.getMinutes();\n //var seconds = date.getSeconds();\n var midday = \"AM\";\n midday = (hour >= 12) ? \"PM\" : \"AM\";\n hour = (hour === 0) ? 12 : ((hour > 12) ? (hour - 12) : hour);\n minutes = fixDigits(minutes);\n //seconds = fixDigits(seconds);\n let time = hour + \":\" + minutes + \" \" + midday;\n\n return (\n {time}
\n\n );\n}\nfunction getApps() {\n let applications = require('./apps.json');\n return applications;\n}\nfunction getLinks() {\n let links = require('./links.json');\n return links;\n}\nfunction getProviders() {\n let providers = require('./providers.json');\n return providers;\n}\nfunction getThemes() {\n let themes = require('./themes.json');\n return themes;\n}\n\nfunction updateTheme(e) {\n var themes = getThemes();\n var themeName = e.target.innerHTML.toLowerCase();\n console.log(themes[0].name);\n}\n\nfunction handleKeyPress(e) {\n var sindex = 0;\n var cycle = false;\n var key = e.keyCode || e.which;\n var text = e.target.value.replaceAll(\"+\", \"%2B\");\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n if (key == 13) { // Search functions\n search(text);\n }\n if (key == 9) { // Tab Completion Functions\n e.preventDefault();\n e.stopPropagation();\n if (text[0] === ';') {\n switch (option) {\n case 't':\n var streamers = ['admiralbahroo', 'moonmoon_ow', 'witwix'];\n if (!subtext || cycle) {\n cycle = true;\n if (sindex > streamers.length - 1) sindex = 0;\n document.getElementById(\"keywords\").value = ';t ' + streamers[sindex++];\n return;\n }\n for (var streamer of streamers) {\n if (subtext === streamer.substr(0, subtext.length)) {\n document.getElementById(\"keywords\").value = ';t ' + streamer;\n return;\n }\n }\n break;\n }\n }\n }\n if(key == 32){ //Space to go to search\nupdateLabel(text);\n }\n sindex = 0;\n cycle = false;\n updateLabel(text);\n}\n\nfunction updateLabel(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n if (text[0] === '/') {\n// if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n document.getElementById(\"searchType\").innerHTML = \"Allmusic search\";\n break;\n case \"d\":\n document.getElementById(\"searchType\").innerHTML = \"Duck Duck Go search\";\n break;\n case \"di\":\n document.getElementById(\"searchType\").innerHTML = \"Discogs search\";\n break;\n case \"i\":\n document.getElementById(\"searchType\").innerHTML = \"IMDB search\";\n break;\n case \"m\":\n document.getElementById(\"searchType\").innerHTML = \"TheMovieDB search\";\n break;\n case \"r\":\n document.getElementById(\"searchType\").innerHTML = \"Reddit search\";\n break;\n case \"q\":\n document.getElementById(\"searchType\").innerHTML = \"Qwant search\";\n break;\n case \"so\":\n document.getElementById(\"searchType\").innerHTML = \"Soundcloud search\";\n break;\n case \"s\":\n document.getElementById(\"searchType\").innerHTML = \"Spotify search\";\n break;\n case \"tv\":\n document.getElementById(\"searchType\").innerHTML = \"TheTVDB search\";\n break;\n case \"t\":\n document.getElementById(\"searchType\").innerHTML = \"Trakt search\";\n break;\n case \"y\":\n document.getElementById(\"searchType\").innerHTML = \"YouTube search\";\n break;\n case \"w\":\n document.getElementById(\"searchType\").innerHTML = \"Wikipedia search\";\n break;\n case \"p\":\n document.getElementById(\"searchType\").innerHTML = \"Plex search\";\n break;\n case \"rt\":\n document.getElementById(\"searchType\").innerHTML = \"Rotten Tomatoes search\";\n break;\n default:\n document.getElementById(\"searchType\").innerHTML = \"Invalid search\";\n break;\n }\n}else {\n document.getElementById(\"searchType\").innerHTML = \"Google search\";\n }\n}\n\nfunction search(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n if (text[0] === '/') {\n if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n window.location = \"https://www.allmusic.com/search/all/\" + subtext;\n break;\n case \"d\":\n window.location = \"https://duckduckgo.com/?q=\" + subtext;\n break;\n case \"di\":\n window.location = \"https://www.discogs.com/search/?q=\" + subtext;\n break;\n case \"i\":\n window.location = \"https://www.imdb.com/find?q=\" + subtext;\n break;\n case \"m\":\n window.location = \"https://www.themoviedb.org/search?query=\" + subtext;\n break;\n case \"r\":\n window.location = \"https://www.reddit.com/search?q=\" + subtext;\n break;\n case \"q\":\n window.location = \"https://www.qwant.com/?q=\" + subtext;\n break;\n case \"so\":\n window.location = \"https://soundcloud.com/search?q=\" + subtext;\n break;\n case \"s\":\n window.location = \"https://open.spotify.com/search/results/\" + subtext;\n break;\n case \"t\":\n window.location = \"https://trakt.tv/search?query=\" + subtext;\n break;\n case \"tv\":\n window.location = \"https://www.thetvdb.com/search?query=\" + subtext;\n break;\n case \"y\":\n window.location = \"https://www.youtube.com/results?search_query=\" + subtext;\n break;\n case \"w\":\n window.location = \"https://en.wikipedia.org/w/index.php?search=\" + subtext;\n break;\n case \"p\":\n window.location = \"https://app.plex.tv/desktop/#!/search?query=\" + subtext;\n break;\n case \"rt\":\n window.location = \"https://www.rottentomatoes.com/search?search=\" + subtext;\n break;\n }\n } else {\n var option = text.substr(1);\n switch (option) {\n case \"d\":\n window.location = \"https://www.duckduckgo.com\";\n break;\n case \"y\":\n window.location = \"https://www.youtube.com\";\n break;\n case \"r\":\n window.location = \"https://reddit.com\";\n break;\n case \"s\":\n window.location = \"https://open.spotify.com\";\n break;\n }\n }\n } else if (validURL(text)) {\n if (containsProtocol(text))\n window.location = text;\n else\n window.location = \"https://\" + text;\n } else {\n window.location = \"https://www.google.com/search?q=\" + text;\n }\n}\n\n// Source: https://stackoverflow.com/questions/5717093/check-if-a-javascript-string-is-a-url\nfunction validURL(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/)?' + // protocol\n '((([a-z\\\\d]([a-z\\\\d-]*[a-z\\\\d])*)\\\\.)+[a-z]{2,}|' + // domain name\n '((\\\\d{1,3}\\\\.){3}\\\\d{1,3}))' + // OR ip (v4) address\n '(\\\\:\\\\d+)?(\\\\/[-a-z\\\\d%_.~+]*)*' + // port and path\n '(\\\\?[;&a-z\\\\d%_.~+=-]*)?' + // query string\n '(\\\\#[-a-z\\\\d_]*)?$', 'i'); // fragment locator\n return !!pattern.test(str);\n}\n\nfunction containsProtocol(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/){1}.*', 'i');\n return !!pattern.test(str);\n}\n\nString.prototype.replaceAll = function(search, replacement) {\n var target = this;\n return target.split(search).join(replacement);\n};"]},"metadata":{},"sourceType":"module"}
\ No newline at end of file
diff --git a/node_modules/.cache/babel-loader/a2ac7eb9d2059490ba58e3bf4dafd257.json b/node_modules/.cache/babel-loader/a2ac7eb9d2059490ba58e3bf4dafd257.json
new file mode 100644
index 00000000..d5bb85c1
--- /dev/null
+++ b/node_modules/.cache/babel-loader/a2ac7eb9d2059490ba58e3bf4dafd257.json
@@ -0,0 +1 @@
+{"ast":null,"code":"var _jsxFileName = \"/home/seanedmunds/dev/home-page/src/index.js\",\n _s = $RefreshSig$();\n\nimport React from 'react';\nimport { useState, useEffect } from 'react';\nimport ReactDOM from 'react-dom'; //import { unstable_createPortal } from 'react-dom';\n\nimport './index.css';\nimport { jsxDEV as _jsxDEV } from \"react/jsx-dev-runtime\";\n\nconst setValueFromLocalStorage = property => {\n let value = localStorage.getItem(property);\n setValue(property, value);\n};\n\nconst setValue = (property, value) => {\n if (value) {\n document.documentElement.style.setProperty(`--${property}`, value);\n const input = document.querySelector(`#${property}`);\n\n if (input) {\n value = value.replace('px', '');\n input.value = value;\n }\n }\n};\n\nfunction Homepage() {\n setTheme();\n return /*#__PURE__*/_jsxDEV(\"main\", {\n id: \"container\",\n className: \"fade\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Search, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 28,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 27,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Header, {\n date: date(),\n greet: greet()\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 31,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 30,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Applications, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 37,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 36,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Bookmarks, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 40,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 39,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(ModalMenu, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 43,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 42,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(ModalInit, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 46,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 45,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 26,\n columnNumber: 5\n }, this);\n}\n\n_c = Homepage;\n\nfunction Search() {\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"search\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"abackground\",\n children: [/*#__PURE__*/_jsxDEV(\"input\", {\n name: \"keywords\",\n type: \"text\",\n className: \"keyword\",\n id: \"keywords\",\n size: \"50\",\n spellCheck: \"true\",\n placeholder: \"\"\n /*onFocus={this.placeholder = \"\"} onBlur={this.placeholder = ''}*/\n ,\n autoComplete: \"off\",\n autoFocus: true,\n onKeyUp: handleKeyPress\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 56,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n id: \"searchType\",\n className: \"Input-label\",\n children: \"Google search\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 57,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 55,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 54,\n columnNumber: 5\n }, this);\n}\n\n_c2 = Search;\n\nfunction Header(props) {\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"header\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n id: \"greeting_block\",\n children: /*#__PURE__*/_jsxDEV(\"h1\", {\n id: \"header_greet\",\n children: props.greet\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 67,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 66,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"date_block\",\n children: [/*#__PURE__*/_jsxDEV(\"h2\", {\n id: \"header_date\",\n children: props.date\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 70,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(Clock, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 71,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 69,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 65,\n columnNumber: 5\n }, this);\n}\n\n_c3 = Header;\n\nfunction Applications() {\n let appList = getApps();\n var items = [];\n\n for (var i = 0; i < appList.apps.length; i++) {\n var safe = appList.apps[i].NSFW;\n var NSFWEnabled = localStorage.getItem(\"contenttype\");\n\n if (safe === \"SAFE\") {\n items.push( /*#__PURE__*/_jsxDEV(App, {\n name: appList.apps[i].name,\n url: appList.apps[i].url,\n icon: appList.apps[i].icon,\n NSFW: appList.apps[i].NSFW\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 85,\n columnNumber: 9\n }, this));\n } else if (safe === \"NSFW\" && NSFWEnabled) {\n items.push( /*#__PURE__*/_jsxDEV(App, {\n name: appList.apps[i].name,\n url: appList.apps[i].url,\n icon: appList.apps[i].icon,\n NSFW: appList.apps[i].NSFW\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 95,\n columnNumber: 9\n }, this));\n } else {}\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"apps\",\n children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n children: \"Applications\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 110,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"apps_loop\",\n children: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 111,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 109,\n columnNumber: 5\n }, this);\n}\n\n_c4 = Applications;\n\nfunction App(props) {\n let classNameType = props.NSFW + \"-content\";\n let hrefUrl = \"https://\" + props.url;\n let iconName = \"mdi-\" + props.icon;\n return /*#__PURE__*/_jsxDEV(\"div\", {\n className: classNameType,\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: hrefUrl,\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_item\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_icon\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify icon\",\n \"data-icon\": iconName\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 128,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 127,\n columnNumber: 13\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_text\",\n children: [/*#__PURE__*/_jsxDEV(\"span\", {\n id: \"app-name\",\n children: props.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 131,\n columnNumber: 15\n }, this), /*#__PURE__*/_jsxDEV(\"span\", {\n id: \"app-address\",\n children: props.url\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 132,\n columnNumber: 15\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 130,\n columnNumber: 13\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 126,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 125,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 124,\n columnNumber: 7\n }, this);\n}\n\n_c5 = App;\n\nfunction Bookmarks() {\n let bookmarkList = getLinks();\n var items = [];\n\n for (var i = 0; i < bookmarkList.bookmarks.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(LinkGroups, {\n category: bookmarkList.bookmarks[i].category,\n links: bookmarkList.bookmarks[i].links\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 145,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"links\",\n children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n children: \"Bookmarks\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 154,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"links_loop\",\n children: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 155,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 153,\n columnNumber: 5\n }, this);\n}\n\n_c6 = Bookmarks;\n\nfunction LinkGroups(props) {\n var items = [];\n\n for (var i = 0; i < props.links.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(LinkItem, {\n link: props.links[i]\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 166,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"links_item\",\n children: [/*#__PURE__*/_jsxDEV(\"h4\", {\n children: props.category\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 174,\n columnNumber: 7\n }, this), items]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 173,\n columnNumber: 5\n }, this);\n}\n\n_c7 = LinkGroups;\n\nfunction LinkItem(props) {\n return /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: props.link.url,\n className: \"theme_color-border theme_text-select\",\n children: props.link.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 183,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 182,\n columnNumber: 5\n }, this);\n}\n\n_c8 = LinkItem;\n\nfunction ModalMenu() {\n var providers = getProviders();\n var items = [];\n\n for (var i = 0; i < providers.providers.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(Provider, {\n provider: providers.providers[i]\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 193,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"modal\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n children: [/*#__PURE__*/_jsxDEV(\"header\", {\n id: \"modal-header\",\n children: [/*#__PURE__*/_jsxDEV(\"h1\", {\n children: \"Options\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 203,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n href: \"#\",\n title: \"Close\",\n className: \"modal-close\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-close\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 205,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 204,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 202,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"h2\", {\n children: \"Color themes\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 209,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"modal-theme\",\n children: [/*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"blackboard\",\n className: \"theme-button theme-blackboard\",\n onClick: updateTheme,\n children: \"Blackboard\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 212,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"gazette\",\n className: \"theme-button theme-gazette\",\n onClick: updateTheme,\n children: \"Gazette\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 213,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"espresso\",\n className: \"theme-button theme-espresso\",\n onClick: updateTheme,\n children: \"Espresso\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 214,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cab\",\n className: \"theme-button theme-cab\",\n onClick: updateTheme,\n children: \"Cab\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 215,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cloud\",\n className: \"theme-button theme-cloud\",\n onClick: updateTheme,\n children: \"Cloud\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 216,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"lime\",\n className: \"theme-button theme-lime\",\n onClick: updateTheme,\n children: \"Lime\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 217,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"passion\",\n className: \"theme-button theme-passion\",\n onClick: updateTheme,\n children: \"Passion\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 218,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"blues\",\n className: \"theme-button theme-blues\",\n onClick: updateTheme,\n children: \"Blues\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 219,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"chalk\",\n className: \"theme-button theme-chalk\",\n onClick: updateTheme,\n children: \"Chalk\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 220,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"tron\",\n className: \"theme-button theme-tron\",\n onClick: updateTheme,\n children: \"Tron\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 221,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"paper\",\n className: \"theme-button theme-paper\",\n onClick: updateTheme,\n children: \"Paper\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 222,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cyberpunk\",\n className: \"theme-button theme-cyberpunk\",\n onClick: updateTheme,\n children: \"Cyberpunk\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 223,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"quadra\",\n className: \"theme-button theme-panam\",\n onClick: updateTheme,\n children: \"Quadra\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 224,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"panam\",\n className: \"theme-button theme-panam\",\n onClick: updateTheme,\n children: \"Panam\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 225,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"touch\",\n className: \"theme-button theme-touch\",\n onClick: updateTheme,\n children: \"Touch\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 226,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"peek\",\n className: \"theme-button theme-peek\",\n onClick: updateTheme,\n children: \"Peek\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 227,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 211,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"h2\", {\n children: \"Search options\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 231,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"providers\",\n children: /*#__PURE__*/_jsxDEV(\"table\", {\n children: /*#__PURE__*/_jsxDEV(\"tbody\", {\n children: [/*#__PURE__*/_jsxDEV(\"tr\", {\n children: [/*#__PURE__*/_jsxDEV(\"th\", {\n children: \"Website\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 236,\n columnNumber: 19\n }, this), /*#__PURE__*/_jsxDEV(\"th\", {\n children: \"Prefix\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 237,\n columnNumber: 19\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 235,\n columnNumber: 17\n }, this), items]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 234,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 233,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 232,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"header\", {\n id: \"modal-footer\",\n children: [/*#__PURE__*/_jsxDEV(\"a\", {\n href: \"https://github.com/jeroenpardon/\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-github-box\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 245,\n columnNumber: 54\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 245,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n href: \"https://materialdesignicons.com/\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-material-design\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 246,\n columnNumber: 54\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 246,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"sneaky\",\n children: [/*#__PURE__*/_jsxDEV(\"input\", {\n type: \"checkbox\",\n id: \"contenttype\",\n onChange: udpateDisplayedItems\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 247,\n columnNumber: 35\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n for: \"contenttype\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-domino-mask\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 248,\n columnNumber: 36\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 248,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 247,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 244,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 201,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 200,\n columnNumber: 5\n }, this);\n}\n\n_c9 = ModalMenu;\n\nfunction Provider(props) {\n return /*#__PURE__*/_jsxDEV(\"tr\", {\n children: [/*#__PURE__*/_jsxDEV(\"td\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: props.provider.url,\n children: props.provider.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 258,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 258,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"td\", {\n children: props.provider.prefix\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 259,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 257,\n columnNumber: 5\n }, this);\n}\n\n_c10 = Provider;\n\nfunction ModalInit() {\n setDisplayedItems();\n return /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"modal_init\",\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n className: \"btn\",\n href: \"#modal\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify icon\",\n \"data-icon\": \"mdi-xbox-controller-menu\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 269,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 268,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 267,\n columnNumber: 5\n }, this);\n}\n\n_c11 = ModalInit;\nReactDOM.render( /*#__PURE__*/_jsxDEV(Homepage, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 276,\n columnNumber: 3\n}, this), document.getElementById('root')); //Functions below this line are for calculating data for\n//other functions\n\nfunction date() {\n let currentDate = new Date();\n let dateOptions = {\n weekday: \"long\",\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\"\n };\n let date = currentDate.toLocaleDateString(\"en-GB\", dateOptions);\n return date;\n}\n\nfunction fixDigits(k) {\n if (k < 10) {\n return \"0\" + k;\n } else {\n return k;\n }\n}\n\nfunction greet() {\n let currentTime = new Date();\n let greet = Math.floor(currentTime.getHours() / 6);\n let easterEggChance = Math.floor(Math.random() * 100);\n\n let greetings = require('./messages.json');\n\n let timeBased = [];\n let easterEggs = [];\n\n for (var i = 0; i < greetings.messages.length; i++) {\n if (greetings.messages[i].easteregg === \"FALSE\") {\n timeBased = timeBased.concat(greetings.messages[i]);\n } else {\n easterEggs = easterEggs.concat(greetings.messages[i]);\n }\n }\n\n if (easterEggChance > 10) {\n return timeBased[greet].message;\n } else {\n let easterEggText = Math.floor(Math.random() * easterEggs.length);\n return easterEggs[easterEggText].message;\n }\n}\n\nfunction Clock() {\n _s();\n\n const [date, setDate] = useState(new Date());\n\n function refreshClock() {\n setDate(new Date());\n }\n\n useEffect(() => {\n const timerId = setInterval(refreshClock, 1000);\n return function cleanup() {\n clearInterval(timerId);\n };\n }, []);\n var hour = date.getHours();\n var minutes = date.getMinutes(); //var seconds = date.getSeconds();\n\n var midday = \"AM\";\n midday = hour >= 12 ? \"PM\" : \"AM\";\n hour = hour === 0 ? 12 : hour > 12 ? hour - 12 : hour;\n minutes = fixDigits(minutes); //seconds = fixDigits(seconds);\n\n let time = hour + \":\" + minutes + \" \" + midday;\n return /*#__PURE__*/_jsxDEV(\"h2\", {\n id: \"clock\",\n children: time\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 347,\n columnNumber: 5\n }, this);\n}\n\n_s(Clock, \"Gqi45WOZhU2c0BLYX0HoJeiR0fk=\");\n\n_c12 = Clock;\n\nfunction getApps() {\n let applications = require('./apps.json');\n\n return applications;\n}\n\nfunction getLinks() {\n let links = require('./links.json');\n\n return links;\n}\n\nfunction getProviders() {\n let providers = require('./providers.json');\n\n return providers;\n}\n\nfunction getThemes() {\n let themes = require('./themes.json');\n\n return themes;\n}\n\nfunction updateTheme(e) {\n var themes = getThemes();\n var themeName = e.target.innerHTML.toLowerCase();\n var index = themes.themes.findIndex(function (item, i) {\n return item.name === themeName;\n });\n console.log(themes.themes[index]);\n localStorage.setItem(\"image-background\", themes.themes[index].imagebackground);\n localStorage.setItem(\"color-background\", themes.themes[index].colorbackground);\n localStorage.setItem(\"color-search-background\", themes.themes[index].colorserachbackground);\n localStorage.setItem(\"color-text-pri\", themes.themes[index].colortextpri);\n localStorage.setItem(\"color-text-acc\", themes.themes[index].colortextacc);\n localStorage.setItem(\"color-border\", themes.themes[index].colorborder); //document.documentElement.style.setProperty(prop, `var(--${themeName}${prop.substring(10)})`);\n\n setTheme();\n}\n\nfunction setTheme() {\n setValueFromLocalStorage('image-background');\n setValueFromLocalStorage('color-background');\n setValueFromLocalStorage('color-search-background');\n setValueFromLocalStorage('color-text-pri');\n setValueFromLocalStorage('color-text-acc');\n setValueFromLocalStorage('color-border');\n setValueFromLocalStorage('content-display');\n}\n\nfunction handleKeyPress(e) {\n var sindex = 0;\n var cycle = false;\n var key = e.keyCode || e.which;\n var text = e.target.value.replaceAll(\"+\", \"%2B\");\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n\n if (key == 13) {\n // Search functions\n search(text);\n }\n\n if (key == 9) {\n // Tab Completion Functions\n e.preventDefault();\n e.stopPropagation();\n\n if (text[0] === ';') {\n switch (option) {\n case 't':\n var streamers = ['admiralbahroo', 'moonmoon_ow', 'witwix'];\n\n if (!subtext || cycle) {\n cycle = true;\n if (sindex > streamers.length - 1) sindex = 0;\n document.getElementById(\"keywords\").value = ';t ' + streamers[sindex++];\n return;\n }\n\n for (var streamer of streamers) {\n if (subtext === streamer.substr(0, subtext.length)) {\n document.getElementById(\"keywords\").value = ';t ' + streamer;\n return;\n }\n }\n\n break;\n }\n }\n }\n\n if (key == 32) {\n //Space to go to search\n updateLabel(text);\n }\n\n sindex = 0;\n cycle = false;\n updateLabel(text);\n}\n\nfunction updateLabel(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n\n if (text[0] === '/') {\n // if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n document.getElementById(\"searchType\").innerHTML = \"Allmusic search\";\n break;\n\n case \"d\":\n document.getElementById(\"searchType\").innerHTML = \"Duck Duck Go search\";\n break;\n\n case \"di\":\n document.getElementById(\"searchType\").innerHTML = \"Discogs search\";\n break;\n\n case \"i\":\n document.getElementById(\"searchType\").innerHTML = \"IMDB search\";\n break;\n\n case \"m\":\n document.getElementById(\"searchType\").innerHTML = \"TheMovieDB search\";\n break;\n\n case \"r\":\n document.getElementById(\"searchType\").innerHTML = \"Reddit search\";\n break;\n\n case \"q\":\n document.getElementById(\"searchType\").innerHTML = \"Qwant search\";\n break;\n\n case \"so\":\n document.getElementById(\"searchType\").innerHTML = \"Soundcloud search\";\n break;\n\n case \"s\":\n document.getElementById(\"searchType\").innerHTML = \"Spotify search\";\n break;\n\n case \"tv\":\n document.getElementById(\"searchType\").innerHTML = \"TheTVDB search\";\n break;\n\n case \"t\":\n document.getElementById(\"searchType\").innerHTML = \"Trakt search\";\n break;\n\n case \"y\":\n document.getElementById(\"searchType\").innerHTML = \"YouTube search\";\n break;\n\n case \"w\":\n document.getElementById(\"searchType\").innerHTML = \"Wikipedia search\";\n break;\n\n case \"p\":\n document.getElementById(\"searchType\").innerHTML = \"Plex search\";\n break;\n\n case \"rt\":\n document.getElementById(\"searchType\").innerHTML = \"Rotten Tomatoes search\";\n break;\n\n default:\n document.getElementById(\"searchType\").innerHTML = \"Invalid search\";\n break;\n }\n } else {\n document.getElementById(\"searchType\").innerHTML = \"Google search\";\n }\n}\n\nfunction search(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n\n if (text[0] === '/') {\n if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n window.location = \"https://www.allmusic.com/search/all/\" + subtext;\n break;\n\n case \"d\":\n window.location = \"https://duckduckgo.com/?q=\" + subtext;\n break;\n\n case \"di\":\n window.location = \"https://www.discogs.com/search/?q=\" + subtext;\n break;\n\n case \"i\":\n window.location = \"https://www.imdb.com/find?q=\" + subtext;\n break;\n\n case \"m\":\n window.location = \"https://www.themoviedb.org/search?query=\" + subtext;\n break;\n\n case \"r\":\n window.location = \"https://www.reddit.com/search?q=\" + subtext;\n break;\n\n case \"q\":\n window.location = \"https://www.qwant.com/?q=\" + subtext;\n break;\n\n case \"so\":\n window.location = \"https://soundcloud.com/search?q=\" + subtext;\n break;\n\n case \"s\":\n window.location = \"https://open.spotify.com/search/results/\" + subtext;\n break;\n\n case \"t\":\n window.location = \"https://trakt.tv/search?query=\" + subtext;\n break;\n\n case \"tv\":\n window.location = \"https://www.thetvdb.com/search?query=\" + subtext;\n break;\n\n case \"y\":\n window.location = \"https://www.youtube.com/results?search_query=\" + subtext;\n break;\n\n case \"w\":\n window.location = \"https://en.wikipedia.org/w/index.php?search=\" + subtext;\n break;\n\n case \"p\":\n window.location = \"https://app.plex.tv/desktop/#!/search?query=\" + subtext;\n break;\n\n case \"rt\":\n window.location = \"https://www.rottentomatoes.com/search?search=\" + subtext;\n break;\n }\n } else {\n var option = text.substr(1);\n\n switch (option) {\n case \"d\":\n window.location = \"https://www.duckduckgo.com\";\n break;\n\n case \"y\":\n window.location = \"https://www.youtube.com\";\n break;\n\n case \"r\":\n window.location = \"https://reddit.com\";\n break;\n\n case \"s\":\n window.location = \"https://open.spotify.com\";\n break;\n }\n }\n } else if (validURL(text)) {\n if (containsProtocol(text)) window.location = text;else window.location = \"https://\" + text;\n } else {\n window.location = \"https://www.google.com/search?q=\" + text;\n }\n} // Source: https://stackoverflow.com/questions/5717093/check-if-a-javascript-string-is-a-url\n\n\nfunction validURL(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/)?' + // protocol\n '((([a-z\\\\d]([a-z\\\\d-]*[a-z\\\\d])*)\\\\.)+[a-z]{2,}|' + // domain name\n '((\\\\d{1,3}\\\\.){3}\\\\d{1,3}))' + // OR ip (v4) address\n '(\\\\:\\\\d+)?(\\\\/[-a-z\\\\d%_.~+]*)*' + // port and path\n '(\\\\?[;&a-z\\\\d%_.~+=-]*)?' + // query string\n '(\\\\#[-a-z\\\\d_]*)?$', 'i'); // fragment locator\n\n return !!pattern.test(str);\n}\n\nfunction containsProtocol(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/){1}.*', 'i');\n return !!pattern.test(str);\n}\n\nString.prototype.replaceAll = function (search, replacement) {\n var target = this;\n return target.split(search).join(replacement);\n};\n\nfunction udpateDisplayedItems(e) {\n localStorage.setItem('contenttype', e.target.checked);\n\n if (e.target.checked) {\n localStorage.setItem('content-display', 'none');\n } else {\n localStorage.setItem('content-display', 'block');\n }\n\n setDisplayedItems();\n}\n\nfunction setDisplayedItems() {\n setValueFromLocalStorage('contenttype');\n setValueFromLocalStorage('content-display');\n var checked = localStorage.getItem(\"contenttype\"); //document.getElementById('contenttype').checked = checked;\n}\n\nvar _c, _c2, _c3, _c4, _c5, _c6, _c7, _c8, _c9, _c10, _c11, _c12;\n\n$RefreshReg$(_c, \"Homepage\");\n$RefreshReg$(_c2, \"Search\");\n$RefreshReg$(_c3, \"Header\");\n$RefreshReg$(_c4, \"Applications\");\n$RefreshReg$(_c5, \"App\");\n$RefreshReg$(_c6, \"Bookmarks\");\n$RefreshReg$(_c7, \"LinkGroups\");\n$RefreshReg$(_c8, \"LinkItem\");\n$RefreshReg$(_c9, \"ModalMenu\");\n$RefreshReg$(_c10, \"Provider\");\n$RefreshReg$(_c11, \"ModalInit\");\n$RefreshReg$(_c12, \"Clock\");","map":{"version":3,"sources":["/home/seanedmunds/dev/home-page/src/index.js"],"names":["React","useState","useEffect","ReactDOM","setValueFromLocalStorage","property","value","localStorage","getItem","setValue","document","documentElement","style","setProperty","input","querySelector","replace","Homepage","setTheme","date","greet","Search","handleKeyPress","Header","props","Applications","appList","getApps","items","i","apps","length","safe","NSFW","NSFWEnabled","push","name","url","icon","App","classNameType","hrefUrl","iconName","Bookmarks","bookmarkList","getLinks","bookmarks","category","links","LinkGroups","LinkItem","link","ModalMenu","providers","getProviders","updateTheme","udpateDisplayedItems","Provider","provider","prefix","ModalInit","setDisplayedItems","render","getElementById","currentDate","Date","dateOptions","weekday","year","month","day","toLocaleDateString","fixDigits","k","currentTime","Math","floor","getHours","easterEggChance","random","greetings","require","timeBased","easterEggs","messages","easteregg","concat","message","easterEggText","Clock","setDate","refreshClock","timerId","setInterval","cleanup","clearInterval","hour","minutes","getMinutes","midday","time","applications","getThemes","themes","e","themeName","target","innerHTML","toLowerCase","index","findIndex","item","console","log","setItem","imagebackground","colorbackground","colorserachbackground","colortextpri","colortextacc","colorborder","sindex","cycle","key","keyCode","which","text","replaceAll","option","substr","indexOf","subtext","search","preventDefault","stopPropagation","streamers","streamer","updateLabel","window","location","validURL","containsProtocol","str","pattern","RegExp","test","String","prototype","replacement","split","join","checked"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { useState, useEffect } from 'react';\nimport ReactDOM from 'react-dom';\n//import { unstable_createPortal } from 'react-dom';\nimport './index.css';\n\nconst setValueFromLocalStorage = property => {\n let value = localStorage.getItem(property);\n setValue(property, value);\n};\nconst setValue = (property, value) => {\n if (value) {\n document.documentElement.style.setProperty(`--${property}`, value);\n\n const input = document.querySelector(`#${property}`);\n if (input) {\n value = value.replace('px', '');\n input.value = value;\n }\n }\n};\n\nfunction Homepage() {\n setTheme();\n return (\n \n \n \n
\n \n \n
\n \n \n \n
\n \n \n
\n \n \n
\n \n );\n}\n\nfunction Search() {\n return (\n \n )\n}\n\nfunction Header(props) {\n return (\n \n );\n}\n\nfunction Applications() {\n let appList = getApps();\n var items = [];\n for (var i = 0; i < appList.apps.length; i++) {\n var safe = appList.apps[i].NSFW;\n var NSFWEnabled = localStorage.getItem(\"contenttype\");\n if (safe === \"SAFE\") {\n items.push(\n \n );\n } else if (safe === \"NSFW\" && NSFWEnabled) {\n items.push(\n \n );\n } else {\n \n }\n \n }\n return (\n \n Applications
\n \n {items}\n
\n \n );\n}\n\nfunction App(props) {\n \n let classNameType = props.NSFW + \"-content\";\n let hrefUrl = \"https://\" + props.url;\n let iconName = \"mdi-\" + props.icon;\n return (\n \n );\n}\n\nfunction Bookmarks() {\n let bookmarkList = getLinks();\n var items = [];\n for (var i = 0; i < bookmarkList.bookmarks.length; i++) {\n items.push(\n \n );\n }\n return (\n \n Bookmarks
\n \n {items}\n
\n \n );\n}\n\nfunction LinkGroups(props) {\n var items = [];\n for (var i = 0; i < props.links.length; i++) {\n items.push(\n \n );\n }\n return (\n \n
{props.category}
\n {items}\n \n );\n}\n\nfunction LinkItem(props) {\n return (\n \n );\n}\n\nfunction ModalMenu() {\n var providers = getProviders();\n var items = [];\n for (var i = 0; i < providers.providers.length; i++) {\n items.push(\n \n );\n }\n return (\n \n \n \n\n
Color themes
\n\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n\n\n
Search options
\n
\n \n \n \n | Website | \n Prefix | \n
\n {items}\n \n
\n \n\n \n
\n \n );\n}\n\nfunction Provider(props) {\n return (\n \n | {props.provider.name} | \n {props.provider.prefix} | \n
\n );\n}\n\nfunction ModalInit() {\n setDisplayedItems();\n return (\n \n );\n}\n\nReactDOM.render(\n ,\n document.getElementById('root')\n);\n\n//Functions below this line are for calculating data for\n//other functions\n\nfunction date() {\n let currentDate = new Date();\n let dateOptions = {\n weekday: \"long\",\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\"\n };\n let date = currentDate.toLocaleDateString(\"en-GB\", dateOptions);\n return date;\n}\nfunction fixDigits(k) {\n if (k < 10) {\n return \"0\" + k;\n }\n else {\n return k;\n }\n}\nfunction greet() {\n let currentTime = new Date();\n let greet = Math.floor(currentTime.getHours() / 6);\n let easterEggChance = Math.floor(Math.random() * 100);\n let greetings = require('./messages.json');\n let timeBased = [];\n let easterEggs = [];\n for (var i = 0; i < greetings.messages.length; i++) {\n if (greetings.messages[i].easteregg === \"FALSE\") {\n timeBased = timeBased.concat(greetings.messages[i]);\n } else {\n easterEggs = easterEggs.concat(greetings.messages[i]);\n }\n }\n if (easterEggChance > 10) {\n return timeBased[greet].message;\n } else {\n let easterEggText = Math.floor(Math.random() * easterEggs.length);\n return easterEggs[easterEggText].message;\n }\n}\nfunction Clock() {\n const [date, setDate] = useState(new Date());\n\n function refreshClock() {\n setDate(new Date());\n }\n useEffect(() => {\n const timerId = setInterval(refreshClock, 1000);\n return function cleanup() {\n clearInterval(timerId);\n };\n }, []);\n\n var hour = date.getHours();\n var minutes = date.getMinutes();\n //var seconds = date.getSeconds();\n var midday = \"AM\";\n midday = (hour >= 12) ? \"PM\" : \"AM\";\n hour = (hour === 0) ? 12 : ((hour > 12) ? (hour - 12) : hour);\n minutes = fixDigits(minutes);\n //seconds = fixDigits(seconds);\n let time = hour + \":\" + minutes + \" \" + midday;\n\n return (\n {time}
\n\n );\n}\nfunction getApps() {\n let applications = require('./apps.json');\n return applications;\n}\nfunction getLinks() {\n let links = require('./links.json');\n return links;\n}\nfunction getProviders() {\n let providers = require('./providers.json');\n return providers;\n}\nfunction getThemes() {\n let themes = require('./themes.json');\n return themes;\n}\n\nfunction updateTheme(e) {\n var themes = getThemes();\n var themeName = e.target.innerHTML.toLowerCase();\n var index = themes.themes.findIndex(function(item, i){\n return item.name === themeName\n });\n console.log(themes.themes[index]);\n localStorage.setItem(\"image-background\", themes.themes[index].imagebackground);\n localStorage.setItem(\"color-background\", themes.themes[index].colorbackground);\n localStorage.setItem(\"color-search-background\", themes.themes[index].colorserachbackground);\n localStorage.setItem(\"color-text-pri\",themes.themes[index].colortextpri);\n localStorage.setItem(\"color-text-acc\", themes.themes[index].colortextacc);\n localStorage.setItem(\"color-border\", themes.themes[index].colorborder);\n \n //document.documentElement.style.setProperty(prop, `var(--${themeName}${prop.substring(10)})`);\n setTheme();\n}\n\nfunction setTheme() {\n setValueFromLocalStorage('image-background');\n setValueFromLocalStorage('color-background');\n setValueFromLocalStorage('color-search-background');\n setValueFromLocalStorage('color-text-pri');\n setValueFromLocalStorage('color-text-acc');\n setValueFromLocalStorage('color-border');\n setValueFromLocalStorage('content-display');\n}\n\nfunction handleKeyPress(e) {\n var sindex = 0;\n var cycle = false;\n var key = e.keyCode || e.which;\n var text = e.target.value.replaceAll(\"+\", \"%2B\");\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n if (key == 13) { // Search functions\n search(text);\n }\n if (key == 9) { // Tab Completion Functions\n e.preventDefault();\n e.stopPropagation();\n if (text[0] === ';') {\n switch (option) {\n case 't':\n var streamers = ['admiralbahroo', 'moonmoon_ow', 'witwix'];\n if (!subtext || cycle) {\n cycle = true;\n if (sindex > streamers.length - 1) sindex = 0;\n document.getElementById(\"keywords\").value = ';t ' + streamers[sindex++];\n return;\n }\n for (var streamer of streamers) {\n if (subtext === streamer.substr(0, subtext.length)) {\n document.getElementById(\"keywords\").value = ';t ' + streamer;\n return;\n }\n }\n break;\n }\n }\n }\n if(key == 32){ //Space to go to search\nupdateLabel(text);\n }\n sindex = 0;\n cycle = false;\n updateLabel(text);\n}\n\nfunction updateLabel(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n if (text[0] === '/') {\n// if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n document.getElementById(\"searchType\").innerHTML = \"Allmusic search\";\n break;\n case \"d\":\n document.getElementById(\"searchType\").innerHTML = \"Duck Duck Go search\";\n break;\n case \"di\":\n document.getElementById(\"searchType\").innerHTML = \"Discogs search\";\n break;\n case \"i\":\n document.getElementById(\"searchType\").innerHTML = \"IMDB search\";\n break;\n case \"m\":\n document.getElementById(\"searchType\").innerHTML = \"TheMovieDB search\";\n break;\n case \"r\":\n document.getElementById(\"searchType\").innerHTML = \"Reddit search\";\n break;\n case \"q\":\n document.getElementById(\"searchType\").innerHTML = \"Qwant search\";\n break;\n case \"so\":\n document.getElementById(\"searchType\").innerHTML = \"Soundcloud search\";\n break;\n case \"s\":\n document.getElementById(\"searchType\").innerHTML = \"Spotify search\";\n break;\n case \"tv\":\n document.getElementById(\"searchType\").innerHTML = \"TheTVDB search\";\n break;\n case \"t\":\n document.getElementById(\"searchType\").innerHTML = \"Trakt search\";\n break;\n case \"y\":\n document.getElementById(\"searchType\").innerHTML = \"YouTube search\";\n break;\n case \"w\":\n document.getElementById(\"searchType\").innerHTML = \"Wikipedia search\";\n break;\n case \"p\":\n document.getElementById(\"searchType\").innerHTML = \"Plex search\";\n break;\n case \"rt\":\n document.getElementById(\"searchType\").innerHTML = \"Rotten Tomatoes search\";\n break;\n default:\n document.getElementById(\"searchType\").innerHTML = \"Invalid search\";\n break;\n }\n}else {\n document.getElementById(\"searchType\").innerHTML = \"Google search\";\n }\n}\n\nfunction search(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n if (text[0] === '/') {\n if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n window.location = \"https://www.allmusic.com/search/all/\" + subtext;\n break;\n case \"d\":\n window.location = \"https://duckduckgo.com/?q=\" + subtext;\n break;\n case \"di\":\n window.location = \"https://www.discogs.com/search/?q=\" + subtext;\n break;\n case \"i\":\n window.location = \"https://www.imdb.com/find?q=\" + subtext;\n break;\n case \"m\":\n window.location = \"https://www.themoviedb.org/search?query=\" + subtext;\n break;\n case \"r\":\n window.location = \"https://www.reddit.com/search?q=\" + subtext;\n break;\n case \"q\":\n window.location = \"https://www.qwant.com/?q=\" + subtext;\n break;\n case \"so\":\n window.location = \"https://soundcloud.com/search?q=\" + subtext;\n break;\n case \"s\":\n window.location = \"https://open.spotify.com/search/results/\" + subtext;\n break;\n case \"t\":\n window.location = \"https://trakt.tv/search?query=\" + subtext;\n break;\n case \"tv\":\n window.location = \"https://www.thetvdb.com/search?query=\" + subtext;\n break;\n case \"y\":\n window.location = \"https://www.youtube.com/results?search_query=\" + subtext;\n break;\n case \"w\":\n window.location = \"https://en.wikipedia.org/w/index.php?search=\" + subtext;\n break;\n case \"p\":\n window.location = \"https://app.plex.tv/desktop/#!/search?query=\" + subtext;\n break;\n case \"rt\":\n window.location = \"https://www.rottentomatoes.com/search?search=\" + subtext;\n break;\n }\n } else {\n var option = text.substr(1);\n switch (option) {\n case \"d\":\n window.location = \"https://www.duckduckgo.com\";\n break;\n case \"y\":\n window.location = \"https://www.youtube.com\";\n break;\n case \"r\":\n window.location = \"https://reddit.com\";\n break;\n case \"s\":\n window.location = \"https://open.spotify.com\";\n break;\n }\n }\n } else if (validURL(text)) {\n if (containsProtocol(text))\n window.location = text;\n else\n window.location = \"https://\" + text;\n } else {\n window.location = \"https://www.google.com/search?q=\" + text;\n }\n}\n\n// Source: https://stackoverflow.com/questions/5717093/check-if-a-javascript-string-is-a-url\nfunction validURL(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/)?' + // protocol\n '((([a-z\\\\d]([a-z\\\\d-]*[a-z\\\\d])*)\\\\.)+[a-z]{2,}|' + // domain name\n '((\\\\d{1,3}\\\\.){3}\\\\d{1,3}))' + // OR ip (v4) address\n '(\\\\:\\\\d+)?(\\\\/[-a-z\\\\d%_.~+]*)*' + // port and path\n '(\\\\?[;&a-z\\\\d%_.~+=-]*)?' + // query string\n '(\\\\#[-a-z\\\\d_]*)?$', 'i'); // fragment locator\n return !!pattern.test(str);\n}\n\nfunction containsProtocol(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/){1}.*', 'i');\n return !!pattern.test(str);\n}\n\nString.prototype.replaceAll = function(search, replacement) {\n var target = this;\n return target.split(search).join(replacement);\n};\n\nfunction udpateDisplayedItems(e) {\n localStorage.setItem('contenttype', e.target.checked);\n if (e.target.checked) {\n localStorage.setItem('content-display', 'none');\n } else {\n localStorage.setItem('content-display', 'block');\n }\n setDisplayedItems();\n}\nfunction setDisplayedItems() {\n setValueFromLocalStorage('contenttype');\n setValueFromLocalStorage('content-display');\n var checked = localStorage.getItem(\"contenttype\");\n //document.getElementById('contenttype').checked = checked;\n}"]},"metadata":{},"sourceType":"module"}
\ No newline at end of file
diff --git a/node_modules/.cache/babel-loader/a3ae71b73bc2e2a947fe5a579bfae62f.json b/node_modules/.cache/babel-loader/a3ae71b73bc2e2a947fe5a579bfae62f.json
new file mode 100644
index 00000000..32590165
--- /dev/null
+++ b/node_modules/.cache/babel-loader/a3ae71b73bc2e2a947fe5a579bfae62f.json
@@ -0,0 +1 @@
+{"ast":null,"code":"var _jsxFileName = \"/home/seanedmunds/dev/home-page/src/index.js\",\n _s = $RefreshSig$();\n\nimport React from 'react';\nimport { useState, useEffect } from 'react';\nimport ReactDOM from 'react-dom'; //import { unstable_createPortal } from 'react-dom';\n\nimport './index.css';\nimport './search.js';\nimport { jsxDEV as _jsxDEV } from \"react/jsx-dev-runtime\";\n\nfunction Homepage() {\n return /*#__PURE__*/_jsxDEV(\"main\", {\n id: \"container\",\n className: \"fade\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Search, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 12,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 11,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Header, {\n date: date(),\n greet: greet()\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 15,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 14,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Applications, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 21,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 20,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Bookmarks, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 24,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 23,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(ModalMenu, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 27,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 26,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(ModalInit, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 30,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 29,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 10,\n columnNumber: 5\n }, this);\n}\n\n_c = Homepage;\n\nfunction Search() {\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"search\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"abackground\",\n children: [/*#__PURE__*/_jsxDEV(\"input\", {\n name: \"keywords\",\n type: \"text\",\n className: \"keyword\",\n id: \"keywords\",\n size: \"50\",\n spellCheck: \"true\",\n placeholder: \"\"\n /*onFocus={this.placeholder = \"\"} onBlur={this.placeholder = ''}*/\n ,\n autoComplete: \"off\",\n autoFocus: \"true\",\n onKeyUp: handleKeyPress(event)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 40,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n id: \"searchType\",\n className: \"Input-label\",\n children: \"Google search\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 41,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 39,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 38,\n columnNumber: 5\n }, this);\n}\n\n_c2 = Search;\n\nfunction Header(props) {\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"header\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n id: \"greeting_block\",\n children: /*#__PURE__*/_jsxDEV(\"h1\", {\n id: \"header_greet\",\n children: props.greet\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 51,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 50,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"date_block\",\n children: [/*#__PURE__*/_jsxDEV(\"h2\", {\n id: \"header_date\",\n children: props.date\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 54,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(Clock, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 55,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 53,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 49,\n columnNumber: 5\n }, this);\n}\n\n_c3 = Header;\n\nfunction Applications() {\n let appList = getApps();\n var items = [];\n\n for (var i = 0; i < appList.apps.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(App, {\n name: appList.apps[i].name,\n url: appList.apps[i].url,\n icon: appList.apps[i].icon,\n NSFW: appList.apps[i].NSFW\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 66,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"apps\",\n children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n children: \"Applications\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 77,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"apps_loop\",\n children: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 78,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 76,\n columnNumber: 5\n }, this);\n}\n\n_c4 = Applications;\n\nfunction App(props) {\n let classNameType = props.NSFW + \"-content\";\n let hrefUrl = \"https://\" + props.url;\n let iconName = \"mdi-\" + props.icon;\n return /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: hrefUrl,\n className: classNameType,\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_item\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_icon\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify icon\",\n \"data-icon\": iconName\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 94,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 93,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_text\",\n children: [/*#__PURE__*/_jsxDEV(\"span\", {\n id: \"app-name\",\n children: props.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 97,\n columnNumber: 13\n }, this), /*#__PURE__*/_jsxDEV(\"span\", {\n id: \"app-address\",\n children: props.url\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 98,\n columnNumber: 13\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 96,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 92,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 91,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 90,\n columnNumber: 5\n }, this);\n}\n\n_c5 = App;\n\nfunction Bookmarks() {\n let bookmarkList = getLinks();\n var items = [];\n\n for (var i = 0; i < bookmarkList.bookmarks.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(LinkGroups, {\n category: bookmarkList.bookmarks[i].category,\n links: bookmarkList.bookmarks[i].links\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 111,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"links\",\n children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n children: \"Bookmarks\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 120,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"links_loop\",\n children: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 121,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 119,\n columnNumber: 5\n }, this);\n}\n\n_c6 = Bookmarks;\n\nfunction LinkGroups(props) {\n var items = [];\n\n for (var i = 0; i < props.links.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(LinkItem, {\n link: props.links[i]\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 132,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"links_item\",\n children: [/*#__PURE__*/_jsxDEV(\"h4\", {\n children: props.category\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 140,\n columnNumber: 7\n }, this), items]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 139,\n columnNumber: 5\n }, this);\n}\n\n_c7 = LinkGroups;\n\nfunction LinkItem(props) {\n return /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: props.link.url,\n className: \"theme_color-border theme_text-select\",\n children: props.link.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 149,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 148,\n columnNumber: 5\n }, this);\n}\n\n_c8 = LinkItem;\n\nfunction ModalMenu() {\n var providers = getProviders();\n var items = [];\n\n for (var i = 0; i < providers.providers.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(Provider, {\n provider: providers.providers[i]\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 159,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"modal\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n children: [/*#__PURE__*/_jsxDEV(\"header\", {\n id: \"modal-header\",\n children: [/*#__PURE__*/_jsxDEV(\"h1\", {\n children: \"Options\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 169,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n href: \"#\",\n title: \"Close\",\n className: \"modal-close\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-close\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 171,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 170,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 168,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"h2\", {\n children: \"Color themes\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 175,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"modal-theme\",\n children: [/*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"blackboard\",\n className: \"theme-button theme-blackboard\",\n children: \"Blackboard\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 178,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"gazette\",\n className: \"theme-button theme-gazette\",\n children: \"Gazette\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 179,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"espresso\",\n className: \"theme-button theme-espresso\",\n children: \"Espresso\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 180,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cab\",\n className: \"theme-button theme-cab\",\n children: \"Cab\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 181,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cloud\",\n className: \"theme-button theme-cloud\",\n children: \"Cloud\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 182,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"lime\",\n className: \"theme-button theme-lime\",\n children: \"Lime\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 183,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"passion\",\n className: \"theme-button theme-passion\",\n children: \"Passion\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 184,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"blues\",\n className: \"theme-button theme-blues\",\n children: \"Blues\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 185,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"chalk\",\n className: \"theme-button theme-chalk\",\n children: \"Chalk\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 186,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"tron\",\n className: \"theme-button theme-tron\",\n children: \"Tron\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 187,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"paper\",\n className: \"theme-button theme-paper\",\n children: \"Paper\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 188,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cyberpunk\",\n className: \"theme-button theme-cyberpunk\",\n children: \"Cyberpunk\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 189,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"quadra\",\n className: \"theme-button theme-panam\",\n children: \"Quadra\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 190,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"panam\",\n className: \"theme-button theme-panam\",\n children: \"Panam\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 191,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"touch\",\n className: \"theme-button theme-touch\",\n children: \"Touch\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 192,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"peek\",\n className: \"theme-button theme-peek\",\n children: \"Peek\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 193,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 177,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"h2\", {\n children: \"Search options\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 197,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"providers\",\n children: /*#__PURE__*/_jsxDEV(\"table\", {\n children: /*#__PURE__*/_jsxDEV(\"tbody\", {\n children: [/*#__PURE__*/_jsxDEV(\"tr\", {\n children: [/*#__PURE__*/_jsxDEV(\"th\", {\n children: \"Website\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 202,\n columnNumber: 19\n }, this), /*#__PURE__*/_jsxDEV(\"th\", {\n children: \"Prefix\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 203,\n columnNumber: 19\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 201,\n columnNumber: 17\n }, this), items]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 200,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 199,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 198,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"header\", {\n id: \"modal-footer\",\n children: [/*#__PURE__*/_jsxDEV(\"a\", {\n href: \"https://github.com/jeroenpardon/\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-github-box\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 211,\n columnNumber: 54\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 211,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n href: \"https://materialdesignicons.com/\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-material-design\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 212,\n columnNumber: 54\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 212,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"sneaky\",\n children: [/*#__PURE__*/_jsxDEV(\"input\", {\n type: \"checkbox\",\n id: \"contenttype\",\n onChange: \"nsfw(this)\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 213,\n columnNumber: 35\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n for: \"contenttype\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-domino-mask\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 214,\n columnNumber: 36\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 214,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 213,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 210,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 167,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 166,\n columnNumber: 5\n }, this);\n}\n\n_c9 = ModalMenu;\n\nfunction Provider(props) {\n return /*#__PURE__*/_jsxDEV(\"tr\", {\n children: [/*#__PURE__*/_jsxDEV(\"td\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: props.provider.url,\n children: props.provider.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 224,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 224,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"td\", {\n children: props.provider.prefix\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 225,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 223,\n columnNumber: 5\n }, this);\n}\n\n_c10 = Provider;\n\nfunction ModalInit() {\n return /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"modal_init\",\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n className: \"btn\",\n href: \"#modal\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify icon\",\n \"data-icon\": \"mdi-xbox-controller-menu\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 234,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 233,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 232,\n columnNumber: 5\n }, this);\n}\n\n_c11 = ModalInit;\nReactDOM.render( /*#__PURE__*/_jsxDEV(Homepage, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 241,\n columnNumber: 3\n}, this), document.getElementById('root')); //Functions below this line are for calculating data for\n//other functions\n\nfunction date() {\n let currentDate = new Date();\n let dateOptions = {\n weekday: \"long\",\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\"\n };\n let date = currentDate.toLocaleDateString(\"en-GB\", dateOptions);\n return date;\n}\n\nfunction fixDigits(k) {\n if (k < 10) {\n return \"0\" + k;\n } else {\n return k;\n }\n}\n\nfunction greet() {\n let currentTime = new Date();\n let greet = Math.floor(currentTime.getHours() / 6);\n let easterEggChance = Math.floor(Math.random() * 100);\n\n let greetings = require('./messages.json');\n\n let timeBased = [];\n let easterEggs = [];\n\n for (var i = 0; i < greetings.messages.length; i++) {\n if (greetings.messages[i].easteregg === \"FALSE\") {\n timeBased = timeBased.concat(greetings.messages[i]);\n } else {\n easterEggs = easterEggs.concat(greetings.messages[i]);\n }\n }\n\n if (easterEggChance > 10) {\n return timeBased[greet].message;\n } else {\n let easterEggText = Math.floor(Math.random() * easterEggs.length);\n return easterEggs[easterEggText].message;\n }\n}\n\nfunction Clock() {\n _s();\n\n const [date, setDate] = useState(new Date());\n\n function refreshClock() {\n setDate(new Date());\n }\n\n useEffect(() => {\n const timerId = setInterval(refreshClock, 1000);\n return function cleanup() {\n clearInterval(timerId);\n };\n }, []);\n var hour = date.getHours();\n var minutes = date.getMinutes(); //var seconds = date.getSeconds();\n\n var midday = \"AM\";\n midday = hour >= 12 ? \"PM\" : \"AM\";\n hour = hour === 0 ? 12 : hour > 12 ? hour - 12 : hour;\n minutes = fixDigits(minutes); //seconds = fixDigits(seconds);\n\n let time = hour + \":\" + minutes + \" \" + midday;\n return /*#__PURE__*/_jsxDEV(\"h2\", {\n id: \"clock\",\n children: time\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 312,\n columnNumber: 5\n }, this);\n}\n\n_s(Clock, \"Gqi45WOZhU2c0BLYX0HoJeiR0fk=\");\n\n_c12 = Clock;\n\nfunction getApps() {\n let applications = require('./apps.json');\n\n return applications;\n}\n\nfunction getLinks() {\n let links = require('./links.json');\n\n return links;\n}\n\nfunction getProviders() {\n let providers = require('./providers.json');\n\n return providers;\n}\n\nvar _c, _c2, _c3, _c4, _c5, _c6, _c7, _c8, _c9, _c10, _c11, _c12;\n\n$RefreshReg$(_c, \"Homepage\");\n$RefreshReg$(_c2, \"Search\");\n$RefreshReg$(_c3, \"Header\");\n$RefreshReg$(_c4, \"Applications\");\n$RefreshReg$(_c5, \"App\");\n$RefreshReg$(_c6, \"Bookmarks\");\n$RefreshReg$(_c7, \"LinkGroups\");\n$RefreshReg$(_c8, \"LinkItem\");\n$RefreshReg$(_c9, \"ModalMenu\");\n$RefreshReg$(_c10, \"Provider\");\n$RefreshReg$(_c11, \"ModalInit\");\n$RefreshReg$(_c12, \"Clock\");","map":{"version":3,"sources":["/home/seanedmunds/dev/home-page/src/index.js"],"names":["React","useState","useEffect","ReactDOM","Homepage","date","greet","Search","handleKeyPress","event","Header","props","Applications","appList","getApps","items","i","apps","length","push","name","url","icon","NSFW","App","classNameType","hrefUrl","iconName","Bookmarks","bookmarkList","getLinks","bookmarks","category","links","LinkGroups","LinkItem","link","ModalMenu","providers","getProviders","Provider","provider","prefix","ModalInit","render","document","getElementById","currentDate","Date","dateOptions","weekday","year","month","day","toLocaleDateString","fixDigits","k","currentTime","Math","floor","getHours","easterEggChance","random","greetings","require","timeBased","easterEggs","messages","easteregg","concat","message","easterEggText","Clock","setDate","refreshClock","timerId","setInterval","cleanup","clearInterval","hour","minutes","getMinutes","midday","time","applications"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { useState, useEffect } from 'react';\nimport ReactDOM from 'react-dom';\n//import { unstable_createPortal } from 'react-dom';\nimport './index.css';\nimport './search.js'\n\nfunction Homepage() {\n return (\n \n \n \n
\n \n \n
\n \n \n \n
\n \n \n
\n \n \n
\n \n );\n}\n\nfunction Search() {\n return (\n \n )\n}\n\nfunction Header(props) {\n return (\n \n );\n}\n\nfunction Applications() {\n let appList = getApps();\n var items = [];\n for (var i = 0; i < appList.apps.length; i++) {\n items.push(\n \n );\n }\n return (\n \n Applications
\n \n {items}\n
\n \n );\n}\n\nfunction App(props) {\n let classNameType = props.NSFW + \"-content\";\n let hrefUrl = \"https://\" + props.url;\n let iconName = \"mdi-\" + props.icon;\n return (\n \n );\n}\n\nfunction Bookmarks() {\n let bookmarkList = getLinks();\n var items = [];\n for (var i = 0; i < bookmarkList.bookmarks.length; i++) {\n items.push(\n \n );\n }\n return (\n \n Bookmarks
\n \n {items}\n
\n \n );\n}\n\nfunction LinkGroups(props) {\n var items = [];\n for (var i = 0; i < props.links.length; i++) {\n items.push(\n \n );\n }\n return (\n \n
{props.category}
\n {items}\n \n );\n}\n\nfunction LinkItem(props) {\n return (\n \n );\n}\n\nfunction ModalMenu() {\n var providers = getProviders();\n var items = [];\n for (var i = 0; i < providers.providers.length; i++) {\n items.push(\n \n );\n }\n return (\n \n \n \n\n
Color themes
\n\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n\n\n
Search options
\n
\n \n \n \n | Website | \n Prefix | \n
\n {items}\n \n
\n \n\n \n
\n \n );\n}\n\nfunction Provider(props) {\n return (\n \n | {props.provider.name} | \n {props.provider.prefix} | \n
\n );\n}\n\nfunction ModalInit() {\n return (\n \n );\n}\n\nReactDOM.render(\n ,\n document.getElementById('root')\n);\n\n//Functions below this line are for calculating data for\n//other functions\n\nfunction date() {\n let currentDate = new Date();\n let dateOptions = {\n weekday: \"long\",\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\"\n };\n let date = currentDate.toLocaleDateString(\"en-GB\", dateOptions);\n return date;\n}\nfunction fixDigits(k) {\n if (k < 10) {\n return \"0\" + k;\n }\n else {\n return k;\n }\n}\nfunction greet() {\n let currentTime = new Date();\n let greet = Math.floor(currentTime.getHours() / 6);\n let easterEggChance = Math.floor(Math.random() * 100);\n let greetings = require('./messages.json');\n let timeBased = [];\n let easterEggs = [];\n for (var i = 0; i < greetings.messages.length; i++) {\n if (greetings.messages[i].easteregg === \"FALSE\") {\n timeBased = timeBased.concat(greetings.messages[i]);\n } else {\n easterEggs = easterEggs.concat(greetings.messages[i]);\n }\n }\n if (easterEggChance > 10) {\n return timeBased[greet].message;\n } else {\n let easterEggText = Math.floor(Math.random() * easterEggs.length);\n return easterEggs[easterEggText].message;\n }\n}\nfunction Clock() {\n const [date, setDate] = useState(new Date());\n\n function refreshClock() {\n setDate(new Date());\n }\n useEffect(() => {\n const timerId = setInterval(refreshClock, 1000);\n return function cleanup() {\n clearInterval(timerId);\n };\n }, []);\n\n var hour = date.getHours();\n var minutes = date.getMinutes();\n //var seconds = date.getSeconds();\n var midday = \"AM\";\n midday = (hour >= 12) ? \"PM\" : \"AM\";\n hour = (hour === 0) ? 12 : ((hour > 12) ? (hour - 12) : hour);\n minutes = fixDigits(minutes);\n //seconds = fixDigits(seconds);\n let time = hour + \":\" + minutes + \" \" + midday;\n\n return (\n {time}
\n\n );\n}\nfunction getApps() {\n let applications = require('./apps.json');\n return applications;\n}\nfunction getLinks() {\n let links = require('./links.json');\n return links;\n}\nfunction getProviders() {\n let providers = require('./providers.json');\n return providers;\n}"]},"metadata":{},"sourceType":"module"}
\ No newline at end of file
diff --git a/node_modules/.cache/babel-loader/a3d41d834bfe8973c600c9cf74032806.json b/node_modules/.cache/babel-loader/a3d41d834bfe8973c600c9cf74032806.json
new file mode 100644
index 00000000..203fe29e
--- /dev/null
+++ b/node_modules/.cache/babel-loader/a3d41d834bfe8973c600c9cf74032806.json
@@ -0,0 +1 @@
+{"ast":null,"code":"var _jsxFileName = \"/home/seanedmunds/dev/home-page/src/index.js\",\n _s = $RefreshSig$();\n\nimport React from 'react';\nimport { useState, useEffect } from 'react';\nimport ReactDOM from 'react-dom'; //import { unstable_createPortal } from 'react-dom';\n\nimport './index.css';\nimport { jsxDEV as _jsxDEV } from \"react/jsx-dev-runtime\";\n\nfunction Homepage() {\n return /*#__PURE__*/_jsxDEV(\"main\", {\n id: \"container\",\n className: \"fade\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Search, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 11,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 10,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Header, {\n date: date(),\n greet: greet()\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 14,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 13,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Applications, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 20,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 19,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Bookmarks, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 23,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 22,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(ModalMenu, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 26,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 25,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(ModalInit, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 29,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 28,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 9,\n columnNumber: 5\n }, this);\n}\n\n_c = Homepage;\n\nfunction Search() {\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"search\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"abackground\",\n children: [/*#__PURE__*/_jsxDEV(\"input\", {\n name: \"keywords\",\n type: \"text\",\n className: \"keyword\",\n id: \"keywords\",\n size: \"50\",\n spellCheck: \"true\",\n placeholder: \"\"\n /*onFocus={this.placeholder = \"\"} onBlur={this.placeholder = ''}*/\n ,\n autoComplete: \"off\",\n autoFocus: \"true\",\n onKeyUp: handleKeyPress(this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 39,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n id: \"searchType\",\n className: \"Input-label\",\n children: \"Google search\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 40,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 38,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 37,\n columnNumber: 5\n }, this);\n}\n\n_c2 = Search;\n\nfunction Header(props) {\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"header\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n id: \"greeting_block\",\n children: /*#__PURE__*/_jsxDEV(\"h1\", {\n id: \"header_greet\",\n children: props.greet\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 50,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 49,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"date_block\",\n children: [/*#__PURE__*/_jsxDEV(\"h2\", {\n id: \"header_date\",\n children: props.date\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 53,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(Clock, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 54,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 52,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 48,\n columnNumber: 5\n }, this);\n}\n\n_c3 = Header;\n\nfunction Applications() {\n let appList = getApps();\n var items = [];\n\n for (var i = 0; i < appList.apps.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(App, {\n name: appList.apps[i].name,\n url: appList.apps[i].url,\n icon: appList.apps[i].icon,\n NSFW: appList.apps[i].NSFW\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 65,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"apps\",\n children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n children: \"Applications\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 76,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"apps_loop\",\n children: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 77,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 75,\n columnNumber: 5\n }, this);\n}\n\n_c4 = Applications;\n\nfunction App(props) {\n let classNameType = props.NSFW + \"-content\";\n let hrefUrl = \"https://\" + props.url;\n let iconName = \"mdi-\" + props.icon;\n return /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: hrefUrl,\n className: classNameType,\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_item\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_icon\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify icon\",\n \"data-icon\": iconName\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 93,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 92,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_text\",\n children: [/*#__PURE__*/_jsxDEV(\"span\", {\n id: \"app-name\",\n children: props.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 96,\n columnNumber: 13\n }, this), /*#__PURE__*/_jsxDEV(\"span\", {\n id: \"app-address\",\n children: props.url\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 97,\n columnNumber: 13\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 95,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 91,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 90,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 89,\n columnNumber: 5\n }, this);\n}\n\n_c5 = App;\n\nfunction Bookmarks() {\n let bookmarkList = getLinks();\n var items = [];\n\n for (var i = 0; i < bookmarkList.bookmarks.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(LinkGroups, {\n category: bookmarkList.bookmarks[i].category,\n links: bookmarkList.bookmarks[i].links\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 110,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"links\",\n children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n children: \"Bookmarks\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 119,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"links_loop\",\n children: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 120,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 118,\n columnNumber: 5\n }, this);\n}\n\n_c6 = Bookmarks;\n\nfunction LinkGroups(props) {\n var items = [];\n\n for (var i = 0; i < props.links.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(LinkItem, {\n link: props.links[i]\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 131,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"links_item\",\n children: [/*#__PURE__*/_jsxDEV(\"h4\", {\n children: props.category\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 139,\n columnNumber: 7\n }, this), items]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 138,\n columnNumber: 5\n }, this);\n}\n\n_c7 = LinkGroups;\n\nfunction LinkItem(props) {\n return /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: props.link.url,\n className: \"theme_color-border theme_text-select\",\n children: props.link.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 148,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 147,\n columnNumber: 5\n }, this);\n}\n\n_c8 = LinkItem;\n\nfunction ModalMenu() {\n var providers = getProviders();\n var items = [];\n\n for (var i = 0; i < providers.providers.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(Provider, {\n provider: providers.providers[i]\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 158,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"modal\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n children: [/*#__PURE__*/_jsxDEV(\"header\", {\n id: \"modal-header\",\n children: [/*#__PURE__*/_jsxDEV(\"h1\", {\n children: \"Options\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 168,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n href: \"#\",\n title: \"Close\",\n className: \"modal-close\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-close\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 170,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 169,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 167,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"h2\", {\n children: \"Color themes\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 174,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"modal-theme\",\n children: [/*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"blackboard\",\n className: \"theme-button theme-blackboard\",\n children: \"Blackboard\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 177,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"gazette\",\n className: \"theme-button theme-gazette\",\n children: \"Gazette\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 178,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"espresso\",\n className: \"theme-button theme-espresso\",\n children: \"Espresso\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 179,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cab\",\n className: \"theme-button theme-cab\",\n children: \"Cab\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 180,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cloud\",\n className: \"theme-button theme-cloud\",\n children: \"Cloud\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 181,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"lime\",\n className: \"theme-button theme-lime\",\n children: \"Lime\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 182,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"passion\",\n className: \"theme-button theme-passion\",\n children: \"Passion\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 183,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"blues\",\n className: \"theme-button theme-blues\",\n children: \"Blues\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 184,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"chalk\",\n className: \"theme-button theme-chalk\",\n children: \"Chalk\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 185,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"tron\",\n className: \"theme-button theme-tron\",\n children: \"Tron\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 186,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"paper\",\n className: \"theme-button theme-paper\",\n children: \"Paper\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 187,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cyberpunk\",\n className: \"theme-button theme-cyberpunk\",\n children: \"Cyberpunk\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 188,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"quadra\",\n className: \"theme-button theme-panam\",\n children: \"Quadra\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 189,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"panam\",\n className: \"theme-button theme-panam\",\n children: \"Panam\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 190,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"touch\",\n className: \"theme-button theme-touch\",\n children: \"Touch\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 191,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"peek\",\n className: \"theme-button theme-peek\",\n children: \"Peek\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 192,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 176,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"h2\", {\n children: \"Search options\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 196,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"providers\",\n children: /*#__PURE__*/_jsxDEV(\"table\", {\n children: /*#__PURE__*/_jsxDEV(\"tbody\", {\n children: [/*#__PURE__*/_jsxDEV(\"tr\", {\n children: [/*#__PURE__*/_jsxDEV(\"th\", {\n children: \"Website\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 201,\n columnNumber: 19\n }, this), /*#__PURE__*/_jsxDEV(\"th\", {\n children: \"Prefix\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 202,\n columnNumber: 19\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 200,\n columnNumber: 17\n }, this), items]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 199,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 198,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 197,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"header\", {\n id: \"modal-footer\",\n children: [/*#__PURE__*/_jsxDEV(\"a\", {\n href: \"https://github.com/jeroenpardon/\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-github-box\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 210,\n columnNumber: 54\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 210,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n href: \"https://materialdesignicons.com/\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-material-design\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 211,\n columnNumber: 54\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 211,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"sneaky\",\n children: [/*#__PURE__*/_jsxDEV(\"input\", {\n type: \"checkbox\",\n id: \"contenttype\",\n onChange: \"nsfw(this)\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 212,\n columnNumber: 35\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n for: \"contenttype\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-domino-mask\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 213,\n columnNumber: 36\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 213,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 212,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 209,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 166,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 165,\n columnNumber: 5\n }, this);\n}\n\n_c9 = ModalMenu;\n\nfunction Provider(props) {\n return /*#__PURE__*/_jsxDEV(\"tr\", {\n children: [/*#__PURE__*/_jsxDEV(\"td\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: props.provider.url,\n children: props.provider.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 223,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 223,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"td\", {\n children: props.provider.prefix\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 224,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 222,\n columnNumber: 5\n }, this);\n}\n\n_c10 = Provider;\n\nfunction ModalInit() {\n return /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"modal_init\",\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n className: \"btn\",\n href: \"#modal\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify icon\",\n \"data-icon\": \"mdi-xbox-controller-menu\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 233,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 232,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 231,\n columnNumber: 5\n }, this);\n}\n\n_c11 = ModalInit;\nReactDOM.render( /*#__PURE__*/_jsxDEV(Homepage, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 240,\n columnNumber: 3\n}, this), document.getElementById('root')); //Functions below this line are for calculating data for\n//other functions\n\nfunction date() {\n let currentDate = new Date();\n let dateOptions = {\n weekday: \"long\",\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\"\n };\n let date = currentDate.toLocaleDateString(\"en-GB\", dateOptions);\n return date;\n}\n\nfunction fixDigits(k) {\n if (k < 10) {\n return \"0\" + k;\n } else {\n return k;\n }\n}\n\nfunction greet() {\n let currentTime = new Date();\n let greet = Math.floor(currentTime.getHours() / 6);\n let easterEggChance = Math.floor(Math.random() * 100);\n\n let greetings = require('./messages.json');\n\n let timeBased = [];\n let easterEggs = [];\n\n for (var i = 0; i < greetings.messages.length; i++) {\n if (greetings.messages[i].easteregg === \"FALSE\") {\n timeBased = timeBased.concat(greetings.messages[i]);\n } else {\n easterEggs = easterEggs.concat(greetings.messages[i]);\n }\n }\n\n if (easterEggChance > 10) {\n return timeBased[greet].message;\n } else {\n let easterEggText = Math.floor(Math.random() * easterEggs.length);\n return easterEggs[easterEggText].message;\n }\n}\n\nfunction Clock() {\n _s();\n\n const [date, setDate] = useState(new Date());\n\n function refreshClock() {\n setDate(new Date());\n }\n\n useEffect(() => {\n const timerId = setInterval(refreshClock, 1000);\n return function cleanup() {\n clearInterval(timerId);\n };\n }, []);\n var hour = date.getHours();\n var minutes = date.getMinutes(); //var seconds = date.getSeconds();\n\n var midday = \"AM\";\n midday = hour >= 12 ? \"PM\" : \"AM\";\n hour = hour === 0 ? 12 : hour > 12 ? hour - 12 : hour;\n minutes = fixDigits(minutes); //seconds = fixDigits(seconds);\n\n let time = hour + \":\" + minutes + \" \" + midday;\n return /*#__PURE__*/_jsxDEV(\"h2\", {\n id: \"clock\",\n children: time\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 311,\n columnNumber: 5\n }, this);\n}\n\n_s(Clock, \"Gqi45WOZhU2c0BLYX0HoJeiR0fk=\");\n\n_c12 = Clock;\n\nfunction getApps() {\n let applications = require('./apps.json');\n\n return applications;\n}\n\nfunction getLinks() {\n let links = require('./links.json');\n\n return links;\n}\n\nfunction getProviders() {\n let providers = require('./providers.json');\n\n return providers;\n}\n\nfunction handleKeyPress(e) {\n var sindex = 0;\n var cycle = false;\n var key = e.keyCode || e.which;\n var text = document.getElementById(\"keywords\").value.replaceAll(\"+\", \"%2B\");\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n\n if (key == 13) {\n // Search functions\n search(text);\n }\n\n if (key == 9) {\n // Tab Completion Functions\n e.preventDefault();\n e.stopPropagation();\n\n if (text[0] === ';') {\n switch (option) {\n case 't':\n var streamers = ['admiralbahroo', 'moonmoon_ow', 'witwix'];\n\n if (!subtext || cycle) {\n cycle = true;\n if (sindex > streamers.length - 1) sindex = 0;\n document.getElementById(\"keywords\").value = ';t ' + streamers[sindex++];\n return;\n }\n\n for (var streamer of streamers) {\n if (subtext === streamer.substr(0, subtext.length)) {\n document.getElementById(\"keywords\").value = ';t ' + streamer;\n return;\n }\n }\n\n break;\n }\n }\n }\n\n if (key == 32) {\n //Space to go to search\n updateLabel(text);\n }\n\n sindex = 0;\n cycle = false;\n updateLabel(text);\n}\n\nvar _c, _c2, _c3, _c4, _c5, _c6, _c7, _c8, _c9, _c10, _c11, _c12;\n\n$RefreshReg$(_c, \"Homepage\");\n$RefreshReg$(_c2, \"Search\");\n$RefreshReg$(_c3, \"Header\");\n$RefreshReg$(_c4, \"Applications\");\n$RefreshReg$(_c5, \"App\");\n$RefreshReg$(_c6, \"Bookmarks\");\n$RefreshReg$(_c7, \"LinkGroups\");\n$RefreshReg$(_c8, \"LinkItem\");\n$RefreshReg$(_c9, \"ModalMenu\");\n$RefreshReg$(_c10, \"Provider\");\n$RefreshReg$(_c11, \"ModalInit\");\n$RefreshReg$(_c12, \"Clock\");","map":{"version":3,"sources":["/home/seanedmunds/dev/home-page/src/index.js"],"names":["React","useState","useEffect","ReactDOM","Homepage","date","greet","Search","handleKeyPress","Header","props","Applications","appList","getApps","items","i","apps","length","push","name","url","icon","NSFW","App","classNameType","hrefUrl","iconName","Bookmarks","bookmarkList","getLinks","bookmarks","category","links","LinkGroups","LinkItem","link","ModalMenu","providers","getProviders","Provider","provider","prefix","ModalInit","render","document","getElementById","currentDate","Date","dateOptions","weekday","year","month","day","toLocaleDateString","fixDigits","k","currentTime","Math","floor","getHours","easterEggChance","random","greetings","require","timeBased","easterEggs","messages","easteregg","concat","message","easterEggText","Clock","setDate","refreshClock","timerId","setInterval","cleanup","clearInterval","hour","minutes","getMinutes","midday","time","applications","e","sindex","cycle","key","keyCode","which","text","value","replaceAll","option","substr","indexOf","subtext","search","preventDefault","stopPropagation","streamers","streamer","updateLabel"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { useState, useEffect } from 'react';\nimport ReactDOM from 'react-dom';\n//import { unstable_createPortal } from 'react-dom';\nimport './index.css';\n\nfunction Homepage() {\n return (\n \n \n \n
\n \n \n
\n \n \n \n
\n \n \n
\n \n \n
\n \n );\n}\n\nfunction Search() {\n return (\n \n )\n}\n\nfunction Header(props) {\n return (\n \n );\n}\n\nfunction Applications() {\n let appList = getApps();\n var items = [];\n for (var i = 0; i < appList.apps.length; i++) {\n items.push(\n \n );\n }\n return (\n \n Applications
\n \n {items}\n
\n \n );\n}\n\nfunction App(props) {\n let classNameType = props.NSFW + \"-content\";\n let hrefUrl = \"https://\" + props.url;\n let iconName = \"mdi-\" + props.icon;\n return (\n \n );\n}\n\nfunction Bookmarks() {\n let bookmarkList = getLinks();\n var items = [];\n for (var i = 0; i < bookmarkList.bookmarks.length; i++) {\n items.push(\n \n );\n }\n return (\n \n Bookmarks
\n \n {items}\n
\n \n );\n}\n\nfunction LinkGroups(props) {\n var items = [];\n for (var i = 0; i < props.links.length; i++) {\n items.push(\n \n );\n }\n return (\n \n
{props.category}
\n {items}\n \n );\n}\n\nfunction LinkItem(props) {\n return (\n \n );\n}\n\nfunction ModalMenu() {\n var providers = getProviders();\n var items = [];\n for (var i = 0; i < providers.providers.length; i++) {\n items.push(\n \n );\n }\n return (\n \n \n \n\n
Color themes
\n\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n\n\n
Search options
\n
\n \n \n \n | Website | \n Prefix | \n
\n {items}\n \n
\n \n\n \n
\n \n );\n}\n\nfunction Provider(props) {\n return (\n \n | {props.provider.name} | \n {props.provider.prefix} | \n
\n );\n}\n\nfunction ModalInit() {\n return (\n \n );\n}\n\nReactDOM.render(\n ,\n document.getElementById('root')\n);\n\n//Functions below this line are for calculating data for\n//other functions\n\nfunction date() {\n let currentDate = new Date();\n let dateOptions = {\n weekday: \"long\",\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\"\n };\n let date = currentDate.toLocaleDateString(\"en-GB\", dateOptions);\n return date;\n}\nfunction fixDigits(k) {\n if (k < 10) {\n return \"0\" + k;\n }\n else {\n return k;\n }\n}\nfunction greet() {\n let currentTime = new Date();\n let greet = Math.floor(currentTime.getHours() / 6);\n let easterEggChance = Math.floor(Math.random() * 100);\n let greetings = require('./messages.json');\n let timeBased = [];\n let easterEggs = [];\n for (var i = 0; i < greetings.messages.length; i++) {\n if (greetings.messages[i].easteregg === \"FALSE\") {\n timeBased = timeBased.concat(greetings.messages[i]);\n } else {\n easterEggs = easterEggs.concat(greetings.messages[i]);\n }\n }\n if (easterEggChance > 10) {\n return timeBased[greet].message;\n } else {\n let easterEggText = Math.floor(Math.random() * easterEggs.length);\n return easterEggs[easterEggText].message;\n }\n}\nfunction Clock() {\n const [date, setDate] = useState(new Date());\n\n function refreshClock() {\n setDate(new Date());\n }\n useEffect(() => {\n const timerId = setInterval(refreshClock, 1000);\n return function cleanup() {\n clearInterval(timerId);\n };\n }, []);\n\n var hour = date.getHours();\n var minutes = date.getMinutes();\n //var seconds = date.getSeconds();\n var midday = \"AM\";\n midday = (hour >= 12) ? \"PM\" : \"AM\";\n hour = (hour === 0) ? 12 : ((hour > 12) ? (hour - 12) : hour);\n minutes = fixDigits(minutes);\n //seconds = fixDigits(seconds);\n let time = hour + \":\" + minutes + \" \" + midday;\n\n return (\n {time}
\n\n );\n}\nfunction getApps() {\n let applications = require('./apps.json');\n return applications;\n}\nfunction getLinks() {\n let links = require('./links.json');\n return links;\n}\nfunction getProviders() {\n let providers = require('./providers.json');\n return providers;\n}\n\nfunction handleKeyPress(e) {\n var sindex = 0;\n var cycle = false;\n var key = e.keyCode || e.which;\n var text = document.getElementById(\"keywords\").value.replaceAll(\"+\", \"%2B\");\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n if (key == 13) { // Search functions\n search(text);\n }\n if (key == 9) { // Tab Completion Functions\n e.preventDefault();\n e.stopPropagation();\n if (text[0] === ';') {\n switch (option) {\n case 't':\n var streamers = ['admiralbahroo', 'moonmoon_ow', 'witwix'];\n if (!subtext || cycle) {\n cycle = true;\n if (sindex > streamers.length - 1) sindex = 0;\n document.getElementById(\"keywords\").value = ';t ' + streamers[sindex++];\n return;\n }\n for (var streamer of streamers) {\n if (subtext === streamer.substr(0, subtext.length)) {\n document.getElementById(\"keywords\").value = ';t ' + streamer;\n return;\n }\n }\n break;\n }\n }\n }\n if(key == 32){ //Space to go to search\nupdateLabel(text);\n }\n sindex = 0;\n cycle = false;\n updateLabel(text);\n}"]},"metadata":{},"sourceType":"module"}
\ No newline at end of file
diff --git a/node_modules/.cache/babel-loader/a5b9a8bbc7cf22be3f32e3afac66ba81.json b/node_modules/.cache/babel-loader/a5b9a8bbc7cf22be3f32e3afac66ba81.json
new file mode 100644
index 00000000..a2ebd1e2
--- /dev/null
+++ b/node_modules/.cache/babel-loader/a5b9a8bbc7cf22be3f32e3afac66ba81.json
@@ -0,0 +1 @@
+{"ast":null,"code":"var _jsxFileName = \"/home/seanedmunds/dev/home-page/src/index.js\",\n _s = $RefreshSig$();\n\nimport React from 'react';\nimport { useState, useEffect } from 'react';\nimport ReactDOM from 'react-dom'; //import { unstable_createPortal } from 'react-dom';\n\nimport './index.css';\nimport './themer';\nimport { jsxDEV as _jsxDEV } from \"react/jsx-dev-runtime\";\n\nfunction Homepage() {\n return /*#__PURE__*/_jsxDEV(\"main\", {\n id: \"container\",\n className: \"fade\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Search, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 12,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 11,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Header, {\n date: date(),\n greet: greet()\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 15,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 14,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Applications, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 21,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 20,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Bookmarks, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 24,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 23,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(ModalMenu, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 27,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 26,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(ModalInit, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 30,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 29,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 10,\n columnNumber: 5\n }, this);\n}\n\n_c = Homepage;\n\nfunction Search() {\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"search\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"abackground\",\n children: [/*#__PURE__*/_jsxDEV(\"input\", {\n name: \"keywords\",\n type: \"text\",\n className: \"keyword\",\n id: \"keywords\",\n size: \"50\",\n spellCheck: \"true\",\n placeholder: \"\"\n /*onFocus={this.placeholder = \"\"} onBlur={this.placeholder = ''}*/\n ,\n autoComplete: \"off\",\n autoFocus: true,\n onKeyUp: handleKeyPress\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 40,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n id: \"searchType\",\n className: \"Input-label\",\n children: \"Google search\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 41,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 39,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 38,\n columnNumber: 5\n }, this);\n}\n\n_c2 = Search;\n\nfunction Header(props) {\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"header\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n id: \"greeting_block\",\n children: /*#__PURE__*/_jsxDEV(\"h1\", {\n id: \"header_greet\",\n children: props.greet\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 51,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 50,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"date_block\",\n children: [/*#__PURE__*/_jsxDEV(\"h2\", {\n id: \"header_date\",\n children: props.date\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 54,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(Clock, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 55,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 53,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 49,\n columnNumber: 5\n }, this);\n}\n\n_c3 = Header;\n\nfunction Applications() {\n let appList = getApps();\n var items = [];\n\n for (var i = 0; i < appList.apps.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(App, {\n name: appList.apps[i].name,\n url: appList.apps[i].url,\n icon: appList.apps[i].icon,\n NSFW: appList.apps[i].NSFW\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 66,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"apps\",\n children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n children: \"Applications\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 77,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"apps_loop\",\n children: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 78,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 76,\n columnNumber: 5\n }, this);\n}\n\n_c4 = Applications;\n\nfunction App(props) {\n let classNameType = props.NSFW + \"-content\";\n let hrefUrl = \"https://\" + props.url;\n let iconName = \"mdi-\" + props.icon;\n return /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: hrefUrl,\n className: classNameType,\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_item\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_icon\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify icon\",\n \"data-icon\": iconName\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 94,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 93,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_text\",\n children: [/*#__PURE__*/_jsxDEV(\"span\", {\n id: \"app-name\",\n children: props.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 97,\n columnNumber: 13\n }, this), /*#__PURE__*/_jsxDEV(\"span\", {\n id: \"app-address\",\n children: props.url\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 98,\n columnNumber: 13\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 96,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 92,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 91,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 90,\n columnNumber: 5\n }, this);\n}\n\n_c5 = App;\n\nfunction Bookmarks() {\n let bookmarkList = getLinks();\n var items = [];\n\n for (var i = 0; i < bookmarkList.bookmarks.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(LinkGroups, {\n category: bookmarkList.bookmarks[i].category,\n links: bookmarkList.bookmarks[i].links\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 111,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"links\",\n children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n children: \"Bookmarks\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 120,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"links_loop\",\n children: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 121,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 119,\n columnNumber: 5\n }, this);\n}\n\n_c6 = Bookmarks;\n\nfunction LinkGroups(props) {\n var items = [];\n\n for (var i = 0; i < props.links.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(LinkItem, {\n link: props.links[i]\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 132,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"links_item\",\n children: [/*#__PURE__*/_jsxDEV(\"h4\", {\n children: props.category\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 140,\n columnNumber: 7\n }, this), items]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 139,\n columnNumber: 5\n }, this);\n}\n\n_c7 = LinkGroups;\n\nfunction LinkItem(props) {\n return /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: props.link.url,\n className: \"theme_color-border theme_text-select\",\n children: props.link.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 149,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 148,\n columnNumber: 5\n }, this);\n}\n\n_c8 = LinkItem;\n\nfunction ModalMenu() {\n var providers = getProviders();\n var items = [];\n\n for (var i = 0; i < providers.providers.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(Provider, {\n provider: providers.providers[i]\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 159,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"modal\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n children: [/*#__PURE__*/_jsxDEV(\"header\", {\n id: \"modal-header\",\n children: [/*#__PURE__*/_jsxDEV(\"h1\", {\n children: \"Options\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 169,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n href: \"#\",\n title: \"Close\",\n className: \"modal-close\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-close\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 171,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 170,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 168,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"h2\", {\n children: \"Color themes\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 175,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"modal-theme\",\n children: [/*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"blackboard\",\n className: \"theme-button theme-blackboard\",\n children: \"Blackboard\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 178,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"gazette\",\n className: \"theme-button theme-gazette\",\n children: \"Gazette\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 179,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"espresso\",\n className: \"theme-button theme-espresso\",\n children: \"Espresso\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 180,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cab\",\n className: \"theme-button theme-cab\",\n children: \"Cab\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 181,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cloud\",\n className: \"theme-button theme-cloud\",\n children: \"Cloud\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 182,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"lime\",\n className: \"theme-button theme-lime\",\n children: \"Lime\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 183,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"passion\",\n className: \"theme-button theme-passion\",\n children: \"Passion\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 184,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"blues\",\n className: \"theme-button theme-blues\",\n children: \"Blues\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 185,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"chalk\",\n className: \"theme-button theme-chalk\",\n children: \"Chalk\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 186,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"tron\",\n className: \"theme-button theme-tron\",\n children: \"Tron\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 187,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"paper\",\n className: \"theme-button theme-paper\",\n children: \"Paper\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 188,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cyberpunk\",\n className: \"theme-button theme-cyberpunk\",\n children: \"Cyberpunk\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 189,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"quadra\",\n className: \"theme-button theme-panam\",\n children: \"Quadra\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 190,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"panam\",\n className: \"theme-button theme-panam\",\n children: \"Panam\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 191,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"touch\",\n className: \"theme-button theme-touch\",\n children: \"Touch\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 192,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"peek\",\n className: \"theme-button theme-peek\",\n children: \"Peek\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 193,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 177,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"h2\", {\n children: \"Search options\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 197,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"providers\",\n children: /*#__PURE__*/_jsxDEV(\"table\", {\n children: /*#__PURE__*/_jsxDEV(\"tbody\", {\n children: [/*#__PURE__*/_jsxDEV(\"tr\", {\n children: [/*#__PURE__*/_jsxDEV(\"th\", {\n children: \"Website\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 202,\n columnNumber: 19\n }, this), /*#__PURE__*/_jsxDEV(\"th\", {\n children: \"Prefix\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 203,\n columnNumber: 19\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 201,\n columnNumber: 17\n }, this), items]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 200,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 199,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 198,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"header\", {\n id: \"modal-footer\",\n children: [/*#__PURE__*/_jsxDEV(\"a\", {\n href: \"https://github.com/jeroenpardon/\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-github-box\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 211,\n columnNumber: 54\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 211,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n href: \"https://materialdesignicons.com/\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-material-design\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 212,\n columnNumber: 54\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 212,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"sneaky\",\n children: [/*#__PURE__*/_jsxDEV(\"input\", {\n type: \"checkbox\",\n id: \"contenttype\",\n onChange: \"nsfw(this)\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 213,\n columnNumber: 35\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n for: \"contenttype\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-domino-mask\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 214,\n columnNumber: 36\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 214,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 213,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 210,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 167,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 166,\n columnNumber: 5\n }, this);\n}\n\n_c9 = ModalMenu;\n\nfunction Provider(props) {\n return /*#__PURE__*/_jsxDEV(\"tr\", {\n children: [/*#__PURE__*/_jsxDEV(\"td\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: props.provider.url,\n children: props.provider.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 224,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 224,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"td\", {\n children: props.provider.prefix\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 225,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 223,\n columnNumber: 5\n }, this);\n}\n\n_c10 = Provider;\n\nfunction ModalInit() {\n return /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"modal_init\",\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n className: \"btn\",\n href: \"#modal\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify icon\",\n \"data-icon\": \"mdi-xbox-controller-menu\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 234,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 233,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 232,\n columnNumber: 5\n }, this);\n}\n\n_c11 = ModalInit;\nReactDOM.render( /*#__PURE__*/_jsxDEV(Homepage, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 241,\n columnNumber: 3\n}, this), document.getElementById('root')); //Functions below this line are for calculating data for\n//other functions\n\nfunction date() {\n let currentDate = new Date();\n let dateOptions = {\n weekday: \"long\",\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\"\n };\n let date = currentDate.toLocaleDateString(\"en-GB\", dateOptions);\n return date;\n}\n\nfunction fixDigits(k) {\n if (k < 10) {\n return \"0\" + k;\n } else {\n return k;\n }\n}\n\nfunction greet() {\n let currentTime = new Date();\n let greet = Math.floor(currentTime.getHours() / 6);\n let easterEggChance = Math.floor(Math.random() * 100);\n\n let greetings = require('./messages.json');\n\n let timeBased = [];\n let easterEggs = [];\n\n for (var i = 0; i < greetings.messages.length; i++) {\n if (greetings.messages[i].easteregg === \"FALSE\") {\n timeBased = timeBased.concat(greetings.messages[i]);\n } else {\n easterEggs = easterEggs.concat(greetings.messages[i]);\n }\n }\n\n if (easterEggChance > 10) {\n return timeBased[greet].message;\n } else {\n let easterEggText = Math.floor(Math.random() * easterEggs.length);\n return easterEggs[easterEggText].message;\n }\n}\n\nfunction Clock() {\n _s();\n\n const [date, setDate] = useState(new Date());\n\n function refreshClock() {\n setDate(new Date());\n }\n\n useEffect(() => {\n const timerId = setInterval(refreshClock, 1000);\n return function cleanup() {\n clearInterval(timerId);\n };\n }, []);\n var hour = date.getHours();\n var minutes = date.getMinutes(); //var seconds = date.getSeconds();\n\n var midday = \"AM\";\n midday = hour >= 12 ? \"PM\" : \"AM\";\n hour = hour === 0 ? 12 : hour > 12 ? hour - 12 : hour;\n minutes = fixDigits(minutes); //seconds = fixDigits(seconds);\n\n let time = hour + \":\" + minutes + \" \" + midday;\n return /*#__PURE__*/_jsxDEV(\"h2\", {\n id: \"clock\",\n children: time\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 312,\n columnNumber: 5\n }, this);\n}\n\n_s(Clock, \"Gqi45WOZhU2c0BLYX0HoJeiR0fk=\");\n\n_c12 = Clock;\n\nfunction getApps() {\n let applications = require('./apps.json');\n\n return applications;\n}\n\nfunction getLinks() {\n let links = require('./links.json');\n\n return links;\n}\n\nfunction getProviders() {\n let providers = require('./providers.json');\n\n return providers;\n}\n\nfunction getThemes() {\n let providers = require('./themes.json');\n\n return themes;\n}\n\nfunction handleKeyPress(e) {\n var sindex = 0;\n var cycle = false;\n var key = e.keyCode || e.which;\n var text = e.target.value.replaceAll(\"+\", \"%2B\");\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n\n if (key == 13) {\n // Search functions\n search(text);\n }\n\n if (key == 9) {\n // Tab Completion Functions\n e.preventDefault();\n e.stopPropagation();\n\n if (text[0] === ';') {\n switch (option) {\n case 't':\n var streamers = ['admiralbahroo', 'moonmoon_ow', 'witwix'];\n\n if (!subtext || cycle) {\n cycle = true;\n if (sindex > streamers.length - 1) sindex = 0;\n document.getElementById(\"keywords\").value = ';t ' + streamers[sindex++];\n return;\n }\n\n for (var streamer of streamers) {\n if (subtext === streamer.substr(0, subtext.length)) {\n document.getElementById(\"keywords\").value = ';t ' + streamer;\n return;\n }\n }\n\n break;\n }\n }\n }\n\n if (key == 32) {\n //Space to go to search\n updateLabel(text);\n }\n\n sindex = 0;\n cycle = false;\n updateLabel(text);\n}\n\nfunction updateLabel(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n\n if (text[0] === '/') {\n // if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n document.getElementById(\"searchType\").innerHTML = \"Allmusic search\";\n break;\n\n case \"d\":\n document.getElementById(\"searchType\").innerHTML = \"Duck Duck Go search\";\n break;\n\n case \"di\":\n document.getElementById(\"searchType\").innerHTML = \"Discogs search\";\n break;\n\n case \"i\":\n document.getElementById(\"searchType\").innerHTML = \"IMDB search\";\n break;\n\n case \"m\":\n document.getElementById(\"searchType\").innerHTML = \"TheMovieDB search\";\n break;\n\n case \"r\":\n document.getElementById(\"searchType\").innerHTML = \"Reddit search\";\n break;\n\n case \"q\":\n document.getElementById(\"searchType\").innerHTML = \"Qwant search\";\n break;\n\n case \"so\":\n document.getElementById(\"searchType\").innerHTML = \"Soundcloud search\";\n break;\n\n case \"s\":\n document.getElementById(\"searchType\").innerHTML = \"Spotify search\";\n break;\n\n case \"tv\":\n document.getElementById(\"searchType\").innerHTML = \"TheTVDB search\";\n break;\n\n case \"t\":\n document.getElementById(\"searchType\").innerHTML = \"Trakt search\";\n break;\n\n case \"y\":\n document.getElementById(\"searchType\").innerHTML = \"YouTube search\";\n break;\n\n case \"w\":\n document.getElementById(\"searchType\").innerHTML = \"Wikipedia search\";\n break;\n\n case \"p\":\n document.getElementById(\"searchType\").innerHTML = \"Plex search\";\n break;\n\n case \"rt\":\n document.getElementById(\"searchType\").innerHTML = \"Rotten Tomatoes search\";\n break;\n\n default:\n document.getElementById(\"searchType\").innerHTML = \"Invalid search\";\n break;\n }\n } else {\n document.getElementById(\"searchType\").innerHTML = \"Google search\";\n }\n}\n\nfunction search(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n\n if (text[0] === '/') {\n if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n window.location = \"https://www.allmusic.com/search/all/\" + subtext;\n break;\n\n case \"d\":\n window.location = \"https://duckduckgo.com/?q=\" + subtext;\n break;\n\n case \"di\":\n window.location = \"https://www.discogs.com/search/?q=\" + subtext;\n break;\n\n case \"i\":\n window.location = \"https://www.imdb.com/find?q=\" + subtext;\n break;\n\n case \"m\":\n window.location = \"https://www.themoviedb.org/search?query=\" + subtext;\n break;\n\n case \"r\":\n window.location = \"https://www.reddit.com/search?q=\" + subtext;\n break;\n\n case \"q\":\n window.location = \"https://www.qwant.com/?q=\" + subtext;\n break;\n\n case \"so\":\n window.location = \"https://soundcloud.com/search?q=\" + subtext;\n break;\n\n case \"s\":\n window.location = \"https://open.spotify.com/search/results/\" + subtext;\n break;\n\n case \"t\":\n window.location = \"https://trakt.tv/search?query=\" + subtext;\n break;\n\n case \"tv\":\n window.location = \"https://www.thetvdb.com/search?query=\" + subtext;\n break;\n\n case \"y\":\n window.location = \"https://www.youtube.com/results?search_query=\" + subtext;\n break;\n\n case \"w\":\n window.location = \"https://en.wikipedia.org/w/index.php?search=\" + subtext;\n break;\n\n case \"p\":\n window.location = \"https://app.plex.tv/desktop/#!/search?query=\" + subtext;\n break;\n\n case \"rt\":\n window.location = \"https://www.rottentomatoes.com/search?search=\" + subtext;\n break;\n }\n } else {\n var option = text.substr(1);\n\n switch (option) {\n case \"d\":\n window.location = \"https://www.duckduckgo.com\";\n break;\n\n case \"y\":\n window.location = \"https://www.youtube.com\";\n break;\n\n case \"r\":\n window.location = \"https://reddit.com\";\n break;\n\n case \"s\":\n window.location = \"https://open.spotify.com\";\n break;\n }\n }\n } else if (validURL(text)) {\n if (containsProtocol(text)) window.location = text;else window.location = \"https://\" + text;\n } else {\n window.location = \"https://www.google.com/search?q=\" + text;\n }\n} // Source: https://stackoverflow.com/questions/5717093/check-if-a-javascript-string-is-a-url\n\n\nfunction validURL(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/)?' + // protocol\n '((([a-z\\\\d]([a-z\\\\d-]*[a-z\\\\d])*)\\\\.)+[a-z]{2,}|' + // domain name\n '((\\\\d{1,3}\\\\.){3}\\\\d{1,3}))' + // OR ip (v4) address\n '(\\\\:\\\\d+)?(\\\\/[-a-z\\\\d%_.~+]*)*' + // port and path\n '(\\\\?[;&a-z\\\\d%_.~+=-]*)?' + // query string\n '(\\\\#[-a-z\\\\d_]*)?$', 'i'); // fragment locator\n\n return !!pattern.test(str);\n}\n\nfunction containsProtocol(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/){1}.*', 'i');\n return !!pattern.test(str);\n}\n\nString.prototype.replaceAll = function (search, replacement) {\n var target = this;\n return target.split(search).join(replacement);\n};\n\nvar _c, _c2, _c3, _c4, _c5, _c6, _c7, _c8, _c9, _c10, _c11, _c12;\n\n$RefreshReg$(_c, \"Homepage\");\n$RefreshReg$(_c2, \"Search\");\n$RefreshReg$(_c3, \"Header\");\n$RefreshReg$(_c4, \"Applications\");\n$RefreshReg$(_c5, \"App\");\n$RefreshReg$(_c6, \"Bookmarks\");\n$RefreshReg$(_c7, \"LinkGroups\");\n$RefreshReg$(_c8, \"LinkItem\");\n$RefreshReg$(_c9, \"ModalMenu\");\n$RefreshReg$(_c10, \"Provider\");\n$RefreshReg$(_c11, \"ModalInit\");\n$RefreshReg$(_c12, \"Clock\");","map":{"version":3,"sources":["/home/seanedmunds/dev/home-page/src/index.js"],"names":["React","useState","useEffect","ReactDOM","Homepage","date","greet","Search","handleKeyPress","Header","props","Applications","appList","getApps","items","i","apps","length","push","name","url","icon","NSFW","App","classNameType","hrefUrl","iconName","Bookmarks","bookmarkList","getLinks","bookmarks","category","links","LinkGroups","LinkItem","link","ModalMenu","providers","getProviders","Provider","provider","prefix","ModalInit","render","document","getElementById","currentDate","Date","dateOptions","weekday","year","month","day","toLocaleDateString","fixDigits","k","currentTime","Math","floor","getHours","easterEggChance","random","greetings","require","timeBased","easterEggs","messages","easteregg","concat","message","easterEggText","Clock","setDate","refreshClock","timerId","setInterval","cleanup","clearInterval","hour","minutes","getMinutes","midday","time","applications","getThemes","themes","e","sindex","cycle","key","keyCode","which","text","target","value","replaceAll","option","substr","indexOf","subtext","search","preventDefault","stopPropagation","streamers","streamer","updateLabel","innerHTML","window","location","validURL","containsProtocol","str","pattern","RegExp","test","String","prototype","replacement","split","join"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { useState, useEffect } from 'react';\nimport ReactDOM from 'react-dom';\n//import { unstable_createPortal } from 'react-dom';\nimport './index.css';\nimport './themer';\n\nfunction Homepage() {\n return (\n \n \n \n
\n \n \n
\n \n \n \n
\n \n \n
\n \n \n
\n \n );\n}\n\nfunction Search() {\n return (\n \n )\n}\n\nfunction Header(props) {\n return (\n \n );\n}\n\nfunction Applications() {\n let appList = getApps();\n var items = [];\n for (var i = 0; i < appList.apps.length; i++) {\n items.push(\n \n );\n }\n return (\n \n Applications
\n \n {items}\n
\n \n );\n}\n\nfunction App(props) {\n let classNameType = props.NSFW + \"-content\";\n let hrefUrl = \"https://\" + props.url;\n let iconName = \"mdi-\" + props.icon;\n return (\n \n );\n}\n\nfunction Bookmarks() {\n let bookmarkList = getLinks();\n var items = [];\n for (var i = 0; i < bookmarkList.bookmarks.length; i++) {\n items.push(\n \n );\n }\n return (\n \n Bookmarks
\n \n {items}\n
\n \n );\n}\n\nfunction LinkGroups(props) {\n var items = [];\n for (var i = 0; i < props.links.length; i++) {\n items.push(\n \n );\n }\n return (\n \n
{props.category}
\n {items}\n \n );\n}\n\nfunction LinkItem(props) {\n return (\n \n );\n}\n\nfunction ModalMenu() {\n var providers = getProviders();\n var items = [];\n for (var i = 0; i < providers.providers.length; i++) {\n items.push(\n \n );\n }\n return (\n \n \n \n\n
Color themes
\n\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n\n\n
Search options
\n
\n \n \n \n | Website | \n Prefix | \n
\n {items}\n \n
\n \n\n \n
\n \n );\n}\n\nfunction Provider(props) {\n return (\n \n | {props.provider.name} | \n {props.provider.prefix} | \n
\n );\n}\n\nfunction ModalInit() {\n return (\n \n );\n}\n\nReactDOM.render(\n ,\n document.getElementById('root')\n);\n\n//Functions below this line are for calculating data for\n//other functions\n\nfunction date() {\n let currentDate = new Date();\n let dateOptions = {\n weekday: \"long\",\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\"\n };\n let date = currentDate.toLocaleDateString(\"en-GB\", dateOptions);\n return date;\n}\nfunction fixDigits(k) {\n if (k < 10) {\n return \"0\" + k;\n }\n else {\n return k;\n }\n}\nfunction greet() {\n let currentTime = new Date();\n let greet = Math.floor(currentTime.getHours() / 6);\n let easterEggChance = Math.floor(Math.random() * 100);\n let greetings = require('./messages.json');\n let timeBased = [];\n let easterEggs = [];\n for (var i = 0; i < greetings.messages.length; i++) {\n if (greetings.messages[i].easteregg === \"FALSE\") {\n timeBased = timeBased.concat(greetings.messages[i]);\n } else {\n easterEggs = easterEggs.concat(greetings.messages[i]);\n }\n }\n if (easterEggChance > 10) {\n return timeBased[greet].message;\n } else {\n let easterEggText = Math.floor(Math.random() * easterEggs.length);\n return easterEggs[easterEggText].message;\n }\n}\nfunction Clock() {\n const [date, setDate] = useState(new Date());\n\n function refreshClock() {\n setDate(new Date());\n }\n useEffect(() => {\n const timerId = setInterval(refreshClock, 1000);\n return function cleanup() {\n clearInterval(timerId);\n };\n }, []);\n\n var hour = date.getHours();\n var minutes = date.getMinutes();\n //var seconds = date.getSeconds();\n var midday = \"AM\";\n midday = (hour >= 12) ? \"PM\" : \"AM\";\n hour = (hour === 0) ? 12 : ((hour > 12) ? (hour - 12) : hour);\n minutes = fixDigits(minutes);\n //seconds = fixDigits(seconds);\n let time = hour + \":\" + minutes + \" \" + midday;\n\n return (\n {time}
\n\n );\n}\nfunction getApps() {\n let applications = require('./apps.json');\n return applications;\n}\nfunction getLinks() {\n let links = require('./links.json');\n return links;\n}\nfunction getProviders() {\n let providers = require('./providers.json');\n return providers;\n}\nfunction getThemes() {\n let providers = require('./themes.json');\n return themes;\n}\n\nfunction handleKeyPress(e) {\n var sindex = 0;\n var cycle = false;\n var key = e.keyCode || e.which;\n var text = e.target.value.replaceAll(\"+\", \"%2B\");\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n if (key == 13) { // Search functions\n search(text);\n }\n if (key == 9) { // Tab Completion Functions\n e.preventDefault();\n e.stopPropagation();\n if (text[0] === ';') {\n switch (option) {\n case 't':\n var streamers = ['admiralbahroo', 'moonmoon_ow', 'witwix'];\n if (!subtext || cycle) {\n cycle = true;\n if (sindex > streamers.length - 1) sindex = 0;\n document.getElementById(\"keywords\").value = ';t ' + streamers[sindex++];\n return;\n }\n for (var streamer of streamers) {\n if (subtext === streamer.substr(0, subtext.length)) {\n document.getElementById(\"keywords\").value = ';t ' + streamer;\n return;\n }\n }\n break;\n }\n }\n }\n if(key == 32){ //Space to go to search\nupdateLabel(text);\n }\n sindex = 0;\n cycle = false;\n updateLabel(text);\n}\n\nfunction updateLabel(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n if (text[0] === '/') {\n// if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n document.getElementById(\"searchType\").innerHTML = \"Allmusic search\";\n break;\n case \"d\":\n document.getElementById(\"searchType\").innerHTML = \"Duck Duck Go search\";\n break;\n case \"di\":\n document.getElementById(\"searchType\").innerHTML = \"Discogs search\";\n break;\n case \"i\":\n document.getElementById(\"searchType\").innerHTML = \"IMDB search\";\n break;\n case \"m\":\n document.getElementById(\"searchType\").innerHTML = \"TheMovieDB search\";\n break;\n case \"r\":\n document.getElementById(\"searchType\").innerHTML = \"Reddit search\";\n break;\n case \"q\":\n document.getElementById(\"searchType\").innerHTML = \"Qwant search\";\n break;\n case \"so\":\n document.getElementById(\"searchType\").innerHTML = \"Soundcloud search\";\n break;\n case \"s\":\n document.getElementById(\"searchType\").innerHTML = \"Spotify search\";\n break;\n case \"tv\":\n document.getElementById(\"searchType\").innerHTML = \"TheTVDB search\";\n break;\n case \"t\":\n document.getElementById(\"searchType\").innerHTML = \"Trakt search\";\n break;\n case \"y\":\n document.getElementById(\"searchType\").innerHTML = \"YouTube search\";\n break;\n case \"w\":\n document.getElementById(\"searchType\").innerHTML = \"Wikipedia search\";\n break;\n case \"p\":\n document.getElementById(\"searchType\").innerHTML = \"Plex search\";\n break;\n case \"rt\":\n document.getElementById(\"searchType\").innerHTML = \"Rotten Tomatoes search\";\n break;\n default:\n document.getElementById(\"searchType\").innerHTML = \"Invalid search\";\n break;\n }\n}else {\n document.getElementById(\"searchType\").innerHTML = \"Google search\";\n }\n}\n\nfunction search(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n if (text[0] === '/') {\n if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n window.location = \"https://www.allmusic.com/search/all/\" + subtext;\n break;\n case \"d\":\n window.location = \"https://duckduckgo.com/?q=\" + subtext;\n break;\n case \"di\":\n window.location = \"https://www.discogs.com/search/?q=\" + subtext;\n break;\n case \"i\":\n window.location = \"https://www.imdb.com/find?q=\" + subtext;\n break;\n case \"m\":\n window.location = \"https://www.themoviedb.org/search?query=\" + subtext;\n break;\n case \"r\":\n window.location = \"https://www.reddit.com/search?q=\" + subtext;\n break;\n case \"q\":\n window.location = \"https://www.qwant.com/?q=\" + subtext;\n break;\n case \"so\":\n window.location = \"https://soundcloud.com/search?q=\" + subtext;\n break;\n case \"s\":\n window.location = \"https://open.spotify.com/search/results/\" + subtext;\n break;\n case \"t\":\n window.location = \"https://trakt.tv/search?query=\" + subtext;\n break;\n case \"tv\":\n window.location = \"https://www.thetvdb.com/search?query=\" + subtext;\n break;\n case \"y\":\n window.location = \"https://www.youtube.com/results?search_query=\" + subtext;\n break;\n case \"w\":\n window.location = \"https://en.wikipedia.org/w/index.php?search=\" + subtext;\n break;\n case \"p\":\n window.location = \"https://app.plex.tv/desktop/#!/search?query=\" + subtext;\n break;\n case \"rt\":\n window.location = \"https://www.rottentomatoes.com/search?search=\" + subtext;\n break;\n }\n } else {\n var option = text.substr(1);\n switch (option) {\n case \"d\":\n window.location = \"https://www.duckduckgo.com\";\n break;\n case \"y\":\n window.location = \"https://www.youtube.com\";\n break;\n case \"r\":\n window.location = \"https://reddit.com\";\n break;\n case \"s\":\n window.location = \"https://open.spotify.com\";\n break;\n }\n }\n } else if (validURL(text)) {\n if (containsProtocol(text))\n window.location = text;\n else\n window.location = \"https://\" + text;\n } else {\n window.location = \"https://www.google.com/search?q=\" + text;\n }\n}\n\n// Source: https://stackoverflow.com/questions/5717093/check-if-a-javascript-string-is-a-url\nfunction validURL(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/)?' + // protocol\n '((([a-z\\\\d]([a-z\\\\d-]*[a-z\\\\d])*)\\\\.)+[a-z]{2,}|' + // domain name\n '((\\\\d{1,3}\\\\.){3}\\\\d{1,3}))' + // OR ip (v4) address\n '(\\\\:\\\\d+)?(\\\\/[-a-z\\\\d%_.~+]*)*' + // port and path\n '(\\\\?[;&a-z\\\\d%_.~+=-]*)?' + // query string\n '(\\\\#[-a-z\\\\d_]*)?$', 'i'); // fragment locator\n return !!pattern.test(str);\n}\n\nfunction containsProtocol(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/){1}.*', 'i');\n return !!pattern.test(str);\n}\n\nString.prototype.replaceAll = function(search, replacement) {\n var target = this;\n return target.split(search).join(replacement);\n};"]},"metadata":{},"sourceType":"module"}
\ No newline at end of file
diff --git a/node_modules/.cache/babel-loader/a6c372ab633dbb31c0c2e9df211a4d25.json b/node_modules/.cache/babel-loader/a6c372ab633dbb31c0c2e9df211a4d25.json
new file mode 100644
index 00000000..456d81d4
--- /dev/null
+++ b/node_modules/.cache/babel-loader/a6c372ab633dbb31c0c2e9df211a4d25.json
@@ -0,0 +1 @@
+{"ast":null,"code":"var _jsxFileName = \"/home/seanedmunds/dev/home-page/src/index.js\",\n _s = $RefreshSig$();\n\nimport React from 'react';\nimport { useState, useEffect } from 'react';\nimport ReactDOM from 'react-dom'; //import { unstable_createPortal } from 'react-dom';\n\nimport './index.css';\nimport { jsxDEV as _jsxDEV } from \"react/jsx-dev-runtime\";\n\nconst setValueFromLocalStorage = property => {\n let value = localStorage.getItem(property);\n setValue(property, value);\n};\n\nconst setValue = (property, value) => {\n if (value) {\n document.documentElement.style.setProperty(`--${property}`, value);\n const input = document.querySelector(`#${property}`);\n\n if (input) {\n value = value.replace('px', '');\n input.value = value;\n }\n }\n};\n\nfunction Homepage() {\n setTheme();\n return /*#__PURE__*/_jsxDEV(\"main\", {\n id: \"container\",\n className: \"fade\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Search, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 28,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 27,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Header, {\n date: date(),\n greet: greet()\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 31,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 30,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Applications, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 37,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 36,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Bookmarks, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 40,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 39,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(ModalMenu, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 43,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 42,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(ModalInit, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 46,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 45,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 26,\n columnNumber: 5\n }, this);\n}\n\n_c = Homepage;\n\nfunction Search() {\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"search\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"abackground\",\n children: [/*#__PURE__*/_jsxDEV(\"input\", {\n name: \"keywords\",\n type: \"text\",\n className: \"keyword\",\n id: \"keywords\",\n size: \"50\",\n spellCheck: \"true\",\n placeholder: \"\"\n /*onFocus={this.placeholder = \"\"} onBlur={this.placeholder = ''}*/\n ,\n autoComplete: \"off\",\n autoFocus: true,\n onKeyUp: handleKeyPress\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 56,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n id: \"searchType\",\n className: \"Input-label\",\n children: \"Google search\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 57,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 55,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 54,\n columnNumber: 5\n }, this);\n}\n\n_c2 = Search;\n\nfunction Header(props) {\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"header\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n id: \"greeting_block\",\n children: /*#__PURE__*/_jsxDEV(\"h1\", {\n id: \"header_greet\",\n children: props.greet\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 67,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 66,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"date_block\",\n children: [/*#__PURE__*/_jsxDEV(\"h2\", {\n id: \"header_date\",\n children: props.date\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 70,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(Clock, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 71,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 69,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 65,\n columnNumber: 5\n }, this);\n}\n\n_c3 = Header;\n\nfunction Applications() {\n let appList = getApps();\n var items = [];\n\n for (var i = 0; i < appList.apps.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(App, {\n name: appList.apps[i].name,\n url: appList.apps[i].url,\n icon: appList.apps[i].icon,\n NSFW: appList.apps[i].NSFW\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 82,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"apps\",\n children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n children: \"Applications\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 93,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"apps_loop\",\n children: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 94,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 92,\n columnNumber: 5\n }, this);\n}\n\n_c4 = Applications;\n\nfunction App(props) {\n let classNameType = props.NSFW + \"-content\";\n let hrefUrl = \"https://\" + props.url;\n let iconName = \"mdi-\" + props.icon;\n return /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: hrefUrl,\n className: classNameType,\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_item\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_icon\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify icon\",\n \"data-icon\": iconName\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 110,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 109,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_text\",\n children: [/*#__PURE__*/_jsxDEV(\"span\", {\n id: \"app-name\",\n children: props.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 113,\n columnNumber: 13\n }, this), /*#__PURE__*/_jsxDEV(\"span\", {\n id: \"app-address\",\n children: props.url\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 114,\n columnNumber: 13\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 112,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 108,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 107,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 106,\n columnNumber: 5\n }, this);\n}\n\n_c5 = App;\n\nfunction Bookmarks() {\n let bookmarkList = getLinks();\n var items = [];\n\n for (var i = 0; i < bookmarkList.bookmarks.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(LinkGroups, {\n category: bookmarkList.bookmarks[i].category,\n links: bookmarkList.bookmarks[i].links\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 127,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"links\",\n children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n children: \"Bookmarks\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 136,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"links_loop\",\n children: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 137,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 135,\n columnNumber: 5\n }, this);\n}\n\n_c6 = Bookmarks;\n\nfunction LinkGroups(props) {\n var items = [];\n\n for (var i = 0; i < props.links.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(LinkItem, {\n link: props.links[i]\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 148,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"links_item\",\n children: [/*#__PURE__*/_jsxDEV(\"h4\", {\n children: props.category\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 156,\n columnNumber: 7\n }, this), items]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 155,\n columnNumber: 5\n }, this);\n}\n\n_c7 = LinkGroups;\n\nfunction LinkItem(props) {\n return /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: props.link.url,\n className: \"theme_color-border theme_text-select\",\n children: props.link.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 165,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 164,\n columnNumber: 5\n }, this);\n}\n\n_c8 = LinkItem;\n\nfunction ModalMenu() {\n var providers = getProviders();\n var items = [];\n\n for (var i = 0; i < providers.providers.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(Provider, {\n provider: providers.providers[i]\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 175,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"modal\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n children: [/*#__PURE__*/_jsxDEV(\"header\", {\n id: \"modal-header\",\n children: [/*#__PURE__*/_jsxDEV(\"h1\", {\n children: \"Options\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 185,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n href: \"#\",\n title: \"Close\",\n className: \"modal-close\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-close\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 187,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 186,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 184,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"h2\", {\n children: \"Color themes\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 191,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"modal-theme\",\n children: [/*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"blackboard\",\n className: \"theme-button theme-blackboard\",\n onClick: updateTheme,\n children: \"Blackboard\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 194,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"gazette\",\n className: \"theme-button theme-gazette\",\n onClick: updateTheme,\n children: \"Gazette\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 195,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"espresso\",\n className: \"theme-button theme-espresso\",\n onClick: updateTheme,\n children: \"Espresso\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 196,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cab\",\n className: \"theme-button theme-cab\",\n onClick: updateTheme,\n children: \"Cab\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 197,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cloud\",\n className: \"theme-button theme-cloud\",\n onClick: updateTheme,\n children: \"Cloud\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 198,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"lime\",\n className: \"theme-button theme-lime\",\n onClick: updateTheme,\n children: \"Lime\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 199,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"passion\",\n className: \"theme-button theme-passion\",\n onClick: updateTheme,\n children: \"Passion\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 200,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"blues\",\n className: \"theme-button theme-blues\",\n onClick: updateTheme,\n children: \"Blues\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 201,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"chalk\",\n className: \"theme-button theme-chalk\",\n onClick: updateTheme,\n children: \"Chalk\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 202,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"tron\",\n className: \"theme-button theme-tron\",\n onClick: updateTheme,\n children: \"Tron\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 203,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"paper\",\n className: \"theme-button theme-paper\",\n onClick: updateTheme,\n children: \"Paper\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 204,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cyberpunk\",\n className: \"theme-button theme-cyberpunk\",\n onClick: updateTheme,\n children: \"Cyberpunk\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 205,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"quadra\",\n className: \"theme-button theme-panam\",\n onClick: updateTheme,\n children: \"Quadra\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 206,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"panam\",\n className: \"theme-button theme-panam\",\n onClick: updateTheme,\n children: \"Panam\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 207,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"touch\",\n className: \"theme-button theme-touch\",\n onClick: updateTheme,\n children: \"Touch\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 208,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"peek\",\n className: \"theme-button theme-peek\",\n onClick: updateTheme,\n children: \"Peek\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 209,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 193,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"h2\", {\n children: \"Search options\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 213,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"providers\",\n children: /*#__PURE__*/_jsxDEV(\"table\", {\n children: /*#__PURE__*/_jsxDEV(\"tbody\", {\n children: [/*#__PURE__*/_jsxDEV(\"tr\", {\n children: [/*#__PURE__*/_jsxDEV(\"th\", {\n children: \"Website\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 218,\n columnNumber: 19\n }, this), /*#__PURE__*/_jsxDEV(\"th\", {\n children: \"Prefix\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 219,\n columnNumber: 19\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 217,\n columnNumber: 17\n }, this), items]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 216,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 215,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 214,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"header\", {\n id: \"modal-footer\",\n children: [/*#__PURE__*/_jsxDEV(\"a\", {\n href: \"https://github.com/jeroenpardon/\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-github-box\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 227,\n columnNumber: 54\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 227,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n href: \"https://materialdesignicons.com/\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-material-design\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 228,\n columnNumber: 54\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 228,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"sneaky\",\n children: [/*#__PURE__*/_jsxDEV(\"input\", {\n type: \"checkbox\",\n id: \"contenttype\",\n onChange: \"nsfw(this)\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 229,\n columnNumber: 35\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n for: \"contenttype\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-domino-mask\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 230,\n columnNumber: 36\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 230,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 229,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 226,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 183,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 182,\n columnNumber: 5\n }, this);\n}\n\n_c9 = ModalMenu;\n\nfunction Provider(props) {\n return /*#__PURE__*/_jsxDEV(\"tr\", {\n children: [/*#__PURE__*/_jsxDEV(\"td\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: props.provider.url,\n children: props.provider.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 240,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 240,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"td\", {\n children: props.provider.prefix\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 241,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 239,\n columnNumber: 5\n }, this);\n}\n\n_c10 = Provider;\n\nfunction ModalInit() {\n return /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"modal_init\",\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n className: \"btn\",\n href: \"#modal\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify icon\",\n \"data-icon\": \"mdi-xbox-controller-menu\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 250,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 249,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 248,\n columnNumber: 5\n }, this);\n}\n\n_c11 = ModalInit;\nReactDOM.render( /*#__PURE__*/_jsxDEV(Homepage, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 257,\n columnNumber: 3\n}, this), document.getElementById('root')); //Functions below this line are for calculating data for\n//other functions\n\nfunction date() {\n let currentDate = new Date();\n let dateOptions = {\n weekday: \"long\",\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\"\n };\n let date = currentDate.toLocaleDateString(\"en-GB\", dateOptions);\n return date;\n}\n\nfunction fixDigits(k) {\n if (k < 10) {\n return \"0\" + k;\n } else {\n return k;\n }\n}\n\nfunction greet() {\n let currentTime = new Date();\n let greet = Math.floor(currentTime.getHours() / 6);\n let easterEggChance = Math.floor(Math.random() * 100);\n\n let greetings = require('./messages.json');\n\n let timeBased = [];\n let easterEggs = [];\n\n for (var i = 0; i < greetings.messages.length; i++) {\n if (greetings.messages[i].easteregg === \"FALSE\") {\n timeBased = timeBased.concat(greetings.messages[i]);\n } else {\n easterEggs = easterEggs.concat(greetings.messages[i]);\n }\n }\n\n if (easterEggChance > 10) {\n return timeBased[greet].message;\n } else {\n let easterEggText = Math.floor(Math.random() * easterEggs.length);\n return easterEggs[easterEggText].message;\n }\n}\n\nfunction Clock() {\n _s();\n\n const [date, setDate] = useState(new Date());\n\n function refreshClock() {\n setDate(new Date());\n }\n\n useEffect(() => {\n const timerId = setInterval(refreshClock, 1000);\n return function cleanup() {\n clearInterval(timerId);\n };\n }, []);\n var hour = date.getHours();\n var minutes = date.getMinutes(); //var seconds = date.getSeconds();\n\n var midday = \"AM\";\n midday = hour >= 12 ? \"PM\" : \"AM\";\n hour = hour === 0 ? 12 : hour > 12 ? hour - 12 : hour;\n minutes = fixDigits(minutes); //seconds = fixDigits(seconds);\n\n let time = hour + \":\" + minutes + \" \" + midday;\n return /*#__PURE__*/_jsxDEV(\"h2\", {\n id: \"clock\",\n children: time\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 328,\n columnNumber: 5\n }, this);\n}\n\n_s(Clock, \"Gqi45WOZhU2c0BLYX0HoJeiR0fk=\");\n\n_c12 = Clock;\n\nfunction getApps() {\n let applications = require('./apps.json');\n\n return applications;\n}\n\nfunction getLinks() {\n let links = require('./links.json');\n\n return links;\n}\n\nfunction getProviders() {\n let providers = require('./providers.json');\n\n return providers;\n}\n\nfunction getThemes() {\n let themes = require('./themes.json');\n\n return themes;\n}\n\nfunction updateTheme(e) {\n var themes = getThemes();\n var themeName = e.target.innerHTML.toLowerCase();\n var index = themes.themes.findIndex(function (item, i) {\n return item.name === themeName;\n });\n console.log(themes.themes[index]);\n localStorage.setItem(\"image-background\", themes.themes[index].imagebackground);\n localStorage.setItem(\"color-background\", themes.themes[index].colorbackground);\n localStorage.setItem(\"color-search-background\", themes.themes[index].colorserachbackground);\n localStorage.setItem(\"color-text-pri\", themes.themes[index].colortextpri);\n localStorage.setItem(\"color-text-acc\", themes.themes[index].colortextacc);\n localStorage.setItem(\"color-border\", themes.themes[index].colorborder); //document.documentElement.style.setProperty(prop, `var(--${themeName}${prop.substring(10)})`);\n\n setTheme();\n}\n\nfunction setTheme() {\n setValueFromLocalStorage('image-background');\n setValueFromLocalStorage('color-background');\n setValueFromLocalStorage('color-search-background');\n setValueFromLocalStorage('color-text-pri');\n setValueFromLocalStorage('color-text-acc');\n setValueFromLocalStorage('color-border');\n setValueFromLocalStorage('content-display');\n}\n\nfunction handleKeyPress(e) {\n var sindex = 0;\n var cycle = false;\n var key = e.keyCode || e.which;\n var text = e.target.value.replaceAll(\"+\", \"%2B\");\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n\n if (key == 13) {\n // Search functions\n search(text);\n }\n\n if (key == 9) {\n // Tab Completion Functions\n e.preventDefault();\n e.stopPropagation();\n\n if (text[0] === ';') {\n switch (option) {\n case 't':\n var streamers = ['admiralbahroo', 'moonmoon_ow', 'witwix'];\n\n if (!subtext || cycle) {\n cycle = true;\n if (sindex > streamers.length - 1) sindex = 0;\n document.getElementById(\"keywords\").value = ';t ' + streamers[sindex++];\n return;\n }\n\n for (var streamer of streamers) {\n if (subtext === streamer.substr(0, subtext.length)) {\n document.getElementById(\"keywords\").value = ';t ' + streamer;\n return;\n }\n }\n\n break;\n }\n }\n }\n\n if (key == 32) {\n //Space to go to search\n updateLabel(text);\n }\n\n sindex = 0;\n cycle = false;\n updateLabel(text);\n}\n\nfunction updateLabel(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n\n if (text[0] === '/') {\n // if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n document.getElementById(\"searchType\").innerHTML = \"Allmusic search\";\n break;\n\n case \"d\":\n document.getElementById(\"searchType\").innerHTML = \"Duck Duck Go search\";\n break;\n\n case \"di\":\n document.getElementById(\"searchType\").innerHTML = \"Discogs search\";\n break;\n\n case \"i\":\n document.getElementById(\"searchType\").innerHTML = \"IMDB search\";\n break;\n\n case \"m\":\n document.getElementById(\"searchType\").innerHTML = \"TheMovieDB search\";\n break;\n\n case \"r\":\n document.getElementById(\"searchType\").innerHTML = \"Reddit search\";\n break;\n\n case \"q\":\n document.getElementById(\"searchType\").innerHTML = \"Qwant search\";\n break;\n\n case \"so\":\n document.getElementById(\"searchType\").innerHTML = \"Soundcloud search\";\n break;\n\n case \"s\":\n document.getElementById(\"searchType\").innerHTML = \"Spotify search\";\n break;\n\n case \"tv\":\n document.getElementById(\"searchType\").innerHTML = \"TheTVDB search\";\n break;\n\n case \"t\":\n document.getElementById(\"searchType\").innerHTML = \"Trakt search\";\n break;\n\n case \"y\":\n document.getElementById(\"searchType\").innerHTML = \"YouTube search\";\n break;\n\n case \"w\":\n document.getElementById(\"searchType\").innerHTML = \"Wikipedia search\";\n break;\n\n case \"p\":\n document.getElementById(\"searchType\").innerHTML = \"Plex search\";\n break;\n\n case \"rt\":\n document.getElementById(\"searchType\").innerHTML = \"Rotten Tomatoes search\";\n break;\n\n default:\n document.getElementById(\"searchType\").innerHTML = \"Invalid search\";\n break;\n }\n } else {\n document.getElementById(\"searchType\").innerHTML = \"Google search\";\n }\n}\n\nfunction search(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n\n if (text[0] === '/') {\n if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n window.location = \"https://www.allmusic.com/search/all/\" + subtext;\n break;\n\n case \"d\":\n window.location = \"https://duckduckgo.com/?q=\" + subtext;\n break;\n\n case \"di\":\n window.location = \"https://www.discogs.com/search/?q=\" + subtext;\n break;\n\n case \"i\":\n window.location = \"https://www.imdb.com/find?q=\" + subtext;\n break;\n\n case \"m\":\n window.location = \"https://www.themoviedb.org/search?query=\" + subtext;\n break;\n\n case \"r\":\n window.location = \"https://www.reddit.com/search?q=\" + subtext;\n break;\n\n case \"q\":\n window.location = \"https://www.qwant.com/?q=\" + subtext;\n break;\n\n case \"so\":\n window.location = \"https://soundcloud.com/search?q=\" + subtext;\n break;\n\n case \"s\":\n window.location = \"https://open.spotify.com/search/results/\" + subtext;\n break;\n\n case \"t\":\n window.location = \"https://trakt.tv/search?query=\" + subtext;\n break;\n\n case \"tv\":\n window.location = \"https://www.thetvdb.com/search?query=\" + subtext;\n break;\n\n case \"y\":\n window.location = \"https://www.youtube.com/results?search_query=\" + subtext;\n break;\n\n case \"w\":\n window.location = \"https://en.wikipedia.org/w/index.php?search=\" + subtext;\n break;\n\n case \"p\":\n window.location = \"https://app.plex.tv/desktop/#!/search?query=\" + subtext;\n break;\n\n case \"rt\":\n window.location = \"https://www.rottentomatoes.com/search?search=\" + subtext;\n break;\n }\n } else {\n var option = text.substr(1);\n\n switch (option) {\n case \"d\":\n window.location = \"https://www.duckduckgo.com\";\n break;\n\n case \"y\":\n window.location = \"https://www.youtube.com\";\n break;\n\n case \"r\":\n window.location = \"https://reddit.com\";\n break;\n\n case \"s\":\n window.location = \"https://open.spotify.com\";\n break;\n }\n }\n } else if (validURL(text)) {\n if (containsProtocol(text)) window.location = text;else window.location = \"https://\" + text;\n } else {\n window.location = \"https://www.google.com/search?q=\" + text;\n }\n} // Source: https://stackoverflow.com/questions/5717093/check-if-a-javascript-string-is-a-url\n\n\nfunction validURL(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/)?' + // protocol\n '((([a-z\\\\d]([a-z\\\\d-]*[a-z\\\\d])*)\\\\.)+[a-z]{2,}|' + // domain name\n '((\\\\d{1,3}\\\\.){3}\\\\d{1,3}))' + // OR ip (v4) address\n '(\\\\:\\\\d+)?(\\\\/[-a-z\\\\d%_.~+]*)*' + // port and path\n '(\\\\?[;&a-z\\\\d%_.~+=-]*)?' + // query string\n '(\\\\#[-a-z\\\\d_]*)?$', 'i'); // fragment locator\n\n return !!pattern.test(str);\n}\n\nfunction containsProtocol(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/){1}.*', 'i');\n return !!pattern.test(str);\n}\n\nString.prototype.replaceAll = function (search, replacement) {\n var target = this;\n return target.split(search).join(replacement);\n};\n\nvar _c, _c2, _c3, _c4, _c5, _c6, _c7, _c8, _c9, _c10, _c11, _c12;\n\n$RefreshReg$(_c, \"Homepage\");\n$RefreshReg$(_c2, \"Search\");\n$RefreshReg$(_c3, \"Header\");\n$RefreshReg$(_c4, \"Applications\");\n$RefreshReg$(_c5, \"App\");\n$RefreshReg$(_c6, \"Bookmarks\");\n$RefreshReg$(_c7, \"LinkGroups\");\n$RefreshReg$(_c8, \"LinkItem\");\n$RefreshReg$(_c9, \"ModalMenu\");\n$RefreshReg$(_c10, \"Provider\");\n$RefreshReg$(_c11, \"ModalInit\");\n$RefreshReg$(_c12, \"Clock\");","map":{"version":3,"sources":["/home/seanedmunds/dev/home-page/src/index.js"],"names":["React","useState","useEffect","ReactDOM","setValueFromLocalStorage","property","value","localStorage","getItem","setValue","document","documentElement","style","setProperty","input","querySelector","replace","Homepage","setTheme","date","greet","Search","handleKeyPress","Header","props","Applications","appList","getApps","items","i","apps","length","push","name","url","icon","NSFW","App","classNameType","hrefUrl","iconName","Bookmarks","bookmarkList","getLinks","bookmarks","category","links","LinkGroups","LinkItem","link","ModalMenu","providers","getProviders","updateTheme","Provider","provider","prefix","ModalInit","render","getElementById","currentDate","Date","dateOptions","weekday","year","month","day","toLocaleDateString","fixDigits","k","currentTime","Math","floor","getHours","easterEggChance","random","greetings","require","timeBased","easterEggs","messages","easteregg","concat","message","easterEggText","Clock","setDate","refreshClock","timerId","setInterval","cleanup","clearInterval","hour","minutes","getMinutes","midday","time","applications","getThemes","themes","e","themeName","target","innerHTML","toLowerCase","index","findIndex","item","console","log","setItem","imagebackground","colorbackground","colorserachbackground","colortextpri","colortextacc","colorborder","sindex","cycle","key","keyCode","which","text","replaceAll","option","substr","indexOf","subtext","search","preventDefault","stopPropagation","streamers","streamer","updateLabel","window","location","validURL","containsProtocol","str","pattern","RegExp","test","String","prototype","replacement","split","join"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { useState, useEffect } from 'react';\nimport ReactDOM from 'react-dom';\n//import { unstable_createPortal } from 'react-dom';\nimport './index.css';\n\nconst setValueFromLocalStorage = property => {\n let value = localStorage.getItem(property);\n setValue(property, value);\n};\nconst setValue = (property, value) => {\n if (value) {\n document.documentElement.style.setProperty(`--${property}`, value);\n\n const input = document.querySelector(`#${property}`);\n if (input) {\n value = value.replace('px', '');\n input.value = value;\n }\n }\n};\n\nfunction Homepage() {\n setTheme();\n return (\n \n \n \n
\n \n \n
\n \n \n \n
\n \n \n
\n \n \n
\n \n );\n}\n\nfunction Search() {\n return (\n \n )\n}\n\nfunction Header(props) {\n return (\n \n );\n}\n\nfunction Applications() {\n let appList = getApps();\n var items = [];\n for (var i = 0; i < appList.apps.length; i++) {\n items.push(\n \n );\n }\n return (\n \n Applications
\n \n {items}\n
\n \n );\n}\n\nfunction App(props) {\n let classNameType = props.NSFW + \"-content\";\n let hrefUrl = \"https://\" + props.url;\n let iconName = \"mdi-\" + props.icon;\n return (\n \n );\n}\n\nfunction Bookmarks() {\n let bookmarkList = getLinks();\n var items = [];\n for (var i = 0; i < bookmarkList.bookmarks.length; i++) {\n items.push(\n \n );\n }\n return (\n \n Bookmarks
\n \n {items}\n
\n \n );\n}\n\nfunction LinkGroups(props) {\n var items = [];\n for (var i = 0; i < props.links.length; i++) {\n items.push(\n \n );\n }\n return (\n \n
{props.category}
\n {items}\n \n );\n}\n\nfunction LinkItem(props) {\n return (\n \n );\n}\n\nfunction ModalMenu() {\n var providers = getProviders();\n var items = [];\n for (var i = 0; i < providers.providers.length; i++) {\n items.push(\n \n );\n }\n return (\n \n \n \n\n
Color themes
\n\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n\n\n
Search options
\n
\n \n \n \n | Website | \n Prefix | \n
\n {items}\n \n
\n \n\n \n
\n \n );\n}\n\nfunction Provider(props) {\n return (\n \n | {props.provider.name} | \n {props.provider.prefix} | \n
\n );\n}\n\nfunction ModalInit() {\n return (\n \n );\n}\n\nReactDOM.render(\n ,\n document.getElementById('root')\n);\n\n//Functions below this line are for calculating data for\n//other functions\n\nfunction date() {\n let currentDate = new Date();\n let dateOptions = {\n weekday: \"long\",\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\"\n };\n let date = currentDate.toLocaleDateString(\"en-GB\", dateOptions);\n return date;\n}\nfunction fixDigits(k) {\n if (k < 10) {\n return \"0\" + k;\n }\n else {\n return k;\n }\n}\nfunction greet() {\n let currentTime = new Date();\n let greet = Math.floor(currentTime.getHours() / 6);\n let easterEggChance = Math.floor(Math.random() * 100);\n let greetings = require('./messages.json');\n let timeBased = [];\n let easterEggs = [];\n for (var i = 0; i < greetings.messages.length; i++) {\n if (greetings.messages[i].easteregg === \"FALSE\") {\n timeBased = timeBased.concat(greetings.messages[i]);\n } else {\n easterEggs = easterEggs.concat(greetings.messages[i]);\n }\n }\n if (easterEggChance > 10) {\n return timeBased[greet].message;\n } else {\n let easterEggText = Math.floor(Math.random() * easterEggs.length);\n return easterEggs[easterEggText].message;\n }\n}\nfunction Clock() {\n const [date, setDate] = useState(new Date());\n\n function refreshClock() {\n setDate(new Date());\n }\n useEffect(() => {\n const timerId = setInterval(refreshClock, 1000);\n return function cleanup() {\n clearInterval(timerId);\n };\n }, []);\n\n var hour = date.getHours();\n var minutes = date.getMinutes();\n //var seconds = date.getSeconds();\n var midday = \"AM\";\n midday = (hour >= 12) ? \"PM\" : \"AM\";\n hour = (hour === 0) ? 12 : ((hour > 12) ? (hour - 12) : hour);\n minutes = fixDigits(minutes);\n //seconds = fixDigits(seconds);\n let time = hour + \":\" + minutes + \" \" + midday;\n\n return (\n {time}
\n\n );\n}\nfunction getApps() {\n let applications = require('./apps.json');\n return applications;\n}\nfunction getLinks() {\n let links = require('./links.json');\n return links;\n}\nfunction getProviders() {\n let providers = require('./providers.json');\n return providers;\n}\nfunction getThemes() {\n let themes = require('./themes.json');\n return themes;\n}\n\nfunction updateTheme(e) {\n var themes = getThemes();\n var themeName = e.target.innerHTML.toLowerCase();\n var index = themes.themes.findIndex(function(item, i){\n return item.name === themeName\n });\n console.log(themes.themes[index]);\n localStorage.setItem(\"image-background\", themes.themes[index].imagebackground);\n localStorage.setItem(\"color-background\", themes.themes[index].colorbackground);\n localStorage.setItem(\"color-search-background\", themes.themes[index].colorserachbackground);\n localStorage.setItem(\"color-text-pri\",themes.themes[index].colortextpri);\n localStorage.setItem(\"color-text-acc\", themes.themes[index].colortextacc);\n localStorage.setItem(\"color-border\", themes.themes[index].colorborder);\n \n //document.documentElement.style.setProperty(prop, `var(--${themeName}${prop.substring(10)})`);\n setTheme();\n}\n\nfunction setTheme() {\n setValueFromLocalStorage('image-background');\n setValueFromLocalStorage('color-background');\n setValueFromLocalStorage('color-search-background');\n setValueFromLocalStorage('color-text-pri');\n setValueFromLocalStorage('color-text-acc');\n setValueFromLocalStorage('color-border');\n setValueFromLocalStorage('content-display');\n}\n\nfunction handleKeyPress(e) {\n var sindex = 0;\n var cycle = false;\n var key = e.keyCode || e.which;\n var text = e.target.value.replaceAll(\"+\", \"%2B\");\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n if (key == 13) { // Search functions\n search(text);\n }\n if (key == 9) { // Tab Completion Functions\n e.preventDefault();\n e.stopPropagation();\n if (text[0] === ';') {\n switch (option) {\n case 't':\n var streamers = ['admiralbahroo', 'moonmoon_ow', 'witwix'];\n if (!subtext || cycle) {\n cycle = true;\n if (sindex > streamers.length - 1) sindex = 0;\n document.getElementById(\"keywords\").value = ';t ' + streamers[sindex++];\n return;\n }\n for (var streamer of streamers) {\n if (subtext === streamer.substr(0, subtext.length)) {\n document.getElementById(\"keywords\").value = ';t ' + streamer;\n return;\n }\n }\n break;\n }\n }\n }\n if(key == 32){ //Space to go to search\nupdateLabel(text);\n }\n sindex = 0;\n cycle = false;\n updateLabel(text);\n}\n\nfunction updateLabel(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n if (text[0] === '/') {\n// if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n document.getElementById(\"searchType\").innerHTML = \"Allmusic search\";\n break;\n case \"d\":\n document.getElementById(\"searchType\").innerHTML = \"Duck Duck Go search\";\n break;\n case \"di\":\n document.getElementById(\"searchType\").innerHTML = \"Discogs search\";\n break;\n case \"i\":\n document.getElementById(\"searchType\").innerHTML = \"IMDB search\";\n break;\n case \"m\":\n document.getElementById(\"searchType\").innerHTML = \"TheMovieDB search\";\n break;\n case \"r\":\n document.getElementById(\"searchType\").innerHTML = \"Reddit search\";\n break;\n case \"q\":\n document.getElementById(\"searchType\").innerHTML = \"Qwant search\";\n break;\n case \"so\":\n document.getElementById(\"searchType\").innerHTML = \"Soundcloud search\";\n break;\n case \"s\":\n document.getElementById(\"searchType\").innerHTML = \"Spotify search\";\n break;\n case \"tv\":\n document.getElementById(\"searchType\").innerHTML = \"TheTVDB search\";\n break;\n case \"t\":\n document.getElementById(\"searchType\").innerHTML = \"Trakt search\";\n break;\n case \"y\":\n document.getElementById(\"searchType\").innerHTML = \"YouTube search\";\n break;\n case \"w\":\n document.getElementById(\"searchType\").innerHTML = \"Wikipedia search\";\n break;\n case \"p\":\n document.getElementById(\"searchType\").innerHTML = \"Plex search\";\n break;\n case \"rt\":\n document.getElementById(\"searchType\").innerHTML = \"Rotten Tomatoes search\";\n break;\n default:\n document.getElementById(\"searchType\").innerHTML = \"Invalid search\";\n break;\n }\n}else {\n document.getElementById(\"searchType\").innerHTML = \"Google search\";\n }\n}\n\nfunction search(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n if (text[0] === '/') {\n if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n window.location = \"https://www.allmusic.com/search/all/\" + subtext;\n break;\n case \"d\":\n window.location = \"https://duckduckgo.com/?q=\" + subtext;\n break;\n case \"di\":\n window.location = \"https://www.discogs.com/search/?q=\" + subtext;\n break;\n case \"i\":\n window.location = \"https://www.imdb.com/find?q=\" + subtext;\n break;\n case \"m\":\n window.location = \"https://www.themoviedb.org/search?query=\" + subtext;\n break;\n case \"r\":\n window.location = \"https://www.reddit.com/search?q=\" + subtext;\n break;\n case \"q\":\n window.location = \"https://www.qwant.com/?q=\" + subtext;\n break;\n case \"so\":\n window.location = \"https://soundcloud.com/search?q=\" + subtext;\n break;\n case \"s\":\n window.location = \"https://open.spotify.com/search/results/\" + subtext;\n break;\n case \"t\":\n window.location = \"https://trakt.tv/search?query=\" + subtext;\n break;\n case \"tv\":\n window.location = \"https://www.thetvdb.com/search?query=\" + subtext;\n break;\n case \"y\":\n window.location = \"https://www.youtube.com/results?search_query=\" + subtext;\n break;\n case \"w\":\n window.location = \"https://en.wikipedia.org/w/index.php?search=\" + subtext;\n break;\n case \"p\":\n window.location = \"https://app.plex.tv/desktop/#!/search?query=\" + subtext;\n break;\n case \"rt\":\n window.location = \"https://www.rottentomatoes.com/search?search=\" + subtext;\n break;\n }\n } else {\n var option = text.substr(1);\n switch (option) {\n case \"d\":\n window.location = \"https://www.duckduckgo.com\";\n break;\n case \"y\":\n window.location = \"https://www.youtube.com\";\n break;\n case \"r\":\n window.location = \"https://reddit.com\";\n break;\n case \"s\":\n window.location = \"https://open.spotify.com\";\n break;\n }\n }\n } else if (validURL(text)) {\n if (containsProtocol(text))\n window.location = text;\n else\n window.location = \"https://\" + text;\n } else {\n window.location = \"https://www.google.com/search?q=\" + text;\n }\n}\n\n// Source: https://stackoverflow.com/questions/5717093/check-if-a-javascript-string-is-a-url\nfunction validURL(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/)?' + // protocol\n '((([a-z\\\\d]([a-z\\\\d-]*[a-z\\\\d])*)\\\\.)+[a-z]{2,}|' + // domain name\n '((\\\\d{1,3}\\\\.){3}\\\\d{1,3}))' + // OR ip (v4) address\n '(\\\\:\\\\d+)?(\\\\/[-a-z\\\\d%_.~+]*)*' + // port and path\n '(\\\\?[;&a-z\\\\d%_.~+=-]*)?' + // query string\n '(\\\\#[-a-z\\\\d_]*)?$', 'i'); // fragment locator\n return !!pattern.test(str);\n}\n\nfunction containsProtocol(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/){1}.*', 'i');\n return !!pattern.test(str);\n}\n\nString.prototype.replaceAll = function(search, replacement) {\n var target = this;\n return target.split(search).join(replacement);\n};"]},"metadata":{},"sourceType":"module"}
\ No newline at end of file
diff --git a/node_modules/.cache/babel-loader/a6d13dca4658bf0ac34e694df1574335.json b/node_modules/.cache/babel-loader/a6d13dca4658bf0ac34e694df1574335.json
new file mode 100644
index 00000000..673ed677
--- /dev/null
+++ b/node_modules/.cache/babel-loader/a6d13dca4658bf0ac34e694df1574335.json
@@ -0,0 +1 @@
+{"ast":null,"code":"var _jsxFileName = \"/home/seanedmunds/dev/home-page/src/index.js\",\n _s = $RefreshSig$();\n\nimport React from 'react';\nimport { useState, useEffect } from 'react';\nimport ReactDOM from 'react-dom'; //import { unstable_createPortal } from 'react-dom';\n\nimport './index.css';\nimport { jsxDEV as _jsxDEV } from \"react/jsx-dev-runtime\";\n\nfunction Homepage() {\n return /*#__PURE__*/_jsxDEV(\"main\", {\n id: \"container\",\n className: \"fade\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Search, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 11,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 10,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Header, {\n date: date(),\n greet: greet()\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 14,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 13,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Applications, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 20,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 19,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Bookmarks, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 23,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 22,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(ModalMenu, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 26,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 25,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(ModalInit, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 29,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 28,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 9,\n columnNumber: 5\n }, this);\n}\n\n_c = Homepage;\n\nfunction Search() {\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"search\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"abackground\",\n children: [/*#__PURE__*/_jsxDEV(\"input\", {\n name: \"keywords\",\n type: \"text\",\n className: \"keyword\",\n id: \"keywords\",\n size: \"50\",\n spellCheck: \"true\",\n placeholder: \"\"\n /*onFocus={this.placeholder = \"\"} onBlur={this.placeholder = ''}*/\n ,\n autoComplete: \"off\",\n autoFocus: true,\n onKeyUp: handleKeyPress\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 39,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n id: \"searchType\",\n className: \"Input-label\",\n children: \"Google search\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 40,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 38,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 37,\n columnNumber: 5\n }, this);\n}\n\n_c2 = Search;\n\nfunction Header(props) {\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"header\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n id: \"greeting_block\",\n children: /*#__PURE__*/_jsxDEV(\"h1\", {\n id: \"header_greet\",\n children: props.greet\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 50,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 49,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"date_block\",\n children: [/*#__PURE__*/_jsxDEV(\"h2\", {\n id: \"header_date\",\n children: props.date\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 53,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(Clock, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 54,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 52,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 48,\n columnNumber: 5\n }, this);\n}\n\n_c3 = Header;\n\nfunction Applications() {\n let appList = getApps();\n var items = [];\n\n for (var i = 0; i < appList.apps.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(App, {\n name: appList.apps[i].name,\n url: appList.apps[i].url,\n icon: appList.apps[i].icon,\n NSFW: appList.apps[i].NSFW\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 65,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"apps\",\n children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n children: \"Applications\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 76,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"apps_loop\",\n children: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 77,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 75,\n columnNumber: 5\n }, this);\n}\n\n_c4 = Applications;\n\nfunction App(props) {\n let classNameType = props.NSFW + \"-content\";\n let hrefUrl = \"https://\" + props.url;\n let iconName = \"mdi-\" + props.icon;\n return /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: hrefUrl,\n className: classNameType,\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_item\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_icon\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify icon\",\n \"data-icon\": iconName\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 93,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 92,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_text\",\n children: [/*#__PURE__*/_jsxDEV(\"span\", {\n id: \"app-name\",\n children: props.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 96,\n columnNumber: 13\n }, this), /*#__PURE__*/_jsxDEV(\"span\", {\n id: \"app-address\",\n children: props.url\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 97,\n columnNumber: 13\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 95,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 91,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 90,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 89,\n columnNumber: 5\n }, this);\n}\n\n_c5 = App;\n\nfunction Bookmarks() {\n let bookmarkList = getLinks();\n var items = [];\n\n for (var i = 0; i < bookmarkList.bookmarks.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(LinkGroups, {\n category: bookmarkList.bookmarks[i].category,\n links: bookmarkList.bookmarks[i].links\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 110,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"links\",\n children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n children: \"Bookmarks\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 119,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"links_loop\",\n children: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 120,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 118,\n columnNumber: 5\n }, this);\n}\n\n_c6 = Bookmarks;\n\nfunction LinkGroups(props) {\n var items = [];\n\n for (var i = 0; i < props.links.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(LinkItem, {\n link: props.links[i]\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 131,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"links_item\",\n children: [/*#__PURE__*/_jsxDEV(\"h4\", {\n children: props.category\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 139,\n columnNumber: 7\n }, this), items]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 138,\n columnNumber: 5\n }, this);\n}\n\n_c7 = LinkGroups;\n\nfunction LinkItem(props) {\n return /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: props.link.url,\n className: \"theme_color-border theme_text-select\",\n children: props.link.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 148,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 147,\n columnNumber: 5\n }, this);\n}\n\n_c8 = LinkItem;\n\nfunction ModalMenu() {\n var providers = getProviders();\n var items = [];\n\n for (var i = 0; i < providers.providers.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(Provider, {\n provider: providers.providers[i]\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 158,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"modal\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n children: [/*#__PURE__*/_jsxDEV(\"header\", {\n id: \"modal-header\",\n children: [/*#__PURE__*/_jsxDEV(\"h1\", {\n children: \"Options\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 168,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n href: \"#\",\n title: \"Close\",\n className: \"modal-close\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-close\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 170,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 169,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 167,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"h2\", {\n children: \"Color themes\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 174,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"modal-theme\",\n children: [/*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"blackboard\",\n className: \"theme-button theme-blackboard\",\n onClick: updateTheme,\n children: \"Blackboard\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 177,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"gazette\",\n className: \"theme-button theme-gazette\",\n onClick: updateTheme,\n children: \"Gazette\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 178,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"espresso\",\n className: \"theme-button theme-espresso\",\n onClick: updateTheme,\n children: \"Espresso\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 179,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cab\",\n className: \"theme-button theme-cab\",\n onClick: updateTheme,\n children: \"Cab\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 180,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cloud\",\n className: \"theme-button theme-cloud\",\n onClick: updateTheme,\n children: \"Cloud\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 181,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"lime\",\n className: \"theme-button theme-lime\",\n onClick: updateTheme,\n children: \"Lime\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 182,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"passion\",\n className: \"theme-button theme-passion\",\n onClick: updateTheme,\n children: \"Passion\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 183,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"blues\",\n className: \"theme-button theme-blues\",\n onClick: updateTheme,\n children: \"Blues\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 184,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"chalk\",\n className: \"theme-button theme-chalk\",\n onClick: updateTheme,\n children: \"Chalk\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 185,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"tron\",\n className: \"theme-button theme-tron\",\n onClick: updateTheme,\n children: \"Tron\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 186,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"paper\",\n className: \"theme-button theme-paper\",\n onClick: updateTheme,\n children: \"Paper\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 187,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cyberpunk\",\n className: \"theme-button theme-cyberpunk\",\n onClick: updateTheme,\n children: \"Cyberpunk\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 188,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"quadra\",\n className: \"theme-button theme-panam\",\n onClick: updateTheme,\n children: \"Quadra\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 189,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"panam\",\n className: \"theme-button theme-panam\",\n onClick: updateTheme,\n children: \"Panam\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 190,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"touch\",\n className: \"theme-button theme-touch\",\n onClick: updateTheme,\n children: \"Touch\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 191,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"peek\",\n className: \"theme-button theme-peek\",\n onClick: updateTheme,\n children: \"Peek\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 192,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 176,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"h2\", {\n children: \"Search options\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 196,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"providers\",\n children: /*#__PURE__*/_jsxDEV(\"table\", {\n children: /*#__PURE__*/_jsxDEV(\"tbody\", {\n children: [/*#__PURE__*/_jsxDEV(\"tr\", {\n children: [/*#__PURE__*/_jsxDEV(\"th\", {\n children: \"Website\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 201,\n columnNumber: 19\n }, this), /*#__PURE__*/_jsxDEV(\"th\", {\n children: \"Prefix\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 202,\n columnNumber: 19\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 200,\n columnNumber: 17\n }, this), items]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 199,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 198,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 197,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"header\", {\n id: \"modal-footer\",\n children: [/*#__PURE__*/_jsxDEV(\"a\", {\n href: \"https://github.com/jeroenpardon/\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-github-box\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 210,\n columnNumber: 54\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 210,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n href: \"https://materialdesignicons.com/\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-material-design\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 211,\n columnNumber: 54\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 211,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"sneaky\",\n children: [/*#__PURE__*/_jsxDEV(\"input\", {\n type: \"checkbox\",\n id: \"contenttype\",\n onChange: \"nsfw(this)\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 212,\n columnNumber: 35\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n for: \"contenttype\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-domino-mask\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 213,\n columnNumber: 36\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 213,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 212,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 209,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 166,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 165,\n columnNumber: 5\n }, this);\n}\n\n_c9 = ModalMenu;\n\nfunction Provider(props) {\n return /*#__PURE__*/_jsxDEV(\"tr\", {\n children: [/*#__PURE__*/_jsxDEV(\"td\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: props.provider.url,\n children: props.provider.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 223,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 223,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"td\", {\n children: props.provider.prefix\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 224,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 222,\n columnNumber: 5\n }, this);\n}\n\n_c10 = Provider;\n\nfunction ModalInit() {\n return /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"modal_init\",\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n className: \"btn\",\n href: \"#modal\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify icon\",\n \"data-icon\": \"mdi-xbox-controller-menu\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 233,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 232,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 231,\n columnNumber: 5\n }, this);\n}\n\n_c11 = ModalInit;\nReactDOM.render( /*#__PURE__*/_jsxDEV(Homepage, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 240,\n columnNumber: 3\n}, this), document.getElementById('root')); //Functions below this line are for calculating data for\n//other functions\n\nfunction date() {\n let currentDate = new Date();\n let dateOptions = {\n weekday: \"long\",\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\"\n };\n let date = currentDate.toLocaleDateString(\"en-GB\", dateOptions);\n return date;\n}\n\nfunction fixDigits(k) {\n if (k < 10) {\n return \"0\" + k;\n } else {\n return k;\n }\n}\n\nfunction greet() {\n let currentTime = new Date();\n let greet = Math.floor(currentTime.getHours() / 6);\n let easterEggChance = Math.floor(Math.random() * 100);\n\n let greetings = require('./messages.json');\n\n let timeBased = [];\n let easterEggs = [];\n\n for (var i = 0; i < greetings.messages.length; i++) {\n if (greetings.messages[i].easteregg === \"FALSE\") {\n timeBased = timeBased.concat(greetings.messages[i]);\n } else {\n easterEggs = easterEggs.concat(greetings.messages[i]);\n }\n }\n\n if (easterEggChance > 10) {\n return timeBased[greet].message;\n } else {\n let easterEggText = Math.floor(Math.random() * easterEggs.length);\n return easterEggs[easterEggText].message;\n }\n}\n\nfunction Clock() {\n _s();\n\n const [date, setDate] = useState(new Date());\n\n function refreshClock() {\n setDate(new Date());\n }\n\n useEffect(() => {\n const timerId = setInterval(refreshClock, 1000);\n return function cleanup() {\n clearInterval(timerId);\n };\n }, []);\n var hour = date.getHours();\n var minutes = date.getMinutes(); //var seconds = date.getSeconds();\n\n var midday = \"AM\";\n midday = hour >= 12 ? \"PM\" : \"AM\";\n hour = hour === 0 ? 12 : hour > 12 ? hour - 12 : hour;\n minutes = fixDigits(minutes); //seconds = fixDigits(seconds);\n\n let time = hour + \":\" + minutes + \" \" + midday;\n return /*#__PURE__*/_jsxDEV(\"h2\", {\n id: \"clock\",\n children: time\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 311,\n columnNumber: 5\n }, this);\n}\n\n_s(Clock, \"Gqi45WOZhU2c0BLYX0HoJeiR0fk=\");\n\n_c12 = Clock;\n\nfunction getApps() {\n let applications = require('./apps.json');\n\n return applications;\n}\n\nfunction getLinks() {\n let links = require('./links.json');\n\n return links;\n}\n\nfunction getProviders() {\n let providers = require('./providers.json');\n\n return providers;\n}\n\nfunction getThemes() {\n let themes = require('./themes.json');\n\n return themes;\n}\n\nfunction updateTheme(e) {\n var themes = getThemes();\n var themeName = e.target.innerHTML.toLowerCase();\n var index = themes.themes.findIndex(function (item, i) {\n return item.name === themeName;\n });\n console.log(themes.themes[index]);\n localStorage.setItem(\"image-background\", themes.themes[index].imagebackground);\n localStorage.setItem(\"color-background\", themes.themes[index].colorbackground);\n localStorage.setItem(\"color-search-background\", themes.themes[index].colorserachbackground);\n localStorage.setItem(\"color-text-pri\", themes.themes[index].colortextpri);\n localStorage.setItem(\"color-text-acc\", themes.themes[index].colortextacc);\n localStorage.setItem(\"color-border\", themes.themes[index].colorborder); //document.documentElement.style.setProperty(prop, `var(--${themeName}${prop.substring(10)})`);\n //document.documentElement.style.setProperty(\"image-background\")\n}\n\nfunction handleKeyPress(e) {\n var sindex = 0;\n var cycle = false;\n var key = e.keyCode || e.which;\n var text = e.target.value.replaceAll(\"+\", \"%2B\");\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n\n if (key == 13) {\n // Search functions\n search(text);\n }\n\n if (key == 9) {\n // Tab Completion Functions\n e.preventDefault();\n e.stopPropagation();\n\n if (text[0] === ';') {\n switch (option) {\n case 't':\n var streamers = ['admiralbahroo', 'moonmoon_ow', 'witwix'];\n\n if (!subtext || cycle) {\n cycle = true;\n if (sindex > streamers.length - 1) sindex = 0;\n document.getElementById(\"keywords\").value = ';t ' + streamers[sindex++];\n return;\n }\n\n for (var streamer of streamers) {\n if (subtext === streamer.substr(0, subtext.length)) {\n document.getElementById(\"keywords\").value = ';t ' + streamer;\n return;\n }\n }\n\n break;\n }\n }\n }\n\n if (key == 32) {\n //Space to go to search\n updateLabel(text);\n }\n\n sindex = 0;\n cycle = false;\n updateLabel(text);\n}\n\nfunction updateLabel(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n\n if (text[0] === '/') {\n // if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n document.getElementById(\"searchType\").innerHTML = \"Allmusic search\";\n break;\n\n case \"d\":\n document.getElementById(\"searchType\").innerHTML = \"Duck Duck Go search\";\n break;\n\n case \"di\":\n document.getElementById(\"searchType\").innerHTML = \"Discogs search\";\n break;\n\n case \"i\":\n document.getElementById(\"searchType\").innerHTML = \"IMDB search\";\n break;\n\n case \"m\":\n document.getElementById(\"searchType\").innerHTML = \"TheMovieDB search\";\n break;\n\n case \"r\":\n document.getElementById(\"searchType\").innerHTML = \"Reddit search\";\n break;\n\n case \"q\":\n document.getElementById(\"searchType\").innerHTML = \"Qwant search\";\n break;\n\n case \"so\":\n document.getElementById(\"searchType\").innerHTML = \"Soundcloud search\";\n break;\n\n case \"s\":\n document.getElementById(\"searchType\").innerHTML = \"Spotify search\";\n break;\n\n case \"tv\":\n document.getElementById(\"searchType\").innerHTML = \"TheTVDB search\";\n break;\n\n case \"t\":\n document.getElementById(\"searchType\").innerHTML = \"Trakt search\";\n break;\n\n case \"y\":\n document.getElementById(\"searchType\").innerHTML = \"YouTube search\";\n break;\n\n case \"w\":\n document.getElementById(\"searchType\").innerHTML = \"Wikipedia search\";\n break;\n\n case \"p\":\n document.getElementById(\"searchType\").innerHTML = \"Plex search\";\n break;\n\n case \"rt\":\n document.getElementById(\"searchType\").innerHTML = \"Rotten Tomatoes search\";\n break;\n\n default:\n document.getElementById(\"searchType\").innerHTML = \"Invalid search\";\n break;\n }\n } else {\n document.getElementById(\"searchType\").innerHTML = \"Google search\";\n }\n}\n\nfunction search(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n\n if (text[0] === '/') {\n if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n window.location = \"https://www.allmusic.com/search/all/\" + subtext;\n break;\n\n case \"d\":\n window.location = \"https://duckduckgo.com/?q=\" + subtext;\n break;\n\n case \"di\":\n window.location = \"https://www.discogs.com/search/?q=\" + subtext;\n break;\n\n case \"i\":\n window.location = \"https://www.imdb.com/find?q=\" + subtext;\n break;\n\n case \"m\":\n window.location = \"https://www.themoviedb.org/search?query=\" + subtext;\n break;\n\n case \"r\":\n window.location = \"https://www.reddit.com/search?q=\" + subtext;\n break;\n\n case \"q\":\n window.location = \"https://www.qwant.com/?q=\" + subtext;\n break;\n\n case \"so\":\n window.location = \"https://soundcloud.com/search?q=\" + subtext;\n break;\n\n case \"s\":\n window.location = \"https://open.spotify.com/search/results/\" + subtext;\n break;\n\n case \"t\":\n window.location = \"https://trakt.tv/search?query=\" + subtext;\n break;\n\n case \"tv\":\n window.location = \"https://www.thetvdb.com/search?query=\" + subtext;\n break;\n\n case \"y\":\n window.location = \"https://www.youtube.com/results?search_query=\" + subtext;\n break;\n\n case \"w\":\n window.location = \"https://en.wikipedia.org/w/index.php?search=\" + subtext;\n break;\n\n case \"p\":\n window.location = \"https://app.plex.tv/desktop/#!/search?query=\" + subtext;\n break;\n\n case \"rt\":\n window.location = \"https://www.rottentomatoes.com/search?search=\" + subtext;\n break;\n }\n } else {\n var option = text.substr(1);\n\n switch (option) {\n case \"d\":\n window.location = \"https://www.duckduckgo.com\";\n break;\n\n case \"y\":\n window.location = \"https://www.youtube.com\";\n break;\n\n case \"r\":\n window.location = \"https://reddit.com\";\n break;\n\n case \"s\":\n window.location = \"https://open.spotify.com\";\n break;\n }\n }\n } else if (validURL(text)) {\n if (containsProtocol(text)) window.location = text;else window.location = \"https://\" + text;\n } else {\n window.location = \"https://www.google.com/search?q=\" + text;\n }\n} // Source: https://stackoverflow.com/questions/5717093/check-if-a-javascript-string-is-a-url\n\n\nfunction validURL(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/)?' + // protocol\n '((([a-z\\\\d]([a-z\\\\d-]*[a-z\\\\d])*)\\\\.)+[a-z]{2,}|' + // domain name\n '((\\\\d{1,3}\\\\.){3}\\\\d{1,3}))' + // OR ip (v4) address\n '(\\\\:\\\\d+)?(\\\\/[-a-z\\\\d%_.~+]*)*' + // port and path\n '(\\\\?[;&a-z\\\\d%_.~+=-]*)?' + // query string\n '(\\\\#[-a-z\\\\d_]*)?$', 'i'); // fragment locator\n\n return !!pattern.test(str);\n}\n\nfunction containsProtocol(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/){1}.*', 'i');\n return !!pattern.test(str);\n}\n\nString.prototype.replaceAll = function (search, replacement) {\n var target = this;\n return target.split(search).join(replacement);\n};\n\nvar _c, _c2, _c3, _c4, _c5, _c6, _c7, _c8, _c9, _c10, _c11, _c12;\n\n$RefreshReg$(_c, \"Homepage\");\n$RefreshReg$(_c2, \"Search\");\n$RefreshReg$(_c3, \"Header\");\n$RefreshReg$(_c4, \"Applications\");\n$RefreshReg$(_c5, \"App\");\n$RefreshReg$(_c6, \"Bookmarks\");\n$RefreshReg$(_c7, \"LinkGroups\");\n$RefreshReg$(_c8, \"LinkItem\");\n$RefreshReg$(_c9, \"ModalMenu\");\n$RefreshReg$(_c10, \"Provider\");\n$RefreshReg$(_c11, \"ModalInit\");\n$RefreshReg$(_c12, \"Clock\");","map":{"version":3,"sources":["/home/seanedmunds/dev/home-page/src/index.js"],"names":["React","useState","useEffect","ReactDOM","Homepage","date","greet","Search","handleKeyPress","Header","props","Applications","appList","getApps","items","i","apps","length","push","name","url","icon","NSFW","App","classNameType","hrefUrl","iconName","Bookmarks","bookmarkList","getLinks","bookmarks","category","links","LinkGroups","LinkItem","link","ModalMenu","providers","getProviders","updateTheme","Provider","provider","prefix","ModalInit","render","document","getElementById","currentDate","Date","dateOptions","weekday","year","month","day","toLocaleDateString","fixDigits","k","currentTime","Math","floor","getHours","easterEggChance","random","greetings","require","timeBased","easterEggs","messages","easteregg","concat","message","easterEggText","Clock","setDate","refreshClock","timerId","setInterval","cleanup","clearInterval","hour","minutes","getMinutes","midday","time","applications","getThemes","themes","e","themeName","target","innerHTML","toLowerCase","index","findIndex","item","console","log","localStorage","setItem","imagebackground","colorbackground","colorserachbackground","colortextpri","colortextacc","colorborder","sindex","cycle","key","keyCode","which","text","value","replaceAll","option","substr","indexOf","subtext","search","preventDefault","stopPropagation","streamers","streamer","updateLabel","window","location","validURL","containsProtocol","str","pattern","RegExp","test","String","prototype","replacement","split","join"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { useState, useEffect } from 'react';\nimport ReactDOM from 'react-dom';\n//import { unstable_createPortal } from 'react-dom';\nimport './index.css';\n\nfunction Homepage() {\n return (\n \n \n \n
\n \n \n
\n \n \n \n
\n \n \n
\n \n \n
\n \n );\n}\n\nfunction Search() {\n return (\n \n )\n}\n\nfunction Header(props) {\n return (\n \n );\n}\n\nfunction Applications() {\n let appList = getApps();\n var items = [];\n for (var i = 0; i < appList.apps.length; i++) {\n items.push(\n \n );\n }\n return (\n \n Applications
\n \n {items}\n
\n \n );\n}\n\nfunction App(props) {\n let classNameType = props.NSFW + \"-content\";\n let hrefUrl = \"https://\" + props.url;\n let iconName = \"mdi-\" + props.icon;\n return (\n \n );\n}\n\nfunction Bookmarks() {\n let bookmarkList = getLinks();\n var items = [];\n for (var i = 0; i < bookmarkList.bookmarks.length; i++) {\n items.push(\n \n );\n }\n return (\n \n Bookmarks
\n \n {items}\n
\n \n );\n}\n\nfunction LinkGroups(props) {\n var items = [];\n for (var i = 0; i < props.links.length; i++) {\n items.push(\n \n );\n }\n return (\n \n
{props.category}
\n {items}\n \n );\n}\n\nfunction LinkItem(props) {\n return (\n \n );\n}\n\nfunction ModalMenu() {\n var providers = getProviders();\n var items = [];\n for (var i = 0; i < providers.providers.length; i++) {\n items.push(\n \n );\n }\n return (\n \n \n \n\n
Color themes
\n\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n\n\n
Search options
\n
\n \n \n \n | Website | \n Prefix | \n
\n {items}\n \n
\n \n\n \n
\n \n );\n}\n\nfunction Provider(props) {\n return (\n \n | {props.provider.name} | \n {props.provider.prefix} | \n
\n );\n}\n\nfunction ModalInit() {\n return (\n \n );\n}\n\nReactDOM.render(\n ,\n document.getElementById('root')\n);\n\n//Functions below this line are for calculating data for\n//other functions\n\nfunction date() {\n let currentDate = new Date();\n let dateOptions = {\n weekday: \"long\",\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\"\n };\n let date = currentDate.toLocaleDateString(\"en-GB\", dateOptions);\n return date;\n}\nfunction fixDigits(k) {\n if (k < 10) {\n return \"0\" + k;\n }\n else {\n return k;\n }\n}\nfunction greet() {\n let currentTime = new Date();\n let greet = Math.floor(currentTime.getHours() / 6);\n let easterEggChance = Math.floor(Math.random() * 100);\n let greetings = require('./messages.json');\n let timeBased = [];\n let easterEggs = [];\n for (var i = 0; i < greetings.messages.length; i++) {\n if (greetings.messages[i].easteregg === \"FALSE\") {\n timeBased = timeBased.concat(greetings.messages[i]);\n } else {\n easterEggs = easterEggs.concat(greetings.messages[i]);\n }\n }\n if (easterEggChance > 10) {\n return timeBased[greet].message;\n } else {\n let easterEggText = Math.floor(Math.random() * easterEggs.length);\n return easterEggs[easterEggText].message;\n }\n}\nfunction Clock() {\n const [date, setDate] = useState(new Date());\n\n function refreshClock() {\n setDate(new Date());\n }\n useEffect(() => {\n const timerId = setInterval(refreshClock, 1000);\n return function cleanup() {\n clearInterval(timerId);\n };\n }, []);\n\n var hour = date.getHours();\n var minutes = date.getMinutes();\n //var seconds = date.getSeconds();\n var midday = \"AM\";\n midday = (hour >= 12) ? \"PM\" : \"AM\";\n hour = (hour === 0) ? 12 : ((hour > 12) ? (hour - 12) : hour);\n minutes = fixDigits(minutes);\n //seconds = fixDigits(seconds);\n let time = hour + \":\" + minutes + \" \" + midday;\n\n return (\n {time}
\n\n );\n}\nfunction getApps() {\n let applications = require('./apps.json');\n return applications;\n}\nfunction getLinks() {\n let links = require('./links.json');\n return links;\n}\nfunction getProviders() {\n let providers = require('./providers.json');\n return providers;\n}\nfunction getThemes() {\n let themes = require('./themes.json');\n return themes;\n}\n\nfunction updateTheme(e) {\n var themes = getThemes();\n var themeName = e.target.innerHTML.toLowerCase();\n var index = themes.themes.findIndex(function(item, i){\n return item.name === themeName\n });\n console.log(themes.themes[index]);\n localStorage.setItem(\"image-background\", themes.themes[index].imagebackground);\n localStorage.setItem(\"color-background\", themes.themes[index].colorbackground);\n localStorage.setItem(\"color-search-background\", themes.themes[index].colorserachbackground);\n localStorage.setItem(\"color-text-pri\",themes.themes[index].colortextpri);\n localStorage.setItem(\"color-text-acc\", themes.themes[index].colortextacc);\n localStorage.setItem(\"color-border\", themes.themes[index].colorborder);\n \n //document.documentElement.style.setProperty(prop, `var(--${themeName}${prop.substring(10)})`);\n //document.documentElement.style.setProperty(\"image-background\")\n}\n\nfunction handleKeyPress(e) {\n var sindex = 0;\n var cycle = false;\n var key = e.keyCode || e.which;\n var text = e.target.value.replaceAll(\"+\", \"%2B\");\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n if (key == 13) { // Search functions\n search(text);\n }\n if (key == 9) { // Tab Completion Functions\n e.preventDefault();\n e.stopPropagation();\n if (text[0] === ';') {\n switch (option) {\n case 't':\n var streamers = ['admiralbahroo', 'moonmoon_ow', 'witwix'];\n if (!subtext || cycle) {\n cycle = true;\n if (sindex > streamers.length - 1) sindex = 0;\n document.getElementById(\"keywords\").value = ';t ' + streamers[sindex++];\n return;\n }\n for (var streamer of streamers) {\n if (subtext === streamer.substr(0, subtext.length)) {\n document.getElementById(\"keywords\").value = ';t ' + streamer;\n return;\n }\n }\n break;\n }\n }\n }\n if(key == 32){ //Space to go to search\nupdateLabel(text);\n }\n sindex = 0;\n cycle = false;\n updateLabel(text);\n}\n\nfunction updateLabel(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n if (text[0] === '/') {\n// if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n document.getElementById(\"searchType\").innerHTML = \"Allmusic search\";\n break;\n case \"d\":\n document.getElementById(\"searchType\").innerHTML = \"Duck Duck Go search\";\n break;\n case \"di\":\n document.getElementById(\"searchType\").innerHTML = \"Discogs search\";\n break;\n case \"i\":\n document.getElementById(\"searchType\").innerHTML = \"IMDB search\";\n break;\n case \"m\":\n document.getElementById(\"searchType\").innerHTML = \"TheMovieDB search\";\n break;\n case \"r\":\n document.getElementById(\"searchType\").innerHTML = \"Reddit search\";\n break;\n case \"q\":\n document.getElementById(\"searchType\").innerHTML = \"Qwant search\";\n break;\n case \"so\":\n document.getElementById(\"searchType\").innerHTML = \"Soundcloud search\";\n break;\n case \"s\":\n document.getElementById(\"searchType\").innerHTML = \"Spotify search\";\n break;\n case \"tv\":\n document.getElementById(\"searchType\").innerHTML = \"TheTVDB search\";\n break;\n case \"t\":\n document.getElementById(\"searchType\").innerHTML = \"Trakt search\";\n break;\n case \"y\":\n document.getElementById(\"searchType\").innerHTML = \"YouTube search\";\n break;\n case \"w\":\n document.getElementById(\"searchType\").innerHTML = \"Wikipedia search\";\n break;\n case \"p\":\n document.getElementById(\"searchType\").innerHTML = \"Plex search\";\n break;\n case \"rt\":\n document.getElementById(\"searchType\").innerHTML = \"Rotten Tomatoes search\";\n break;\n default:\n document.getElementById(\"searchType\").innerHTML = \"Invalid search\";\n break;\n }\n}else {\n document.getElementById(\"searchType\").innerHTML = \"Google search\";\n }\n}\n\nfunction search(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n if (text[0] === '/') {\n if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n window.location = \"https://www.allmusic.com/search/all/\" + subtext;\n break;\n case \"d\":\n window.location = \"https://duckduckgo.com/?q=\" + subtext;\n break;\n case \"di\":\n window.location = \"https://www.discogs.com/search/?q=\" + subtext;\n break;\n case \"i\":\n window.location = \"https://www.imdb.com/find?q=\" + subtext;\n break;\n case \"m\":\n window.location = \"https://www.themoviedb.org/search?query=\" + subtext;\n break;\n case \"r\":\n window.location = \"https://www.reddit.com/search?q=\" + subtext;\n break;\n case \"q\":\n window.location = \"https://www.qwant.com/?q=\" + subtext;\n break;\n case \"so\":\n window.location = \"https://soundcloud.com/search?q=\" + subtext;\n break;\n case \"s\":\n window.location = \"https://open.spotify.com/search/results/\" + subtext;\n break;\n case \"t\":\n window.location = \"https://trakt.tv/search?query=\" + subtext;\n break;\n case \"tv\":\n window.location = \"https://www.thetvdb.com/search?query=\" + subtext;\n break;\n case \"y\":\n window.location = \"https://www.youtube.com/results?search_query=\" + subtext;\n break;\n case \"w\":\n window.location = \"https://en.wikipedia.org/w/index.php?search=\" + subtext;\n break;\n case \"p\":\n window.location = \"https://app.plex.tv/desktop/#!/search?query=\" + subtext;\n break;\n case \"rt\":\n window.location = \"https://www.rottentomatoes.com/search?search=\" + subtext;\n break;\n }\n } else {\n var option = text.substr(1);\n switch (option) {\n case \"d\":\n window.location = \"https://www.duckduckgo.com\";\n break;\n case \"y\":\n window.location = \"https://www.youtube.com\";\n break;\n case \"r\":\n window.location = \"https://reddit.com\";\n break;\n case \"s\":\n window.location = \"https://open.spotify.com\";\n break;\n }\n }\n } else if (validURL(text)) {\n if (containsProtocol(text))\n window.location = text;\n else\n window.location = \"https://\" + text;\n } else {\n window.location = \"https://www.google.com/search?q=\" + text;\n }\n}\n\n// Source: https://stackoverflow.com/questions/5717093/check-if-a-javascript-string-is-a-url\nfunction validURL(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/)?' + // protocol\n '((([a-z\\\\d]([a-z\\\\d-]*[a-z\\\\d])*)\\\\.)+[a-z]{2,}|' + // domain name\n '((\\\\d{1,3}\\\\.){3}\\\\d{1,3}))' + // OR ip (v4) address\n '(\\\\:\\\\d+)?(\\\\/[-a-z\\\\d%_.~+]*)*' + // port and path\n '(\\\\?[;&a-z\\\\d%_.~+=-]*)?' + // query string\n '(\\\\#[-a-z\\\\d_]*)?$', 'i'); // fragment locator\n return !!pattern.test(str);\n}\n\nfunction containsProtocol(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/){1}.*', 'i');\n return !!pattern.test(str);\n}\n\nString.prototype.replaceAll = function(search, replacement) {\n var target = this;\n return target.split(search).join(replacement);\n};"]},"metadata":{},"sourceType":"module"}
\ No newline at end of file
diff --git a/node_modules/.cache/babel-loader/aa30696e3f87b9056ab988d52c3482c1.json b/node_modules/.cache/babel-loader/aa30696e3f87b9056ab988d52c3482c1.json
new file mode 100644
index 00000000..31b7f85d
--- /dev/null
+++ b/node_modules/.cache/babel-loader/aa30696e3f87b9056ab988d52c3482c1.json
@@ -0,0 +1 @@
+{"ast":null,"code":"/** @license React v17.0.2\n * react-dom.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n/*\n Modernizr 3.0.0pre (Custom Build) | MIT\n*/\n'use strict';\n\nvar aa = require(\"react\"),\n m = require(\"object-assign\"),\n r = require(\"scheduler\");\n\nfunction y(a) {\n for (var b = \"https://reactjs.org/docs/error-decoder.html?invariant=\" + a, c = 1; c < arguments.length; c++) {\n b += \"&args[]=\" + encodeURIComponent(arguments[c]);\n }\n\n return \"Minified React error #\" + a + \"; visit \" + b + \" for the full message or use the non-minified dev environment for full errors and additional helpful warnings.\";\n}\n\nif (!aa) throw Error(y(227));\nvar ba = new Set(),\n ca = {};\n\nfunction da(a, b) {\n ea(a, b);\n ea(a + \"Capture\", b);\n}\n\nfunction ea(a, b) {\n ca[a] = b;\n\n for (a = 0; a < b.length; a++) {\n ba.add(b[a]);\n }\n}\n\nvar fa = !(\"undefined\" === typeof window || \"undefined\" === typeof window.document || \"undefined\" === typeof window.document.createElement),\n ha = /^[:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD][:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\-.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040]*$/,\n ia = Object.prototype.hasOwnProperty,\n ja = {},\n ka = {};\n\nfunction la(a) {\n if (ia.call(ka, a)) return !0;\n if (ia.call(ja, a)) return !1;\n if (ha.test(a)) return ka[a] = !0;\n ja[a] = !0;\n return !1;\n}\n\nfunction ma(a, b, c, d) {\n if (null !== c && 0 === c.type) return !1;\n\n switch (typeof b) {\n case \"function\":\n case \"symbol\":\n return !0;\n\n case \"boolean\":\n if (d) return !1;\n if (null !== c) return !c.acceptsBooleans;\n a = a.toLowerCase().slice(0, 5);\n return \"data-\" !== a && \"aria-\" !== a;\n\n default:\n return !1;\n }\n}\n\nfunction na(a, b, c, d) {\n if (null === b || \"undefined\" === typeof b || ma(a, b, c, d)) return !0;\n if (d) return !1;\n if (null !== c) switch (c.type) {\n case 3:\n return !b;\n\n case 4:\n return !1 === b;\n\n case 5:\n return isNaN(b);\n\n case 6:\n return isNaN(b) || 1 > b;\n }\n return !1;\n}\n\nfunction B(a, b, c, d, e, f, g) {\n this.acceptsBooleans = 2 === b || 3 === b || 4 === b;\n this.attributeName = d;\n this.attributeNamespace = e;\n this.mustUseProperty = c;\n this.propertyName = a;\n this.type = b;\n this.sanitizeURL = f;\n this.removeEmptyString = g;\n}\n\nvar D = {};\n\"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style\".split(\" \").forEach(function (a) {\n D[a] = new B(a, 0, !1, a, null, !1, !1);\n});\n[[\"acceptCharset\", \"accept-charset\"], [\"className\", \"class\"], [\"htmlFor\", \"for\"], [\"httpEquiv\", \"http-equiv\"]].forEach(function (a) {\n var b = a[0];\n D[b] = new B(b, 1, !1, a[1], null, !1, !1);\n});\n[\"contentEditable\", \"draggable\", \"spellCheck\", \"value\"].forEach(function (a) {\n D[a] = new B(a, 2, !1, a.toLowerCase(), null, !1, !1);\n});\n[\"autoReverse\", \"externalResourcesRequired\", \"focusable\", \"preserveAlpha\"].forEach(function (a) {\n D[a] = new B(a, 2, !1, a, null, !1, !1);\n});\n\"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope\".split(\" \").forEach(function (a) {\n D[a] = new B(a, 3, !1, a.toLowerCase(), null, !1, !1);\n});\n[\"checked\", \"multiple\", \"muted\", \"selected\"].forEach(function (a) {\n D[a] = new B(a, 3, !0, a, null, !1, !1);\n});\n[\"capture\", \"download\"].forEach(function (a) {\n D[a] = new B(a, 4, !1, a, null, !1, !1);\n});\n[\"cols\", \"rows\", \"size\", \"span\"].forEach(function (a) {\n D[a] = new B(a, 6, !1, a, null, !1, !1);\n});\n[\"rowSpan\", \"start\"].forEach(function (a) {\n D[a] = new B(a, 5, !1, a.toLowerCase(), null, !1, !1);\n});\nvar oa = /[\\-:]([a-z])/g;\n\nfunction pa(a) {\n return a[1].toUpperCase();\n}\n\n\"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height\".split(\" \").forEach(function (a) {\n var b = a.replace(oa, pa);\n D[b] = new B(b, 1, !1, a, null, !1, !1);\n});\n\"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type\".split(\" \").forEach(function (a) {\n var b = a.replace(oa, pa);\n D[b] = new B(b, 1, !1, a, \"http://www.w3.org/1999/xlink\", !1, !1);\n});\n[\"xml:base\", \"xml:lang\", \"xml:space\"].forEach(function (a) {\n var b = a.replace(oa, pa);\n D[b] = new B(b, 1, !1, a, \"http://www.w3.org/XML/1998/namespace\", !1, !1);\n});\n[\"tabIndex\", \"crossOrigin\"].forEach(function (a) {\n D[a] = new B(a, 1, !1, a.toLowerCase(), null, !1, !1);\n});\nD.xlinkHref = new B(\"xlinkHref\", 1, !1, \"xlink:href\", \"http://www.w3.org/1999/xlink\", !0, !1);\n[\"src\", \"href\", \"action\", \"formAction\"].forEach(function (a) {\n D[a] = new B(a, 1, !1, a.toLowerCase(), null, !0, !0);\n});\n\nfunction qa(a, b, c, d) {\n var e = D.hasOwnProperty(b) ? D[b] : null;\n var f = null !== e ? 0 === e.type : d ? !1 : !(2 < b.length) || \"o\" !== b[0] && \"O\" !== b[0] || \"n\" !== b[1] && \"N\" !== b[1] ? !1 : !0;\n f || (na(b, c, e, d) && (c = null), d || null === e ? la(b) && (null === c ? a.removeAttribute(b) : a.setAttribute(b, \"\" + c)) : e.mustUseProperty ? a[e.propertyName] = null === c ? 3 === e.type ? !1 : \"\" : c : (b = e.attributeName, d = e.attributeNamespace, null === c ? a.removeAttribute(b) : (e = e.type, c = 3 === e || 4 === e && !0 === c ? \"\" : \"\" + c, d ? a.setAttributeNS(d, b, c) : a.setAttribute(b, c))));\n}\n\nvar ra = aa.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,\n sa = 60103,\n ta = 60106,\n ua = 60107,\n wa = 60108,\n xa = 60114,\n ya = 60109,\n za = 60110,\n Aa = 60112,\n Ba = 60113,\n Ca = 60120,\n Da = 60115,\n Ea = 60116,\n Fa = 60121,\n Ga = 60128,\n Ha = 60129,\n Ia = 60130,\n Ja = 60131;\n\nif (\"function\" === typeof Symbol && Symbol.for) {\n var E = Symbol.for;\n sa = E(\"react.element\");\n ta = E(\"react.portal\");\n ua = E(\"react.fragment\");\n wa = E(\"react.strict_mode\");\n xa = E(\"react.profiler\");\n ya = E(\"react.provider\");\n za = E(\"react.context\");\n Aa = E(\"react.forward_ref\");\n Ba = E(\"react.suspense\");\n Ca = E(\"react.suspense_list\");\n Da = E(\"react.memo\");\n Ea = E(\"react.lazy\");\n Fa = E(\"react.block\");\n E(\"react.scope\");\n Ga = E(\"react.opaque.id\");\n Ha = E(\"react.debug_trace_mode\");\n Ia = E(\"react.offscreen\");\n Ja = E(\"react.legacy_hidden\");\n}\n\nvar Ka = \"function\" === typeof Symbol && Symbol.iterator;\n\nfunction La(a) {\n if (null === a || \"object\" !== typeof a) return null;\n a = Ka && a[Ka] || a[\"@@iterator\"];\n return \"function\" === typeof a ? a : null;\n}\n\nvar Ma;\n\nfunction Na(a) {\n if (void 0 === Ma) try {\n throw Error();\n } catch (c) {\n var b = c.stack.trim().match(/\\n( *(at )?)/);\n Ma = b && b[1] || \"\";\n }\n return \"\\n\" + Ma + a;\n}\n\nvar Oa = !1;\n\nfunction Pa(a, b) {\n if (!a || Oa) return \"\";\n Oa = !0;\n var c = Error.prepareStackTrace;\n Error.prepareStackTrace = void 0;\n\n try {\n if (b) {\n if (b = function b() {\n throw Error();\n }, Object.defineProperty(b.prototype, \"props\", {\n set: function set() {\n throw Error();\n }\n }), \"object\" === typeof Reflect && Reflect.construct) {\n try {\n Reflect.construct(b, []);\n } catch (k) {\n var d = k;\n }\n\n Reflect.construct(a, [], b);\n } else {\n try {\n b.call();\n } catch (k) {\n d = k;\n }\n\n a.call(b.prototype);\n }\n } else {\n try {\n throw Error();\n } catch (k) {\n d = k;\n }\n\n a();\n }\n } catch (k) {\n if (k && d && \"string\" === typeof k.stack) {\n for (var e = k.stack.split(\"\\n\"), f = d.stack.split(\"\\n\"), g = e.length - 1, h = f.length - 1; 1 <= g && 0 <= h && e[g] !== f[h];) {\n h--;\n }\n\n for (; 1 <= g && 0 <= h; g--, h--) {\n if (e[g] !== f[h]) {\n if (1 !== g || 1 !== h) {\n do {\n if (g--, h--, 0 > h || e[g] !== f[h]) return \"\\n\" + e[g].replace(\" at new \", \" at \");\n } while (1 <= g && 0 <= h);\n }\n\n break;\n }\n }\n }\n } finally {\n Oa = !1, Error.prepareStackTrace = c;\n }\n\n return (a = a ? a.displayName || a.name : \"\") ? Na(a) : \"\";\n}\n\nfunction Qa(a) {\n switch (a.tag) {\n case 5:\n return Na(a.type);\n\n case 16:\n return Na(\"Lazy\");\n\n case 13:\n return Na(\"Suspense\");\n\n case 19:\n return Na(\"SuspenseList\");\n\n case 0:\n case 2:\n case 15:\n return a = Pa(a.type, !1), a;\n\n case 11:\n return a = Pa(a.type.render, !1), a;\n\n case 22:\n return a = Pa(a.type._render, !1), a;\n\n case 1:\n return a = Pa(a.type, !0), a;\n\n default:\n return \"\";\n }\n}\n\nfunction Ra(a) {\n if (null == a) return null;\n if (\"function\" === typeof a) return a.displayName || a.name || null;\n if (\"string\" === typeof a) return a;\n\n switch (a) {\n case ua:\n return \"Fragment\";\n\n case ta:\n return \"Portal\";\n\n case xa:\n return \"Profiler\";\n\n case wa:\n return \"StrictMode\";\n\n case Ba:\n return \"Suspense\";\n\n case Ca:\n return \"SuspenseList\";\n }\n\n if (\"object\" === typeof a) switch (a.$$typeof) {\n case za:\n return (a.displayName || \"Context\") + \".Consumer\";\n\n case ya:\n return (a._context.displayName || \"Context\") + \".Provider\";\n\n case Aa:\n var b = a.render;\n b = b.displayName || b.name || \"\";\n return a.displayName || (\"\" !== b ? \"ForwardRef(\" + b + \")\" : \"ForwardRef\");\n\n case Da:\n return Ra(a.type);\n\n case Fa:\n return Ra(a._render);\n\n case Ea:\n b = a._payload;\n a = a._init;\n\n try {\n return Ra(a(b));\n } catch (c) {}\n\n }\n return null;\n}\n\nfunction Sa(a) {\n switch (typeof a) {\n case \"boolean\":\n case \"number\":\n case \"object\":\n case \"string\":\n case \"undefined\":\n return a;\n\n default:\n return \"\";\n }\n}\n\nfunction Ta(a) {\n var b = a.type;\n return (a = a.nodeName) && \"input\" === a.toLowerCase() && (\"checkbox\" === b || \"radio\" === b);\n}\n\nfunction Ua(a) {\n var b = Ta(a) ? \"checked\" : \"value\",\n c = Object.getOwnPropertyDescriptor(a.constructor.prototype, b),\n d = \"\" + a[b];\n\n if (!a.hasOwnProperty(b) && \"undefined\" !== typeof c && \"function\" === typeof c.get && \"function\" === typeof c.set) {\n var e = c.get,\n f = c.set;\n Object.defineProperty(a, b, {\n configurable: !0,\n get: function get() {\n return e.call(this);\n },\n set: function set(a) {\n d = \"\" + a;\n f.call(this, a);\n }\n });\n Object.defineProperty(a, b, {\n enumerable: c.enumerable\n });\n return {\n getValue: function getValue() {\n return d;\n },\n setValue: function setValue(a) {\n d = \"\" + a;\n },\n stopTracking: function stopTracking() {\n a._valueTracker = null;\n delete a[b];\n }\n };\n }\n}\n\nfunction Va(a) {\n a._valueTracker || (a._valueTracker = Ua(a));\n}\n\nfunction Wa(a) {\n if (!a) return !1;\n var b = a._valueTracker;\n if (!b) return !0;\n var c = b.getValue();\n var d = \"\";\n a && (d = Ta(a) ? a.checked ? \"true\" : \"false\" : a.value);\n a = d;\n return a !== c ? (b.setValue(a), !0) : !1;\n}\n\nfunction Xa(a) {\n a = a || (\"undefined\" !== typeof document ? document : void 0);\n if (\"undefined\" === typeof a) return null;\n\n try {\n return a.activeElement || a.body;\n } catch (b) {\n return a.body;\n }\n}\n\nfunction Ya(a, b) {\n var c = b.checked;\n return m({}, b, {\n defaultChecked: void 0,\n defaultValue: void 0,\n value: void 0,\n checked: null != c ? c : a._wrapperState.initialChecked\n });\n}\n\nfunction Za(a, b) {\n var c = null == b.defaultValue ? \"\" : b.defaultValue,\n d = null != b.checked ? b.checked : b.defaultChecked;\n c = Sa(null != b.value ? b.value : c);\n a._wrapperState = {\n initialChecked: d,\n initialValue: c,\n controlled: \"checkbox\" === b.type || \"radio\" === b.type ? null != b.checked : null != b.value\n };\n}\n\nfunction $a(a, b) {\n b = b.checked;\n null != b && qa(a, \"checked\", b, !1);\n}\n\nfunction ab(a, b) {\n $a(a, b);\n var c = Sa(b.value),\n d = b.type;\n if (null != c) {\n if (\"number\" === d) {\n if (0 === c && \"\" === a.value || a.value != c) a.value = \"\" + c;\n } else a.value !== \"\" + c && (a.value = \"\" + c);\n } else if (\"submit\" === d || \"reset\" === d) {\n a.removeAttribute(\"value\");\n return;\n }\n b.hasOwnProperty(\"value\") ? bb(a, b.type, c) : b.hasOwnProperty(\"defaultValue\") && bb(a, b.type, Sa(b.defaultValue));\n null == b.checked && null != b.defaultChecked && (a.defaultChecked = !!b.defaultChecked);\n}\n\nfunction cb(a, b, c) {\n if (b.hasOwnProperty(\"value\") || b.hasOwnProperty(\"defaultValue\")) {\n var d = b.type;\n if (!(\"submit\" !== d && \"reset\" !== d || void 0 !== b.value && null !== b.value)) return;\n b = \"\" + a._wrapperState.initialValue;\n c || b === a.value || (a.value = b);\n a.defaultValue = b;\n }\n\n c = a.name;\n \"\" !== c && (a.name = \"\");\n a.defaultChecked = !!a._wrapperState.initialChecked;\n \"\" !== c && (a.name = c);\n}\n\nfunction bb(a, b, c) {\n if (\"number\" !== b || Xa(a.ownerDocument) !== a) null == c ? a.defaultValue = \"\" + a._wrapperState.initialValue : a.defaultValue !== \"\" + c && (a.defaultValue = \"\" + c);\n}\n\nfunction db(a) {\n var b = \"\";\n aa.Children.forEach(a, function (a) {\n null != a && (b += a);\n });\n return b;\n}\n\nfunction eb(a, b) {\n a = m({\n children: void 0\n }, b);\n if (b = db(b.children)) a.children = b;\n return a;\n}\n\nfunction fb(a, b, c, d) {\n a = a.options;\n\n if (b) {\n b = {};\n\n for (var e = 0; e < c.length; e++) {\n b[\"$\" + c[e]] = !0;\n }\n\n for (c = 0; c < a.length; c++) {\n e = b.hasOwnProperty(\"$\" + a[c].value), a[c].selected !== e && (a[c].selected = e), e && d && (a[c].defaultSelected = !0);\n }\n } else {\n c = \"\" + Sa(c);\n b = null;\n\n for (e = 0; e < a.length; e++) {\n if (a[e].value === c) {\n a[e].selected = !0;\n d && (a[e].defaultSelected = !0);\n return;\n }\n\n null !== b || a[e].disabled || (b = a[e]);\n }\n\n null !== b && (b.selected = !0);\n }\n}\n\nfunction gb(a, b) {\n if (null != b.dangerouslySetInnerHTML) throw Error(y(91));\n return m({}, b, {\n value: void 0,\n defaultValue: void 0,\n children: \"\" + a._wrapperState.initialValue\n });\n}\n\nfunction hb(a, b) {\n var c = b.value;\n\n if (null == c) {\n c = b.children;\n b = b.defaultValue;\n\n if (null != c) {\n if (null != b) throw Error(y(92));\n\n if (Array.isArray(c)) {\n if (!(1 >= c.length)) throw Error(y(93));\n c = c[0];\n }\n\n b = c;\n }\n\n null == b && (b = \"\");\n c = b;\n }\n\n a._wrapperState = {\n initialValue: Sa(c)\n };\n}\n\nfunction ib(a, b) {\n var c = Sa(b.value),\n d = Sa(b.defaultValue);\n null != c && (c = \"\" + c, c !== a.value && (a.value = c), null == b.defaultValue && a.defaultValue !== c && (a.defaultValue = c));\n null != d && (a.defaultValue = \"\" + d);\n}\n\nfunction jb(a) {\n var b = a.textContent;\n b === a._wrapperState.initialValue && \"\" !== b && null !== b && (a.value = b);\n}\n\nvar kb = {\n html: \"http://www.w3.org/1999/xhtml\",\n mathml: \"http://www.w3.org/1998/Math/MathML\",\n svg: \"http://www.w3.org/2000/svg\"\n};\n\nfunction lb(a) {\n switch (a) {\n case \"svg\":\n return \"http://www.w3.org/2000/svg\";\n\n case \"math\":\n return \"http://www.w3.org/1998/Math/MathML\";\n\n default:\n return \"http://www.w3.org/1999/xhtml\";\n }\n}\n\nfunction mb(a, b) {\n return null == a || \"http://www.w3.org/1999/xhtml\" === a ? lb(b) : \"http://www.w3.org/2000/svg\" === a && \"foreignObject\" === b ? \"http://www.w3.org/1999/xhtml\" : a;\n}\n\nvar nb,\n ob = function (a) {\n return \"undefined\" !== typeof MSApp && MSApp.execUnsafeLocalFunction ? function (b, c, d, e) {\n MSApp.execUnsafeLocalFunction(function () {\n return a(b, c, d, e);\n });\n } : a;\n}(function (a, b) {\n if (a.namespaceURI !== kb.svg || \"innerHTML\" in a) a.innerHTML = b;else {\n nb = nb || document.createElement(\"div\");\n nb.innerHTML = \"\";\n\n for (b = nb.firstChild; a.firstChild;) {\n a.removeChild(a.firstChild);\n }\n\n for (; b.firstChild;) {\n a.appendChild(b.firstChild);\n }\n }\n});\n\nfunction pb(a, b) {\n if (b) {\n var c = a.firstChild;\n\n if (c && c === a.lastChild && 3 === c.nodeType) {\n c.nodeValue = b;\n return;\n }\n }\n\n a.textContent = b;\n}\n\nvar qb = {\n animationIterationCount: !0,\n borderImageOutset: !0,\n borderImageSlice: !0,\n borderImageWidth: !0,\n boxFlex: !0,\n boxFlexGroup: !0,\n boxOrdinalGroup: !0,\n columnCount: !0,\n columns: !0,\n flex: !0,\n flexGrow: !0,\n flexPositive: !0,\n flexShrink: !0,\n flexNegative: !0,\n flexOrder: !0,\n gridArea: !0,\n gridRow: !0,\n gridRowEnd: !0,\n gridRowSpan: !0,\n gridRowStart: !0,\n gridColumn: !0,\n gridColumnEnd: !0,\n gridColumnSpan: !0,\n gridColumnStart: !0,\n fontWeight: !0,\n lineClamp: !0,\n lineHeight: !0,\n opacity: !0,\n order: !0,\n orphans: !0,\n tabSize: !0,\n widows: !0,\n zIndex: !0,\n zoom: !0,\n fillOpacity: !0,\n floodOpacity: !0,\n stopOpacity: !0,\n strokeDasharray: !0,\n strokeDashoffset: !0,\n strokeMiterlimit: !0,\n strokeOpacity: !0,\n strokeWidth: !0\n},\n rb = [\"Webkit\", \"ms\", \"Moz\", \"O\"];\nObject.keys(qb).forEach(function (a) {\n rb.forEach(function (b) {\n b = b + a.charAt(0).toUpperCase() + a.substring(1);\n qb[b] = qb[a];\n });\n});\n\nfunction sb(a, b, c) {\n return null == b || \"boolean\" === typeof b || \"\" === b ? \"\" : c || \"number\" !== typeof b || 0 === b || qb.hasOwnProperty(a) && qb[a] ? (\"\" + b).trim() : b + \"px\";\n}\n\nfunction tb(a, b) {\n a = a.style;\n\n for (var c in b) {\n if (b.hasOwnProperty(c)) {\n var d = 0 === c.indexOf(\"--\"),\n e = sb(c, b[c], d);\n \"float\" === c && (c = \"cssFloat\");\n d ? a.setProperty(c, e) : a[c] = e;\n }\n }\n}\n\nvar ub = m({\n menuitem: !0\n}, {\n area: !0,\n base: !0,\n br: !0,\n col: !0,\n embed: !0,\n hr: !0,\n img: !0,\n input: !0,\n keygen: !0,\n link: !0,\n meta: !0,\n param: !0,\n source: !0,\n track: !0,\n wbr: !0\n});\n\nfunction vb(a, b) {\n if (b) {\n if (ub[a] && (null != b.children || null != b.dangerouslySetInnerHTML)) throw Error(y(137, a));\n\n if (null != b.dangerouslySetInnerHTML) {\n if (null != b.children) throw Error(y(60));\n if (!(\"object\" === typeof b.dangerouslySetInnerHTML && \"__html\" in b.dangerouslySetInnerHTML)) throw Error(y(61));\n }\n\n if (null != b.style && \"object\" !== typeof b.style) throw Error(y(62));\n }\n}\n\nfunction wb(a, b) {\n if (-1 === a.indexOf(\"-\")) return \"string\" === typeof b.is;\n\n switch (a) {\n case \"annotation-xml\":\n case \"color-profile\":\n case \"font-face\":\n case \"font-face-src\":\n case \"font-face-uri\":\n case \"font-face-format\":\n case \"font-face-name\":\n case \"missing-glyph\":\n return !1;\n\n default:\n return !0;\n }\n}\n\nfunction xb(a) {\n a = a.target || a.srcElement || window;\n a.correspondingUseElement && (a = a.correspondingUseElement);\n return 3 === a.nodeType ? a.parentNode : a;\n}\n\nvar yb = null,\n zb = null,\n Ab = null;\n\nfunction Bb(a) {\n if (a = Cb(a)) {\n if (\"function\" !== typeof yb) throw Error(y(280));\n var b = a.stateNode;\n b && (b = Db(b), yb(a.stateNode, a.type, b));\n }\n}\n\nfunction Eb(a) {\n zb ? Ab ? Ab.push(a) : Ab = [a] : zb = a;\n}\n\nfunction Fb() {\n if (zb) {\n var a = zb,\n b = Ab;\n Ab = zb = null;\n Bb(a);\n if (b) for (a = 0; a < b.length; a++) {\n Bb(b[a]);\n }\n }\n}\n\nfunction Gb(a, b) {\n return a(b);\n}\n\nfunction Hb(a, b, c, d, e) {\n return a(b, c, d, e);\n}\n\nfunction Ib() {}\n\nvar Jb = Gb,\n Kb = !1,\n Lb = !1;\n\nfunction Mb() {\n if (null !== zb || null !== Ab) Ib(), Fb();\n}\n\nfunction Nb(a, b, c) {\n if (Lb) return a(b, c);\n Lb = !0;\n\n try {\n return Jb(a, b, c);\n } finally {\n Lb = !1, Mb();\n }\n}\n\nfunction Ob(a, b) {\n var c = a.stateNode;\n if (null === c) return null;\n var d = Db(c);\n if (null === d) return null;\n c = d[b];\n\n a: switch (b) {\n case \"onClick\":\n case \"onClickCapture\":\n case \"onDoubleClick\":\n case \"onDoubleClickCapture\":\n case \"onMouseDown\":\n case \"onMouseDownCapture\":\n case \"onMouseMove\":\n case \"onMouseMoveCapture\":\n case \"onMouseUp\":\n case \"onMouseUpCapture\":\n case \"onMouseEnter\":\n (d = !d.disabled) || (a = a.type, d = !(\"button\" === a || \"input\" === a || \"select\" === a || \"textarea\" === a));\n a = !d;\n break a;\n\n default:\n a = !1;\n }\n\n if (a) return null;\n if (c && \"function\" !== typeof c) throw Error(y(231, b, typeof c));\n return c;\n}\n\nvar Pb = !1;\nif (fa) try {\n var Qb = {};\n Object.defineProperty(Qb, \"passive\", {\n get: function get() {\n Pb = !0;\n }\n });\n window.addEventListener(\"test\", Qb, Qb);\n window.removeEventListener(\"test\", Qb, Qb);\n} catch (a) {\n Pb = !1;\n}\n\nfunction Rb(a, b, c, d, e, f, g, h, k) {\n var l = Array.prototype.slice.call(arguments, 3);\n\n try {\n b.apply(c, l);\n } catch (n) {\n this.onError(n);\n }\n}\n\nvar Sb = !1,\n Tb = null,\n Ub = !1,\n Vb = null,\n Wb = {\n onError: function onError(a) {\n Sb = !0;\n Tb = a;\n }\n};\n\nfunction Xb(a, b, c, d, e, f, g, h, k) {\n Sb = !1;\n Tb = null;\n Rb.apply(Wb, arguments);\n}\n\nfunction Yb(a, b, c, d, e, f, g, h, k) {\n Xb.apply(this, arguments);\n\n if (Sb) {\n if (Sb) {\n var l = Tb;\n Sb = !1;\n Tb = null;\n } else throw Error(y(198));\n\n Ub || (Ub = !0, Vb = l);\n }\n}\n\nfunction Zb(a) {\n var b = a,\n c = a;\n if (a.alternate) for (; b.return;) {\n b = b.return;\n } else {\n a = b;\n\n do {\n b = a, 0 !== (b.flags & 1026) && (c = b.return), a = b.return;\n } while (a);\n }\n return 3 === b.tag ? c : null;\n}\n\nfunction $b(a) {\n if (13 === a.tag) {\n var b = a.memoizedState;\n null === b && (a = a.alternate, null !== a && (b = a.memoizedState));\n if (null !== b) return b.dehydrated;\n }\n\n return null;\n}\n\nfunction ac(a) {\n if (Zb(a) !== a) throw Error(y(188));\n}\n\nfunction bc(a) {\n var b = a.alternate;\n\n if (!b) {\n b = Zb(a);\n if (null === b) throw Error(y(188));\n return b !== a ? null : a;\n }\n\n for (var c = a, d = b;;) {\n var e = c.return;\n if (null === e) break;\n var f = e.alternate;\n\n if (null === f) {\n d = e.return;\n\n if (null !== d) {\n c = d;\n continue;\n }\n\n break;\n }\n\n if (e.child === f.child) {\n for (f = e.child; f;) {\n if (f === c) return ac(e), a;\n if (f === d) return ac(e), b;\n f = f.sibling;\n }\n\n throw Error(y(188));\n }\n\n if (c.return !== d.return) c = e, d = f;else {\n for (var g = !1, h = e.child; h;) {\n if (h === c) {\n g = !0;\n c = e;\n d = f;\n break;\n }\n\n if (h === d) {\n g = !0;\n d = e;\n c = f;\n break;\n }\n\n h = h.sibling;\n }\n\n if (!g) {\n for (h = f.child; h;) {\n if (h === c) {\n g = !0;\n c = f;\n d = e;\n break;\n }\n\n if (h === d) {\n g = !0;\n d = f;\n c = e;\n break;\n }\n\n h = h.sibling;\n }\n\n if (!g) throw Error(y(189));\n }\n }\n if (c.alternate !== d) throw Error(y(190));\n }\n\n if (3 !== c.tag) throw Error(y(188));\n return c.stateNode.current === c ? a : b;\n}\n\nfunction cc(a) {\n a = bc(a);\n if (!a) return null;\n\n for (var b = a;;) {\n if (5 === b.tag || 6 === b.tag) return b;\n if (b.child) b.child.return = b, b = b.child;else {\n if (b === a) break;\n\n for (; !b.sibling;) {\n if (!b.return || b.return === a) return null;\n b = b.return;\n }\n\n b.sibling.return = b.return;\n b = b.sibling;\n }\n }\n\n return null;\n}\n\nfunction dc(a, b) {\n for (var c = a.alternate; null !== b;) {\n if (b === a || b === c) return !0;\n b = b.return;\n }\n\n return !1;\n}\n\nvar ec,\n fc,\n gc,\n hc,\n ic = !1,\n jc = [],\n kc = null,\n lc = null,\n mc = null,\n nc = new Map(),\n oc = new Map(),\n pc = [],\n qc = \"mousedown mouseup touchcancel touchend touchstart auxclick dblclick pointercancel pointerdown pointerup dragend dragstart drop compositionend compositionstart keydown keypress keyup input textInput copy cut paste click change contextmenu reset submit\".split(\" \");\n\nfunction rc(a, b, c, d, e) {\n return {\n blockedOn: a,\n domEventName: b,\n eventSystemFlags: c | 16,\n nativeEvent: e,\n targetContainers: [d]\n };\n}\n\nfunction sc(a, b) {\n switch (a) {\n case \"focusin\":\n case \"focusout\":\n kc = null;\n break;\n\n case \"dragenter\":\n case \"dragleave\":\n lc = null;\n break;\n\n case \"mouseover\":\n case \"mouseout\":\n mc = null;\n break;\n\n case \"pointerover\":\n case \"pointerout\":\n nc.delete(b.pointerId);\n break;\n\n case \"gotpointercapture\":\n case \"lostpointercapture\":\n oc.delete(b.pointerId);\n }\n}\n\nfunction tc(a, b, c, d, e, f) {\n if (null === a || a.nativeEvent !== f) return a = rc(b, c, d, e, f), null !== b && (b = Cb(b), null !== b && fc(b)), a;\n a.eventSystemFlags |= d;\n b = a.targetContainers;\n null !== e && -1 === b.indexOf(e) && b.push(e);\n return a;\n}\n\nfunction uc(a, b, c, d, e) {\n switch (b) {\n case \"focusin\":\n return kc = tc(kc, a, b, c, d, e), !0;\n\n case \"dragenter\":\n return lc = tc(lc, a, b, c, d, e), !0;\n\n case \"mouseover\":\n return mc = tc(mc, a, b, c, d, e), !0;\n\n case \"pointerover\":\n var f = e.pointerId;\n nc.set(f, tc(nc.get(f) || null, a, b, c, d, e));\n return !0;\n\n case \"gotpointercapture\":\n return f = e.pointerId, oc.set(f, tc(oc.get(f) || null, a, b, c, d, e)), !0;\n }\n\n return !1;\n}\n\nfunction vc(a) {\n var b = wc(a.target);\n\n if (null !== b) {\n var c = Zb(b);\n if (null !== c) if (b = c.tag, 13 === b) {\n if (b = $b(c), null !== b) {\n a.blockedOn = b;\n hc(a.lanePriority, function () {\n r.unstable_runWithPriority(a.priority, function () {\n gc(c);\n });\n });\n return;\n }\n } else if (3 === b && c.stateNode.hydrate) {\n a.blockedOn = 3 === c.tag ? c.stateNode.containerInfo : null;\n return;\n }\n }\n\n a.blockedOn = null;\n}\n\nfunction xc(a) {\n if (null !== a.blockedOn) return !1;\n\n for (var b = a.targetContainers; 0 < b.length;) {\n var c = yc(a.domEventName, a.eventSystemFlags, b[0], a.nativeEvent);\n if (null !== c) return b = Cb(c), null !== b && fc(b), a.blockedOn = c, !1;\n b.shift();\n }\n\n return !0;\n}\n\nfunction zc(a, b, c) {\n xc(a) && c.delete(b);\n}\n\nfunction Ac() {\n for (ic = !1; 0 < jc.length;) {\n var a = jc[0];\n\n if (null !== a.blockedOn) {\n a = Cb(a.blockedOn);\n null !== a && ec(a);\n break;\n }\n\n for (var b = a.targetContainers; 0 < b.length;) {\n var c = yc(a.domEventName, a.eventSystemFlags, b[0], a.nativeEvent);\n\n if (null !== c) {\n a.blockedOn = c;\n break;\n }\n\n b.shift();\n }\n\n null === a.blockedOn && jc.shift();\n }\n\n null !== kc && xc(kc) && (kc = null);\n null !== lc && xc(lc) && (lc = null);\n null !== mc && xc(mc) && (mc = null);\n nc.forEach(zc);\n oc.forEach(zc);\n}\n\nfunction Bc(a, b) {\n a.blockedOn === b && (a.blockedOn = null, ic || (ic = !0, r.unstable_scheduleCallback(r.unstable_NormalPriority, Ac)));\n}\n\nfunction Cc(a) {\n function b(b) {\n return Bc(b, a);\n }\n\n if (0 < jc.length) {\n Bc(jc[0], a);\n\n for (var c = 1; c < jc.length; c++) {\n var d = jc[c];\n d.blockedOn === a && (d.blockedOn = null);\n }\n }\n\n null !== kc && Bc(kc, a);\n null !== lc && Bc(lc, a);\n null !== mc && Bc(mc, a);\n nc.forEach(b);\n oc.forEach(b);\n\n for (c = 0; c < pc.length; c++) {\n d = pc[c], d.blockedOn === a && (d.blockedOn = null);\n }\n\n for (; 0 < pc.length && (c = pc[0], null === c.blockedOn);) {\n vc(c), null === c.blockedOn && pc.shift();\n }\n}\n\nfunction Dc(a, b) {\n var c = {};\n c[a.toLowerCase()] = b.toLowerCase();\n c[\"Webkit\" + a] = \"webkit\" + b;\n c[\"Moz\" + a] = \"moz\" + b;\n return c;\n}\n\nvar Ec = {\n animationend: Dc(\"Animation\", \"AnimationEnd\"),\n animationiteration: Dc(\"Animation\", \"AnimationIteration\"),\n animationstart: Dc(\"Animation\", \"AnimationStart\"),\n transitionend: Dc(\"Transition\", \"TransitionEnd\")\n},\n Fc = {},\n Gc = {};\nfa && (Gc = document.createElement(\"div\").style, \"AnimationEvent\" in window || (delete Ec.animationend.animation, delete Ec.animationiteration.animation, delete Ec.animationstart.animation), \"TransitionEvent\" in window || delete Ec.transitionend.transition);\n\nfunction Hc(a) {\n if (Fc[a]) return Fc[a];\n if (!Ec[a]) return a;\n var b = Ec[a],\n c;\n\n for (c in b) {\n if (b.hasOwnProperty(c) && c in Gc) return Fc[a] = b[c];\n }\n\n return a;\n}\n\nvar Ic = Hc(\"animationend\"),\n Jc = Hc(\"animationiteration\"),\n Kc = Hc(\"animationstart\"),\n Lc = Hc(\"transitionend\"),\n Mc = new Map(),\n Nc = new Map(),\n Oc = [\"abort\", \"abort\", Ic, \"animationEnd\", Jc, \"animationIteration\", Kc, \"animationStart\", \"canplay\", \"canPlay\", \"canplaythrough\", \"canPlayThrough\", \"durationchange\", \"durationChange\", \"emptied\", \"emptied\", \"encrypted\", \"encrypted\", \"ended\", \"ended\", \"error\", \"error\", \"gotpointercapture\", \"gotPointerCapture\", \"load\", \"load\", \"loadeddata\", \"loadedData\", \"loadedmetadata\", \"loadedMetadata\", \"loadstart\", \"loadStart\", \"lostpointercapture\", \"lostPointerCapture\", \"playing\", \"playing\", \"progress\", \"progress\", \"seeking\", \"seeking\", \"stalled\", \"stalled\", \"suspend\", \"suspend\", \"timeupdate\", \"timeUpdate\", Lc, \"transitionEnd\", \"waiting\", \"waiting\"];\n\nfunction Pc(a, b) {\n for (var c = 0; c < a.length; c += 2) {\n var d = a[c],\n e = a[c + 1];\n e = \"on\" + (e[0].toUpperCase() + e.slice(1));\n Nc.set(d, b);\n Mc.set(d, e);\n da(e, [d]);\n }\n}\n\nvar Qc = r.unstable_now;\nQc();\nvar F = 8;\n\nfunction Rc(a) {\n if (0 !== (1 & a)) return F = 15, 1;\n if (0 !== (2 & a)) return F = 14, 2;\n if (0 !== (4 & a)) return F = 13, 4;\n var b = 24 & a;\n if (0 !== b) return F = 12, b;\n if (0 !== (a & 32)) return F = 11, 32;\n b = 192 & a;\n if (0 !== b) return F = 10, b;\n if (0 !== (a & 256)) return F = 9, 256;\n b = 3584 & a;\n if (0 !== b) return F = 8, b;\n if (0 !== (a & 4096)) return F = 7, 4096;\n b = 4186112 & a;\n if (0 !== b) return F = 6, b;\n b = 62914560 & a;\n if (0 !== b) return F = 5, b;\n if (a & 67108864) return F = 4, 67108864;\n if (0 !== (a & 134217728)) return F = 3, 134217728;\n b = 805306368 & a;\n if (0 !== b) return F = 2, b;\n if (0 !== (1073741824 & a)) return F = 1, 1073741824;\n F = 8;\n return a;\n}\n\nfunction Sc(a) {\n switch (a) {\n case 99:\n return 15;\n\n case 98:\n return 10;\n\n case 97:\n case 96:\n return 8;\n\n case 95:\n return 2;\n\n default:\n return 0;\n }\n}\n\nfunction Tc(a) {\n switch (a) {\n case 15:\n case 14:\n return 99;\n\n case 13:\n case 12:\n case 11:\n case 10:\n return 98;\n\n case 9:\n case 8:\n case 7:\n case 6:\n case 4:\n case 5:\n return 97;\n\n case 3:\n case 2:\n case 1:\n return 95;\n\n case 0:\n return 90;\n\n default:\n throw Error(y(358, a));\n }\n}\n\nfunction Uc(a, b) {\n var c = a.pendingLanes;\n if (0 === c) return F = 0;\n var d = 0,\n e = 0,\n f = a.expiredLanes,\n g = a.suspendedLanes,\n h = a.pingedLanes;\n if (0 !== f) d = f, e = F = 15;else if (f = c & 134217727, 0 !== f) {\n var k = f & ~g;\n 0 !== k ? (d = Rc(k), e = F) : (h &= f, 0 !== h && (d = Rc(h), e = F));\n } else f = c & ~g, 0 !== f ? (d = Rc(f), e = F) : 0 !== h && (d = Rc(h), e = F);\n if (0 === d) return 0;\n d = 31 - Vc(d);\n d = c & ((0 > d ? 0 : 1 << d) << 1) - 1;\n\n if (0 !== b && b !== d && 0 === (b & g)) {\n Rc(b);\n if (e <= F) return b;\n F = e;\n }\n\n b = a.entangledLanes;\n if (0 !== b) for (a = a.entanglements, b &= d; 0 < b;) {\n c = 31 - Vc(b), e = 1 << c, d |= a[c], b &= ~e;\n }\n return d;\n}\n\nfunction Wc(a) {\n a = a.pendingLanes & -1073741825;\n return 0 !== a ? a : a & 1073741824 ? 1073741824 : 0;\n}\n\nfunction Xc(a, b) {\n switch (a) {\n case 15:\n return 1;\n\n case 14:\n return 2;\n\n case 12:\n return a = Yc(24 & ~b), 0 === a ? Xc(10, b) : a;\n\n case 10:\n return a = Yc(192 & ~b), 0 === a ? Xc(8, b) : a;\n\n case 8:\n return a = Yc(3584 & ~b), 0 === a && (a = Yc(4186112 & ~b), 0 === a && (a = 512)), a;\n\n case 2:\n return b = Yc(805306368 & ~b), 0 === b && (b = 268435456), b;\n }\n\n throw Error(y(358, a));\n}\n\nfunction Yc(a) {\n return a & -a;\n}\n\nfunction Zc(a) {\n for (var b = [], c = 0; 31 > c; c++) {\n b.push(a);\n }\n\n return b;\n}\n\nfunction $c(a, b, c) {\n a.pendingLanes |= b;\n var d = b - 1;\n a.suspendedLanes &= d;\n a.pingedLanes &= d;\n a = a.eventTimes;\n b = 31 - Vc(b);\n a[b] = c;\n}\n\nvar Vc = Math.clz32 ? Math.clz32 : ad,\n bd = Math.log,\n cd = Math.LN2;\n\nfunction ad(a) {\n return 0 === a ? 32 : 31 - (bd(a) / cd | 0) | 0;\n}\n\nvar dd = r.unstable_UserBlockingPriority,\n ed = r.unstable_runWithPriority,\n fd = !0;\n\nfunction gd(a, b, c, d) {\n Kb || Ib();\n var e = hd,\n f = Kb;\n Kb = !0;\n\n try {\n Hb(e, a, b, c, d);\n } finally {\n (Kb = f) || Mb();\n }\n}\n\nfunction id(a, b, c, d) {\n ed(dd, hd.bind(null, a, b, c, d));\n}\n\nfunction hd(a, b, c, d) {\n if (fd) {\n var e;\n if ((e = 0 === (b & 4)) && 0 < jc.length && -1 < qc.indexOf(a)) a = rc(null, a, b, c, d), jc.push(a);else {\n var f = yc(a, b, c, d);\n if (null === f) e && sc(a, d);else {\n if (e) {\n if (-1 < qc.indexOf(a)) {\n a = rc(f, a, b, c, d);\n jc.push(a);\n return;\n }\n\n if (uc(f, a, b, c, d)) return;\n sc(a, d);\n }\n\n jd(a, b, d, null, c);\n }\n }\n }\n}\n\nfunction yc(a, b, c, d) {\n var e = xb(d);\n e = wc(e);\n\n if (null !== e) {\n var f = Zb(e);\n if (null === f) e = null;else {\n var g = f.tag;\n\n if (13 === g) {\n e = $b(f);\n if (null !== e) return e;\n e = null;\n } else if (3 === g) {\n if (f.stateNode.hydrate) return 3 === f.tag ? f.stateNode.containerInfo : null;\n e = null;\n } else f !== e && (e = null);\n }\n }\n\n jd(a, b, d, e, c);\n return null;\n}\n\nvar kd = null,\n ld = null,\n md = null;\n\nfunction nd() {\n if (md) return md;\n var a,\n b = ld,\n c = b.length,\n d,\n e = \"value\" in kd ? kd.value : kd.textContent,\n f = e.length;\n\n for (a = 0; a < c && b[a] === e[a]; a++) {\n ;\n }\n\n var g = c - a;\n\n for (d = 1; d <= g && b[c - d] === e[f - d]; d++) {\n ;\n }\n\n return md = e.slice(a, 1 < d ? 1 - d : void 0);\n}\n\nfunction od(a) {\n var b = a.keyCode;\n \"charCode\" in a ? (a = a.charCode, 0 === a && 13 === b && (a = 13)) : a = b;\n 10 === a && (a = 13);\n return 32 <= a || 13 === a ? a : 0;\n}\n\nfunction pd() {\n return !0;\n}\n\nfunction qd() {\n return !1;\n}\n\nfunction rd(a) {\n function b(b, d, e, f, g) {\n this._reactName = b;\n this._targetInst = e;\n this.type = d;\n this.nativeEvent = f;\n this.target = g;\n this.currentTarget = null;\n\n for (var c in a) {\n a.hasOwnProperty(c) && (b = a[c], this[c] = b ? b(f) : f[c]);\n }\n\n this.isDefaultPrevented = (null != f.defaultPrevented ? f.defaultPrevented : !1 === f.returnValue) ? pd : qd;\n this.isPropagationStopped = qd;\n return this;\n }\n\n m(b.prototype, {\n preventDefault: function preventDefault() {\n this.defaultPrevented = !0;\n var a = this.nativeEvent;\n a && (a.preventDefault ? a.preventDefault() : \"unknown\" !== typeof a.returnValue && (a.returnValue = !1), this.isDefaultPrevented = pd);\n },\n stopPropagation: function stopPropagation() {\n var a = this.nativeEvent;\n a && (a.stopPropagation ? a.stopPropagation() : \"unknown\" !== typeof a.cancelBubble && (a.cancelBubble = !0), this.isPropagationStopped = pd);\n },\n persist: function persist() {},\n isPersistent: pd\n });\n return b;\n}\n\nvar sd = {\n eventPhase: 0,\n bubbles: 0,\n cancelable: 0,\n timeStamp: function timeStamp(a) {\n return a.timeStamp || Date.now();\n },\n defaultPrevented: 0,\n isTrusted: 0\n},\n td = rd(sd),\n ud = m({}, sd, {\n view: 0,\n detail: 0\n}),\n vd = rd(ud),\n wd,\n xd,\n yd,\n Ad = m({}, ud, {\n screenX: 0,\n screenY: 0,\n clientX: 0,\n clientY: 0,\n pageX: 0,\n pageY: 0,\n ctrlKey: 0,\n shiftKey: 0,\n altKey: 0,\n metaKey: 0,\n getModifierState: zd,\n button: 0,\n buttons: 0,\n relatedTarget: function relatedTarget(a) {\n return void 0 === a.relatedTarget ? a.fromElement === a.srcElement ? a.toElement : a.fromElement : a.relatedTarget;\n },\n movementX: function movementX(a) {\n if (\"movementX\" in a) return a.movementX;\n a !== yd && (yd && \"mousemove\" === a.type ? (wd = a.screenX - yd.screenX, xd = a.screenY - yd.screenY) : xd = wd = 0, yd = a);\n return wd;\n },\n movementY: function movementY(a) {\n return \"movementY\" in a ? a.movementY : xd;\n }\n}),\n Bd = rd(Ad),\n Cd = m({}, Ad, {\n dataTransfer: 0\n}),\n Dd = rd(Cd),\n Ed = m({}, ud, {\n relatedTarget: 0\n}),\n Fd = rd(Ed),\n Gd = m({}, sd, {\n animationName: 0,\n elapsedTime: 0,\n pseudoElement: 0\n}),\n Hd = rd(Gd),\n Id = m({}, sd, {\n clipboardData: function clipboardData(a) {\n return \"clipboardData\" in a ? a.clipboardData : window.clipboardData;\n }\n}),\n Jd = rd(Id),\n Kd = m({}, sd, {\n data: 0\n}),\n Ld = rd(Kd),\n Md = {\n Esc: \"Escape\",\n Spacebar: \" \",\n Left: \"ArrowLeft\",\n Up: \"ArrowUp\",\n Right: \"ArrowRight\",\n Down: \"ArrowDown\",\n Del: \"Delete\",\n Win: \"OS\",\n Menu: \"ContextMenu\",\n Apps: \"ContextMenu\",\n Scroll: \"ScrollLock\",\n MozPrintableKey: \"Unidentified\"\n},\n Nd = {\n 8: \"Backspace\",\n 9: \"Tab\",\n 12: \"Clear\",\n 13: \"Enter\",\n 16: \"Shift\",\n 17: \"Control\",\n 18: \"Alt\",\n 19: \"Pause\",\n 20: \"CapsLock\",\n 27: \"Escape\",\n 32: \" \",\n 33: \"PageUp\",\n 34: \"PageDown\",\n 35: \"End\",\n 36: \"Home\",\n 37: \"ArrowLeft\",\n 38: \"ArrowUp\",\n 39: \"ArrowRight\",\n 40: \"ArrowDown\",\n 45: \"Insert\",\n 46: \"Delete\",\n 112: \"F1\",\n 113: \"F2\",\n 114: \"F3\",\n 115: \"F4\",\n 116: \"F5\",\n 117: \"F6\",\n 118: \"F7\",\n 119: \"F8\",\n 120: \"F9\",\n 121: \"F10\",\n 122: \"F11\",\n 123: \"F12\",\n 144: \"NumLock\",\n 145: \"ScrollLock\",\n 224: \"Meta\"\n},\n Od = {\n Alt: \"altKey\",\n Control: \"ctrlKey\",\n Meta: \"metaKey\",\n Shift: \"shiftKey\"\n};\n\nfunction Pd(a) {\n var b = this.nativeEvent;\n return b.getModifierState ? b.getModifierState(a) : (a = Od[a]) ? !!b[a] : !1;\n}\n\nfunction zd() {\n return Pd;\n}\n\nvar Qd = m({}, ud, {\n key: function key(a) {\n if (a.key) {\n var b = Md[a.key] || a.key;\n if (\"Unidentified\" !== b) return b;\n }\n\n return \"keypress\" === a.type ? (a = od(a), 13 === a ? \"Enter\" : String.fromCharCode(a)) : \"keydown\" === a.type || \"keyup\" === a.type ? Nd[a.keyCode] || \"Unidentified\" : \"\";\n },\n code: 0,\n location: 0,\n ctrlKey: 0,\n shiftKey: 0,\n altKey: 0,\n metaKey: 0,\n repeat: 0,\n locale: 0,\n getModifierState: zd,\n charCode: function charCode(a) {\n return \"keypress\" === a.type ? od(a) : 0;\n },\n keyCode: function keyCode(a) {\n return \"keydown\" === a.type || \"keyup\" === a.type ? a.keyCode : 0;\n },\n which: function which(a) {\n return \"keypress\" === a.type ? od(a) : \"keydown\" === a.type || \"keyup\" === a.type ? a.keyCode : 0;\n }\n}),\n Rd = rd(Qd),\n Sd = m({}, Ad, {\n pointerId: 0,\n width: 0,\n height: 0,\n pressure: 0,\n tangentialPressure: 0,\n tiltX: 0,\n tiltY: 0,\n twist: 0,\n pointerType: 0,\n isPrimary: 0\n}),\n Td = rd(Sd),\n Ud = m({}, ud, {\n touches: 0,\n targetTouches: 0,\n changedTouches: 0,\n altKey: 0,\n metaKey: 0,\n ctrlKey: 0,\n shiftKey: 0,\n getModifierState: zd\n}),\n Vd = rd(Ud),\n Wd = m({}, sd, {\n propertyName: 0,\n elapsedTime: 0,\n pseudoElement: 0\n}),\n Xd = rd(Wd),\n Yd = m({}, Ad, {\n deltaX: function deltaX(a) {\n return \"deltaX\" in a ? a.deltaX : \"wheelDeltaX\" in a ? -a.wheelDeltaX : 0;\n },\n deltaY: function deltaY(a) {\n return \"deltaY\" in a ? a.deltaY : \"wheelDeltaY\" in a ? -a.wheelDeltaY : \"wheelDelta\" in a ? -a.wheelDelta : 0;\n },\n deltaZ: 0,\n deltaMode: 0\n}),\n Zd = rd(Yd),\n $d = [9, 13, 27, 32],\n ae = fa && \"CompositionEvent\" in window,\n be = null;\nfa && \"documentMode\" in document && (be = document.documentMode);\nvar ce = fa && \"TextEvent\" in window && !be,\n de = fa && (!ae || be && 8 < be && 11 >= be),\n ee = String.fromCharCode(32),\n fe = !1;\n\nfunction ge(a, b) {\n switch (a) {\n case \"keyup\":\n return -1 !== $d.indexOf(b.keyCode);\n\n case \"keydown\":\n return 229 !== b.keyCode;\n\n case \"keypress\":\n case \"mousedown\":\n case \"focusout\":\n return !0;\n\n default:\n return !1;\n }\n}\n\nfunction he(a) {\n a = a.detail;\n return \"object\" === typeof a && \"data\" in a ? a.data : null;\n}\n\nvar ie = !1;\n\nfunction je(a, b) {\n switch (a) {\n case \"compositionend\":\n return he(b);\n\n case \"keypress\":\n if (32 !== b.which) return null;\n fe = !0;\n return ee;\n\n case \"textInput\":\n return a = b.data, a === ee && fe ? null : a;\n\n default:\n return null;\n }\n}\n\nfunction ke(a, b) {\n if (ie) return \"compositionend\" === a || !ae && ge(a, b) ? (a = nd(), md = ld = kd = null, ie = !1, a) : null;\n\n switch (a) {\n case \"paste\":\n return null;\n\n case \"keypress\":\n if (!(b.ctrlKey || b.altKey || b.metaKey) || b.ctrlKey && b.altKey) {\n if (b.char && 1 < b.char.length) return b.char;\n if (b.which) return String.fromCharCode(b.which);\n }\n\n return null;\n\n case \"compositionend\":\n return de && \"ko\" !== b.locale ? null : b.data;\n\n default:\n return null;\n }\n}\n\nvar le = {\n color: !0,\n date: !0,\n datetime: !0,\n \"datetime-local\": !0,\n email: !0,\n month: !0,\n number: !0,\n password: !0,\n range: !0,\n search: !0,\n tel: !0,\n text: !0,\n time: !0,\n url: !0,\n week: !0\n};\n\nfunction me(a) {\n var b = a && a.nodeName && a.nodeName.toLowerCase();\n return \"input\" === b ? !!le[a.type] : \"textarea\" === b ? !0 : !1;\n}\n\nfunction ne(a, b, c, d) {\n Eb(d);\n b = oe(b, \"onChange\");\n 0 < b.length && (c = new td(\"onChange\", \"change\", null, c, d), a.push({\n event: c,\n listeners: b\n }));\n}\n\nvar pe = null,\n qe = null;\n\nfunction re(a) {\n se(a, 0);\n}\n\nfunction te(a) {\n var b = ue(a);\n if (Wa(b)) return a;\n}\n\nfunction ve(a, b) {\n if (\"change\" === a) return b;\n}\n\nvar we = !1;\n\nif (fa) {\n var xe;\n\n if (fa) {\n var ye = (\"oninput\" in document);\n\n if (!ye) {\n var ze = document.createElement(\"div\");\n ze.setAttribute(\"oninput\", \"return;\");\n ye = \"function\" === typeof ze.oninput;\n }\n\n xe = ye;\n } else xe = !1;\n\n we = xe && (!document.documentMode || 9 < document.documentMode);\n}\n\nfunction Ae() {\n pe && (pe.detachEvent(\"onpropertychange\", Be), qe = pe = null);\n}\n\nfunction Be(a) {\n if (\"value\" === a.propertyName && te(qe)) {\n var b = [];\n ne(b, qe, a, xb(a));\n a = re;\n if (Kb) a(b);else {\n Kb = !0;\n\n try {\n Gb(a, b);\n } finally {\n Kb = !1, Mb();\n }\n }\n }\n}\n\nfunction Ce(a, b, c) {\n \"focusin\" === a ? (Ae(), pe = b, qe = c, pe.attachEvent(\"onpropertychange\", Be)) : \"focusout\" === a && Ae();\n}\n\nfunction De(a) {\n if (\"selectionchange\" === a || \"keyup\" === a || \"keydown\" === a) return te(qe);\n}\n\nfunction Ee(a, b) {\n if (\"click\" === a) return te(b);\n}\n\nfunction Fe(a, b) {\n if (\"input\" === a || \"change\" === a) return te(b);\n}\n\nfunction Ge(a, b) {\n return a === b && (0 !== a || 1 / a === 1 / b) || a !== a && b !== b;\n}\n\nvar He = \"function\" === typeof Object.is ? Object.is : Ge,\n Ie = Object.prototype.hasOwnProperty;\n\nfunction Je(a, b) {\n if (He(a, b)) return !0;\n if (\"object\" !== typeof a || null === a || \"object\" !== typeof b || null === b) return !1;\n var c = Object.keys(a),\n d = Object.keys(b);\n if (c.length !== d.length) return !1;\n\n for (d = 0; d < c.length; d++) {\n if (!Ie.call(b, c[d]) || !He(a[c[d]], b[c[d]])) return !1;\n }\n\n return !0;\n}\n\nfunction Ke(a) {\n for (; a && a.firstChild;) {\n a = a.firstChild;\n }\n\n return a;\n}\n\nfunction Le(a, b) {\n var c = Ke(a);\n a = 0;\n\n for (var d; c;) {\n if (3 === c.nodeType) {\n d = a + c.textContent.length;\n if (a <= b && d >= b) return {\n node: c,\n offset: b - a\n };\n a = d;\n }\n\n a: {\n for (; c;) {\n if (c.nextSibling) {\n c = c.nextSibling;\n break a;\n }\n\n c = c.parentNode;\n }\n\n c = void 0;\n }\n\n c = Ke(c);\n }\n}\n\nfunction Me(a, b) {\n return a && b ? a === b ? !0 : a && 3 === a.nodeType ? !1 : b && 3 === b.nodeType ? Me(a, b.parentNode) : \"contains\" in a ? a.contains(b) : a.compareDocumentPosition ? !!(a.compareDocumentPosition(b) & 16) : !1 : !1;\n}\n\nfunction Ne() {\n for (var a = window, b = Xa(); b instanceof a.HTMLIFrameElement;) {\n try {\n var c = \"string\" === typeof b.contentWindow.location.href;\n } catch (d) {\n c = !1;\n }\n\n if (c) a = b.contentWindow;else break;\n b = Xa(a.document);\n }\n\n return b;\n}\n\nfunction Oe(a) {\n var b = a && a.nodeName && a.nodeName.toLowerCase();\n return b && (\"input\" === b && (\"text\" === a.type || \"search\" === a.type || \"tel\" === a.type || \"url\" === a.type || \"password\" === a.type) || \"textarea\" === b || \"true\" === a.contentEditable);\n}\n\nvar Pe = fa && \"documentMode\" in document && 11 >= document.documentMode,\n Qe = null,\n Re = null,\n Se = null,\n Te = !1;\n\nfunction Ue(a, b, c) {\n var d = c.window === c ? c.document : 9 === c.nodeType ? c : c.ownerDocument;\n Te || null == Qe || Qe !== Xa(d) || (d = Qe, \"selectionStart\" in d && Oe(d) ? d = {\n start: d.selectionStart,\n end: d.selectionEnd\n } : (d = (d.ownerDocument && d.ownerDocument.defaultView || window).getSelection(), d = {\n anchorNode: d.anchorNode,\n anchorOffset: d.anchorOffset,\n focusNode: d.focusNode,\n focusOffset: d.focusOffset\n }), Se && Je(Se, d) || (Se = d, d = oe(Re, \"onSelect\"), 0 < d.length && (b = new td(\"onSelect\", \"select\", null, b, c), a.push({\n event: b,\n listeners: d\n }), b.target = Qe)));\n}\n\nPc(\"cancel cancel click click close close contextmenu contextMenu copy copy cut cut auxclick auxClick dblclick doubleClick dragend dragEnd dragstart dragStart drop drop focusin focus focusout blur input input invalid invalid keydown keyDown keypress keyPress keyup keyUp mousedown mouseDown mouseup mouseUp paste paste pause pause play play pointercancel pointerCancel pointerdown pointerDown pointerup pointerUp ratechange rateChange reset reset seeked seeked submit submit touchcancel touchCancel touchend touchEnd touchstart touchStart volumechange volumeChange\".split(\" \"), 0);\nPc(\"drag drag dragenter dragEnter dragexit dragExit dragleave dragLeave dragover dragOver mousemove mouseMove mouseout mouseOut mouseover mouseOver pointermove pointerMove pointerout pointerOut pointerover pointerOver scroll scroll toggle toggle touchmove touchMove wheel wheel\".split(\" \"), 1);\nPc(Oc, 2);\n\nfor (var Ve = \"change selectionchange textInput compositionstart compositionend compositionupdate\".split(\" \"), We = 0; We < Ve.length; We++) {\n Nc.set(Ve[We], 0);\n}\n\nea(\"onMouseEnter\", [\"mouseout\", \"mouseover\"]);\nea(\"onMouseLeave\", [\"mouseout\", \"mouseover\"]);\nea(\"onPointerEnter\", [\"pointerout\", \"pointerover\"]);\nea(\"onPointerLeave\", [\"pointerout\", \"pointerover\"]);\nda(\"onChange\", \"change click focusin focusout input keydown keyup selectionchange\".split(\" \"));\nda(\"onSelect\", \"focusout contextmenu dragend focusin keydown keyup mousedown mouseup selectionchange\".split(\" \"));\nda(\"onBeforeInput\", [\"compositionend\", \"keypress\", \"textInput\", \"paste\"]);\nda(\"onCompositionEnd\", \"compositionend focusout keydown keypress keyup mousedown\".split(\" \"));\nda(\"onCompositionStart\", \"compositionstart focusout keydown keypress keyup mousedown\".split(\" \"));\nda(\"onCompositionUpdate\", \"compositionupdate focusout keydown keypress keyup mousedown\".split(\" \"));\nvar Xe = \"abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange seeked seeking stalled suspend timeupdate volumechange waiting\".split(\" \"),\n Ye = new Set(\"cancel close invalid load scroll toggle\".split(\" \").concat(Xe));\n\nfunction Ze(a, b, c) {\n var d = a.type || \"unknown-event\";\n a.currentTarget = c;\n Yb(d, b, void 0, a);\n a.currentTarget = null;\n}\n\nfunction se(a, b) {\n b = 0 !== (b & 4);\n\n for (var c = 0; c < a.length; c++) {\n var d = a[c],\n e = d.event;\n d = d.listeners;\n\n a: {\n var f = void 0;\n if (b) for (var g = d.length - 1; 0 <= g; g--) {\n var h = d[g],\n k = h.instance,\n l = h.currentTarget;\n h = h.listener;\n if (k !== f && e.isPropagationStopped()) break a;\n Ze(e, h, l);\n f = k;\n } else for (g = 0; g < d.length; g++) {\n h = d[g];\n k = h.instance;\n l = h.currentTarget;\n h = h.listener;\n if (k !== f && e.isPropagationStopped()) break a;\n Ze(e, h, l);\n f = k;\n }\n }\n }\n\n if (Ub) throw a = Vb, Ub = !1, Vb = null, a;\n}\n\nfunction G(a, b) {\n var c = $e(b),\n d = a + \"__bubble\";\n c.has(d) || (af(b, a, 2, !1), c.add(d));\n}\n\nvar bf = \"_reactListening\" + Math.random().toString(36).slice(2);\n\nfunction cf(a) {\n a[bf] || (a[bf] = !0, ba.forEach(function (b) {\n Ye.has(b) || df(b, !1, a, null);\n df(b, !0, a, null);\n }));\n}\n\nfunction df(a, b, c, d) {\n var e = 4 < arguments.length && void 0 !== arguments[4] ? arguments[4] : 0,\n f = c;\n \"selectionchange\" === a && 9 !== c.nodeType && (f = c.ownerDocument);\n\n if (null !== d && !b && Ye.has(a)) {\n if (\"scroll\" !== a) return;\n e |= 2;\n f = d;\n }\n\n var g = $e(f),\n h = a + \"__\" + (b ? \"capture\" : \"bubble\");\n g.has(h) || (b && (e |= 4), af(f, a, e, b), g.add(h));\n}\n\nfunction af(a, b, c, d) {\n var e = Nc.get(b);\n\n switch (void 0 === e ? 2 : e) {\n case 0:\n e = gd;\n break;\n\n case 1:\n e = id;\n break;\n\n default:\n e = hd;\n }\n\n c = e.bind(null, b, c, a);\n e = void 0;\n !Pb || \"touchstart\" !== b && \"touchmove\" !== b && \"wheel\" !== b || (e = !0);\n d ? void 0 !== e ? a.addEventListener(b, c, {\n capture: !0,\n passive: e\n }) : a.addEventListener(b, c, !0) : void 0 !== e ? a.addEventListener(b, c, {\n passive: e\n }) : a.addEventListener(b, c, !1);\n}\n\nfunction jd(a, b, c, d, e) {\n var f = d;\n if (0 === (b & 1) && 0 === (b & 2) && null !== d) a: for (;;) {\n if (null === d) return;\n var g = d.tag;\n\n if (3 === g || 4 === g) {\n var h = d.stateNode.containerInfo;\n if (h === e || 8 === h.nodeType && h.parentNode === e) break;\n if (4 === g) for (g = d.return; null !== g;) {\n var k = g.tag;\n if (3 === k || 4 === k) if (k = g.stateNode.containerInfo, k === e || 8 === k.nodeType && k.parentNode === e) return;\n g = g.return;\n }\n\n for (; null !== h;) {\n g = wc(h);\n if (null === g) return;\n k = g.tag;\n\n if (5 === k || 6 === k) {\n d = f = g;\n continue a;\n }\n\n h = h.parentNode;\n }\n }\n\n d = d.return;\n }\n Nb(function () {\n var d = f,\n e = xb(c),\n g = [];\n\n a: {\n var h = Mc.get(a);\n\n if (void 0 !== h) {\n var k = td,\n x = a;\n\n switch (a) {\n case \"keypress\":\n if (0 === od(c)) break a;\n\n case \"keydown\":\n case \"keyup\":\n k = Rd;\n break;\n\n case \"focusin\":\n x = \"focus\";\n k = Fd;\n break;\n\n case \"focusout\":\n x = \"blur\";\n k = Fd;\n break;\n\n case \"beforeblur\":\n case \"afterblur\":\n k = Fd;\n break;\n\n case \"click\":\n if (2 === c.button) break a;\n\n case \"auxclick\":\n case \"dblclick\":\n case \"mousedown\":\n case \"mousemove\":\n case \"mouseup\":\n case \"mouseout\":\n case \"mouseover\":\n case \"contextmenu\":\n k = Bd;\n break;\n\n case \"drag\":\n case \"dragend\":\n case \"dragenter\":\n case \"dragexit\":\n case \"dragleave\":\n case \"dragover\":\n case \"dragstart\":\n case \"drop\":\n k = Dd;\n break;\n\n case \"touchcancel\":\n case \"touchend\":\n case \"touchmove\":\n case \"touchstart\":\n k = Vd;\n break;\n\n case Ic:\n case Jc:\n case Kc:\n k = Hd;\n break;\n\n case Lc:\n k = Xd;\n break;\n\n case \"scroll\":\n k = vd;\n break;\n\n case \"wheel\":\n k = Zd;\n break;\n\n case \"copy\":\n case \"cut\":\n case \"paste\":\n k = Jd;\n break;\n\n case \"gotpointercapture\":\n case \"lostpointercapture\":\n case \"pointercancel\":\n case \"pointerdown\":\n case \"pointermove\":\n case \"pointerout\":\n case \"pointerover\":\n case \"pointerup\":\n k = Td;\n }\n\n var w = 0 !== (b & 4),\n z = !w && \"scroll\" === a,\n u = w ? null !== h ? h + \"Capture\" : null : h;\n w = [];\n\n for (var t = d, q; null !== t;) {\n q = t;\n var v = q.stateNode;\n 5 === q.tag && null !== v && (q = v, null !== u && (v = Ob(t, u), null != v && w.push(ef(t, v, q))));\n if (z) break;\n t = t.return;\n }\n\n 0 < w.length && (h = new k(h, x, null, c, e), g.push({\n event: h,\n listeners: w\n }));\n }\n }\n\n if (0 === (b & 7)) {\n a: {\n h = \"mouseover\" === a || \"pointerover\" === a;\n k = \"mouseout\" === a || \"pointerout\" === a;\n if (h && 0 === (b & 16) && (x = c.relatedTarget || c.fromElement) && (wc(x) || x[ff])) break a;\n\n if (k || h) {\n h = e.window === e ? e : (h = e.ownerDocument) ? h.defaultView || h.parentWindow : window;\n\n if (k) {\n if (x = c.relatedTarget || c.toElement, k = d, x = x ? wc(x) : null, null !== x && (z = Zb(x), x !== z || 5 !== x.tag && 6 !== x.tag)) x = null;\n } else k = null, x = d;\n\n if (k !== x) {\n w = Bd;\n v = \"onMouseLeave\";\n u = \"onMouseEnter\";\n t = \"mouse\";\n if (\"pointerout\" === a || \"pointerover\" === a) w = Td, v = \"onPointerLeave\", u = \"onPointerEnter\", t = \"pointer\";\n z = null == k ? h : ue(k);\n q = null == x ? h : ue(x);\n h = new w(v, t + \"leave\", k, c, e);\n h.target = z;\n h.relatedTarget = q;\n v = null;\n wc(e) === d && (w = new w(u, t + \"enter\", x, c, e), w.target = q, w.relatedTarget = z, v = w);\n z = v;\n if (k && x) b: {\n w = k;\n u = x;\n t = 0;\n\n for (q = w; q; q = gf(q)) {\n t++;\n }\n\n q = 0;\n\n for (v = u; v; v = gf(v)) {\n q++;\n }\n\n for (; 0 < t - q;) {\n w = gf(w), t--;\n }\n\n for (; 0 < q - t;) {\n u = gf(u), q--;\n }\n\n for (; t--;) {\n if (w === u || null !== u && w === u.alternate) break b;\n w = gf(w);\n u = gf(u);\n }\n\n w = null;\n } else w = null;\n null !== k && hf(g, h, k, w, !1);\n null !== x && null !== z && hf(g, z, x, w, !0);\n }\n }\n }\n\n a: {\n h = d ? ue(d) : window;\n k = h.nodeName && h.nodeName.toLowerCase();\n if (\"select\" === k || \"input\" === k && \"file\" === h.type) var J = ve;else if (me(h)) {\n if (we) J = Fe;else {\n J = De;\n var K = Ce;\n }\n } else (k = h.nodeName) && \"input\" === k.toLowerCase() && (\"checkbox\" === h.type || \"radio\" === h.type) && (J = Ee);\n\n if (J && (J = J(a, d))) {\n ne(g, J, c, e);\n break a;\n }\n\n K && K(a, h, d);\n \"focusout\" === a && (K = h._wrapperState) && K.controlled && \"number\" === h.type && bb(h, \"number\", h.value);\n }\n\n K = d ? ue(d) : window;\n\n switch (a) {\n case \"focusin\":\n if (me(K) || \"true\" === K.contentEditable) Qe = K, Re = d, Se = null;\n break;\n\n case \"focusout\":\n Se = Re = Qe = null;\n break;\n\n case \"mousedown\":\n Te = !0;\n break;\n\n case \"contextmenu\":\n case \"mouseup\":\n case \"dragend\":\n Te = !1;\n Ue(g, c, e);\n break;\n\n case \"selectionchange\":\n if (Pe) break;\n\n case \"keydown\":\n case \"keyup\":\n Ue(g, c, e);\n }\n\n var Q;\n if (ae) b: {\n switch (a) {\n case \"compositionstart\":\n var L = \"onCompositionStart\";\n break b;\n\n case \"compositionend\":\n L = \"onCompositionEnd\";\n break b;\n\n case \"compositionupdate\":\n L = \"onCompositionUpdate\";\n break b;\n }\n\n L = void 0;\n } else ie ? ge(a, c) && (L = \"onCompositionEnd\") : \"keydown\" === a && 229 === c.keyCode && (L = \"onCompositionStart\");\n L && (de && \"ko\" !== c.locale && (ie || \"onCompositionStart\" !== L ? \"onCompositionEnd\" === L && ie && (Q = nd()) : (kd = e, ld = \"value\" in kd ? kd.value : kd.textContent, ie = !0)), K = oe(d, L), 0 < K.length && (L = new Ld(L, a, null, c, e), g.push({\n event: L,\n listeners: K\n }), Q ? L.data = Q : (Q = he(c), null !== Q && (L.data = Q))));\n if (Q = ce ? je(a, c) : ke(a, c)) d = oe(d, \"onBeforeInput\"), 0 < d.length && (e = new Ld(\"onBeforeInput\", \"beforeinput\", null, c, e), g.push({\n event: e,\n listeners: d\n }), e.data = Q);\n }\n\n se(g, b);\n });\n}\n\nfunction ef(a, b, c) {\n return {\n instance: a,\n listener: b,\n currentTarget: c\n };\n}\n\nfunction oe(a, b) {\n for (var c = b + \"Capture\", d = []; null !== a;) {\n var e = a,\n f = e.stateNode;\n 5 === e.tag && null !== f && (e = f, f = Ob(a, c), null != f && d.unshift(ef(a, f, e)), f = Ob(a, b), null != f && d.push(ef(a, f, e)));\n a = a.return;\n }\n\n return d;\n}\n\nfunction gf(a) {\n if (null === a) return null;\n\n do {\n a = a.return;\n } while (a && 5 !== a.tag);\n\n return a ? a : null;\n}\n\nfunction hf(a, b, c, d, e) {\n for (var f = b._reactName, g = []; null !== c && c !== d;) {\n var h = c,\n k = h.alternate,\n l = h.stateNode;\n if (null !== k && k === d) break;\n 5 === h.tag && null !== l && (h = l, e ? (k = Ob(c, f), null != k && g.unshift(ef(c, k, h))) : e || (k = Ob(c, f), null != k && g.push(ef(c, k, h))));\n c = c.return;\n }\n\n 0 !== g.length && a.push({\n event: b,\n listeners: g\n });\n}\n\nfunction jf() {}\n\nvar kf = null,\n lf = null;\n\nfunction mf(a, b) {\n switch (a) {\n case \"button\":\n case \"input\":\n case \"select\":\n case \"textarea\":\n return !!b.autoFocus;\n }\n\n return !1;\n}\n\nfunction nf(a, b) {\n return \"textarea\" === a || \"option\" === a || \"noscript\" === a || \"string\" === typeof b.children || \"number\" === typeof b.children || \"object\" === typeof b.dangerouslySetInnerHTML && null !== b.dangerouslySetInnerHTML && null != b.dangerouslySetInnerHTML.__html;\n}\n\nvar of = \"function\" === typeof setTimeout ? setTimeout : void 0,\n pf = \"function\" === typeof clearTimeout ? clearTimeout : void 0;\n\nfunction qf(a) {\n 1 === a.nodeType ? a.textContent = \"\" : 9 === a.nodeType && (a = a.body, null != a && (a.textContent = \"\"));\n}\n\nfunction rf(a) {\n for (; null != a; a = a.nextSibling) {\n var b = a.nodeType;\n if (1 === b || 3 === b) break;\n }\n\n return a;\n}\n\nfunction sf(a) {\n a = a.previousSibling;\n\n for (var b = 0; a;) {\n if (8 === a.nodeType) {\n var c = a.data;\n\n if (\"$\" === c || \"$!\" === c || \"$?\" === c) {\n if (0 === b) return a;\n b--;\n } else \"/$\" === c && b++;\n }\n\n a = a.previousSibling;\n }\n\n return null;\n}\n\nvar tf = 0;\n\nfunction uf(a) {\n return {\n $$typeof: Ga,\n toString: a,\n valueOf: a\n };\n}\n\nvar vf = Math.random().toString(36).slice(2),\n wf = \"__reactFiber$\" + vf,\n xf = \"__reactProps$\" + vf,\n ff = \"__reactContainer$\" + vf,\n yf = \"__reactEvents$\" + vf;\n\nfunction wc(a) {\n var b = a[wf];\n if (b) return b;\n\n for (var c = a.parentNode; c;) {\n if (b = c[ff] || c[wf]) {\n c = b.alternate;\n if (null !== b.child || null !== c && null !== c.child) for (a = sf(a); null !== a;) {\n if (c = a[wf]) return c;\n a = sf(a);\n }\n return b;\n }\n\n a = c;\n c = a.parentNode;\n }\n\n return null;\n}\n\nfunction Cb(a) {\n a = a[wf] || a[ff];\n return !a || 5 !== a.tag && 6 !== a.tag && 13 !== a.tag && 3 !== a.tag ? null : a;\n}\n\nfunction ue(a) {\n if (5 === a.tag || 6 === a.tag) return a.stateNode;\n throw Error(y(33));\n}\n\nfunction Db(a) {\n return a[xf] || null;\n}\n\nfunction $e(a) {\n var b = a[yf];\n void 0 === b && (b = a[yf] = new Set());\n return b;\n}\n\nvar zf = [],\n Af = -1;\n\nfunction Bf(a) {\n return {\n current: a\n };\n}\n\nfunction H(a) {\n 0 > Af || (a.current = zf[Af], zf[Af] = null, Af--);\n}\n\nfunction I(a, b) {\n Af++;\n zf[Af] = a.current;\n a.current = b;\n}\n\nvar Cf = {},\n M = Bf(Cf),\n N = Bf(!1),\n Df = Cf;\n\nfunction Ef(a, b) {\n var c = a.type.contextTypes;\n if (!c) return Cf;\n var d = a.stateNode;\n if (d && d.__reactInternalMemoizedUnmaskedChildContext === b) return d.__reactInternalMemoizedMaskedChildContext;\n var e = {},\n f;\n\n for (f in c) {\n e[f] = b[f];\n }\n\n d && (a = a.stateNode, a.__reactInternalMemoizedUnmaskedChildContext = b, a.__reactInternalMemoizedMaskedChildContext = e);\n return e;\n}\n\nfunction Ff(a) {\n a = a.childContextTypes;\n return null !== a && void 0 !== a;\n}\n\nfunction Gf() {\n H(N);\n H(M);\n}\n\nfunction Hf(a, b, c) {\n if (M.current !== Cf) throw Error(y(168));\n I(M, b);\n I(N, c);\n}\n\nfunction If(a, b, c) {\n var d = a.stateNode;\n a = b.childContextTypes;\n if (\"function\" !== typeof d.getChildContext) return c;\n d = d.getChildContext();\n\n for (var e in d) {\n if (!(e in a)) throw Error(y(108, Ra(b) || \"Unknown\", e));\n }\n\n return m({}, c, d);\n}\n\nfunction Jf(a) {\n a = (a = a.stateNode) && a.__reactInternalMemoizedMergedChildContext || Cf;\n Df = M.current;\n I(M, a);\n I(N, N.current);\n return !0;\n}\n\nfunction Kf(a, b, c) {\n var d = a.stateNode;\n if (!d) throw Error(y(169));\n c ? (a = If(a, b, Df), d.__reactInternalMemoizedMergedChildContext = a, H(N), H(M), I(M, a)) : H(N);\n I(N, c);\n}\n\nvar Lf = null,\n Mf = null,\n Nf = r.unstable_runWithPriority,\n Of = r.unstable_scheduleCallback,\n Pf = r.unstable_cancelCallback,\n Qf = r.unstable_shouldYield,\n Rf = r.unstable_requestPaint,\n Sf = r.unstable_now,\n Tf = r.unstable_getCurrentPriorityLevel,\n Uf = r.unstable_ImmediatePriority,\n Vf = r.unstable_UserBlockingPriority,\n Wf = r.unstable_NormalPriority,\n Xf = r.unstable_LowPriority,\n Yf = r.unstable_IdlePriority,\n Zf = {},\n $f = void 0 !== Rf ? Rf : function () {},\n ag = null,\n bg = null,\n cg = !1,\n dg = Sf(),\n O = 1E4 > dg ? Sf : function () {\n return Sf() - dg;\n};\n\nfunction eg() {\n switch (Tf()) {\n case Uf:\n return 99;\n\n case Vf:\n return 98;\n\n case Wf:\n return 97;\n\n case Xf:\n return 96;\n\n case Yf:\n return 95;\n\n default:\n throw Error(y(332));\n }\n}\n\nfunction fg(a) {\n switch (a) {\n case 99:\n return Uf;\n\n case 98:\n return Vf;\n\n case 97:\n return Wf;\n\n case 96:\n return Xf;\n\n case 95:\n return Yf;\n\n default:\n throw Error(y(332));\n }\n}\n\nfunction gg(a, b) {\n a = fg(a);\n return Nf(a, b);\n}\n\nfunction hg(a, b, c) {\n a = fg(a);\n return Of(a, b, c);\n}\n\nfunction ig() {\n if (null !== bg) {\n var a = bg;\n bg = null;\n Pf(a);\n }\n\n jg();\n}\n\nfunction jg() {\n if (!cg && null !== ag) {\n cg = !0;\n var a = 0;\n\n try {\n var b = ag;\n gg(99, function () {\n for (; a < b.length; a++) {\n var c = b[a];\n\n do {\n c = c(!0);\n } while (null !== c);\n }\n });\n ag = null;\n } catch (c) {\n throw null !== ag && (ag = ag.slice(a + 1)), Of(Uf, ig), c;\n } finally {\n cg = !1;\n }\n }\n}\n\nvar kg = ra.ReactCurrentBatchConfig;\n\nfunction lg(a, b) {\n if (a && a.defaultProps) {\n b = m({}, b);\n a = a.defaultProps;\n\n for (var c in a) {\n void 0 === b[c] && (b[c] = a[c]);\n }\n\n return b;\n }\n\n return b;\n}\n\nvar mg = Bf(null),\n ng = null,\n og = null,\n pg = null;\n\nfunction qg() {\n pg = og = ng = null;\n}\n\nfunction rg(a) {\n var b = mg.current;\n H(mg);\n a.type._context._currentValue = b;\n}\n\nfunction sg(a, b) {\n for (; null !== a;) {\n var c = a.alternate;\n if ((a.childLanes & b) === b) {\n if (null === c || (c.childLanes & b) === b) break;else c.childLanes |= b;\n } else a.childLanes |= b, null !== c && (c.childLanes |= b);\n a = a.return;\n }\n}\n\nfunction tg(a, b) {\n ng = a;\n pg = og = null;\n a = a.dependencies;\n null !== a && null !== a.firstContext && (0 !== (a.lanes & b) && (ug = !0), a.firstContext = null);\n}\n\nfunction vg(a, b) {\n if (pg !== a && !1 !== b && 0 !== b) {\n if (\"number\" !== typeof b || 1073741823 === b) pg = a, b = 1073741823;\n b = {\n context: a,\n observedBits: b,\n next: null\n };\n\n if (null === og) {\n if (null === ng) throw Error(y(308));\n og = b;\n ng.dependencies = {\n lanes: 0,\n firstContext: b,\n responders: null\n };\n } else og = og.next = b;\n }\n\n return a._currentValue;\n}\n\nvar wg = !1;\n\nfunction xg(a) {\n a.updateQueue = {\n baseState: a.memoizedState,\n firstBaseUpdate: null,\n lastBaseUpdate: null,\n shared: {\n pending: null\n },\n effects: null\n };\n}\n\nfunction yg(a, b) {\n a = a.updateQueue;\n b.updateQueue === a && (b.updateQueue = {\n baseState: a.baseState,\n firstBaseUpdate: a.firstBaseUpdate,\n lastBaseUpdate: a.lastBaseUpdate,\n shared: a.shared,\n effects: a.effects\n });\n}\n\nfunction zg(a, b) {\n return {\n eventTime: a,\n lane: b,\n tag: 0,\n payload: null,\n callback: null,\n next: null\n };\n}\n\nfunction Ag(a, b) {\n a = a.updateQueue;\n\n if (null !== a) {\n a = a.shared;\n var c = a.pending;\n null === c ? b.next = b : (b.next = c.next, c.next = b);\n a.pending = b;\n }\n}\n\nfunction Bg(a, b) {\n var c = a.updateQueue,\n d = a.alternate;\n\n if (null !== d && (d = d.updateQueue, c === d)) {\n var e = null,\n f = null;\n c = c.firstBaseUpdate;\n\n if (null !== c) {\n do {\n var g = {\n eventTime: c.eventTime,\n lane: c.lane,\n tag: c.tag,\n payload: c.payload,\n callback: c.callback,\n next: null\n };\n null === f ? e = f = g : f = f.next = g;\n c = c.next;\n } while (null !== c);\n\n null === f ? e = f = b : f = f.next = b;\n } else e = f = b;\n\n c = {\n baseState: d.baseState,\n firstBaseUpdate: e,\n lastBaseUpdate: f,\n shared: d.shared,\n effects: d.effects\n };\n a.updateQueue = c;\n return;\n }\n\n a = c.lastBaseUpdate;\n null === a ? c.firstBaseUpdate = b : a.next = b;\n c.lastBaseUpdate = b;\n}\n\nfunction Cg(a, b, c, d) {\n var e = a.updateQueue;\n wg = !1;\n var f = e.firstBaseUpdate,\n g = e.lastBaseUpdate,\n h = e.shared.pending;\n\n if (null !== h) {\n e.shared.pending = null;\n var k = h,\n l = k.next;\n k.next = null;\n null === g ? f = l : g.next = l;\n g = k;\n var n = a.alternate;\n\n if (null !== n) {\n n = n.updateQueue;\n var A = n.lastBaseUpdate;\n A !== g && (null === A ? n.firstBaseUpdate = l : A.next = l, n.lastBaseUpdate = k);\n }\n }\n\n if (null !== f) {\n A = e.baseState;\n g = 0;\n n = l = k = null;\n\n do {\n h = f.lane;\n var p = f.eventTime;\n\n if ((d & h) === h) {\n null !== n && (n = n.next = {\n eventTime: p,\n lane: 0,\n tag: f.tag,\n payload: f.payload,\n callback: f.callback,\n next: null\n });\n\n a: {\n var C = a,\n x = f;\n h = b;\n p = c;\n\n switch (x.tag) {\n case 1:\n C = x.payload;\n\n if (\"function\" === typeof C) {\n A = C.call(p, A, h);\n break a;\n }\n\n A = C;\n break a;\n\n case 3:\n C.flags = C.flags & -4097 | 64;\n\n case 0:\n C = x.payload;\n h = \"function\" === typeof C ? C.call(p, A, h) : C;\n if (null === h || void 0 === h) break a;\n A = m({}, A, h);\n break a;\n\n case 2:\n wg = !0;\n }\n }\n\n null !== f.callback && (a.flags |= 32, h = e.effects, null === h ? e.effects = [f] : h.push(f));\n } else p = {\n eventTime: p,\n lane: h,\n tag: f.tag,\n payload: f.payload,\n callback: f.callback,\n next: null\n }, null === n ? (l = n = p, k = A) : n = n.next = p, g |= h;\n\n f = f.next;\n if (null === f) if (h = e.shared.pending, null === h) break;else f = h.next, h.next = null, e.lastBaseUpdate = h, e.shared.pending = null;\n } while (1);\n\n null === n && (k = A);\n e.baseState = k;\n e.firstBaseUpdate = l;\n e.lastBaseUpdate = n;\n Dg |= g;\n a.lanes = g;\n a.memoizedState = A;\n }\n}\n\nfunction Eg(a, b, c) {\n a = b.effects;\n b.effects = null;\n if (null !== a) for (b = 0; b < a.length; b++) {\n var d = a[b],\n e = d.callback;\n\n if (null !== e) {\n d.callback = null;\n d = c;\n if (\"function\" !== typeof e) throw Error(y(191, e));\n e.call(d);\n }\n }\n}\n\nvar Fg = new aa.Component().refs;\n\nfunction Gg(a, b, c, d) {\n b = a.memoizedState;\n c = c(d, b);\n c = null === c || void 0 === c ? b : m({}, b, c);\n a.memoizedState = c;\n 0 === a.lanes && (a.updateQueue.baseState = c);\n}\n\nvar Kg = {\n isMounted: function isMounted(a) {\n return (a = a._reactInternals) ? Zb(a) === a : !1;\n },\n enqueueSetState: function enqueueSetState(a, b, c) {\n a = a._reactInternals;\n var d = Hg(),\n e = Ig(a),\n f = zg(d, e);\n f.payload = b;\n void 0 !== c && null !== c && (f.callback = c);\n Ag(a, f);\n Jg(a, e, d);\n },\n enqueueReplaceState: function enqueueReplaceState(a, b, c) {\n a = a._reactInternals;\n var d = Hg(),\n e = Ig(a),\n f = zg(d, e);\n f.tag = 1;\n f.payload = b;\n void 0 !== c && null !== c && (f.callback = c);\n Ag(a, f);\n Jg(a, e, d);\n },\n enqueueForceUpdate: function enqueueForceUpdate(a, b) {\n a = a._reactInternals;\n var c = Hg(),\n d = Ig(a),\n e = zg(c, d);\n e.tag = 2;\n void 0 !== b && null !== b && (e.callback = b);\n Ag(a, e);\n Jg(a, d, c);\n }\n};\n\nfunction Lg(a, b, c, d, e, f, g) {\n a = a.stateNode;\n return \"function\" === typeof a.shouldComponentUpdate ? a.shouldComponentUpdate(d, f, g) : b.prototype && b.prototype.isPureReactComponent ? !Je(c, d) || !Je(e, f) : !0;\n}\n\nfunction Mg(a, b, c) {\n var d = !1,\n e = Cf;\n var f = b.contextType;\n \"object\" === typeof f && null !== f ? f = vg(f) : (e = Ff(b) ? Df : M.current, d = b.contextTypes, f = (d = null !== d && void 0 !== d) ? Ef(a, e) : Cf);\n b = new b(c, f);\n a.memoizedState = null !== b.state && void 0 !== b.state ? b.state : null;\n b.updater = Kg;\n a.stateNode = b;\n b._reactInternals = a;\n d && (a = a.stateNode, a.__reactInternalMemoizedUnmaskedChildContext = e, a.__reactInternalMemoizedMaskedChildContext = f);\n return b;\n}\n\nfunction Ng(a, b, c, d) {\n a = b.state;\n \"function\" === typeof b.componentWillReceiveProps && b.componentWillReceiveProps(c, d);\n \"function\" === typeof b.UNSAFE_componentWillReceiveProps && b.UNSAFE_componentWillReceiveProps(c, d);\n b.state !== a && Kg.enqueueReplaceState(b, b.state, null);\n}\n\nfunction Og(a, b, c, d) {\n var e = a.stateNode;\n e.props = c;\n e.state = a.memoizedState;\n e.refs = Fg;\n xg(a);\n var f = b.contextType;\n \"object\" === typeof f && null !== f ? e.context = vg(f) : (f = Ff(b) ? Df : M.current, e.context = Ef(a, f));\n Cg(a, c, e, d);\n e.state = a.memoizedState;\n f = b.getDerivedStateFromProps;\n \"function\" === typeof f && (Gg(a, b, f, c), e.state = a.memoizedState);\n \"function\" === typeof b.getDerivedStateFromProps || \"function\" === typeof e.getSnapshotBeforeUpdate || \"function\" !== typeof e.UNSAFE_componentWillMount && \"function\" !== typeof e.componentWillMount || (b = e.state, \"function\" === typeof e.componentWillMount && e.componentWillMount(), \"function\" === typeof e.UNSAFE_componentWillMount && e.UNSAFE_componentWillMount(), b !== e.state && Kg.enqueueReplaceState(e, e.state, null), Cg(a, c, e, d), e.state = a.memoizedState);\n \"function\" === typeof e.componentDidMount && (a.flags |= 4);\n}\n\nvar Pg = Array.isArray;\n\nfunction Qg(a, b, c) {\n a = c.ref;\n\n if (null !== a && \"function\" !== typeof a && \"object\" !== typeof a) {\n if (c._owner) {\n c = c._owner;\n\n if (c) {\n if (1 !== c.tag) throw Error(y(309));\n var d = c.stateNode;\n }\n\n if (!d) throw Error(y(147, a));\n var e = \"\" + a;\n if (null !== b && null !== b.ref && \"function\" === typeof b.ref && b.ref._stringRef === e) return b.ref;\n\n b = function b(a) {\n var b = d.refs;\n b === Fg && (b = d.refs = {});\n null === a ? delete b[e] : b[e] = a;\n };\n\n b._stringRef = e;\n return b;\n }\n\n if (\"string\" !== typeof a) throw Error(y(284));\n if (!c._owner) throw Error(y(290, a));\n }\n\n return a;\n}\n\nfunction Rg(a, b) {\n if (\"textarea\" !== a.type) throw Error(y(31, \"[object Object]\" === Object.prototype.toString.call(b) ? \"object with keys {\" + Object.keys(b).join(\", \") + \"}\" : b));\n}\n\nfunction Sg(a) {\n function b(b, c) {\n if (a) {\n var d = b.lastEffect;\n null !== d ? (d.nextEffect = c, b.lastEffect = c) : b.firstEffect = b.lastEffect = c;\n c.nextEffect = null;\n c.flags = 8;\n }\n }\n\n function c(c, d) {\n if (!a) return null;\n\n for (; null !== d;) {\n b(c, d), d = d.sibling;\n }\n\n return null;\n }\n\n function d(a, b) {\n for (a = new Map(); null !== b;) {\n null !== b.key ? a.set(b.key, b) : a.set(b.index, b), b = b.sibling;\n }\n\n return a;\n }\n\n function e(a, b) {\n a = Tg(a, b);\n a.index = 0;\n a.sibling = null;\n return a;\n }\n\n function f(b, c, d) {\n b.index = d;\n if (!a) return c;\n d = b.alternate;\n if (null !== d) return d = d.index, d < c ? (b.flags = 2, c) : d;\n b.flags = 2;\n return c;\n }\n\n function g(b) {\n a && null === b.alternate && (b.flags = 2);\n return b;\n }\n\n function h(a, b, c, d) {\n if (null === b || 6 !== b.tag) return b = Ug(c, a.mode, d), b.return = a, b;\n b = e(b, c);\n b.return = a;\n return b;\n }\n\n function k(a, b, c, d) {\n if (null !== b && b.elementType === c.type) return d = e(b, c.props), d.ref = Qg(a, b, c), d.return = a, d;\n d = Vg(c.type, c.key, c.props, null, a.mode, d);\n d.ref = Qg(a, b, c);\n d.return = a;\n return d;\n }\n\n function l(a, b, c, d) {\n if (null === b || 4 !== b.tag || b.stateNode.containerInfo !== c.containerInfo || b.stateNode.implementation !== c.implementation) return b = Wg(c, a.mode, d), b.return = a, b;\n b = e(b, c.children || []);\n b.return = a;\n return b;\n }\n\n function n(a, b, c, d, f) {\n if (null === b || 7 !== b.tag) return b = Xg(c, a.mode, d, f), b.return = a, b;\n b = e(b, c);\n b.return = a;\n return b;\n }\n\n function A(a, b, c) {\n if (\"string\" === typeof b || \"number\" === typeof b) return b = Ug(\"\" + b, a.mode, c), b.return = a, b;\n\n if (\"object\" === typeof b && null !== b) {\n switch (b.$$typeof) {\n case sa:\n return c = Vg(b.type, b.key, b.props, null, a.mode, c), c.ref = Qg(a, null, b), c.return = a, c;\n\n case ta:\n return b = Wg(b, a.mode, c), b.return = a, b;\n }\n\n if (Pg(b) || La(b)) return b = Xg(b, a.mode, c, null), b.return = a, b;\n Rg(a, b);\n }\n\n return null;\n }\n\n function p(a, b, c, d) {\n var e = null !== b ? b.key : null;\n if (\"string\" === typeof c || \"number\" === typeof c) return null !== e ? null : h(a, b, \"\" + c, d);\n\n if (\"object\" === typeof c && null !== c) {\n switch (c.$$typeof) {\n case sa:\n return c.key === e ? c.type === ua ? n(a, b, c.props.children, d, e) : k(a, b, c, d) : null;\n\n case ta:\n return c.key === e ? l(a, b, c, d) : null;\n }\n\n if (Pg(c) || La(c)) return null !== e ? null : n(a, b, c, d, null);\n Rg(a, c);\n }\n\n return null;\n }\n\n function C(a, b, c, d, e) {\n if (\"string\" === typeof d || \"number\" === typeof d) return a = a.get(c) || null, h(b, a, \"\" + d, e);\n\n if (\"object\" === typeof d && null !== d) {\n switch (d.$$typeof) {\n case sa:\n return a = a.get(null === d.key ? c : d.key) || null, d.type === ua ? n(b, a, d.props.children, e, d.key) : k(b, a, d, e);\n\n case ta:\n return a = a.get(null === d.key ? c : d.key) || null, l(b, a, d, e);\n }\n\n if (Pg(d) || La(d)) return a = a.get(c) || null, n(b, a, d, e, null);\n Rg(b, d);\n }\n\n return null;\n }\n\n function x(e, g, h, k) {\n for (var l = null, t = null, u = g, z = g = 0, q = null; null !== u && z < h.length; z++) {\n u.index > z ? (q = u, u = null) : q = u.sibling;\n var n = p(e, u, h[z], k);\n\n if (null === n) {\n null === u && (u = q);\n break;\n }\n\n a && u && null === n.alternate && b(e, u);\n g = f(n, g, z);\n null === t ? l = n : t.sibling = n;\n t = n;\n u = q;\n }\n\n if (z === h.length) return c(e, u), l;\n\n if (null === u) {\n for (; z < h.length; z++) {\n u = A(e, h[z], k), null !== u && (g = f(u, g, z), null === t ? l = u : t.sibling = u, t = u);\n }\n\n return l;\n }\n\n for (u = d(e, u); z < h.length; z++) {\n q = C(u, e, z, h[z], k), null !== q && (a && null !== q.alternate && u.delete(null === q.key ? z : q.key), g = f(q, g, z), null === t ? l = q : t.sibling = q, t = q);\n }\n\n a && u.forEach(function (a) {\n return b(e, a);\n });\n return l;\n }\n\n function w(e, g, h, k) {\n var l = La(h);\n if (\"function\" !== typeof l) throw Error(y(150));\n h = l.call(h);\n if (null == h) throw Error(y(151));\n\n for (var t = l = null, u = g, z = g = 0, q = null, n = h.next(); null !== u && !n.done; z++, n = h.next()) {\n u.index > z ? (q = u, u = null) : q = u.sibling;\n var w = p(e, u, n.value, k);\n\n if (null === w) {\n null === u && (u = q);\n break;\n }\n\n a && u && null === w.alternate && b(e, u);\n g = f(w, g, z);\n null === t ? l = w : t.sibling = w;\n t = w;\n u = q;\n }\n\n if (n.done) return c(e, u), l;\n\n if (null === u) {\n for (; !n.done; z++, n = h.next()) {\n n = A(e, n.value, k), null !== n && (g = f(n, g, z), null === t ? l = n : t.sibling = n, t = n);\n }\n\n return l;\n }\n\n for (u = d(e, u); !n.done; z++, n = h.next()) {\n n = C(u, e, z, n.value, k), null !== n && (a && null !== n.alternate && u.delete(null === n.key ? z : n.key), g = f(n, g, z), null === t ? l = n : t.sibling = n, t = n);\n }\n\n a && u.forEach(function (a) {\n return b(e, a);\n });\n return l;\n }\n\n return function (a, d, f, h) {\n var k = \"object\" === typeof f && null !== f && f.type === ua && null === f.key;\n k && (f = f.props.children);\n var l = \"object\" === typeof f && null !== f;\n if (l) switch (f.$$typeof) {\n case sa:\n a: {\n l = f.key;\n\n for (k = d; null !== k;) {\n if (k.key === l) {\n switch (k.tag) {\n case 7:\n if (f.type === ua) {\n c(a, k.sibling);\n d = e(k, f.props.children);\n d.return = a;\n a = d;\n break a;\n }\n\n break;\n\n default:\n if (k.elementType === f.type) {\n c(a, k.sibling);\n d = e(k, f.props);\n d.ref = Qg(a, k, f);\n d.return = a;\n a = d;\n break a;\n }\n\n }\n\n c(a, k);\n break;\n } else b(a, k);\n\n k = k.sibling;\n }\n\n f.type === ua ? (d = Xg(f.props.children, a.mode, h, f.key), d.return = a, a = d) : (h = Vg(f.type, f.key, f.props, null, a.mode, h), h.ref = Qg(a, d, f), h.return = a, a = h);\n }\n\n return g(a);\n\n case ta:\n a: {\n for (k = f.key; null !== d;) {\n if (d.key === k) {\n if (4 === d.tag && d.stateNode.containerInfo === f.containerInfo && d.stateNode.implementation === f.implementation) {\n c(a, d.sibling);\n d = e(d, f.children || []);\n d.return = a;\n a = d;\n break a;\n } else {\n c(a, d);\n break;\n }\n } else b(a, d);\n d = d.sibling;\n }\n\n d = Wg(f, a.mode, h);\n d.return = a;\n a = d;\n }\n\n return g(a);\n }\n if (\"string\" === typeof f || \"number\" === typeof f) return f = \"\" + f, null !== d && 6 === d.tag ? (c(a, d.sibling), d = e(d, f), d.return = a, a = d) : (c(a, d), d = Ug(f, a.mode, h), d.return = a, a = d), g(a);\n if (Pg(f)) return x(a, d, f, h);\n if (La(f)) return w(a, d, f, h);\n l && Rg(a, f);\n if (\"undefined\" === typeof f && !k) switch (a.tag) {\n case 1:\n case 22:\n case 0:\n case 11:\n case 15:\n throw Error(y(152, Ra(a.type) || \"Component\"));\n }\n return c(a, d);\n };\n}\n\nvar Yg = Sg(!0),\n Zg = Sg(!1),\n $g = {},\n ah = Bf($g),\n bh = Bf($g),\n ch = Bf($g);\n\nfunction dh(a) {\n if (a === $g) throw Error(y(174));\n return a;\n}\n\nfunction eh(a, b) {\n I(ch, b);\n I(bh, a);\n I(ah, $g);\n a = b.nodeType;\n\n switch (a) {\n case 9:\n case 11:\n b = (b = b.documentElement) ? b.namespaceURI : mb(null, \"\");\n break;\n\n default:\n a = 8 === a ? b.parentNode : b, b = a.namespaceURI || null, a = a.tagName, b = mb(b, a);\n }\n\n H(ah);\n I(ah, b);\n}\n\nfunction fh() {\n H(ah);\n H(bh);\n H(ch);\n}\n\nfunction gh(a) {\n dh(ch.current);\n var b = dh(ah.current);\n var c = mb(b, a.type);\n b !== c && (I(bh, a), I(ah, c));\n}\n\nfunction hh(a) {\n bh.current === a && (H(ah), H(bh));\n}\n\nvar P = Bf(0);\n\nfunction ih(a) {\n for (var b = a; null !== b;) {\n if (13 === b.tag) {\n var c = b.memoizedState;\n if (null !== c && (c = c.dehydrated, null === c || \"$?\" === c.data || \"$!\" === c.data)) return b;\n } else if (19 === b.tag && void 0 !== b.memoizedProps.revealOrder) {\n if (0 !== (b.flags & 64)) return b;\n } else if (null !== b.child) {\n b.child.return = b;\n b = b.child;\n continue;\n }\n\n if (b === a) break;\n\n for (; null === b.sibling;) {\n if (null === b.return || b.return === a) return null;\n b = b.return;\n }\n\n b.sibling.return = b.return;\n b = b.sibling;\n }\n\n return null;\n}\n\nvar jh = null,\n kh = null,\n lh = !1;\n\nfunction mh(a, b) {\n var c = nh(5, null, null, 0);\n c.elementType = \"DELETED\";\n c.type = \"DELETED\";\n c.stateNode = b;\n c.return = a;\n c.flags = 8;\n null !== a.lastEffect ? (a.lastEffect.nextEffect = c, a.lastEffect = c) : a.firstEffect = a.lastEffect = c;\n}\n\nfunction oh(a, b) {\n switch (a.tag) {\n case 5:\n var c = a.type;\n b = 1 !== b.nodeType || c.toLowerCase() !== b.nodeName.toLowerCase() ? null : b;\n return null !== b ? (a.stateNode = b, !0) : !1;\n\n case 6:\n return b = \"\" === a.pendingProps || 3 !== b.nodeType ? null : b, null !== b ? (a.stateNode = b, !0) : !1;\n\n case 13:\n return !1;\n\n default:\n return !1;\n }\n}\n\nfunction ph(a) {\n if (lh) {\n var b = kh;\n\n if (b) {\n var c = b;\n\n if (!oh(a, b)) {\n b = rf(c.nextSibling);\n\n if (!b || !oh(a, b)) {\n a.flags = a.flags & -1025 | 2;\n lh = !1;\n jh = a;\n return;\n }\n\n mh(jh, c);\n }\n\n jh = a;\n kh = rf(b.firstChild);\n } else a.flags = a.flags & -1025 | 2, lh = !1, jh = a;\n }\n}\n\nfunction qh(a) {\n for (a = a.return; null !== a && 5 !== a.tag && 3 !== a.tag && 13 !== a.tag;) {\n a = a.return;\n }\n\n jh = a;\n}\n\nfunction rh(a) {\n if (a !== jh) return !1;\n if (!lh) return qh(a), lh = !0, !1;\n var b = a.type;\n if (5 !== a.tag || \"head\" !== b && \"body\" !== b && !nf(b, a.memoizedProps)) for (b = kh; b;) {\n mh(a, b), b = rf(b.nextSibling);\n }\n qh(a);\n\n if (13 === a.tag) {\n a = a.memoizedState;\n a = null !== a ? a.dehydrated : null;\n if (!a) throw Error(y(317));\n\n a: {\n a = a.nextSibling;\n\n for (b = 0; a;) {\n if (8 === a.nodeType) {\n var c = a.data;\n\n if (\"/$\" === c) {\n if (0 === b) {\n kh = rf(a.nextSibling);\n break a;\n }\n\n b--;\n } else \"$\" !== c && \"$!\" !== c && \"$?\" !== c || b++;\n }\n\n a = a.nextSibling;\n }\n\n kh = null;\n }\n } else kh = jh ? rf(a.stateNode.nextSibling) : null;\n\n return !0;\n}\n\nfunction sh() {\n kh = jh = null;\n lh = !1;\n}\n\nvar th = [];\n\nfunction uh() {\n for (var a = 0; a < th.length; a++) {\n th[a]._workInProgressVersionPrimary = null;\n }\n\n th.length = 0;\n}\n\nvar vh = ra.ReactCurrentDispatcher,\n wh = ra.ReactCurrentBatchConfig,\n xh = 0,\n R = null,\n S = null,\n T = null,\n yh = !1,\n zh = !1;\n\nfunction Ah() {\n throw Error(y(321));\n}\n\nfunction Bh(a, b) {\n if (null === b) return !1;\n\n for (var c = 0; c < b.length && c < a.length; c++) {\n if (!He(a[c], b[c])) return !1;\n }\n\n return !0;\n}\n\nfunction Ch(a, b, c, d, e, f) {\n xh = f;\n R = b;\n b.memoizedState = null;\n b.updateQueue = null;\n b.lanes = 0;\n vh.current = null === a || null === a.memoizedState ? Dh : Eh;\n a = c(d, e);\n\n if (zh) {\n f = 0;\n\n do {\n zh = !1;\n if (!(25 > f)) throw Error(y(301));\n f += 1;\n T = S = null;\n b.updateQueue = null;\n vh.current = Fh;\n a = c(d, e);\n } while (zh);\n }\n\n vh.current = Gh;\n b = null !== S && null !== S.next;\n xh = 0;\n T = S = R = null;\n yh = !1;\n if (b) throw Error(y(300));\n return a;\n}\n\nfunction Hh() {\n var a = {\n memoizedState: null,\n baseState: null,\n baseQueue: null,\n queue: null,\n next: null\n };\n null === T ? R.memoizedState = T = a : T = T.next = a;\n return T;\n}\n\nfunction Ih() {\n if (null === S) {\n var a = R.alternate;\n a = null !== a ? a.memoizedState : null;\n } else a = S.next;\n\n var b = null === T ? R.memoizedState : T.next;\n if (null !== b) T = b, S = a;else {\n if (null === a) throw Error(y(310));\n S = a;\n a = {\n memoizedState: S.memoizedState,\n baseState: S.baseState,\n baseQueue: S.baseQueue,\n queue: S.queue,\n next: null\n };\n null === T ? R.memoizedState = T = a : T = T.next = a;\n }\n return T;\n}\n\nfunction Jh(a, b) {\n return \"function\" === typeof b ? b(a) : b;\n}\n\nfunction Kh(a) {\n var b = Ih(),\n c = b.queue;\n if (null === c) throw Error(y(311));\n c.lastRenderedReducer = a;\n var d = S,\n e = d.baseQueue,\n f = c.pending;\n\n if (null !== f) {\n if (null !== e) {\n var g = e.next;\n e.next = f.next;\n f.next = g;\n }\n\n d.baseQueue = e = f;\n c.pending = null;\n }\n\n if (null !== e) {\n e = e.next;\n d = d.baseState;\n var h = g = f = null,\n k = e;\n\n do {\n var l = k.lane;\n if ((xh & l) === l) null !== h && (h = h.next = {\n lane: 0,\n action: k.action,\n eagerReducer: k.eagerReducer,\n eagerState: k.eagerState,\n next: null\n }), d = k.eagerReducer === a ? k.eagerState : a(d, k.action);else {\n var n = {\n lane: l,\n action: k.action,\n eagerReducer: k.eagerReducer,\n eagerState: k.eagerState,\n next: null\n };\n null === h ? (g = h = n, f = d) : h = h.next = n;\n R.lanes |= l;\n Dg |= l;\n }\n k = k.next;\n } while (null !== k && k !== e);\n\n null === h ? f = d : h.next = g;\n He(d, b.memoizedState) || (ug = !0);\n b.memoizedState = d;\n b.baseState = f;\n b.baseQueue = h;\n c.lastRenderedState = d;\n }\n\n return [b.memoizedState, c.dispatch];\n}\n\nfunction Lh(a) {\n var b = Ih(),\n c = b.queue;\n if (null === c) throw Error(y(311));\n c.lastRenderedReducer = a;\n var d = c.dispatch,\n e = c.pending,\n f = b.memoizedState;\n\n if (null !== e) {\n c.pending = null;\n var g = e = e.next;\n\n do {\n f = a(f, g.action), g = g.next;\n } while (g !== e);\n\n He(f, b.memoizedState) || (ug = !0);\n b.memoizedState = f;\n null === b.baseQueue && (b.baseState = f);\n c.lastRenderedState = f;\n }\n\n return [f, d];\n}\n\nfunction Mh(a, b, c) {\n var d = b._getVersion;\n d = d(b._source);\n var e = b._workInProgressVersionPrimary;\n if (null !== e) a = e === d;else if (a = a.mutableReadLanes, a = (xh & a) === a) b._workInProgressVersionPrimary = d, th.push(b);\n if (a) return c(b._source);\n th.push(b);\n throw Error(y(350));\n}\n\nfunction Nh(a, b, c, d) {\n var e = U;\n if (null === e) throw Error(y(349));\n var f = b._getVersion,\n g = f(b._source),\n h = vh.current,\n k = h.useState(function () {\n return Mh(e, b, c);\n }),\n l = k[1],\n n = k[0];\n k = T;\n var A = a.memoizedState,\n p = A.refs,\n C = p.getSnapshot,\n x = A.source;\n A = A.subscribe;\n var w = R;\n a.memoizedState = {\n refs: p,\n source: b,\n subscribe: d\n };\n h.useEffect(function () {\n p.getSnapshot = c;\n p.setSnapshot = l;\n var a = f(b._source);\n\n if (!He(g, a)) {\n a = c(b._source);\n He(n, a) || (l(a), a = Ig(w), e.mutableReadLanes |= a & e.pendingLanes);\n a = e.mutableReadLanes;\n e.entangledLanes |= a;\n\n for (var d = e.entanglements, h = a; 0 < h;) {\n var k = 31 - Vc(h),\n v = 1 << k;\n d[k] |= a;\n h &= ~v;\n }\n }\n }, [c, b, d]);\n h.useEffect(function () {\n return d(b._source, function () {\n var a = p.getSnapshot,\n c = p.setSnapshot;\n\n try {\n c(a(b._source));\n var d = Ig(w);\n e.mutableReadLanes |= d & e.pendingLanes;\n } catch (q) {\n c(function () {\n throw q;\n });\n }\n });\n }, [b, d]);\n He(C, c) && He(x, b) && He(A, d) || (a = {\n pending: null,\n dispatch: null,\n lastRenderedReducer: Jh,\n lastRenderedState: n\n }, a.dispatch = l = Oh.bind(null, R, a), k.queue = a, k.baseQueue = null, n = Mh(e, b, c), k.memoizedState = k.baseState = n);\n return n;\n}\n\nfunction Ph(a, b, c) {\n var d = Ih();\n return Nh(d, a, b, c);\n}\n\nfunction Qh(a) {\n var b = Hh();\n \"function\" === typeof a && (a = a());\n b.memoizedState = b.baseState = a;\n a = b.queue = {\n pending: null,\n dispatch: null,\n lastRenderedReducer: Jh,\n lastRenderedState: a\n };\n a = a.dispatch = Oh.bind(null, R, a);\n return [b.memoizedState, a];\n}\n\nfunction Rh(a, b, c, d) {\n a = {\n tag: a,\n create: b,\n destroy: c,\n deps: d,\n next: null\n };\n b = R.updateQueue;\n null === b ? (b = {\n lastEffect: null\n }, R.updateQueue = b, b.lastEffect = a.next = a) : (c = b.lastEffect, null === c ? b.lastEffect = a.next = a : (d = c.next, c.next = a, a.next = d, b.lastEffect = a));\n return a;\n}\n\nfunction Sh(a) {\n var b = Hh();\n a = {\n current: a\n };\n return b.memoizedState = a;\n}\n\nfunction Th() {\n return Ih().memoizedState;\n}\n\nfunction Uh(a, b, c, d) {\n var e = Hh();\n R.flags |= a;\n e.memoizedState = Rh(1 | b, c, void 0, void 0 === d ? null : d);\n}\n\nfunction Vh(a, b, c, d) {\n var e = Ih();\n d = void 0 === d ? null : d;\n var f = void 0;\n\n if (null !== S) {\n var g = S.memoizedState;\n f = g.destroy;\n\n if (null !== d && Bh(d, g.deps)) {\n Rh(b, c, f, d);\n return;\n }\n }\n\n R.flags |= a;\n e.memoizedState = Rh(1 | b, c, f, d);\n}\n\nfunction Wh(a, b) {\n return Uh(516, 4, a, b);\n}\n\nfunction Xh(a, b) {\n return Vh(516, 4, a, b);\n}\n\nfunction Yh(a, b) {\n return Vh(4, 2, a, b);\n}\n\nfunction Zh(a, b) {\n if (\"function\" === typeof b) return a = a(), b(a), function () {\n b(null);\n };\n if (null !== b && void 0 !== b) return a = a(), b.current = a, function () {\n b.current = null;\n };\n}\n\nfunction $h(a, b, c) {\n c = null !== c && void 0 !== c ? c.concat([a]) : null;\n return Vh(4, 2, Zh.bind(null, b, a), c);\n}\n\nfunction ai() {}\n\nfunction bi(a, b) {\n var c = Ih();\n b = void 0 === b ? null : b;\n var d = c.memoizedState;\n if (null !== d && null !== b && Bh(b, d[1])) return d[0];\n c.memoizedState = [a, b];\n return a;\n}\n\nfunction ci(a, b) {\n var c = Ih();\n b = void 0 === b ? null : b;\n var d = c.memoizedState;\n if (null !== d && null !== b && Bh(b, d[1])) return d[0];\n a = a();\n c.memoizedState = [a, b];\n return a;\n}\n\nfunction di(a, b) {\n var c = eg();\n gg(98 > c ? 98 : c, function () {\n a(!0);\n });\n gg(97 < c ? 97 : c, function () {\n var c = wh.transition;\n wh.transition = 1;\n\n try {\n a(!1), b();\n } finally {\n wh.transition = c;\n }\n });\n}\n\nfunction Oh(a, b, c) {\n var d = Hg(),\n e = Ig(a),\n f = {\n lane: e,\n action: c,\n eagerReducer: null,\n eagerState: null,\n next: null\n },\n g = b.pending;\n null === g ? f.next = f : (f.next = g.next, g.next = f);\n b.pending = f;\n g = a.alternate;\n if (a === R || null !== g && g === R) zh = yh = !0;else {\n if (0 === a.lanes && (null === g || 0 === g.lanes) && (g = b.lastRenderedReducer, null !== g)) try {\n var h = b.lastRenderedState,\n k = g(h, c);\n f.eagerReducer = g;\n f.eagerState = k;\n if (He(k, h)) return;\n } catch (l) {} finally {}\n Jg(a, e, d);\n }\n}\n\nvar Gh = {\n readContext: vg,\n useCallback: Ah,\n useContext: Ah,\n useEffect: Ah,\n useImperativeHandle: Ah,\n useLayoutEffect: Ah,\n useMemo: Ah,\n useReducer: Ah,\n useRef: Ah,\n useState: Ah,\n useDebugValue: Ah,\n useDeferredValue: Ah,\n useTransition: Ah,\n useMutableSource: Ah,\n useOpaqueIdentifier: Ah,\n unstable_isNewReconciler: !1\n},\n Dh = {\n readContext: vg,\n useCallback: function useCallback(a, b) {\n Hh().memoizedState = [a, void 0 === b ? null : b];\n return a;\n },\n useContext: vg,\n useEffect: Wh,\n useImperativeHandle: function useImperativeHandle(a, b, c) {\n c = null !== c && void 0 !== c ? c.concat([a]) : null;\n return Uh(4, 2, Zh.bind(null, b, a), c);\n },\n useLayoutEffect: function useLayoutEffect(a, b) {\n return Uh(4, 2, a, b);\n },\n useMemo: function useMemo(a, b) {\n var c = Hh();\n b = void 0 === b ? null : b;\n a = a();\n c.memoizedState = [a, b];\n return a;\n },\n useReducer: function useReducer(a, b, c) {\n var d = Hh();\n b = void 0 !== c ? c(b) : b;\n d.memoizedState = d.baseState = b;\n a = d.queue = {\n pending: null,\n dispatch: null,\n lastRenderedReducer: a,\n lastRenderedState: b\n };\n a = a.dispatch = Oh.bind(null, R, a);\n return [d.memoizedState, a];\n },\n useRef: Sh,\n useState: Qh,\n useDebugValue: ai,\n useDeferredValue: function useDeferredValue(a) {\n var b = Qh(a),\n c = b[0],\n d = b[1];\n Wh(function () {\n var b = wh.transition;\n wh.transition = 1;\n\n try {\n d(a);\n } finally {\n wh.transition = b;\n }\n }, [a]);\n return c;\n },\n useTransition: function useTransition() {\n var a = Qh(!1),\n b = a[0];\n a = di.bind(null, a[1]);\n Sh(a);\n return [a, b];\n },\n useMutableSource: function useMutableSource(a, b, c) {\n var d = Hh();\n d.memoizedState = {\n refs: {\n getSnapshot: b,\n setSnapshot: null\n },\n source: a,\n subscribe: c\n };\n return Nh(d, a, b, c);\n },\n useOpaqueIdentifier: function useOpaqueIdentifier() {\n if (lh) {\n var a = !1,\n b = uf(function () {\n a || (a = !0, c(\"r:\" + (tf++).toString(36)));\n throw Error(y(355));\n }),\n c = Qh(b)[1];\n 0 === (R.mode & 2) && (R.flags |= 516, Rh(5, function () {\n c(\"r:\" + (tf++).toString(36));\n }, void 0, null));\n return b;\n }\n\n b = \"r:\" + (tf++).toString(36);\n Qh(b);\n return b;\n },\n unstable_isNewReconciler: !1\n},\n Eh = {\n readContext: vg,\n useCallback: bi,\n useContext: vg,\n useEffect: Xh,\n useImperativeHandle: $h,\n useLayoutEffect: Yh,\n useMemo: ci,\n useReducer: Kh,\n useRef: Th,\n useState: function useState() {\n return Kh(Jh);\n },\n useDebugValue: ai,\n useDeferredValue: function useDeferredValue(a) {\n var b = Kh(Jh),\n c = b[0],\n d = b[1];\n Xh(function () {\n var b = wh.transition;\n wh.transition = 1;\n\n try {\n d(a);\n } finally {\n wh.transition = b;\n }\n }, [a]);\n return c;\n },\n useTransition: function useTransition() {\n var a = Kh(Jh)[0];\n return [Th().current, a];\n },\n useMutableSource: Ph,\n useOpaqueIdentifier: function useOpaqueIdentifier() {\n return Kh(Jh)[0];\n },\n unstable_isNewReconciler: !1\n},\n Fh = {\n readContext: vg,\n useCallback: bi,\n useContext: vg,\n useEffect: Xh,\n useImperativeHandle: $h,\n useLayoutEffect: Yh,\n useMemo: ci,\n useReducer: Lh,\n useRef: Th,\n useState: function useState() {\n return Lh(Jh);\n },\n useDebugValue: ai,\n useDeferredValue: function useDeferredValue(a) {\n var b = Lh(Jh),\n c = b[0],\n d = b[1];\n Xh(function () {\n var b = wh.transition;\n wh.transition = 1;\n\n try {\n d(a);\n } finally {\n wh.transition = b;\n }\n }, [a]);\n return c;\n },\n useTransition: function useTransition() {\n var a = Lh(Jh)[0];\n return [Th().current, a];\n },\n useMutableSource: Ph,\n useOpaqueIdentifier: function useOpaqueIdentifier() {\n return Lh(Jh)[0];\n },\n unstable_isNewReconciler: !1\n},\n ei = ra.ReactCurrentOwner,\n ug = !1;\n\nfunction fi(a, b, c, d) {\n b.child = null === a ? Zg(b, null, c, d) : Yg(b, a.child, c, d);\n}\n\nfunction gi(a, b, c, d, e) {\n c = c.render;\n var f = b.ref;\n tg(b, e);\n d = Ch(a, b, c, d, f, e);\n if (null !== a && !ug) return b.updateQueue = a.updateQueue, b.flags &= -517, a.lanes &= ~e, hi(a, b, e);\n b.flags |= 1;\n fi(a, b, d, e);\n return b.child;\n}\n\nfunction ii(a, b, c, d, e, f) {\n if (null === a) {\n var g = c.type;\n if (\"function\" === typeof g && !ji(g) && void 0 === g.defaultProps && null === c.compare && void 0 === c.defaultProps) return b.tag = 15, b.type = g, ki(a, b, g, d, e, f);\n a = Vg(c.type, null, d, b, b.mode, f);\n a.ref = b.ref;\n a.return = b;\n return b.child = a;\n }\n\n g = a.child;\n if (0 === (e & f) && (e = g.memoizedProps, c = c.compare, c = null !== c ? c : Je, c(e, d) && a.ref === b.ref)) return hi(a, b, f);\n b.flags |= 1;\n a = Tg(g, d);\n a.ref = b.ref;\n a.return = b;\n return b.child = a;\n}\n\nfunction ki(a, b, c, d, e, f) {\n if (null !== a && Je(a.memoizedProps, d) && a.ref === b.ref) if (ug = !1, 0 !== (f & e)) 0 !== (a.flags & 16384) && (ug = !0);else return b.lanes = a.lanes, hi(a, b, f);\n return li(a, b, c, d, f);\n}\n\nfunction mi(a, b, c) {\n var d = b.pendingProps,\n e = d.children,\n f = null !== a ? a.memoizedState : null;\n if (\"hidden\" === d.mode || \"unstable-defer-without-hiding\" === d.mode) {\n if (0 === (b.mode & 4)) b.memoizedState = {\n baseLanes: 0\n }, ni(b, c);else if (0 !== (c & 1073741824)) b.memoizedState = {\n baseLanes: 0\n }, ni(b, null !== f ? f.baseLanes : c);else return a = null !== f ? f.baseLanes | c : c, b.lanes = b.childLanes = 1073741824, b.memoizedState = {\n baseLanes: a\n }, ni(b, a), null;\n } else null !== f ? (d = f.baseLanes | c, b.memoizedState = null) : d = c, ni(b, d);\n fi(a, b, e, c);\n return b.child;\n}\n\nfunction oi(a, b) {\n var c = b.ref;\n if (null === a && null !== c || null !== a && a.ref !== c) b.flags |= 128;\n}\n\nfunction li(a, b, c, d, e) {\n var f = Ff(c) ? Df : M.current;\n f = Ef(b, f);\n tg(b, e);\n c = Ch(a, b, c, d, f, e);\n if (null !== a && !ug) return b.updateQueue = a.updateQueue, b.flags &= -517, a.lanes &= ~e, hi(a, b, e);\n b.flags |= 1;\n fi(a, b, c, e);\n return b.child;\n}\n\nfunction pi(a, b, c, d, e) {\n if (Ff(c)) {\n var f = !0;\n Jf(b);\n } else f = !1;\n\n tg(b, e);\n if (null === b.stateNode) null !== a && (a.alternate = null, b.alternate = null, b.flags |= 2), Mg(b, c, d), Og(b, c, d, e), d = !0;else if (null === a) {\n var g = b.stateNode,\n h = b.memoizedProps;\n g.props = h;\n var k = g.context,\n l = c.contextType;\n \"object\" === typeof l && null !== l ? l = vg(l) : (l = Ff(c) ? Df : M.current, l = Ef(b, l));\n var n = c.getDerivedStateFromProps,\n A = \"function\" === typeof n || \"function\" === typeof g.getSnapshotBeforeUpdate;\n A || \"function\" !== typeof g.UNSAFE_componentWillReceiveProps && \"function\" !== typeof g.componentWillReceiveProps || (h !== d || k !== l) && Ng(b, g, d, l);\n wg = !1;\n var p = b.memoizedState;\n g.state = p;\n Cg(b, d, g, e);\n k = b.memoizedState;\n h !== d || p !== k || N.current || wg ? (\"function\" === typeof n && (Gg(b, c, n, d), k = b.memoizedState), (h = wg || Lg(b, c, h, d, p, k, l)) ? (A || \"function\" !== typeof g.UNSAFE_componentWillMount && \"function\" !== typeof g.componentWillMount || (\"function\" === typeof g.componentWillMount && g.componentWillMount(), \"function\" === typeof g.UNSAFE_componentWillMount && g.UNSAFE_componentWillMount()), \"function\" === typeof g.componentDidMount && (b.flags |= 4)) : (\"function\" === typeof g.componentDidMount && (b.flags |= 4), b.memoizedProps = d, b.memoizedState = k), g.props = d, g.state = k, g.context = l, d = h) : (\"function\" === typeof g.componentDidMount && (b.flags |= 4), d = !1);\n } else {\n g = b.stateNode;\n yg(a, b);\n h = b.memoizedProps;\n l = b.type === b.elementType ? h : lg(b.type, h);\n g.props = l;\n A = b.pendingProps;\n p = g.context;\n k = c.contextType;\n \"object\" === typeof k && null !== k ? k = vg(k) : (k = Ff(c) ? Df : M.current, k = Ef(b, k));\n var C = c.getDerivedStateFromProps;\n (n = \"function\" === typeof C || \"function\" === typeof g.getSnapshotBeforeUpdate) || \"function\" !== typeof g.UNSAFE_componentWillReceiveProps && \"function\" !== typeof g.componentWillReceiveProps || (h !== A || p !== k) && Ng(b, g, d, k);\n wg = !1;\n p = b.memoizedState;\n g.state = p;\n Cg(b, d, g, e);\n var x = b.memoizedState;\n h !== A || p !== x || N.current || wg ? (\"function\" === typeof C && (Gg(b, c, C, d), x = b.memoizedState), (l = wg || Lg(b, c, l, d, p, x, k)) ? (n || \"function\" !== typeof g.UNSAFE_componentWillUpdate && \"function\" !== typeof g.componentWillUpdate || (\"function\" === typeof g.componentWillUpdate && g.componentWillUpdate(d, x, k), \"function\" === typeof g.UNSAFE_componentWillUpdate && g.UNSAFE_componentWillUpdate(d, x, k)), \"function\" === typeof g.componentDidUpdate && (b.flags |= 4), \"function\" === typeof g.getSnapshotBeforeUpdate && (b.flags |= 256)) : (\"function\" !== typeof g.componentDidUpdate || h === a.memoizedProps && p === a.memoizedState || (b.flags |= 4), \"function\" !== typeof g.getSnapshotBeforeUpdate || h === a.memoizedProps && p === a.memoizedState || (b.flags |= 256), b.memoizedProps = d, b.memoizedState = x), g.props = d, g.state = x, g.context = k, d = l) : (\"function\" !== typeof g.componentDidUpdate || h === a.memoizedProps && p === a.memoizedState || (b.flags |= 4), \"function\" !== typeof g.getSnapshotBeforeUpdate || h === a.memoizedProps && p === a.memoizedState || (b.flags |= 256), d = !1);\n }\n return qi(a, b, c, d, f, e);\n}\n\nfunction qi(a, b, c, d, e, f) {\n oi(a, b);\n var g = 0 !== (b.flags & 64);\n if (!d && !g) return e && Kf(b, c, !1), hi(a, b, f);\n d = b.stateNode;\n ei.current = b;\n var h = g && \"function\" !== typeof c.getDerivedStateFromError ? null : d.render();\n b.flags |= 1;\n null !== a && g ? (b.child = Yg(b, a.child, null, f), b.child = Yg(b, null, h, f)) : fi(a, b, h, f);\n b.memoizedState = d.state;\n e && Kf(b, c, !0);\n return b.child;\n}\n\nfunction ri(a) {\n var b = a.stateNode;\n b.pendingContext ? Hf(a, b.pendingContext, b.pendingContext !== b.context) : b.context && Hf(a, b.context, !1);\n eh(a, b.containerInfo);\n}\n\nvar si = {\n dehydrated: null,\n retryLane: 0\n};\n\nfunction ti(a, b, c) {\n var d = b.pendingProps,\n e = P.current,\n f = !1,\n g;\n (g = 0 !== (b.flags & 64)) || (g = null !== a && null === a.memoizedState ? !1 : 0 !== (e & 2));\n g ? (f = !0, b.flags &= -65) : null !== a && null === a.memoizedState || void 0 === d.fallback || !0 === d.unstable_avoidThisFallback || (e |= 1);\n I(P, e & 1);\n\n if (null === a) {\n void 0 !== d.fallback && ph(b);\n a = d.children;\n e = d.fallback;\n if (f) return a = ui(b, a, e, c), b.child.memoizedState = {\n baseLanes: c\n }, b.memoizedState = si, a;\n if (\"number\" === typeof d.unstable_expectedLoadTime) return a = ui(b, a, e, c), b.child.memoizedState = {\n baseLanes: c\n }, b.memoizedState = si, b.lanes = 33554432, a;\n c = vi({\n mode: \"visible\",\n children: a\n }, b.mode, c, null);\n c.return = b;\n return b.child = c;\n }\n\n if (null !== a.memoizedState) {\n if (f) return d = wi(a, b, d.children, d.fallback, c), f = b.child, e = a.child.memoizedState, f.memoizedState = null === e ? {\n baseLanes: c\n } : {\n baseLanes: e.baseLanes | c\n }, f.childLanes = a.childLanes & ~c, b.memoizedState = si, d;\n c = xi(a, b, d.children, c);\n b.memoizedState = null;\n return c;\n }\n\n if (f) return d = wi(a, b, d.children, d.fallback, c), f = b.child, e = a.child.memoizedState, f.memoizedState = null === e ? {\n baseLanes: c\n } : {\n baseLanes: e.baseLanes | c\n }, f.childLanes = a.childLanes & ~c, b.memoizedState = si, d;\n c = xi(a, b, d.children, c);\n b.memoizedState = null;\n return c;\n}\n\nfunction ui(a, b, c, d) {\n var e = a.mode,\n f = a.child;\n b = {\n mode: \"hidden\",\n children: b\n };\n 0 === (e & 2) && null !== f ? (f.childLanes = 0, f.pendingProps = b) : f = vi(b, e, 0, null);\n c = Xg(c, e, d, null);\n f.return = a;\n c.return = a;\n f.sibling = c;\n a.child = f;\n return c;\n}\n\nfunction xi(a, b, c, d) {\n var e = a.child;\n a = e.sibling;\n c = Tg(e, {\n mode: \"visible\",\n children: c\n });\n 0 === (b.mode & 2) && (c.lanes = d);\n c.return = b;\n c.sibling = null;\n null !== a && (a.nextEffect = null, a.flags = 8, b.firstEffect = b.lastEffect = a);\n return b.child = c;\n}\n\nfunction wi(a, b, c, d, e) {\n var f = b.mode,\n g = a.child;\n a = g.sibling;\n var h = {\n mode: \"hidden\",\n children: c\n };\n 0 === (f & 2) && b.child !== g ? (c = b.child, c.childLanes = 0, c.pendingProps = h, g = c.lastEffect, null !== g ? (b.firstEffect = c.firstEffect, b.lastEffect = g, g.nextEffect = null) : b.firstEffect = b.lastEffect = null) : c = Tg(g, h);\n null !== a ? d = Tg(a, d) : (d = Xg(d, f, e, null), d.flags |= 2);\n d.return = b;\n c.return = b;\n c.sibling = d;\n b.child = c;\n return d;\n}\n\nfunction yi(a, b) {\n a.lanes |= b;\n var c = a.alternate;\n null !== c && (c.lanes |= b);\n sg(a.return, b);\n}\n\nfunction zi(a, b, c, d, e, f) {\n var g = a.memoizedState;\n null === g ? a.memoizedState = {\n isBackwards: b,\n rendering: null,\n renderingStartTime: 0,\n last: d,\n tail: c,\n tailMode: e,\n lastEffect: f\n } : (g.isBackwards = b, g.rendering = null, g.renderingStartTime = 0, g.last = d, g.tail = c, g.tailMode = e, g.lastEffect = f);\n}\n\nfunction Ai(a, b, c) {\n var d = b.pendingProps,\n e = d.revealOrder,\n f = d.tail;\n fi(a, b, d.children, c);\n d = P.current;\n if (0 !== (d & 2)) d = d & 1 | 2, b.flags |= 64;else {\n if (null !== a && 0 !== (a.flags & 64)) a: for (a = b.child; null !== a;) {\n if (13 === a.tag) null !== a.memoizedState && yi(a, c);else if (19 === a.tag) yi(a, c);else if (null !== a.child) {\n a.child.return = a;\n a = a.child;\n continue;\n }\n if (a === b) break a;\n\n for (; null === a.sibling;) {\n if (null === a.return || a.return === b) break a;\n a = a.return;\n }\n\n a.sibling.return = a.return;\n a = a.sibling;\n }\n d &= 1;\n }\n I(P, d);\n if (0 === (b.mode & 2)) b.memoizedState = null;else switch (e) {\n case \"forwards\":\n c = b.child;\n\n for (e = null; null !== c;) {\n a = c.alternate, null !== a && null === ih(a) && (e = c), c = c.sibling;\n }\n\n c = e;\n null === c ? (e = b.child, b.child = null) : (e = c.sibling, c.sibling = null);\n zi(b, !1, e, c, f, b.lastEffect);\n break;\n\n case \"backwards\":\n c = null;\n e = b.child;\n\n for (b.child = null; null !== e;) {\n a = e.alternate;\n\n if (null !== a && null === ih(a)) {\n b.child = e;\n break;\n }\n\n a = e.sibling;\n e.sibling = c;\n c = e;\n e = a;\n }\n\n zi(b, !0, c, null, f, b.lastEffect);\n break;\n\n case \"together\":\n zi(b, !1, null, null, void 0, b.lastEffect);\n break;\n\n default:\n b.memoizedState = null;\n }\n return b.child;\n}\n\nfunction hi(a, b, c) {\n null !== a && (b.dependencies = a.dependencies);\n Dg |= b.lanes;\n\n if (0 !== (c & b.childLanes)) {\n if (null !== a && b.child !== a.child) throw Error(y(153));\n\n if (null !== b.child) {\n a = b.child;\n c = Tg(a, a.pendingProps);\n b.child = c;\n\n for (c.return = b; null !== a.sibling;) {\n a = a.sibling, c = c.sibling = Tg(a, a.pendingProps), c.return = b;\n }\n\n c.sibling = null;\n }\n\n return b.child;\n }\n\n return null;\n}\n\nvar Bi, Ci, Di, Ei;\n\nBi = function Bi(a, b) {\n for (var c = b.child; null !== c;) {\n if (5 === c.tag || 6 === c.tag) a.appendChild(c.stateNode);else if (4 !== c.tag && null !== c.child) {\n c.child.return = c;\n c = c.child;\n continue;\n }\n if (c === b) break;\n\n for (; null === c.sibling;) {\n if (null === c.return || c.return === b) return;\n c = c.return;\n }\n\n c.sibling.return = c.return;\n c = c.sibling;\n }\n};\n\nCi = function Ci() {};\n\nDi = function Di(a, b, c, d) {\n var e = a.memoizedProps;\n\n if (e !== d) {\n a = b.stateNode;\n dh(ah.current);\n var f = null;\n\n switch (c) {\n case \"input\":\n e = Ya(a, e);\n d = Ya(a, d);\n f = [];\n break;\n\n case \"option\":\n e = eb(a, e);\n d = eb(a, d);\n f = [];\n break;\n\n case \"select\":\n e = m({}, e, {\n value: void 0\n });\n d = m({}, d, {\n value: void 0\n });\n f = [];\n break;\n\n case \"textarea\":\n e = gb(a, e);\n d = gb(a, d);\n f = [];\n break;\n\n default:\n \"function\" !== typeof e.onClick && \"function\" === typeof d.onClick && (a.onclick = jf);\n }\n\n vb(c, d);\n var g;\n c = null;\n\n for (l in e) {\n if (!d.hasOwnProperty(l) && e.hasOwnProperty(l) && null != e[l]) if (\"style\" === l) {\n var h = e[l];\n\n for (g in h) {\n h.hasOwnProperty(g) && (c || (c = {}), c[g] = \"\");\n }\n } else \"dangerouslySetInnerHTML\" !== l && \"children\" !== l && \"suppressContentEditableWarning\" !== l && \"suppressHydrationWarning\" !== l && \"autoFocus\" !== l && (ca.hasOwnProperty(l) ? f || (f = []) : (f = f || []).push(l, null));\n }\n\n for (l in d) {\n var k = d[l];\n h = null != e ? e[l] : void 0;\n if (d.hasOwnProperty(l) && k !== h && (null != k || null != h)) if (\"style\" === l) {\n if (h) {\n for (g in h) {\n !h.hasOwnProperty(g) || k && k.hasOwnProperty(g) || (c || (c = {}), c[g] = \"\");\n }\n\n for (g in k) {\n k.hasOwnProperty(g) && h[g] !== k[g] && (c || (c = {}), c[g] = k[g]);\n }\n } else c || (f || (f = []), f.push(l, c)), c = k;\n } else \"dangerouslySetInnerHTML\" === l ? (k = k ? k.__html : void 0, h = h ? h.__html : void 0, null != k && h !== k && (f = f || []).push(l, k)) : \"children\" === l ? \"string\" !== typeof k && \"number\" !== typeof k || (f = f || []).push(l, \"\" + k) : \"suppressContentEditableWarning\" !== l && \"suppressHydrationWarning\" !== l && (ca.hasOwnProperty(l) ? (null != k && \"onScroll\" === l && G(\"scroll\", a), f || h === k || (f = [])) : \"object\" === typeof k && null !== k && k.$$typeof === Ga ? k.toString() : (f = f || []).push(l, k));\n }\n\n c && (f = f || []).push(\"style\", c);\n var l = f;\n if (b.updateQueue = l) b.flags |= 4;\n }\n};\n\nEi = function Ei(a, b, c, d) {\n c !== d && (b.flags |= 4);\n};\n\nfunction Fi(a, b) {\n if (!lh) switch (a.tailMode) {\n case \"hidden\":\n b = a.tail;\n\n for (var c = null; null !== b;) {\n null !== b.alternate && (c = b), b = b.sibling;\n }\n\n null === c ? a.tail = null : c.sibling = null;\n break;\n\n case \"collapsed\":\n c = a.tail;\n\n for (var d = null; null !== c;) {\n null !== c.alternate && (d = c), c = c.sibling;\n }\n\n null === d ? b || null === a.tail ? a.tail = null : a.tail.sibling = null : d.sibling = null;\n }\n}\n\nfunction Gi(a, b, c) {\n var d = b.pendingProps;\n\n switch (b.tag) {\n case 2:\n case 16:\n case 15:\n case 0:\n case 11:\n case 7:\n case 8:\n case 12:\n case 9:\n case 14:\n return null;\n\n case 1:\n return Ff(b.type) && Gf(), null;\n\n case 3:\n fh();\n H(N);\n H(M);\n uh();\n d = b.stateNode;\n d.pendingContext && (d.context = d.pendingContext, d.pendingContext = null);\n if (null === a || null === a.child) rh(b) ? b.flags |= 4 : d.hydrate || (b.flags |= 256);\n Ci(b);\n return null;\n\n case 5:\n hh(b);\n var e = dh(ch.current);\n c = b.type;\n if (null !== a && null != b.stateNode) Di(a, b, c, d, e), a.ref !== b.ref && (b.flags |= 128);else {\n if (!d) {\n if (null === b.stateNode) throw Error(y(166));\n return null;\n }\n\n a = dh(ah.current);\n\n if (rh(b)) {\n d = b.stateNode;\n c = b.type;\n var f = b.memoizedProps;\n d[wf] = b;\n d[xf] = f;\n\n switch (c) {\n case \"dialog\":\n G(\"cancel\", d);\n G(\"close\", d);\n break;\n\n case \"iframe\":\n case \"object\":\n case \"embed\":\n G(\"load\", d);\n break;\n\n case \"video\":\n case \"audio\":\n for (a = 0; a < Xe.length; a++) {\n G(Xe[a], d);\n }\n\n break;\n\n case \"source\":\n G(\"error\", d);\n break;\n\n case \"img\":\n case \"image\":\n case \"link\":\n G(\"error\", d);\n G(\"load\", d);\n break;\n\n case \"details\":\n G(\"toggle\", d);\n break;\n\n case \"input\":\n Za(d, f);\n G(\"invalid\", d);\n break;\n\n case \"select\":\n d._wrapperState = {\n wasMultiple: !!f.multiple\n };\n G(\"invalid\", d);\n break;\n\n case \"textarea\":\n hb(d, f), G(\"invalid\", d);\n }\n\n vb(c, f);\n a = null;\n\n for (var g in f) {\n f.hasOwnProperty(g) && (e = f[g], \"children\" === g ? \"string\" === typeof e ? d.textContent !== e && (a = [\"children\", e]) : \"number\" === typeof e && d.textContent !== \"\" + e && (a = [\"children\", \"\" + e]) : ca.hasOwnProperty(g) && null != e && \"onScroll\" === g && G(\"scroll\", d));\n }\n\n switch (c) {\n case \"input\":\n Va(d);\n cb(d, f, !0);\n break;\n\n case \"textarea\":\n Va(d);\n jb(d);\n break;\n\n case \"select\":\n case \"option\":\n break;\n\n default:\n \"function\" === typeof f.onClick && (d.onclick = jf);\n }\n\n d = a;\n b.updateQueue = d;\n null !== d && (b.flags |= 4);\n } else {\n g = 9 === e.nodeType ? e : e.ownerDocument;\n a === kb.html && (a = lb(c));\n a === kb.html ? \"script\" === c ? (a = g.createElement(\"div\"), a.innerHTML = \"\n \n );\n } else {\n return (\n \n
\n );\n }\n}\n\nfunction Provider(props) {\n return (\n \n | {props.provider.name} | \n {props.provider.prefix} | \n
\n );\n}\n\nfunction ModalInit() {\n setDisplayedItems();\n return (\n \n );\n}\n\nReactDOM.render(\n ,\n document.getElementById('root')\n);\n\n//Functions below this line are for calculating data for\n//other functions\n\nfunction date() {\n let currentDate = new Date();\n let dateOptions = {\n weekday: \"long\",\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\"\n };\n let date = currentDate.toLocaleDateString(\"en-GB\", dateOptions);\n return date;\n}\nfunction fixDigits(k) {\n if (k < 10) {\n return \"0\" + k;\n }\n else {\n return k;\n }\n}\nfunction greet() {\n let currentTime = new Date();\n let greet = Math.floor(currentTime.getHours() / 6);\n let easterEggChance = Math.floor(Math.random() * 100);\n let greetings = require('./messages.json');\n let timeBased = [];\n let easterEggs = [];\n for (var i = 0; i < greetings.messages.length; i++) {\n if (greetings.messages[i].easteregg === \"FALSE\") {\n timeBased = timeBased.concat(greetings.messages[i]);\n } else {\n easterEggs = easterEggs.concat(greetings.messages[i]);\n }\n }\n if (easterEggChance > 10) {\n return timeBased[greet].message;\n } else {\n let easterEggText = Math.floor(Math.random() * easterEggs.length);\n return easterEggs[easterEggText].message;\n }\n}\nfunction Clock() {\n const [date, setDate] = useState(new Date());\n\n function refreshClock() {\n setDate(new Date());\n }\n useEffect(() => {\n const timerId = setInterval(refreshClock, 1000);\n return function cleanup() {\n clearInterval(timerId);\n };\n }, []);\n\n var hour = date.getHours();\n var minutes = date.getMinutes();\n //var seconds = date.getSeconds();\n var midday = \"AM\";\n midday = (hour >= 12) ? \"PM\" : \"AM\";\n hour = (hour === 0) ? 12 : ((hour > 12) ? (hour - 12) : hour);\n minutes = fixDigits(minutes);\n //seconds = fixDigits(seconds);\n let time = hour + \":\" + minutes + \" \" + midday;\n\n return (\n {time}
\n\n );\n}\nfunction getApps() {\n let applications = require('./apps.json');\n return applications;\n}\nfunction getLinks() {\n let links = require('./links.json');\n return links;\n}\nfunction getProviders() {\n let providers = require('./providers.json');\n return providers;\n}\nfunction getThemes() {\n let themes = require('./themes.json');\n return themes;\n}\nfunction updateTheme(e) {\n var themes = getThemes();\n var themeName = e.target.innerHTML.toLowerCase();\n var index = themes.themes.findIndex(function(item, i){\n return item.name === themeName;\n });\n localStorage.setItem(\"image-background\", themes.themes[index].imagebackground);\n localStorage.setItem(\"color-background\", themes.themes[index].colorbackground);\n localStorage.setItem(\"color-search-background\", themes.themes[index].colorserachbackground);\n localStorage.setItem(\"color-text-pri\",themes.themes[index].colortextpri);\n localStorage.setItem(\"color-text-acc\", themes.themes[index].colortextacc);\n localStorage.setItem(\"color-border\", themes.themes[index].colorborder);\n \n //document.documentElement.style.setProperty(prop, `var(--${themeName}${prop.substring(10)})`);\n setTheme();\n}\nfunction setTheme() {\n setValueFromLocalStorage('image-background');\n setValueFromLocalStorage('color-background');\n setValueFromLocalStorage('color-search-background');\n setValueFromLocalStorage('color-text-pri');\n setValueFromLocalStorage('color-text-acc');\n setValueFromLocalStorage('color-border');\n setValueFromLocalStorage('content-display');\n}\nfunction handleKeyPress(e) {\n var sindex = 0;\n var cycle = false;\n var key = e.keyCode || e.which;\n var text = e.target.value.replaceAll(\"+\", \"%2B\");\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n if (key == 13) { // Search functions\n search(text);\n }\n if (key == 9) { // Tab Completion Functions\n e.preventDefault();\n e.stopPropagation();\n if (text[0] === ';') {\n switch (option) {\n case 't':\n var streamers = ['admiralbahroo', 'moonmoon_ow', 'witwix'];\n if (!subtext || cycle) {\n cycle = true;\n if (sindex > streamers.length - 1) sindex = 0;\n document.getElementById(\"keywords\").value = ';t ' + streamers[sindex++];\n return;\n }\n for (var streamer of streamers) {\n if (subtext === streamer.substr(0, subtext.length)) {\n document.getElementById(\"keywords\").value = ';t ' + streamer;\n return;\n }\n }\n break;\n }\n }\n }\n if(key == 32){ //Space to go to search\nupdateLabel(text);\n }\n sindex = 0;\n cycle = false;\n updateLabel(text);\n}\nfunction updateLabel(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n if (text[0] === '/') {\n// if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n document.getElementById(\"searchType\").innerHTML = \"Allmusic search\";\n break;\n case \"d\":\n document.getElementById(\"searchType\").innerHTML = \"Duck Duck Go search\";\n break;\n case \"di\":\n document.getElementById(\"searchType\").innerHTML = \"Discogs search\";\n break;\n case \"i\":\n document.getElementById(\"searchType\").innerHTML = \"IMDB search\";\n break;\n case \"m\":\n document.getElementById(\"searchType\").innerHTML = \"TheMovieDB search\";\n break;\n case \"r\":\n document.getElementById(\"searchType\").innerHTML = \"Reddit search\";\n break;\n case \"q\":\n document.getElementById(\"searchType\").innerHTML = \"Qwant search\";\n break;\n case \"so\":\n document.getElementById(\"searchType\").innerHTML = \"Soundcloud search\";\n break;\n case \"s\":\n document.getElementById(\"searchType\").innerHTML = \"Spotify search\";\n break;\n case \"tv\":\n document.getElementById(\"searchType\").innerHTML = \"TheTVDB search\";\n break;\n case \"t\":\n document.getElementById(\"searchType\").innerHTML = \"Trakt search\";\n break;\n case \"y\":\n document.getElementById(\"searchType\").innerHTML = \"YouTube search\";\n break;\n case \"w\":\n document.getElementById(\"searchType\").innerHTML = \"Wikipedia search\";\n break;\n case \"p\":\n document.getElementById(\"searchType\").innerHTML = \"Plex search\";\n break;\n case \"rt\":\n document.getElementById(\"searchType\").innerHTML = \"Rotten Tomatoes search\";\n break;\n default:\n document.getElementById(\"searchType\").innerHTML = \"Invalid search\";\n break;\n }\n}else {\n document.getElementById(\"searchType\").innerHTML = \"Google search\";\n }\n}\nfunction search(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n if (text[0] === '/') {\n if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n window.location = \"https://www.allmusic.com/search/all/\" + subtext;\n break;\n case \"d\":\n window.location = \"https://duckduckgo.com/?q=\" + subtext;\n break;\n case \"di\":\n window.location = \"https://www.discogs.com/search/?q=\" + subtext;\n break;\n case \"i\":\n window.location = \"https://www.imdb.com/find?q=\" + subtext;\n break;\n case \"m\":\n window.location = \"https://www.themoviedb.org/search?query=\" + subtext;\n break;\n case \"r\":\n window.location = \"https://www.reddit.com/search?q=\" + subtext;\n break;\n case \"q\":\n window.location = \"https://www.qwant.com/?q=\" + subtext;\n break;\n case \"so\":\n window.location = \"https://soundcloud.com/search?q=\" + subtext;\n break;\n case \"s\":\n window.location = \"https://open.spotify.com/search/results/\" + subtext;\n break;\n case \"t\":\n window.location = \"https://trakt.tv/search?query=\" + subtext;\n break;\n case \"tv\":\n window.location = \"https://www.thetvdb.com/search?query=\" + subtext;\n break;\n case \"y\":\n window.location = \"https://www.youtube.com/results?search_query=\" + subtext;\n break;\n case \"w\":\n window.location = \"https://en.wikipedia.org/w/index.php?search=\" + subtext;\n break;\n case \"p\":\n window.location = \"https://app.plex.tv/desktop/#!/search?query=\" + subtext;\n break;\n case \"rt\":\n window.location = \"https://www.rottentomatoes.com/search?search=\" + subtext;\n break;\n }\n } else {\n var option = text.substr(1);\n switch (option) {\n case \"d\":\n window.location = \"https://www.duckduckgo.com\";\n break;\n case \"y\":\n window.location = \"https://www.youtube.com\";\n break;\n case \"r\":\n window.location = \"https://reddit.com\";\n break;\n case \"s\":\n window.location = \"https://open.spotify.com\";\n break;\n }\n }\n } else if (validURL(text)) {\n if (containsProtocol(text))\n window.location = text;\n else\n window.location = \"https://\" + text;\n } else {\n window.location = \"https://www.google.com/search?q=\" + text;\n }\n}\nfunction validURL(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/)?' + // protocol\n '((([a-z\\\\d]([a-z\\\\d-]*[a-z\\\\d])*)\\\\.)+[a-z]{2,}|' + // domain name\n '((\\\\d{1,3}\\\\.){3}\\\\d{1,3}))' + // OR ip (v4) address\n '(\\\\:\\\\d+)?(\\\\/[-a-z\\\\d%_.~+]*)*' + // port and path\n '(\\\\?[;&a-z\\\\d%_.~+=-]*)?' + // query string\n '(\\\\#[-a-z\\\\d_]*)?$', 'i'); // fragment locator\n return !!pattern.test(str);\n}\nfunction containsProtocol(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/){1}.*', 'i');\n return !!pattern.test(str);\n}\nString.prototype.replaceAll = function(search, replacement) {\n var target = this;\n return target.split(search).join(replacement);\n};\nfunction udpateDisplayedItems(e) {\n localStorage.setItem('contenttype', e.target.checked);\n if (e.target.checked) {\n localStorage.setItem('content-display', 'none');\n } else {\n localStorage.setItem('content-display', 'block');\n }\n setDisplayedItems();\n}\nfunction setDisplayedItems() {\n setValueFromLocalStorage('contenttype');\n setValueFromLocalStorage('content-display');\n}"]},"metadata":{},"sourceType":"module"}
\ No newline at end of file
diff --git a/node_modules/.cache/babel-loader/b9242df3fe9a32c564ddeafd210c0cc4.json b/node_modules/.cache/babel-loader/b9242df3fe9a32c564ddeafd210c0cc4.json
new file mode 100644
index 00000000..3706eff8
--- /dev/null
+++ b/node_modules/.cache/babel-loader/b9242df3fe9a32c564ddeafd210c0cc4.json
@@ -0,0 +1 @@
+{"ast":null,"code":"var _jsxFileName = \"/home/seanedmunds/dev/home-page/src/index.js\",\n _s = $RefreshSig$();\n\nimport React from 'react';\nimport { useState, useEffect } from 'react';\nimport ReactDOM from 'react-dom'; //import { unstable_createPortal } from 'react-dom';\n\nimport './index.css';\nimport { jsxDEV as _jsxDEV } from \"react/jsx-dev-runtime\";\n\nconst setValueFromLocalStorage = property => {\n let value = localStorage.getItem(property);\n setValue(property, value);\n};\n\nconst setValue = (property, value) => {\n if (value) {\n document.documentElement.style.setProperty(`--${property}`, value);\n const input = document.querySelector(`#${property}`);\n\n if (input) {\n value = value.replace('px', '');\n input.value = value;\n }\n }\n};\n\nconst setBoxCheckedFromLocalStorage = property => {\n let value = localStorage.getItem(property);\n};\n\nfunction Homepage() {\n setTheme();\n return /*#__PURE__*/_jsxDEV(\"main\", {\n id: \"container\",\n className: \"fade\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Search, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 34,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 33,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Header, {\n date: date(),\n greet: greet()\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 37,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 36,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Applications, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 43,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 42,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Bookmarks, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 46,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 45,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(ModalMenu, {\n checked: boxChecked\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 49,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 48,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(ModalInit, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 54,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 53,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 32,\n columnNumber: 5\n }, this);\n}\n\n_c = Homepage;\n\nfunction Search() {\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"search\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"abackground\",\n children: [/*#__PURE__*/_jsxDEV(\"input\", {\n name: \"keywords\",\n type: \"text\",\n className: \"keyword\",\n id: \"keywords\",\n size: \"50\",\n spellCheck: \"true\",\n placeholder: \"\"\n /*onFocus={this.placeholder = \"\"} onBlur={this.placeholder = ''}*/\n ,\n autoComplete: \"off\",\n autoFocus: true,\n onKeyUp: handleKeyPress\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 64,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n id: \"searchType\",\n className: \"Input-label\",\n children: \"Google search\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 65,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 63,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 62,\n columnNumber: 5\n }, this);\n}\n\n_c2 = Search;\n\nfunction Header(props) {\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"header\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n id: \"greeting_block\",\n children: /*#__PURE__*/_jsxDEV(\"h1\", {\n id: \"header_greet\",\n children: props.greet\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 75,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 74,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"date_block\",\n children: [/*#__PURE__*/_jsxDEV(\"h2\", {\n id: \"header_date\",\n children: props.date\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 78,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(Clock, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 79,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 77,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 73,\n columnNumber: 5\n }, this);\n}\n\n_c3 = Header;\n\nfunction Applications() {\n let appList = getApps();\n var items = [];\n\n for (var i = 0; i < appList.apps.length; i++) {\n var safe = appList.apps[i].NSFW;\n var NSFWEnabled = localStorage.getItem(\"contenttype\");\n\n if (safe === \"SAFE\") {\n items.push( /*#__PURE__*/_jsxDEV(App, {\n name: appList.apps[i].name,\n url: appList.apps[i].url,\n icon: appList.apps[i].icon,\n NSFW: appList.apps[i].NSFW\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 93,\n columnNumber: 9\n }, this));\n } else if (safe === \"NSFW\" && NSFWEnabled) {\n items.push( /*#__PURE__*/_jsxDEV(App, {\n name: appList.apps[i].name,\n url: appList.apps[i].url,\n icon: appList.apps[i].icon,\n NSFW: appList.apps[i].NSFW\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 103,\n columnNumber: 9\n }, this));\n } else {}\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"apps\",\n children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n children: \"Applications\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 118,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"apps_loop\",\n children: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 119,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 117,\n columnNumber: 5\n }, this);\n}\n\n_c4 = Applications;\n\nfunction App(props) {\n let classNameType = props.NSFW + \"-content\";\n let hrefUrl = \"https://\" + props.url;\n let iconName = \"mdi-\" + props.icon;\n return /*#__PURE__*/_jsxDEV(\"div\", {\n className: classNameType,\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: hrefUrl,\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_item\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_icon\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify icon\",\n \"data-icon\": iconName\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 136,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 135,\n columnNumber: 13\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_text\",\n children: [/*#__PURE__*/_jsxDEV(\"span\", {\n id: \"app-name\",\n children: props.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 139,\n columnNumber: 15\n }, this), /*#__PURE__*/_jsxDEV(\"span\", {\n id: \"app-address\",\n children: props.url\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 140,\n columnNumber: 15\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 138,\n columnNumber: 13\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 134,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 133,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 132,\n columnNumber: 7\n }, this);\n}\n\n_c5 = App;\n\nfunction Bookmarks() {\n let bookmarkList = getLinks();\n var items = [];\n\n for (var i = 0; i < bookmarkList.bookmarks.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(LinkGroups, {\n category: bookmarkList.bookmarks[i].category,\n links: bookmarkList.bookmarks[i].links\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 153,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"links\",\n children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n children: \"Bookmarks\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 162,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"links_loop\",\n children: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 163,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 161,\n columnNumber: 5\n }, this);\n}\n\n_c6 = Bookmarks;\n\nfunction LinkGroups(props) {\n var items = [];\n\n for (var i = 0; i < props.links.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(LinkItem, {\n link: props.links[i]\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 174,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"links_item\",\n children: [/*#__PURE__*/_jsxDEV(\"h4\", {\n children: props.category\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 182,\n columnNumber: 7\n }, this), items]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 181,\n columnNumber: 5\n }, this);\n}\n\n_c7 = LinkGroups;\n\nfunction LinkItem(props) {\n return /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: props.link.url,\n className: \"theme_color-border theme_text-select\",\n children: props.link.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 191,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 190,\n columnNumber: 5\n }, this);\n}\n\n_c8 = LinkItem;\n\nfunction ModalMenu(props) {\n var providers = getProviders();\n var items = [];\n console.log(props);\n\n for (var i = 0; i < providers.providers.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(Provider, {\n provider: providers.providers[i]\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 202,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"modal\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n children: [/*#__PURE__*/_jsxDEV(\"header\", {\n id: \"modal-header\",\n children: [/*#__PURE__*/_jsxDEV(\"h1\", {\n children: \"Options\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 212,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n href: \"#\",\n title: \"Close\",\n className: \"modal-close\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-close\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 214,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 213,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 211,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"h2\", {\n children: \"Color themes\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 218,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"modal-theme\",\n children: [/*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"blackboard\",\n className: \"theme-button theme-blackboard\",\n onClick: updateTheme,\n children: \"Blackboard\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 221,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"gazette\",\n className: \"theme-button theme-gazette\",\n onClick: updateTheme,\n children: \"Gazette\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 222,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"espresso\",\n className: \"theme-button theme-espresso\",\n onClick: updateTheme,\n children: \"Espresso\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 223,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cab\",\n className: \"theme-button theme-cab\",\n onClick: updateTheme,\n children: \"Cab\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 224,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cloud\",\n className: \"theme-button theme-cloud\",\n onClick: updateTheme,\n children: \"Cloud\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 225,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"lime\",\n className: \"theme-button theme-lime\",\n onClick: updateTheme,\n children: \"Lime\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 226,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"passion\",\n className: \"theme-button theme-passion\",\n onClick: updateTheme,\n children: \"Passion\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 227,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"blues\",\n className: \"theme-button theme-blues\",\n onClick: updateTheme,\n children: \"Blues\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 228,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"chalk\",\n className: \"theme-button theme-chalk\",\n onClick: updateTheme,\n children: \"Chalk\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 229,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"tron\",\n className: \"theme-button theme-tron\",\n onClick: updateTheme,\n children: \"Tron\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 230,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"paper\",\n className: \"theme-button theme-paper\",\n onClick: updateTheme,\n children: \"Paper\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 231,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cyberpunk\",\n className: \"theme-button theme-cyberpunk\",\n onClick: updateTheme,\n children: \"Cyberpunk\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 232,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"quadra\",\n className: \"theme-button theme-panam\",\n onClick: updateTheme,\n children: \"Quadra\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 233,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"panam\",\n className: \"theme-button theme-panam\",\n onClick: updateTheme,\n children: \"Panam\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 234,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"touch\",\n className: \"theme-button theme-touch\",\n onClick: updateTheme,\n children: \"Touch\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 235,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"peek\",\n className: \"theme-button theme-peek\",\n onClick: updateTheme,\n children: \"Peek\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 236,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 220,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"h2\", {\n children: \"Search options\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 240,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"providers\",\n children: /*#__PURE__*/_jsxDEV(\"table\", {\n children: /*#__PURE__*/_jsxDEV(\"tbody\", {\n children: [/*#__PURE__*/_jsxDEV(\"tr\", {\n children: [/*#__PURE__*/_jsxDEV(\"th\", {\n children: \"Website\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 245,\n columnNumber: 19\n }, this), /*#__PURE__*/_jsxDEV(\"th\", {\n children: \"Prefix\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 246,\n columnNumber: 19\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 244,\n columnNumber: 17\n }, this), items]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 243,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 242,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 241,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"header\", {\n id: \"modal-footer\",\n children: [/*#__PURE__*/_jsxDEV(\"a\", {\n href: \"https://github.com/jeroenpardon/\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-github-box\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 254,\n columnNumber: 54\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 254,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n href: \"https://materialdesignicons.com/\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-material-design\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 255,\n columnNumber: 54\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 255,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"sneaky\",\n children: [/*#__PURE__*/_jsxDEV(\"input\", {\n type: \"checkbox\",\n id: \"contenttype\",\n checked: setBoxCheckedFromLocalStorage,\n onChange: udpateDisplayedItems\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 256,\n columnNumber: 35\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n for: \"contenttype\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-domino-mask\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 257,\n columnNumber: 36\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 257,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 256,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 253,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 210,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 209,\n columnNumber: 5\n }, this);\n}\n\n_c9 = ModalMenu;\n\nfunction Provider(props) {\n return /*#__PURE__*/_jsxDEV(\"tr\", {\n children: [/*#__PURE__*/_jsxDEV(\"td\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: props.provider.url,\n children: props.provider.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 267,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 267,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"td\", {\n children: props.provider.prefix\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 268,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 266,\n columnNumber: 5\n }, this);\n}\n\n_c10 = Provider;\n\nfunction ModalInit() {\n setDisplayedItems();\n return /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"modal_init\",\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n className: \"btn\",\n href: \"#modal\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify icon\",\n \"data-icon\": \"mdi-xbox-controller-menu\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 278,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 277,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 276,\n columnNumber: 5\n }, this);\n}\n\n_c11 = ModalInit;\nReactDOM.render( /*#__PURE__*/_jsxDEV(Homepage, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 285,\n columnNumber: 3\n}, this), document.getElementById('root')); //Functions below this line are for calculating data for\n//other functions\n\nfunction date() {\n let currentDate = new Date();\n let dateOptions = {\n weekday: \"long\",\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\"\n };\n let date = currentDate.toLocaleDateString(\"en-GB\", dateOptions);\n return date;\n}\n\nfunction fixDigits(k) {\n if (k < 10) {\n return \"0\" + k;\n } else {\n return k;\n }\n}\n\nfunction greet() {\n let currentTime = new Date();\n let greet = Math.floor(currentTime.getHours() / 6);\n let easterEggChance = Math.floor(Math.random() * 100);\n\n let greetings = require('./messages.json');\n\n let timeBased = [];\n let easterEggs = [];\n\n for (var i = 0; i < greetings.messages.length; i++) {\n if (greetings.messages[i].easteregg === \"FALSE\") {\n timeBased = timeBased.concat(greetings.messages[i]);\n } else {\n easterEggs = easterEggs.concat(greetings.messages[i]);\n }\n }\n\n if (easterEggChance > 10) {\n return timeBased[greet].message;\n } else {\n let easterEggText = Math.floor(Math.random() * easterEggs.length);\n return easterEggs[easterEggText].message;\n }\n}\n\nfunction Clock() {\n _s();\n\n const [date, setDate] = useState(new Date());\n\n function refreshClock() {\n setDate(new Date());\n }\n\n useEffect(() => {\n const timerId = setInterval(refreshClock, 1000);\n return function cleanup() {\n clearInterval(timerId);\n };\n }, []);\n var hour = date.getHours();\n var minutes = date.getMinutes(); //var seconds = date.getSeconds();\n\n var midday = \"AM\";\n midday = hour >= 12 ? \"PM\" : \"AM\";\n hour = hour === 0 ? 12 : hour > 12 ? hour - 12 : hour;\n minutes = fixDigits(minutes); //seconds = fixDigits(seconds);\n\n let time = hour + \":\" + minutes + \" \" + midday;\n return /*#__PURE__*/_jsxDEV(\"h2\", {\n id: \"clock\",\n children: time\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 356,\n columnNumber: 5\n }, this);\n}\n\n_s(Clock, \"Gqi45WOZhU2c0BLYX0HoJeiR0fk=\");\n\n_c12 = Clock;\n\nfunction getApps() {\n let applications = require('./apps.json');\n\n return applications;\n}\n\nfunction getLinks() {\n let links = require('./links.json');\n\n return links;\n}\n\nfunction getProviders() {\n let providers = require('./providers.json');\n\n return providers;\n}\n\nfunction getThemes() {\n let themes = require('./themes.json');\n\n return themes;\n}\n\nfunction updateTheme(e) {\n var themes = getThemes();\n var themeName = e.target.innerHTML.toLowerCase();\n var index = themes.themes.findIndex(function (item, i) {\n return item.name === themeName;\n });\n localStorage.setItem(\"image-background\", themes.themes[index].imagebackground);\n localStorage.setItem(\"color-background\", themes.themes[index].colorbackground);\n localStorage.setItem(\"color-search-background\", themes.themes[index].colorserachbackground);\n localStorage.setItem(\"color-text-pri\", themes.themes[index].colortextpri);\n localStorage.setItem(\"color-text-acc\", themes.themes[index].colortextacc);\n localStorage.setItem(\"color-border\", themes.themes[index].colorborder); //document.documentElement.style.setProperty(prop, `var(--${themeName}${prop.substring(10)})`);\n\n setTheme();\n}\n\nfunction setTheme() {\n setValueFromLocalStorage('image-background');\n setValueFromLocalStorage('color-background');\n setValueFromLocalStorage('color-search-background');\n setValueFromLocalStorage('color-text-pri');\n setValueFromLocalStorage('color-text-acc');\n setValueFromLocalStorage('color-border');\n setValueFromLocalStorage('content-display');\n}\n\nfunction handleKeyPress(e) {\n var sindex = 0;\n var cycle = false;\n var key = e.keyCode || e.which;\n var text = e.target.value.replaceAll(\"+\", \"%2B\");\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n\n if (key == 13) {\n // Search functions\n search(text);\n }\n\n if (key == 9) {\n // Tab Completion Functions\n e.preventDefault();\n e.stopPropagation();\n\n if (text[0] === ';') {\n switch (option) {\n case 't':\n var streamers = ['admiralbahroo', 'moonmoon_ow', 'witwix'];\n\n if (!subtext || cycle) {\n cycle = true;\n if (sindex > streamers.length - 1) sindex = 0;\n document.getElementById(\"keywords\").value = ';t ' + streamers[sindex++];\n return;\n }\n\n for (var streamer of streamers) {\n if (subtext === streamer.substr(0, subtext.length)) {\n document.getElementById(\"keywords\").value = ';t ' + streamer;\n return;\n }\n }\n\n break;\n }\n }\n }\n\n if (key == 32) {\n //Space to go to search\n updateLabel(text);\n }\n\n sindex = 0;\n cycle = false;\n updateLabel(text);\n}\n\nfunction updateLabel(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n\n if (text[0] === '/') {\n // if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n document.getElementById(\"searchType\").innerHTML = \"Allmusic search\";\n break;\n\n case \"d\":\n document.getElementById(\"searchType\").innerHTML = \"Duck Duck Go search\";\n break;\n\n case \"di\":\n document.getElementById(\"searchType\").innerHTML = \"Discogs search\";\n break;\n\n case \"i\":\n document.getElementById(\"searchType\").innerHTML = \"IMDB search\";\n break;\n\n case \"m\":\n document.getElementById(\"searchType\").innerHTML = \"TheMovieDB search\";\n break;\n\n case \"r\":\n document.getElementById(\"searchType\").innerHTML = \"Reddit search\";\n break;\n\n case \"q\":\n document.getElementById(\"searchType\").innerHTML = \"Qwant search\";\n break;\n\n case \"so\":\n document.getElementById(\"searchType\").innerHTML = \"Soundcloud search\";\n break;\n\n case \"s\":\n document.getElementById(\"searchType\").innerHTML = \"Spotify search\";\n break;\n\n case \"tv\":\n document.getElementById(\"searchType\").innerHTML = \"TheTVDB search\";\n break;\n\n case \"t\":\n document.getElementById(\"searchType\").innerHTML = \"Trakt search\";\n break;\n\n case \"y\":\n document.getElementById(\"searchType\").innerHTML = \"YouTube search\";\n break;\n\n case \"w\":\n document.getElementById(\"searchType\").innerHTML = \"Wikipedia search\";\n break;\n\n case \"p\":\n document.getElementById(\"searchType\").innerHTML = \"Plex search\";\n break;\n\n case \"rt\":\n document.getElementById(\"searchType\").innerHTML = \"Rotten Tomatoes search\";\n break;\n\n default:\n document.getElementById(\"searchType\").innerHTML = \"Invalid search\";\n break;\n }\n } else {\n document.getElementById(\"searchType\").innerHTML = \"Google search\";\n }\n}\n\nfunction search(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n\n if (text[0] === '/') {\n if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n window.location = \"https://www.allmusic.com/search/all/\" + subtext;\n break;\n\n case \"d\":\n window.location = \"https://duckduckgo.com/?q=\" + subtext;\n break;\n\n case \"di\":\n window.location = \"https://www.discogs.com/search/?q=\" + subtext;\n break;\n\n case \"i\":\n window.location = \"https://www.imdb.com/find?q=\" + subtext;\n break;\n\n case \"m\":\n window.location = \"https://www.themoviedb.org/search?query=\" + subtext;\n break;\n\n case \"r\":\n window.location = \"https://www.reddit.com/search?q=\" + subtext;\n break;\n\n case \"q\":\n window.location = \"https://www.qwant.com/?q=\" + subtext;\n break;\n\n case \"so\":\n window.location = \"https://soundcloud.com/search?q=\" + subtext;\n break;\n\n case \"s\":\n window.location = \"https://open.spotify.com/search/results/\" + subtext;\n break;\n\n case \"t\":\n window.location = \"https://trakt.tv/search?query=\" + subtext;\n break;\n\n case \"tv\":\n window.location = \"https://www.thetvdb.com/search?query=\" + subtext;\n break;\n\n case \"y\":\n window.location = \"https://www.youtube.com/results?search_query=\" + subtext;\n break;\n\n case \"w\":\n window.location = \"https://en.wikipedia.org/w/index.php?search=\" + subtext;\n break;\n\n case \"p\":\n window.location = \"https://app.plex.tv/desktop/#!/search?query=\" + subtext;\n break;\n\n case \"rt\":\n window.location = \"https://www.rottentomatoes.com/search?search=\" + subtext;\n break;\n }\n } else {\n var option = text.substr(1);\n\n switch (option) {\n case \"d\":\n window.location = \"https://www.duckduckgo.com\";\n break;\n\n case \"y\":\n window.location = \"https://www.youtube.com\";\n break;\n\n case \"r\":\n window.location = \"https://reddit.com\";\n break;\n\n case \"s\":\n window.location = \"https://open.spotify.com\";\n break;\n }\n }\n } else if (validURL(text)) {\n if (containsProtocol(text)) window.location = text;else window.location = \"https://\" + text;\n } else {\n window.location = \"https://www.google.com/search?q=\" + text;\n }\n}\n\nfunction validURL(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/)?' + // protocol\n '((([a-z\\\\d]([a-z\\\\d-]*[a-z\\\\d])*)\\\\.)+[a-z]{2,}|' + // domain name\n '((\\\\d{1,3}\\\\.){3}\\\\d{1,3}))' + // OR ip (v4) address\n '(\\\\:\\\\d+)?(\\\\/[-a-z\\\\d%_.~+]*)*' + // port and path\n '(\\\\?[;&a-z\\\\d%_.~+=-]*)?' + // query string\n '(\\\\#[-a-z\\\\d_]*)?$', 'i'); // fragment locator\n\n return !!pattern.test(str);\n}\n\nfunction containsProtocol(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/){1}.*', 'i');\n return !!pattern.test(str);\n}\n\nString.prototype.replaceAll = function (search, replacement) {\n var target = this;\n return target.split(search).join(replacement);\n};\n\nfunction udpateDisplayedItems(e) {\n console.log(e);\n localStorage.setItem('contenttype', e.target.checked);\n\n if (e.target.checked) {\n localStorage.setItem('content-display', 'none');\n } else {\n localStorage.setItem('content-display', 'block');\n }\n\n setDisplayedItems();\n}\n\nfunction setDisplayedItems() {\n setValueFromLocalStorage('contenttype');\n setValueFromLocalStorage('content-display');\n}\n\nvar _c, _c2, _c3, _c4, _c5, _c6, _c7, _c8, _c9, _c10, _c11, _c12;\n\n$RefreshReg$(_c, \"Homepage\");\n$RefreshReg$(_c2, \"Search\");\n$RefreshReg$(_c3, \"Header\");\n$RefreshReg$(_c4, \"Applications\");\n$RefreshReg$(_c5, \"App\");\n$RefreshReg$(_c6, \"Bookmarks\");\n$RefreshReg$(_c7, \"LinkGroups\");\n$RefreshReg$(_c8, \"LinkItem\");\n$RefreshReg$(_c9, \"ModalMenu\");\n$RefreshReg$(_c10, \"Provider\");\n$RefreshReg$(_c11, \"ModalInit\");\n$RefreshReg$(_c12, \"Clock\");","map":{"version":3,"sources":["/home/seanedmunds/dev/home-page/src/index.js"],"names":["React","useState","useEffect","ReactDOM","setValueFromLocalStorage","property","value","localStorage","getItem","setValue","document","documentElement","style","setProperty","input","querySelector","replace","setBoxCheckedFromLocalStorage","Homepage","setTheme","date","greet","boxChecked","Search","handleKeyPress","Header","props","Applications","appList","getApps","items","i","apps","length","safe","NSFW","NSFWEnabled","push","name","url","icon","App","classNameType","hrefUrl","iconName","Bookmarks","bookmarkList","getLinks","bookmarks","category","links","LinkGroups","LinkItem","link","ModalMenu","providers","getProviders","console","log","updateTheme","udpateDisplayedItems","Provider","provider","prefix","ModalInit","setDisplayedItems","render","getElementById","currentDate","Date","dateOptions","weekday","year","month","day","toLocaleDateString","fixDigits","k","currentTime","Math","floor","getHours","easterEggChance","random","greetings","require","timeBased","easterEggs","messages","easteregg","concat","message","easterEggText","Clock","setDate","refreshClock","timerId","setInterval","cleanup","clearInterval","hour","minutes","getMinutes","midday","time","applications","getThemes","themes","e","themeName","target","innerHTML","toLowerCase","index","findIndex","item","setItem","imagebackground","colorbackground","colorserachbackground","colortextpri","colortextacc","colorborder","sindex","cycle","key","keyCode","which","text","replaceAll","option","substr","indexOf","subtext","search","preventDefault","stopPropagation","streamers","streamer","updateLabel","window","location","validURL","containsProtocol","str","pattern","RegExp","test","String","prototype","replacement","split","join","checked"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { useState, useEffect } from 'react';\nimport ReactDOM from 'react-dom';\n//import { unstable_createPortal } from 'react-dom';\nimport './index.css';\n\nconst setValueFromLocalStorage = property => {\n let value = localStorage.getItem(property);\n setValue(property, value);\n};\nconst setValue = (property, value) => {\n if (value) {\n document.documentElement.style.setProperty(`--${property}`, value);\n\n const input = document.querySelector(`#${property}`);\n if (input) {\n value = value.replace('px', '');\n input.value = value;\n }\n }\n};\n\nconst setBoxCheckedFromLocalStorage = property => {\n let value = localStorage.getItem(property);\n\n}\n\nfunction Homepage() {\n setTheme();\n \n return (\n \n \n \n
\n \n \n
\n \n \n \n
\n \n \n
\n \n \n
\n \n );\n}\n\nfunction Search() {\n return (\n \n )\n}\n\nfunction Header(props) {\n return (\n \n );\n}\n\nfunction Applications() {\n let appList = getApps();\n var items = [];\n for (var i = 0; i < appList.apps.length; i++) {\n var safe = appList.apps[i].NSFW;\n var NSFWEnabled = localStorage.getItem(\"contenttype\");\n if (safe === \"SAFE\") {\n items.push(\n \n );\n } else if (safe === \"NSFW\" && NSFWEnabled) {\n items.push(\n \n );\n } else {\n \n }\n \n }\n return (\n \n Applications
\n \n {items}\n
\n \n );\n}\n\nfunction App(props) {\n \n let classNameType = props.NSFW + \"-content\";\n let hrefUrl = \"https://\" + props.url;\n let iconName = \"mdi-\" + props.icon;\n return (\n \n );\n}\n\nfunction Bookmarks() {\n let bookmarkList = getLinks();\n var items = [];\n for (var i = 0; i < bookmarkList.bookmarks.length; i++) {\n items.push(\n \n );\n }\n return (\n \n Bookmarks
\n \n {items}\n
\n \n );\n}\n\nfunction LinkGroups(props) {\n var items = [];\n for (var i = 0; i < props.links.length; i++) {\n items.push(\n \n );\n }\n return (\n \n
{props.category}
\n {items}\n \n );\n}\n\nfunction LinkItem(props) {\n return (\n \n );\n}\n\nfunction ModalMenu(props) {\n var providers = getProviders();\n var items = [];\n console.log(props);\n for (var i = 0; i < providers.providers.length; i++) {\n items.push(\n \n );\n }\n return (\n \n \n \n\n
Color themes
\n\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n\n\n
Search options
\n
\n \n \n \n | Website | \n Prefix | \n
\n {items}\n \n
\n \n\n \n
\n \n );\n}\n\nfunction Provider(props) {\n return (\n \n | {props.provider.name} | \n {props.provider.prefix} | \n
\n );\n}\n\nfunction ModalInit() {\n setDisplayedItems();\n return (\n \n );\n}\n\nReactDOM.render(\n ,\n document.getElementById('root')\n);\n\n//Functions below this line are for calculating data for\n//other functions\n\nfunction date() {\n let currentDate = new Date();\n let dateOptions = {\n weekday: \"long\",\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\"\n };\n let date = currentDate.toLocaleDateString(\"en-GB\", dateOptions);\n return date;\n}\nfunction fixDigits(k) {\n if (k < 10) {\n return \"0\" + k;\n }\n else {\n return k;\n }\n}\nfunction greet() {\n let currentTime = new Date();\n let greet = Math.floor(currentTime.getHours() / 6);\n let easterEggChance = Math.floor(Math.random() * 100);\n let greetings = require('./messages.json');\n let timeBased = [];\n let easterEggs = [];\n for (var i = 0; i < greetings.messages.length; i++) {\n if (greetings.messages[i].easteregg === \"FALSE\") {\n timeBased = timeBased.concat(greetings.messages[i]);\n } else {\n easterEggs = easterEggs.concat(greetings.messages[i]);\n }\n }\n if (easterEggChance > 10) {\n return timeBased[greet].message;\n } else {\n let easterEggText = Math.floor(Math.random() * easterEggs.length);\n return easterEggs[easterEggText].message;\n }\n}\nfunction Clock() {\n const [date, setDate] = useState(new Date());\n\n function refreshClock() {\n setDate(new Date());\n }\n useEffect(() => {\n const timerId = setInterval(refreshClock, 1000);\n return function cleanup() {\n clearInterval(timerId);\n };\n }, []);\n\n var hour = date.getHours();\n var minutes = date.getMinutes();\n //var seconds = date.getSeconds();\n var midday = \"AM\";\n midday = (hour >= 12) ? \"PM\" : \"AM\";\n hour = (hour === 0) ? 12 : ((hour > 12) ? (hour - 12) : hour);\n minutes = fixDigits(minutes);\n //seconds = fixDigits(seconds);\n let time = hour + \":\" + minutes + \" \" + midday;\n\n return (\n {time}
\n\n );\n}\nfunction getApps() {\n let applications = require('./apps.json');\n return applications;\n}\nfunction getLinks() {\n let links = require('./links.json');\n return links;\n}\nfunction getProviders() {\n let providers = require('./providers.json');\n return providers;\n}\nfunction getThemes() {\n let themes = require('./themes.json');\n return themes;\n}\nfunction updateTheme(e) {\n var themes = getThemes();\n var themeName = e.target.innerHTML.toLowerCase();\n var index = themes.themes.findIndex(function(item, i){\n return item.name === themeName\n });\n localStorage.setItem(\"image-background\", themes.themes[index].imagebackground);\n localStorage.setItem(\"color-background\", themes.themes[index].colorbackground);\n localStorage.setItem(\"color-search-background\", themes.themes[index].colorserachbackground);\n localStorage.setItem(\"color-text-pri\",themes.themes[index].colortextpri);\n localStorage.setItem(\"color-text-acc\", themes.themes[index].colortextacc);\n localStorage.setItem(\"color-border\", themes.themes[index].colorborder);\n \n //document.documentElement.style.setProperty(prop, `var(--${themeName}${prop.substring(10)})`);\n setTheme();\n}\nfunction setTheme() {\n setValueFromLocalStorage('image-background');\n setValueFromLocalStorage('color-background');\n setValueFromLocalStorage('color-search-background');\n setValueFromLocalStorage('color-text-pri');\n setValueFromLocalStorage('color-text-acc');\n setValueFromLocalStorage('color-border');\n setValueFromLocalStorage('content-display');\n}\nfunction handleKeyPress(e) {\n var sindex = 0;\n var cycle = false;\n var key = e.keyCode || e.which;\n var text = e.target.value.replaceAll(\"+\", \"%2B\");\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n if (key == 13) { // Search functions\n search(text);\n }\n if (key == 9) { // Tab Completion Functions\n e.preventDefault();\n e.stopPropagation();\n if (text[0] === ';') {\n switch (option) {\n case 't':\n var streamers = ['admiralbahroo', 'moonmoon_ow', 'witwix'];\n if (!subtext || cycle) {\n cycle = true;\n if (sindex > streamers.length - 1) sindex = 0;\n document.getElementById(\"keywords\").value = ';t ' + streamers[sindex++];\n return;\n }\n for (var streamer of streamers) {\n if (subtext === streamer.substr(0, subtext.length)) {\n document.getElementById(\"keywords\").value = ';t ' + streamer;\n return;\n }\n }\n break;\n }\n }\n }\n if(key == 32){ //Space to go to search\nupdateLabel(text);\n }\n sindex = 0;\n cycle = false;\n updateLabel(text);\n}\nfunction updateLabel(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n if (text[0] === '/') {\n// if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n document.getElementById(\"searchType\").innerHTML = \"Allmusic search\";\n break;\n case \"d\":\n document.getElementById(\"searchType\").innerHTML = \"Duck Duck Go search\";\n break;\n case \"di\":\n document.getElementById(\"searchType\").innerHTML = \"Discogs search\";\n break;\n case \"i\":\n document.getElementById(\"searchType\").innerHTML = \"IMDB search\";\n break;\n case \"m\":\n document.getElementById(\"searchType\").innerHTML = \"TheMovieDB search\";\n break;\n case \"r\":\n document.getElementById(\"searchType\").innerHTML = \"Reddit search\";\n break;\n case \"q\":\n document.getElementById(\"searchType\").innerHTML = \"Qwant search\";\n break;\n case \"so\":\n document.getElementById(\"searchType\").innerHTML = \"Soundcloud search\";\n break;\n case \"s\":\n document.getElementById(\"searchType\").innerHTML = \"Spotify search\";\n break;\n case \"tv\":\n document.getElementById(\"searchType\").innerHTML = \"TheTVDB search\";\n break;\n case \"t\":\n document.getElementById(\"searchType\").innerHTML = \"Trakt search\";\n break;\n case \"y\":\n document.getElementById(\"searchType\").innerHTML = \"YouTube search\";\n break;\n case \"w\":\n document.getElementById(\"searchType\").innerHTML = \"Wikipedia search\";\n break;\n case \"p\":\n document.getElementById(\"searchType\").innerHTML = \"Plex search\";\n break;\n case \"rt\":\n document.getElementById(\"searchType\").innerHTML = \"Rotten Tomatoes search\";\n break;\n default:\n document.getElementById(\"searchType\").innerHTML = \"Invalid search\";\n break;\n }\n}else {\n document.getElementById(\"searchType\").innerHTML = \"Google search\";\n }\n}\nfunction search(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n if (text[0] === '/') {\n if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n window.location = \"https://www.allmusic.com/search/all/\" + subtext;\n break;\n case \"d\":\n window.location = \"https://duckduckgo.com/?q=\" + subtext;\n break;\n case \"di\":\n window.location = \"https://www.discogs.com/search/?q=\" + subtext;\n break;\n case \"i\":\n window.location = \"https://www.imdb.com/find?q=\" + subtext;\n break;\n case \"m\":\n window.location = \"https://www.themoviedb.org/search?query=\" + subtext;\n break;\n case \"r\":\n window.location = \"https://www.reddit.com/search?q=\" + subtext;\n break;\n case \"q\":\n window.location = \"https://www.qwant.com/?q=\" + subtext;\n break;\n case \"so\":\n window.location = \"https://soundcloud.com/search?q=\" + subtext;\n break;\n case \"s\":\n window.location = \"https://open.spotify.com/search/results/\" + subtext;\n break;\n case \"t\":\n window.location = \"https://trakt.tv/search?query=\" + subtext;\n break;\n case \"tv\":\n window.location = \"https://www.thetvdb.com/search?query=\" + subtext;\n break;\n case \"y\":\n window.location = \"https://www.youtube.com/results?search_query=\" + subtext;\n break;\n case \"w\":\n window.location = \"https://en.wikipedia.org/w/index.php?search=\" + subtext;\n break;\n case \"p\":\n window.location = \"https://app.plex.tv/desktop/#!/search?query=\" + subtext;\n break;\n case \"rt\":\n window.location = \"https://www.rottentomatoes.com/search?search=\" + subtext;\n break;\n }\n } else {\n var option = text.substr(1);\n switch (option) {\n case \"d\":\n window.location = \"https://www.duckduckgo.com\";\n break;\n case \"y\":\n window.location = \"https://www.youtube.com\";\n break;\n case \"r\":\n window.location = \"https://reddit.com\";\n break;\n case \"s\":\n window.location = \"https://open.spotify.com\";\n break;\n }\n }\n } else if (validURL(text)) {\n if (containsProtocol(text))\n window.location = text;\n else\n window.location = \"https://\" + text;\n } else {\n window.location = \"https://www.google.com/search?q=\" + text;\n }\n}\nfunction validURL(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/)?' + // protocol\n '((([a-z\\\\d]([a-z\\\\d-]*[a-z\\\\d])*)\\\\.)+[a-z]{2,}|' + // domain name\n '((\\\\d{1,3}\\\\.){3}\\\\d{1,3}))' + // OR ip (v4) address\n '(\\\\:\\\\d+)?(\\\\/[-a-z\\\\d%_.~+]*)*' + // port and path\n '(\\\\?[;&a-z\\\\d%_.~+=-]*)?' + // query string\n '(\\\\#[-a-z\\\\d_]*)?$', 'i'); // fragment locator\n return !!pattern.test(str);\n}\nfunction containsProtocol(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/){1}.*', 'i');\n return !!pattern.test(str);\n}\nString.prototype.replaceAll = function(search, replacement) {\n var target = this;\n return target.split(search).join(replacement);\n};\nfunction udpateDisplayedItems(e) {\n console.log(e);\n localStorage.setItem('contenttype', e.target.checked);\n if (e.target.checked) {\n localStorage.setItem('content-display', 'none');\n } else {\n localStorage.setItem('content-display', 'block');\n }\n setDisplayedItems();\n}\nfunction setDisplayedItems() {\n setValueFromLocalStorage('contenttype');\n setValueFromLocalStorage('content-display');\n}"]},"metadata":{},"sourceType":"module"}
\ No newline at end of file
diff --git a/node_modules/.cache/babel-loader/b928860d4fe74a4e927cd4c0f41dd9f0.json b/node_modules/.cache/babel-loader/b928860d4fe74a4e927cd4c0f41dd9f0.json
new file mode 100644
index 00000000..b12cf3a3
--- /dev/null
+++ b/node_modules/.cache/babel-loader/b928860d4fe74a4e927cd4c0f41dd9f0.json
@@ -0,0 +1 @@
+{"ast":null,"code":"var _jsxFileName = \"/home/seanedmunds/dev/home-page/src/index.js\",\n _s = $RefreshSig$();\n\nimport React from 'react';\nimport { useState, useEffect } from 'react';\nimport ReactDOM from 'react-dom';\nimport './index.css';\nimport { jsxDEV as _jsxDEV } from \"react/jsx-dev-runtime\";\n\nconst setValueFromLocalStorage = property => {\n let value = localStorage.getItem(property);\n setValue(property, value);\n};\n\nconst setValue = (property, value) => {\n if (value) {\n document.documentElement.style.setProperty(`--${property}`, value);\n const input = document.querySelector(`#${property}`);\n\n if (input) {\n value = value.replace('px', '');\n input.value = value;\n }\n }\n};\n\nfunction Homepage() {\n setTheme();\n return /*#__PURE__*/_jsxDEV(\"main\", {\n id: \"container\",\n className: \"fade\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Search, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 28,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 27,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Header, {\n date: date(),\n greet: greet()\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 31,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 30,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Applications, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 37,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 36,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Bookmarks, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 40,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 39,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(ModalMenu, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 43,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 42,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(ModalInit, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 46,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 45,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 26,\n columnNumber: 5\n }, this);\n}\n\n_c = Homepage;\n\nfunction Search() {\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"search\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"abackground\",\n children: [/*#__PURE__*/_jsxDEV(\"input\", {\n name: \"keywords\",\n type: \"text\",\n className: \"keyword\",\n id: \"keywords\",\n size: \"50\",\n spellCheck: \"true\",\n placeholder: \"\"\n /*onFocus={this.placeholder = \"\"} onBlur={this.placeholder = ''}*/\n ,\n autoComplete: \"off\",\n autoFocus: true,\n onKeyUp: handleKeyPress\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 56,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n id: \"searchType\",\n className: \"Input-label\",\n children: \"Google search\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 57,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 55,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 54,\n columnNumber: 5\n }, this);\n}\n\n_c2 = Search;\n\nfunction Header(props) {\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"header\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n id: \"greeting_block\",\n children: /*#__PURE__*/_jsxDEV(\"h1\", {\n id: \"header_greet\",\n children: props.greet\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 67,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 66,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"date_block\",\n children: [/*#__PURE__*/_jsxDEV(\"h2\", {\n id: \"header_date\",\n children: props.date\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 70,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(Clock, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 71,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 69,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 65,\n columnNumber: 5\n }, this);\n}\n\n_c3 = Header;\n\nfunction Applications() {\n let appList = getApps();\n var items = [];\n\n for (var i = 0; i < appList.apps.length; i++) {\n var safe = appList.apps[i].NSFW;\n var NSFWEnabled = localStorage.getItem(\"contenttype\");\n\n if (safe === \"SAFE\") {\n items.push( /*#__PURE__*/_jsxDEV(App, {\n name: appList.apps[i].name,\n url: appList.apps[i].url,\n icon: appList.apps[i].icon,\n NSFW: appList.apps[i].NSFW\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 85,\n columnNumber: 9\n }, this));\n } else if (safe === \"NSFW\" && NSFWEnabled) {\n items.push( /*#__PURE__*/_jsxDEV(App, {\n name: appList.apps[i].name,\n url: appList.apps[i].url,\n icon: appList.apps[i].icon,\n NSFW: appList.apps[i].NSFW\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 95,\n columnNumber: 9\n }, this));\n } else {}\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"apps\",\n children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n children: \"Applications\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 110,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"apps_loop\",\n children: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 111,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 109,\n columnNumber: 5\n }, this);\n}\n\n_c4 = Applications;\n\nfunction App(props) {\n let classNameType = props.NSFW + \"-content\";\n let hrefUrl = \"https://\" + props.url;\n let iconName = \"mdi-\" + props.icon;\n return /*#__PURE__*/_jsxDEV(\"div\", {\n className: classNameType,\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: hrefUrl,\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_item\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_icon\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify icon\",\n \"data-icon\": iconName\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 128,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 127,\n columnNumber: 13\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_text\",\n children: [/*#__PURE__*/_jsxDEV(\"span\", {\n id: \"app-name\",\n children: props.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 131,\n columnNumber: 15\n }, this), /*#__PURE__*/_jsxDEV(\"span\", {\n id: \"app-address\",\n children: props.url\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 132,\n columnNumber: 15\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 130,\n columnNumber: 13\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 126,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 125,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 124,\n columnNumber: 7\n }, this);\n}\n\n_c5 = App;\n\nfunction Bookmarks() {\n let bookmarkList = getLinks();\n var items = [];\n\n for (var i = 0; i < bookmarkList.bookmarks.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(LinkGroups, {\n category: bookmarkList.bookmarks[i].category,\n links: bookmarkList.bookmarks[i].links\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 145,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"links\",\n children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n children: \"Bookmarks\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 154,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"links_loop\",\n children: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 155,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 153,\n columnNumber: 5\n }, this);\n}\n\n_c6 = Bookmarks;\n\nfunction LinkGroups(props) {\n var items = [];\n\n for (var i = 0; i < props.links.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(LinkItem, {\n link: props.links[i]\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 166,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"links_item\",\n children: [/*#__PURE__*/_jsxDEV(\"h4\", {\n children: props.category\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 174,\n columnNumber: 7\n }, this), items]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 173,\n columnNumber: 5\n }, this);\n}\n\n_c7 = LinkGroups;\n\nfunction LinkItem(props) {\n return /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: props.link.url,\n className: \"theme_color-border theme_text-select\",\n children: props.link.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 183,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 182,\n columnNumber: 5\n }, this);\n}\n\n_c8 = LinkItem;\n\nfunction ModalMenu() {\n var providers = getProviders();\n var items = [];\n\n for (var i = 0; i < providers.providers.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(Provider, {\n provider: providers.providers[i]\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 193,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"modal\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n children: [/*#__PURE__*/_jsxDEV(\"header\", {\n id: \"modal-header\",\n children: [/*#__PURE__*/_jsxDEV(\"h1\", {\n children: \"Options\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 203,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n href: \"#\",\n title: \"Close\",\n className: \"modal-close\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-close\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 205,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 204,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 202,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"h2\", {\n children: \"Color themes\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 209,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"modal-theme\",\n children: [/*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"blackboard\",\n className: \"theme-button theme-blackboard\",\n onClick: updateTheme,\n children: \"Blackboard\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 212,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"gazette\",\n className: \"theme-button theme-gazette\",\n onClick: updateTheme,\n children: \"Gazette\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 213,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"espresso\",\n className: \"theme-button theme-espresso\",\n onClick: updateTheme,\n children: \"Espresso\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 214,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cab\",\n className: \"theme-button theme-cab\",\n onClick: updateTheme,\n children: \"Cab\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 215,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cloud\",\n className: \"theme-button theme-cloud\",\n onClick: updateTheme,\n children: \"Cloud\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 216,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"lime\",\n className: \"theme-button theme-lime\",\n onClick: updateTheme,\n children: \"Lime\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 217,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"passion\",\n className: \"theme-button theme-passion\",\n onClick: updateTheme,\n children: \"Passion\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 218,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"blues\",\n className: \"theme-button theme-blues\",\n onClick: updateTheme,\n children: \"Blues\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 219,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"chalk\",\n className: \"theme-button theme-chalk\",\n onClick: updateTheme,\n children: \"Chalk\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 220,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"tron\",\n className: \"theme-button theme-tron\",\n onClick: updateTheme,\n children: \"Tron\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 221,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"paper\",\n className: \"theme-button theme-paper\",\n onClick: updateTheme,\n children: \"Paper\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 222,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cyberpunk\",\n className: \"theme-button theme-cyberpunk\",\n onClick: updateTheme,\n children: \"Cyberpunk\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 223,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"quadra\",\n className: \"theme-button theme-panam\",\n onClick: updateTheme,\n children: \"Quadra\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 224,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"panam\",\n className: \"theme-button theme-panam\",\n onClick: updateTheme,\n children: \"Panam\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 225,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"touch\",\n className: \"theme-button theme-touch\",\n onClick: updateTheme,\n children: \"Touch\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 226,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"peek\",\n className: \"theme-button theme-peek\",\n onClick: updateTheme,\n children: \"Peek\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 227,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 211,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"h2\", {\n children: \"Search options\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 231,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"providers\",\n children: /*#__PURE__*/_jsxDEV(\"table\", {\n children: /*#__PURE__*/_jsxDEV(\"tbody\", {\n children: [/*#__PURE__*/_jsxDEV(\"tr\", {\n children: [/*#__PURE__*/_jsxDEV(\"th\", {\n children: \"Website\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 236,\n columnNumber: 19\n }, this), /*#__PURE__*/_jsxDEV(\"th\", {\n children: \"Prefix\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 237,\n columnNumber: 19\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 235,\n columnNumber: 17\n }, this), items]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 234,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 233,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 232,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"header\", {\n id: \"modal-footer\",\n children: [/*#__PURE__*/_jsxDEV(\"a\", {\n href: \"https://github.com/jeroenpardon/\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-github-box\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 245,\n columnNumber: 54\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 245,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n href: \"https://materialdesignicons.com/\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-material-design\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 246,\n columnNumber: 54\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 246,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(HideButton, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 247,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 244,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 201,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 200,\n columnNumber: 5\n }, this);\n}\n\n_c9 = ModalMenu;\n\nfunction HideButton() {\n var isChecked = localStorage.getItem(\"content-type\");\n console.log(isChecked);\n return /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"sneaky\",\n children: [/*#__PURE__*/_jsxDEV(\"input\", {\n type: \"checkbox\",\n id: \"contenttype\",\n checked: isChecked,\n onChange: udpateDisplayedItems\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 259,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n for: \"contenttype\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-domino-mask\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 260,\n columnNumber: 32\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 260,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 258,\n columnNumber: 5\n }, this);\n}\n\n_c10 = HideButton;\n\nfunction Provider(props) {\n return /*#__PURE__*/_jsxDEV(\"tr\", {\n children: [/*#__PURE__*/_jsxDEV(\"td\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: props.provider.url,\n children: props.provider.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 268,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 268,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"td\", {\n children: props.provider.prefix\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 269,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 267,\n columnNumber: 5\n }, this);\n}\n\n_c11 = Provider;\n\nfunction ModalInit() {\n setDisplayedItems();\n return /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"modal_init\",\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n className: \"btn\",\n href: \"#modal\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify icon\",\n \"data-icon\": \"mdi-xbox-controller-menu\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 279,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 278,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 277,\n columnNumber: 5\n }, this);\n}\n\n_c12 = ModalInit;\nReactDOM.render( /*#__PURE__*/_jsxDEV(Homepage, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 286,\n columnNumber: 3\n}, this), document.getElementById('root')); //Functions below this line are for calculating data for\n//other functions\n\nfunction date() {\n let currentDate = new Date();\n let dateOptions = {\n weekday: \"long\",\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\"\n };\n let date = currentDate.toLocaleDateString(\"en-GB\", dateOptions);\n return date;\n}\n\nfunction fixDigits(k) {\n if (k < 10) {\n return \"0\" + k;\n } else {\n return k;\n }\n}\n\nfunction greet() {\n let currentTime = new Date();\n let greet = Math.floor(currentTime.getHours() / 6);\n let easterEggChance = Math.floor(Math.random() * 100);\n\n let greetings = require('./messages.json');\n\n let timeBased = [];\n let easterEggs = [];\n\n for (var i = 0; i < greetings.messages.length; i++) {\n if (greetings.messages[i].easteregg === \"FALSE\") {\n timeBased = timeBased.concat(greetings.messages[i]);\n } else {\n easterEggs = easterEggs.concat(greetings.messages[i]);\n }\n }\n\n if (easterEggChance > 10) {\n return timeBased[greet].message;\n } else {\n let easterEggText = Math.floor(Math.random() * easterEggs.length);\n return easterEggs[easterEggText].message;\n }\n}\n\nfunction Clock() {\n _s();\n\n const [date, setDate] = useState(new Date());\n\n function refreshClock() {\n setDate(new Date());\n }\n\n useEffect(() => {\n const timerId = setInterval(refreshClock, 1000);\n return function cleanup() {\n clearInterval(timerId);\n };\n }, []);\n var hour = date.getHours();\n var minutes = date.getMinutes(); //var seconds = date.getSeconds();\n\n var midday = \"AM\";\n midday = hour >= 12 ? \"PM\" : \"AM\";\n hour = hour === 0 ? 12 : hour > 12 ? hour - 12 : hour;\n minutes = fixDigits(minutes); //seconds = fixDigits(seconds);\n\n let time = hour + \":\" + minutes + \" \" + midday;\n return /*#__PURE__*/_jsxDEV(\"h2\", {\n id: \"clock\",\n children: time\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 357,\n columnNumber: 5\n }, this);\n}\n\n_s(Clock, \"Gqi45WOZhU2c0BLYX0HoJeiR0fk=\");\n\n_c13 = Clock;\n\nfunction getApps() {\n let applications = require('./apps.json');\n\n return applications;\n}\n\nfunction getLinks() {\n let links = require('./links.json');\n\n return links;\n}\n\nfunction getProviders() {\n let providers = require('./providers.json');\n\n return providers;\n}\n\nfunction getThemes() {\n let themes = require('./themes.json');\n\n return themes;\n}\n\nfunction updateTheme(e) {\n var themes = getThemes();\n var themeName = e.target.innerHTML.toLowerCase();\n var index = themes.themes.findIndex(function (item, i) {\n return item.name === themeName;\n });\n localStorage.setItem(\"image-background\", themes.themes[index].imagebackground);\n localStorage.setItem(\"color-background\", themes.themes[index].colorbackground);\n localStorage.setItem(\"color-search-background\", themes.themes[index].colorserachbackground);\n localStorage.setItem(\"color-text-pri\", themes.themes[index].colortextpri);\n localStorage.setItem(\"color-text-acc\", themes.themes[index].colortextacc);\n localStorage.setItem(\"color-border\", themes.themes[index].colorborder); //document.documentElement.style.setProperty(prop, `var(--${themeName}${prop.substring(10)})`);\n\n setTheme();\n}\n\nfunction setTheme() {\n setValueFromLocalStorage('image-background');\n setValueFromLocalStorage('color-background');\n setValueFromLocalStorage('color-search-background');\n setValueFromLocalStorage('color-text-pri');\n setValueFromLocalStorage('color-text-acc');\n setValueFromLocalStorage('color-border');\n setValueFromLocalStorage('content-display');\n}\n\nfunction handleKeyPress(e) {\n var sindex = 0;\n var cycle = false;\n var key = e.keyCode || e.which;\n var text = e.target.value.replaceAll(\"+\", \"%2B\");\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n\n if (key == 13) {\n // Search functions\n search(text);\n }\n\n if (key == 9) {\n // Tab Completion Functions\n e.preventDefault();\n e.stopPropagation();\n\n if (text[0] === ';') {\n switch (option) {\n case 't':\n var streamers = ['admiralbahroo', 'moonmoon_ow', 'witwix'];\n\n if (!subtext || cycle) {\n cycle = true;\n if (sindex > streamers.length - 1) sindex = 0;\n document.getElementById(\"keywords\").value = ';t ' + streamers[sindex++];\n return;\n }\n\n for (var streamer of streamers) {\n if (subtext === streamer.substr(0, subtext.length)) {\n document.getElementById(\"keywords\").value = ';t ' + streamer;\n return;\n }\n }\n\n break;\n }\n }\n }\n\n if (key == 32) {\n //Space to go to search\n updateLabel(text);\n }\n\n sindex = 0;\n cycle = false;\n updateLabel(text);\n}\n\nfunction updateLabel(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n\n if (text[0] === '/') {\n // if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n document.getElementById(\"searchType\").innerHTML = \"Allmusic search\";\n break;\n\n case \"d\":\n document.getElementById(\"searchType\").innerHTML = \"Duck Duck Go search\";\n break;\n\n case \"di\":\n document.getElementById(\"searchType\").innerHTML = \"Discogs search\";\n break;\n\n case \"i\":\n document.getElementById(\"searchType\").innerHTML = \"IMDB search\";\n break;\n\n case \"m\":\n document.getElementById(\"searchType\").innerHTML = \"TheMovieDB search\";\n break;\n\n case \"r\":\n document.getElementById(\"searchType\").innerHTML = \"Reddit search\";\n break;\n\n case \"q\":\n document.getElementById(\"searchType\").innerHTML = \"Qwant search\";\n break;\n\n case \"so\":\n document.getElementById(\"searchType\").innerHTML = \"Soundcloud search\";\n break;\n\n case \"s\":\n document.getElementById(\"searchType\").innerHTML = \"Spotify search\";\n break;\n\n case \"tv\":\n document.getElementById(\"searchType\").innerHTML = \"TheTVDB search\";\n break;\n\n case \"t\":\n document.getElementById(\"searchType\").innerHTML = \"Trakt search\";\n break;\n\n case \"y\":\n document.getElementById(\"searchType\").innerHTML = \"YouTube search\";\n break;\n\n case \"w\":\n document.getElementById(\"searchType\").innerHTML = \"Wikipedia search\";\n break;\n\n case \"p\":\n document.getElementById(\"searchType\").innerHTML = \"Plex search\";\n break;\n\n case \"rt\":\n document.getElementById(\"searchType\").innerHTML = \"Rotten Tomatoes search\";\n break;\n\n default:\n document.getElementById(\"searchType\").innerHTML = \"Invalid search\";\n break;\n }\n } else {\n document.getElementById(\"searchType\").innerHTML = \"Google search\";\n }\n}\n\nfunction search(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n\n if (text[0] === '/') {\n if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n window.location = \"https://www.allmusic.com/search/all/\" + subtext;\n break;\n\n case \"d\":\n window.location = \"https://duckduckgo.com/?q=\" + subtext;\n break;\n\n case \"di\":\n window.location = \"https://www.discogs.com/search/?q=\" + subtext;\n break;\n\n case \"i\":\n window.location = \"https://www.imdb.com/find?q=\" + subtext;\n break;\n\n case \"m\":\n window.location = \"https://www.themoviedb.org/search?query=\" + subtext;\n break;\n\n case \"r\":\n window.location = \"https://www.reddit.com/search?q=\" + subtext;\n break;\n\n case \"q\":\n window.location = \"https://www.qwant.com/?q=\" + subtext;\n break;\n\n case \"so\":\n window.location = \"https://soundcloud.com/search?q=\" + subtext;\n break;\n\n case \"s\":\n window.location = \"https://open.spotify.com/search/results/\" + subtext;\n break;\n\n case \"t\":\n window.location = \"https://trakt.tv/search?query=\" + subtext;\n break;\n\n case \"tv\":\n window.location = \"https://www.thetvdb.com/search?query=\" + subtext;\n break;\n\n case \"y\":\n window.location = \"https://www.youtube.com/results?search_query=\" + subtext;\n break;\n\n case \"w\":\n window.location = \"https://en.wikipedia.org/w/index.php?search=\" + subtext;\n break;\n\n case \"p\":\n window.location = \"https://app.plex.tv/desktop/#!/search?query=\" + subtext;\n break;\n\n case \"rt\":\n window.location = \"https://www.rottentomatoes.com/search?search=\" + subtext;\n break;\n }\n } else {\n var option = text.substr(1);\n\n switch (option) {\n case \"d\":\n window.location = \"https://www.duckduckgo.com\";\n break;\n\n case \"y\":\n window.location = \"https://www.youtube.com\";\n break;\n\n case \"r\":\n window.location = \"https://reddit.com\";\n break;\n\n case \"s\":\n window.location = \"https://open.spotify.com\";\n break;\n }\n }\n } else if (validURL(text)) {\n if (containsProtocol(text)) window.location = text;else window.location = \"https://\" + text;\n } else {\n window.location = \"https://www.google.com/search?q=\" + text;\n }\n}\n\nfunction validURL(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/)?' + // protocol\n '((([a-z\\\\d]([a-z\\\\d-]*[a-z\\\\d])*)\\\\.)+[a-z]{2,}|' + // domain name\n '((\\\\d{1,3}\\\\.){3}\\\\d{1,3}))' + // OR ip (v4) address\n '(\\\\:\\\\d+)?(\\\\/[-a-z\\\\d%_.~+]*)*' + // port and path\n '(\\\\?[;&a-z\\\\d%_.~+=-]*)?' + // query string\n '(\\\\#[-a-z\\\\d_]*)?$', 'i'); // fragment locator\n\n return !!pattern.test(str);\n}\n\nfunction containsProtocol(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/){1}.*', 'i');\n return !!pattern.test(str);\n}\n\nString.prototype.replaceAll = function (search, replacement) {\n var target = this;\n return target.split(search).join(replacement);\n};\n\nfunction udpateDisplayedItems(e) {\n localStorage.setItem('contenttype', e.target.checked);\n\n if (e.target.checked) {\n localStorage.setItem('content-display', 'none');\n } else {\n localStorage.setItem('content-display', 'block');\n }\n\n setDisplayedItems();\n}\n\nfunction setDisplayedItems() {\n setValueFromLocalStorage('contenttype');\n setValueFromLocalStorage('content-display');\n}\n\nvar _c, _c2, _c3, _c4, _c5, _c6, _c7, _c8, _c9, _c10, _c11, _c12, _c13;\n\n$RefreshReg$(_c, \"Homepage\");\n$RefreshReg$(_c2, \"Search\");\n$RefreshReg$(_c3, \"Header\");\n$RefreshReg$(_c4, \"Applications\");\n$RefreshReg$(_c5, \"App\");\n$RefreshReg$(_c6, \"Bookmarks\");\n$RefreshReg$(_c7, \"LinkGroups\");\n$RefreshReg$(_c8, \"LinkItem\");\n$RefreshReg$(_c9, \"ModalMenu\");\n$RefreshReg$(_c10, \"HideButton\");\n$RefreshReg$(_c11, \"Provider\");\n$RefreshReg$(_c12, \"ModalInit\");\n$RefreshReg$(_c13, \"Clock\");","map":{"version":3,"sources":["/home/seanedmunds/dev/home-page/src/index.js"],"names":["React","useState","useEffect","ReactDOM","setValueFromLocalStorage","property","value","localStorage","getItem","setValue","document","documentElement","style","setProperty","input","querySelector","replace","Homepage","setTheme","date","greet","Search","handleKeyPress","Header","props","Applications","appList","getApps","items","i","apps","length","safe","NSFW","NSFWEnabled","push","name","url","icon","App","classNameType","hrefUrl","iconName","Bookmarks","bookmarkList","getLinks","bookmarks","category","links","LinkGroups","LinkItem","link","ModalMenu","providers","getProviders","updateTheme","HideButton","isChecked","console","log","udpateDisplayedItems","Provider","provider","prefix","ModalInit","setDisplayedItems","render","getElementById","currentDate","Date","dateOptions","weekday","year","month","day","toLocaleDateString","fixDigits","k","currentTime","Math","floor","getHours","easterEggChance","random","greetings","require","timeBased","easterEggs","messages","easteregg","concat","message","easterEggText","Clock","setDate","refreshClock","timerId","setInterval","cleanup","clearInterval","hour","minutes","getMinutes","midday","time","applications","getThemes","themes","e","themeName","target","innerHTML","toLowerCase","index","findIndex","item","setItem","imagebackground","colorbackground","colorserachbackground","colortextpri","colortextacc","colorborder","sindex","cycle","key","keyCode","which","text","replaceAll","option","substr","indexOf","subtext","search","preventDefault","stopPropagation","streamers","streamer","updateLabel","window","location","validURL","containsProtocol","str","pattern","RegExp","test","String","prototype","replacement","split","join","checked"],"mappings":";;;AAAA,OAAOA,KAAP,MAAkB,OAAlB;AACA,SAASC,QAAT,EAAmBC,SAAnB,QAAoC,OAApC;AACA,OAAOC,QAAP,MAAqB,WAArB;AACA,OAAO,aAAP;;;AAEA,MAAMC,wBAAwB,GAAGC,QAAQ,IAAI;AAC3C,MAAIC,KAAK,GAAGC,YAAY,CAACC,OAAb,CAAqBH,QAArB,CAAZ;AACAI,EAAAA,QAAQ,CAACJ,QAAD,EAAWC,KAAX,CAAR;AACD,CAHD;;AAIA,MAAMG,QAAQ,GAAG,CAACJ,QAAD,EAAWC,KAAX,KAAqB;AACpC,MAAIA,KAAJ,EAAW;AACPI,IAAAA,QAAQ,CAACC,eAAT,CAAyBC,KAAzB,CAA+BC,WAA/B,CAA4C,KAAIR,QAAS,EAAzD,EAA4DC,KAA5D;AAEA,UAAMQ,KAAK,GAAGJ,QAAQ,CAACK,aAAT,CAAwB,IAAGV,QAAS,EAApC,CAAd;;AACA,QAAIS,KAAJ,EAAW;AACPR,MAAAA,KAAK,GAAGA,KAAK,CAACU,OAAN,CAAc,IAAd,EAAoB,EAApB,CAAR;AACAF,MAAAA,KAAK,CAACR,KAAN,GAAcA,KAAd;AACH;AACJ;AACF,CAVD;;AAYA,SAASW,QAAT,GAAoB;AAClBC,EAAAA,QAAQ;AAER,sBACE;AAAM,IAAA,EAAE,EAAC,WAAT;AAAqB,IAAA,SAAS,EAAC,MAA/B;AAAA,4BACI;AAAA,6BACE,QAAC,MAAD;AAAA;AAAA;AAAA;AAAA;AADF;AAAA;AAAA;AAAA;AAAA,YADJ,eAII;AAAA,6BACE,QAAC,MAAD;AACE,QAAA,IAAI,EAAEC,IAAI,EADZ;AAEE,QAAA,KAAK,EAAEC,KAAK;AAFd;AAAA;AAAA;AAAA;AAAA;AADF;AAAA;AAAA;AAAA;AAAA,YAJJ,eAUI;AAAA,6BACE,QAAC,YAAD;AAAA;AAAA;AAAA;AAAA;AADF;AAAA;AAAA;AAAA;AAAA,YAVJ,eAaI;AAAA,6BACE,QAAC,SAAD;AAAA;AAAA;AAAA;AAAA;AADF;AAAA;AAAA;AAAA;AAAA,YAbJ,eAgBI;AAAA,6BACE,QAAC,SAAD;AAAA;AAAA;AAAA;AAAA;AADF;AAAA;AAAA;AAAA;AAAA,YAhBJ,eAmBI;AAAA,6BACE,QAAC,SAAD;AAAA;AAAA;AAAA;AAAA;AADF;AAAA;AAAA;AAAA;AAAA,YAnBJ;AAAA;AAAA;AAAA;AAAA;AAAA,UADF;AAyBD;;KA5BQH,Q;;AA8BT,SAASI,MAAT,GAAkB;AAChB,sBACE;AAAS,IAAA,EAAE,EAAC,QAAZ;AAAA,2BACE;AAAK,MAAA,SAAS,EAAC,aAAf;AAAA,8BACE;AAAO,QAAA,IAAI,EAAC,UAAZ;AAAuB,QAAA,IAAI,EAAC,MAA5B;AAAmC,QAAA,SAAS,EAAC,SAA7C;AAAuD,QAAA,EAAE,EAAC,UAA1D;AAAqE,QAAA,IAAI,EAAC,IAA1E;AAA+E,QAAA,UAAU,EAAC,MAA1F;AAAiG,QAAA,WAAW,EAAC;AAAG;AAAhH;AAAmL,QAAA,YAAY,EAAC,KAAhM;AAAsM,QAAA,SAAS,EAAE,IAAjN;AAAuN,QAAA,OAAO,EAAEC;AAAhO;AAAA;AAAA;AAAA;AAAA,cADF,eAEE;AAAO,QAAA,EAAE,EAAC,YAAV;AAAuB,QAAA,SAAS,EAAC,aAAjC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,cAFF;AAAA;AAAA;AAAA;AAAA;AAAA;AADF;AAAA;AAAA;AAAA;AAAA,UADF;AAQD;;MATQD,M;;AAWT,SAASE,MAAT,CAAgBC,KAAhB,EAAuB;AACrB,sBACE;AAAS,IAAA,EAAE,EAAC,QAAZ;AAAA,4BACE;AAAK,MAAA,EAAE,EAAC,gBAAR;AAAA,6BACE;AAAI,QAAA,EAAE,EAAC,cAAP;AAAA,kBAAuBA,KAAK,CAACJ;AAA7B;AAAA;AAAA;AAAA;AAAA;AADF;AAAA;AAAA;AAAA;AAAA,YADF,eAIE;AAAK,MAAA,EAAE,EAAC,YAAR;AAAA,8BACE;AAAI,QAAA,EAAE,EAAC,aAAP;AAAA,kBAAsBI,KAAK,CAACL;AAA5B;AAAA;AAAA;AAAA;AAAA,cADF,eAEE,QAAC,KAAD;AAAA;AAAA;AAAA;AAAA,cAFF;AAAA;AAAA;AAAA;AAAA;AAAA,YAJF;AAAA;AAAA;AAAA;AAAA;AAAA,UADF;AAWD;;MAZQI,M;;AAcT,SAASE,YAAT,GAAwB;AACtB,MAAIC,OAAO,GAAGC,OAAO,EAArB;AACA,MAAIC,KAAK,GAAG,EAAZ;;AACA,OAAK,IAAIC,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGH,OAAO,CAACI,IAAR,CAAaC,MAAjC,EAAyCF,CAAC,EAA1C,EAA8C;AAC5C,QAAIG,IAAI,GAAGN,OAAO,CAACI,IAAR,CAAaD,CAAb,EAAgBI,IAA3B;AACA,QAAIC,WAAW,GAAG3B,YAAY,CAACC,OAAb,CAAqB,aAArB,CAAlB;;AACA,QAAIwB,IAAI,KAAK,MAAb,EAAqB;AACnBJ,MAAAA,KAAK,CAACO,IAAN,eACE,QAAC,GAAD;AAEE,QAAA,IAAI,EAAET,OAAO,CAACI,IAAR,CAAaD,CAAb,EAAgBO,IAFxB;AAGE,QAAA,GAAG,EAAEV,OAAO,CAACI,IAAR,CAAaD,CAAb,EAAgBQ,GAHvB;AAIE,QAAA,IAAI,EAAEX,OAAO,CAACI,IAAR,CAAaD,CAAb,EAAgBS,IAJxB;AAKE,QAAA,IAAI,EAAEZ,OAAO,CAACI,IAAR,CAAaD,CAAb,EAAgBI;AALxB,SACOJ,CADP;AAAA;AAAA;AAAA;AAAA,cADF;AASD,KAVD,MAUO,IAAIG,IAAI,KAAK,MAAT,IAAmBE,WAAvB,EAAoC;AACzCN,MAAAA,KAAK,CAACO,IAAN,eACE,QAAC,GAAD;AAEE,QAAA,IAAI,EAAET,OAAO,CAACI,IAAR,CAAaD,CAAb,EAAgBO,IAFxB;AAGE,QAAA,GAAG,EAAEV,OAAO,CAACI,IAAR,CAAaD,CAAb,EAAgBQ,GAHvB;AAIE,QAAA,IAAI,EAAEX,OAAO,CAACI,IAAR,CAAaD,CAAb,EAAgBS,IAJxB;AAKE,QAAA,IAAI,EAAEZ,OAAO,CAACI,IAAR,CAAaD,CAAb,EAAgBI;AALxB,SACOJ,CADP;AAAA;AAAA;AAAA;AAAA,cADF;AASD,KAVM,MAUA,CAEN;AAEF;;AACD,sBACE;AAAS,IAAA,EAAE,EAAC,MAAZ;AAAA,4BACE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,YADF,eAEE;AAAK,MAAA,EAAE,EAAC,WAAR;AAAA,gBACGD;AADH;AAAA;AAAA;AAAA;AAAA,YAFF;AAAA;AAAA;AAAA;AAAA;AAAA,UADF;AAQD;;MAvCQH,Y;;AAyCT,SAASc,GAAT,CAAaf,KAAb,EAAoB;AAEhB,MAAIgB,aAAa,GAAGhB,KAAK,CAACS,IAAN,GAAa,UAAjC;AACA,MAAIQ,OAAO,GAAG,aAAajB,KAAK,CAACa,GAAjC;AACA,MAAIK,QAAQ,GAAG,SAASlB,KAAK,CAACc,IAA9B;AACA,sBACE;AAAK,IAAA,SAAS,EAAEE,aAAhB;AAAA,2BACE;AAAG,MAAA,IAAI,EAAEC,OAAT;AAAA,6BACE;AAAK,QAAA,SAAS,EAAC,WAAf;AAAA,gCACE;AAAK,UAAA,SAAS,EAAC,WAAf;AAAA,iCACE;AAAM,YAAA,SAAS,EAAC,cAAhB;AAA+B,yBAAWC;AAA1C;AAAA;AAAA;AAAA;AAAA;AADF;AAAA;AAAA;AAAA;AAAA,gBADF,eAIE;AAAK,UAAA,SAAS,EAAC,WAAf;AAAA,kCACE;AAAM,YAAA,EAAE,EAAC,UAAT;AAAA,sBAAqBlB,KAAK,CAACY;AAA3B;AAAA;AAAA;AAAA;AAAA,kBADF,eAEE;AAAM,YAAA,EAAE,EAAC,aAAT;AAAA,sBAAwBZ,KAAK,CAACa;AAA9B;AAAA;AAAA;AAAA;AAAA,kBAFF;AAAA;AAAA;AAAA;AAAA;AAAA,gBAJF;AAAA;AAAA;AAAA;AAAA;AAAA;AADF;AAAA;AAAA;AAAA;AAAA;AADF;AAAA;AAAA;AAAA;AAAA,UADF;AAeH;;MApBQE,G;;AAsBT,SAASI,SAAT,GAAqB;AACnB,MAAIC,YAAY,GAAGC,QAAQ,EAA3B;AACA,MAAIjB,KAAK,GAAG,EAAZ;;AACA,OAAK,IAAIC,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGe,YAAY,CAACE,SAAb,CAAuBf,MAA3C,EAAmDF,CAAC,EAApD,EAAwD;AACtDD,IAAAA,KAAK,CAACO,IAAN,eACE,QAAC,UAAD;AAEE,MAAA,QAAQ,EAAES,YAAY,CAACE,SAAb,CAAuBjB,CAAvB,EAA0BkB,QAFtC;AAGE,MAAA,KAAK,EAAEH,YAAY,CAACE,SAAb,CAAuBjB,CAAvB,EAA0BmB;AAHnC,OACOnB,CADP;AAAA;AAAA;AAAA;AAAA,YADF;AAOD;;AACD,sBACE;AAAS,IAAA,EAAE,EAAC,OAAZ;AAAA,4BACE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,YADF,eAEE;AAAK,MAAA,EAAE,EAAC,YAAR;AAAA,gBACKD;AADL;AAAA;AAAA;AAAA;AAAA,YAFF;AAAA;AAAA;AAAA;AAAA;AAAA,UADF;AAQD;;MApBQe,S;;AAsBT,SAASM,UAAT,CAAoBzB,KAApB,EAA2B;AACzB,MAAII,KAAK,GAAG,EAAZ;;AACA,OAAK,IAAIC,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGL,KAAK,CAACwB,KAAN,CAAYjB,MAAhC,EAAwCF,CAAC,EAAzC,EAA6C;AAC3CD,IAAAA,KAAK,CAACO,IAAN,eACE,QAAC,QAAD;AAEE,MAAA,IAAI,EAAEX,KAAK,CAACwB,KAAN,CAAYnB,CAAZ;AAFR,OACOA,CADP;AAAA;AAAA;AAAA;AAAA,YADF;AAMD;;AACD,sBACE;AAAK,IAAA,EAAE,EAAC,YAAR;AAAA,4BACE;AAAA,gBAAKL,KAAK,CAACuB;AAAX;AAAA;AAAA;AAAA;AAAA,YADF,EAEGnB,KAFH;AAAA;AAAA;AAAA;AAAA;AAAA,UADF;AAMD;;MAhBQqB,U;;AAkBT,SAASC,QAAT,CAAkB1B,KAAlB,EAAyB;AACvB,sBACE;AAAA,2BACE;AAAG,MAAA,IAAI,EAAEA,KAAK,CAAC2B,IAAN,CAAWd,GAApB;AAAyB,MAAA,SAAS,EAAC,sCAAnC;AAAA,gBAA2Eb,KAAK,CAAC2B,IAAN,CAAWf;AAAtF;AAAA;AAAA;AAAA;AAAA;AADF;AAAA;AAAA;AAAA;AAAA,UADF;AAKD;;MANQc,Q;;AAQT,SAASE,SAAT,GAAqB;AACnB,MAAIC,SAAS,GAAGC,YAAY,EAA5B;AACA,MAAI1B,KAAK,GAAG,EAAZ;;AACA,OAAK,IAAIC,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGwB,SAAS,CAACA,SAAV,CAAoBtB,MAAxC,EAAgDF,CAAC,EAAjD,EAAqD;AACnDD,IAAAA,KAAK,CAACO,IAAN,eACE,QAAC,QAAD;AAEE,MAAA,QAAQ,EAAEkB,SAAS,CAACA,SAAV,CAAoBxB,CAApB;AAFZ,OACOA,CADP;AAAA;AAAA;AAAA;AAAA,YADF;AAMD;;AACD,sBACE;AAAS,IAAA,EAAE,EAAC,OAAZ;AAAA,2BACE;AAAA,8BACE;AAAQ,QAAA,EAAE,EAAC,cAAX;AAAA,gCACE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,gBADF,eAEE;AAAG,UAAA,IAAI,EAAC,GAAR;AAAY,UAAA,KAAK,EAAC,OAAlB;AAA0B,UAAA,SAAS,EAAC,aAApC;AAAA,iCACE;AAAM,YAAA,SAAS,EAAC,SAAhB;AAA0B,yBAAU;AAApC;AAAA;AAAA;AAAA;AAAA;AADF;AAAA;AAAA;AAAA;AAAA,gBAFF;AAAA;AAAA;AAAA;AAAA;AAAA,cADF,eAQE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,cARF,eAUE;AAAK,QAAA,EAAE,EAAC,aAAR;AAAA,gCACE;AAAQ,wBAAW,YAAnB;AAAgC,UAAA,SAAS,EAAC,+BAA1C;AAA0E,UAAA,OAAO,EAAE0B,WAAnF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,gBADF,eAEE;AAAQ,wBAAW,SAAnB;AAA6B,UAAA,SAAS,EAAC,4BAAvC;AAAoE,UAAA,OAAO,EAAEA,WAA7E;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,gBAFF,eAGE;AAAQ,wBAAW,UAAnB;AAA8B,UAAA,SAAS,EAAC,6BAAxC;AAAsE,UAAA,OAAO,EAAEA,WAA/E;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,gBAHF,eAIE;AAAQ,wBAAW,KAAnB;AAAyB,UAAA,SAAS,EAAC,wBAAnC;AAA4D,UAAA,OAAO,EAAEA,WAArE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,gBAJF,eAKE;AAAQ,wBAAW,OAAnB;AAA2B,UAAA,SAAS,EAAC,0BAArC;AAAgE,UAAA,OAAO,EAAEA,WAAzE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,gBALF,eAME;AAAQ,wBAAW,MAAnB;AAA0B,UAAA,SAAS,EAAC,yBAApC;AAA8D,UAAA,OAAO,EAAEA,WAAvE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,gBANF,eAOE;AAAQ,wBAAW,SAAnB;AAA6B,UAAA,SAAS,EAAC,4BAAvC;AAAoE,UAAA,OAAO,EAAEA,WAA7E;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,gBAPF,eAQE;AAAQ,wBAAW,OAAnB;AAA2B,UAAA,SAAS,EAAC,0BAArC;AAAgE,UAAA,OAAO,EAAEA,WAAzE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,gBARF,eASE;AAAQ,wBAAW,OAAnB;AAA2B,UAAA,SAAS,EAAC,0BAArC;AAAgE,UAAA,OAAO,EAAEA,WAAzE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,gBATF,eAUE;AAAQ,wBAAW,MAAnB;AAA0B,UAAA,SAAS,EAAC,yBAApC;AAA8D,UAAA,OAAO,EAAEA,WAAvE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,gBAVF,eAWE;AAAQ,wBAAW,OAAnB;AAA2B,UAAA,SAAS,EAAC,0BAArC;AAAgE,UAAA,OAAO,EAAEA,WAAzE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,gBAXF,eAYE;AAAQ,wBAAW,WAAnB;AAA+B,UAAA,SAAS,EAAC,8BAAzC;AAAwE,UAAA,OAAO,EAAEA,WAAjF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,gBAZF,eAaE;AAAQ,wBAAW,QAAnB;AAA4B,UAAA,SAAS,EAAC,0BAAtC;AAAiE,UAAA,OAAO,EAAEA,WAA1E;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,gBAbF,eAcE;AAAQ,wBAAW,OAAnB;AAA2B,UAAA,SAAS,EAAC,0BAArC;AAAgE,UAAA,OAAO,EAAEA,WAAzE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,gBAdF,eAeE;AAAQ,wBAAW,OAAnB;AAA2B,UAAA,SAAS,EAAC,0BAArC;AAAgE,UAAA,OAAO,EAAEA,WAAzE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,gBAfF,eAgBE;AAAQ,wBAAW,MAAnB;AAA0B,UAAA,SAAS,EAAC,yBAApC;AAA8D,UAAA,OAAO,EAAEA,WAAvE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,gBAhBF;AAAA;AAAA;AAAA;AAAA;AAAA,cAVF,eA8BE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,cA9BF,eA+BI;AAAS,QAAA,EAAE,EAAC,WAAZ;AAAA,+BACE;AAAA,iCACE;AAAA,oCACE;AAAA,sCACE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,sBADF,eAEE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,sBAFF;AAAA;AAAA;AAAA;AAAA;AAAA,oBADF,EAKG3B,KALH;AAAA;AAAA;AAAA;AAAA;AAAA;AADF;AAAA;AAAA;AAAA;AAAA;AADF;AAAA;AAAA;AAAA;AAAA,cA/BJ,eA2CE;AAAQ,QAAA,EAAE,EAAC,cAAX;AAAA,gCACE;AAAG,UAAA,IAAI,EAAC,kCAAR;AAAA,iCAA2C;AAAM,YAAA,SAAS,EAAC,SAAhB;AAA0B,yBAAU;AAApC;AAAA;AAAA;AAAA;AAAA;AAA3C;AAAA;AAAA;AAAA;AAAA,gBADF,eAEE;AAAG,UAAA,IAAI,EAAC,kCAAR;AAAA,iCAA2C;AAAM,YAAA,SAAS,EAAC,SAAhB;AAA0B,yBAAU;AAApC;AAAA;AAAA;AAAA;AAAA;AAA3C;AAAA;AAAA;AAAA;AAAA,gBAFF,eAGE,QAAC,UAAD;AAAA;AAAA;AAAA;AAAA,gBAHF;AAAA;AAAA;AAAA;AAAA;AAAA,cA3CF;AAAA;AAAA;AAAA;AAAA;AAAA;AADF;AAAA;AAAA;AAAA;AAAA,UADF;AAqDD;;MAhEQwB,S;;AAkET,SAASI,UAAT,GAAsB;AACpB,MAAIC,SAAS,GAAGlD,YAAY,CAACC,OAAb,CAAqB,cAArB,CAAhB;AACAkD,EAAAA,OAAO,CAACC,GAAR,CAAYF,SAAZ;AACA,sBACE;AAAK,IAAA,SAAS,EAAC,QAAf;AAAA,4BACE;AAAO,MAAA,IAAI,EAAC,UAAZ;AAAuB,MAAA,EAAE,EAAC,aAA1B;AAAwC,MAAA,OAAO,EAAEA,SAAjD;AAA4D,MAAA,QAAQ,EAAEG;AAAtE;AAAA;AAAA;AAAA;AAAA,YADF,eAEE;AAAO,MAAA,GAAG,EAAC,aAAX;AAAA,6BAAyB;AAAM,QAAA,SAAS,EAAC,SAAhB;AAA0B,qBAAU;AAApC;AAAA;AAAA;AAAA;AAAA;AAAzB;AAAA;AAAA;AAAA;AAAA,YAFF;AAAA;AAAA;AAAA;AAAA;AAAA,UADF;AAMD;;OATQJ,U;;AAWT,SAASK,QAAT,CAAkBrC,KAAlB,EAAyB;AACvB,sBACE;AAAA,4BACE;AAAA,6BAAI;AAAG,QAAA,IAAI,EAAEA,KAAK,CAACsC,QAAN,CAAezB,GAAxB;AAAA,kBAA8Bb,KAAK,CAACsC,QAAN,CAAe1B;AAA7C;AAAA;AAAA;AAAA;AAAA;AAAJ;AAAA;AAAA;AAAA;AAAA,YADF,eAEE;AAAA,gBAAKZ,KAAK,CAACsC,QAAN,CAAeC;AAApB;AAAA;AAAA;AAAA;AAAA,YAFF;AAAA;AAAA;AAAA;AAAA;AAAA,UADF;AAMD;;OAPQF,Q;;AAST,SAASG,SAAT,GAAqB;AACnBC,EAAAA,iBAAiB;AACjB,sBACE;AAAK,IAAA,EAAE,EAAC,YAAR;AAAA,2BACE;AAAG,MAAA,SAAS,EAAC,KAAb;AAAmB,MAAA,IAAI,EAAC,QAAxB;AAAA,6BACE;AAAM,QAAA,SAAS,EAAC,cAAhB;AAA+B,qBAAU;AAAzC;AAAA;AAAA;AAAA;AAAA;AADF;AAAA;AAAA;AAAA;AAAA;AADF;AAAA;AAAA;AAAA;AAAA,UADF;AAOD;;OATQD,S;AAWT7D,QAAQ,CAAC+D,MAAT,eACE,QAAC,QAAD;AAAA;AAAA;AAAA;AAAA,QADF,EAEExD,QAAQ,CAACyD,cAAT,CAAwB,MAAxB,CAFF,E,CAKA;AACA;;AAEA,SAAShD,IAAT,GAAgB;AACd,MAAIiD,WAAW,GAAG,IAAIC,IAAJ,EAAlB;AACA,MAAIC,WAAW,GAAG;AAChBC,IAAAA,OAAO,EAAE,MADO;AAEhBC,IAAAA,IAAI,EAAE,SAFU;AAGhBC,IAAAA,KAAK,EAAE,MAHS;AAIhBC,IAAAA,GAAG,EAAE;AAJW,GAAlB;AAMA,MAAIvD,IAAI,GAAGiD,WAAW,CAACO,kBAAZ,CAA+B,OAA/B,EAAwCL,WAAxC,CAAX;AACA,SAAOnD,IAAP;AACD;;AACD,SAASyD,SAAT,CAAmBC,CAAnB,EAAsB;AACpB,MAAIA,CAAC,GAAG,EAAR,EAAY;AACV,WAAO,MAAMA,CAAb;AACD,GAFD,MAGK;AACH,WAAOA,CAAP;AACD;AACF;;AACD,SAASzD,KAAT,GAAiB;AACf,MAAI0D,WAAW,GAAG,IAAIT,IAAJ,EAAlB;AACA,MAAIjD,KAAK,GAAG2D,IAAI,CAACC,KAAL,CAAWF,WAAW,CAACG,QAAZ,KAAyB,CAApC,CAAZ;AACA,MAAIC,eAAe,GAAGH,IAAI,CAACC,KAAL,CAAWD,IAAI,CAACI,MAAL,KAAgB,GAA3B,CAAtB;;AACA,MAAIC,SAAS,GAAGC,OAAO,CAAC,iBAAD,CAAvB;;AACA,MAAIC,SAAS,GAAG,EAAhB;AACA,MAAIC,UAAU,GAAG,EAAjB;;AACA,OAAK,IAAI1D,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGuD,SAAS,CAACI,QAAV,CAAmBzD,MAAvC,EAA+CF,CAAC,EAAhD,EAAoD;AAClD,QAAIuD,SAAS,CAACI,QAAV,CAAmB3D,CAAnB,EAAsB4D,SAAtB,KAAoC,OAAxC,EAAiD;AAC/CH,MAAAA,SAAS,GAAGA,SAAS,CAACI,MAAV,CAAiBN,SAAS,CAACI,QAAV,CAAmB3D,CAAnB,CAAjB,CAAZ;AACD,KAFD,MAEO;AACL0D,MAAAA,UAAU,GAAGA,UAAU,CAACG,MAAX,CAAkBN,SAAS,CAACI,QAAV,CAAmB3D,CAAnB,CAAlB,CAAb;AACD;AACF;;AACD,MAAIqD,eAAe,GAAG,EAAtB,EAA0B;AACxB,WAAOI,SAAS,CAAClE,KAAD,CAAT,CAAiBuE,OAAxB;AACD,GAFD,MAEO;AACL,QAAIC,aAAa,GAAGb,IAAI,CAACC,KAAL,CAAWD,IAAI,CAACI,MAAL,KAAgBI,UAAU,CAACxD,MAAtC,CAApB;AACA,WAAOwD,UAAU,CAACK,aAAD,CAAV,CAA0BD,OAAjC;AACD;AACF;;AACD,SAASE,KAAT,GAAiB;AAAA;;AACf,QAAM,CAAC1E,IAAD,EAAO2E,OAAP,IAAkB7F,QAAQ,CAAC,IAAIoE,IAAJ,EAAD,CAAhC;;AAEA,WAAS0B,YAAT,GAAwB;AACtBD,IAAAA,OAAO,CAAC,IAAIzB,IAAJ,EAAD,CAAP;AACD;;AACDnE,EAAAA,SAAS,CAAC,MAAM;AACd,UAAM8F,OAAO,GAAGC,WAAW,CAACF,YAAD,EAAe,IAAf,CAA3B;AACA,WAAO,SAASG,OAAT,GAAmB;AACxBC,MAAAA,aAAa,CAACH,OAAD,CAAb;AACD,KAFD;AAGD,GALQ,EAKN,EALM,CAAT;AAOA,MAAII,IAAI,GAAGjF,IAAI,CAAC8D,QAAL,EAAX;AACA,MAAIoB,OAAO,GAAGlF,IAAI,CAACmF,UAAL,EAAd,CAde,CAef;;AACA,MAAIC,MAAM,GAAG,IAAb;AACAA,EAAAA,MAAM,GAAIH,IAAI,IAAI,EAAT,GAAe,IAAf,GAAsB,IAA/B;AACAA,EAAAA,IAAI,GAAIA,IAAI,KAAK,CAAV,GAAe,EAAf,GAAsBA,IAAI,GAAG,EAAR,GAAeA,IAAI,GAAG,EAAtB,GAA4BA,IAAxD;AACAC,EAAAA,OAAO,GAAGzB,SAAS,CAACyB,OAAD,CAAnB,CAnBe,CAoBf;;AACA,MAAIG,IAAI,GAAGJ,IAAI,GAAG,GAAP,GAAaC,OAAb,GAAuB,GAAvB,GAA6BE,MAAxC;AAEA,sBACE;AAAI,IAAA,EAAE,EAAC,OAAP;AAAA,cAAgBC;AAAhB;AAAA;AAAA;AAAA;AAAA,UADF;AAID;;GA3BQX,K;;OAAAA,K;;AA4BT,SAASlE,OAAT,GAAmB;AACjB,MAAI8E,YAAY,GAAGpB,OAAO,CAAC,aAAD,CAA1B;;AACA,SAAOoB,YAAP;AACD;;AACD,SAAS5D,QAAT,GAAoB;AAClB,MAAIG,KAAK,GAAGqC,OAAO,CAAC,cAAD,CAAnB;;AACA,SAAOrC,KAAP;AACD;;AACD,SAASM,YAAT,GAAwB;AACtB,MAAID,SAAS,GAAGgC,OAAO,CAAC,kBAAD,CAAvB;;AACA,SAAOhC,SAAP;AACD;;AACD,SAASqD,SAAT,GAAqB;AACnB,MAAIC,MAAM,GAAGtB,OAAO,CAAC,eAAD,CAApB;;AACA,SAAOsB,MAAP;AACD;;AACD,SAASpD,WAAT,CAAqBqD,CAArB,EAAwB;AACtB,MAAID,MAAM,GAAGD,SAAS,EAAtB;AACA,MAAIG,SAAS,GAAGD,CAAC,CAACE,MAAF,CAASC,SAAT,CAAmBC,WAAnB,EAAhB;AACA,MAAIC,KAAK,GAAGN,MAAM,CAACA,MAAP,CAAcO,SAAd,CAAwB,UAASC,IAAT,EAAetF,CAAf,EAAiB;AACnD,WAAOsF,IAAI,CAAC/E,IAAL,KAAcyE,SAArB;AACD,GAFW,CAAZ;AAGAtG,EAAAA,YAAY,CAAC6G,OAAb,CAAqB,kBAArB,EAAyCT,MAAM,CAACA,MAAP,CAAcM,KAAd,EAAqBI,eAA9D;AACA9G,EAAAA,YAAY,CAAC6G,OAAb,CAAqB,kBAArB,EAAyCT,MAAM,CAACA,MAAP,CAAcM,KAAd,EAAqBK,eAA9D;AACA/G,EAAAA,YAAY,CAAC6G,OAAb,CAAqB,yBAArB,EAAgDT,MAAM,CAACA,MAAP,CAAcM,KAAd,EAAqBM,qBAArE;AACAhH,EAAAA,YAAY,CAAC6G,OAAb,CAAqB,gBAArB,EAAsCT,MAAM,CAACA,MAAP,CAAcM,KAAd,EAAqBO,YAA3D;AACAjH,EAAAA,YAAY,CAAC6G,OAAb,CAAqB,gBAArB,EAAuCT,MAAM,CAACA,MAAP,CAAcM,KAAd,EAAqBQ,YAA5D;AACAlH,EAAAA,YAAY,CAAC6G,OAAb,CAAqB,cAArB,EAAqCT,MAAM,CAACA,MAAP,CAAcM,KAAd,EAAqBS,WAA1D,EAXsB,CAatB;;AACAxG,EAAAA,QAAQ;AACT;;AACD,SAASA,QAAT,GAAoB;AAClBd,EAAAA,wBAAwB,CAAC,kBAAD,CAAxB;AACAA,EAAAA,wBAAwB,CAAC,kBAAD,CAAxB;AACAA,EAAAA,wBAAwB,CAAC,yBAAD,CAAxB;AACAA,EAAAA,wBAAwB,CAAC,gBAAD,CAAxB;AACAA,EAAAA,wBAAwB,CAAC,gBAAD,CAAxB;AACAA,EAAAA,wBAAwB,CAAC,cAAD,CAAxB;AACAA,EAAAA,wBAAwB,CAAC,iBAAD,CAAxB;AACD;;AACD,SAASkB,cAAT,CAAwBsF,CAAxB,EAA2B;AACzB,MAAIe,MAAM,GAAG,CAAb;AACA,MAAIC,KAAK,GAAG,KAAZ;AACA,MAAIC,GAAG,GAAGjB,CAAC,CAACkB,OAAF,IAAalB,CAAC,CAACmB,KAAzB;AACA,MAAIC,IAAI,GAAGpB,CAAC,CAACE,MAAF,CAASxG,KAAT,CAAe2H,UAAf,CAA0B,GAA1B,EAA+B,KAA/B,CAAX;AACA,MAAIC,MAAM,GAAGF,IAAI,CAACG,MAAL,CAAY,CAAZ,EAAeH,IAAI,CAACI,OAAL,CAAa,GAAb,IAAoB,CAAnC,KAAyCJ,IAAI,CAACG,MAAL,CAAY,CAAZ,CAAtD;AACA,MAAIE,OAAO,GAAGL,IAAI,CAACG,MAAL,CAAY,IAAID,MAAM,CAACnG,MAAvB,CAAd;;AACA,MAAI8F,GAAG,IAAI,EAAX,EAAe;AAAE;AACbS,IAAAA,MAAM,CAACN,IAAD,CAAN;AACH;;AACD,MAAIH,GAAG,IAAI,CAAX,EAAc;AAAE;AACZjB,IAAAA,CAAC,CAAC2B,cAAF;AACA3B,IAAAA,CAAC,CAAC4B,eAAF;;AACA,QAAIR,IAAI,CAAC,CAAD,CAAJ,KAAY,GAAhB,EAAqB;AACjB,cAAQE,MAAR;AACI,aAAK,GAAL;AACI,cAAIO,SAAS,GAAG,CAAC,eAAD,EAAkB,aAAlB,EAAiC,QAAjC,CAAhB;;AACA,cAAI,CAACJ,OAAD,IAAYT,KAAhB,EAAuB;AACnBA,YAAAA,KAAK,GAAG,IAAR;AACA,gBAAID,MAAM,GAAGc,SAAS,CAAC1G,MAAV,GAAmB,CAAhC,EAAmC4F,MAAM,GAAG,CAAT;AACnCjH,YAAAA,QAAQ,CAACyD,cAAT,CAAwB,UAAxB,EAAoC7D,KAApC,GAA4C,QAAQmI,SAAS,CAACd,MAAM,EAAP,CAA7D;AACA;AACH;;AACD,eAAK,IAAIe,QAAT,IAAqBD,SAArB,EAAgC;AAC5B,gBAAIJ,OAAO,KAAKK,QAAQ,CAACP,MAAT,CAAgB,CAAhB,EAAmBE,OAAO,CAACtG,MAA3B,CAAhB,EAAoD;AAChDrB,cAAAA,QAAQ,CAACyD,cAAT,CAAwB,UAAxB,EAAoC7D,KAApC,GAA4C,QAAQoI,QAApD;AACA;AACH;AACJ;;AACD;AAfR;AAiBH;AACJ;;AACD,MAAGb,GAAG,IAAI,EAAV,EAAa;AAAE;AACjBc,IAAAA,WAAW,CAACX,IAAD,CAAX;AACG;;AACDL,EAAAA,MAAM,GAAG,CAAT;AACAC,EAAAA,KAAK,GAAG,KAAR;AACAe,EAAAA,WAAW,CAACX,IAAD,CAAX;AACD;;AACD,SAASW,WAAT,CAAqBX,IAArB,EAA2B;AACzB,MAAIE,MAAM,GAAGF,IAAI,CAACG,MAAL,CAAY,CAAZ,EAAeH,IAAI,CAACI,OAAL,CAAa,GAAb,IAAoB,CAAnC,KAAyCJ,IAAI,CAACG,MAAL,CAAY,CAAZ,CAAtD;;AACA,MAAIH,IAAI,CAAC,CAAD,CAAJ,KAAY,GAAhB,EAAqB;AACvB;AACU,YAAQE,MAAR;AACI,WAAK,IAAL;AACIxH,QAAAA,QAAQ,CAACyD,cAAT,CAAwB,YAAxB,EAAsC4C,SAAtC,GAAkD,iBAAlD;AACA;;AAChB,WAAK,GAAL;AACIrG,QAAAA,QAAQ,CAACyD,cAAT,CAAwB,YAAxB,EAAsC4C,SAAtC,GAAkD,qBAAlD;AACA;;AACJ,WAAK,IAAL;AACIrG,QAAAA,QAAQ,CAACyD,cAAT,CAAwB,YAAxB,EAAsC4C,SAAtC,GAAkD,gBAAlD;AACA;;AACJ,WAAK,GAAL;AACIrG,QAAAA,QAAQ,CAACyD,cAAT,CAAwB,YAAxB,EAAsC4C,SAAtC,GAAkD,aAAlD;AACA;;AACJ,WAAK,GAAL;AACIrG,QAAAA,QAAQ,CAACyD,cAAT,CAAwB,YAAxB,EAAsC4C,SAAtC,GAAkD,mBAAlD;AACA;;AACJ,WAAK,GAAL;AACIrG,QAAAA,QAAQ,CAACyD,cAAT,CAAwB,YAAxB,EAAsC4C,SAAtC,GAAkD,eAAlD;AACA;;AACJ,WAAK,GAAL;AACIrG,QAAAA,QAAQ,CAACyD,cAAT,CAAwB,YAAxB,EAAsC4C,SAAtC,GAAkD,cAAlD;AACA;;AACJ,WAAK,IAAL;AACIrG,QAAAA,QAAQ,CAACyD,cAAT,CAAwB,YAAxB,EAAsC4C,SAAtC,GAAkD,mBAAlD;AACA;;AACJ,WAAK,GAAL;AACIrG,QAAAA,QAAQ,CAACyD,cAAT,CAAwB,YAAxB,EAAsC4C,SAAtC,GAAkD,gBAAlD;AACA;;AACJ,WAAK,IAAL;AACIrG,QAAAA,QAAQ,CAACyD,cAAT,CAAwB,YAAxB,EAAsC4C,SAAtC,GAAkD,gBAAlD;AACA;;AACJ,WAAK,GAAL;AACIrG,QAAAA,QAAQ,CAACyD,cAAT,CAAwB,YAAxB,EAAsC4C,SAAtC,GAAkD,cAAlD;AACA;;AACJ,WAAK,GAAL;AACIrG,QAAAA,QAAQ,CAACyD,cAAT,CAAwB,YAAxB,EAAsC4C,SAAtC,GAAkD,gBAAlD;AACA;;AACJ,WAAK,GAAL;AACIrG,QAAAA,QAAQ,CAACyD,cAAT,CAAwB,YAAxB,EAAsC4C,SAAtC,GAAkD,kBAAlD;AACA;;AACJ,WAAK,GAAL;AACIrG,QAAAA,QAAQ,CAACyD,cAAT,CAAwB,YAAxB,EAAsC4C,SAAtC,GAAkD,aAAlD;AACA;;AACJ,WAAK,IAAL;AACIrG,QAAAA,QAAQ,CAACyD,cAAT,CAAwB,YAAxB,EAAsC4C,SAAtC,GAAkD,wBAAlD;AACA;;AACJ;AACIrG,QAAAA,QAAQ,CAACyD,cAAT,CAAwB,YAAxB,EAAsC4C,SAAtC,GAAkD,gBAAlD;AACA;AAhDI;AAkDT,GApDC,MAoDI;AACJrG,IAAAA,QAAQ,CAACyD,cAAT,CAAwB,YAAxB,EAAsC4C,SAAtC,GAAkD,eAAlD;AACC;AACF;;AACD,SAASuB,MAAT,CAAgBN,IAAhB,EAAsB;AACpB,MAAIE,MAAM,GAAGF,IAAI,CAACG,MAAL,CAAY,CAAZ,EAAeH,IAAI,CAACI,OAAL,CAAa,GAAb,IAAoB,CAAnC,KAAyCJ,IAAI,CAACG,MAAL,CAAY,CAAZ,CAAtD;AACA,MAAIE,OAAO,GAAGL,IAAI,CAACG,MAAL,CAAY,IAAID,MAAM,CAACnG,MAAvB,CAAd;;AACA,MAAIiG,IAAI,CAAC,CAAD,CAAJ,KAAY,GAAhB,EAAqB;AACjB,QAAIA,IAAI,CAACI,OAAL,CAAa,GAAb,IAAoB,CAAC,CAAzB,EAA4B;AACxB,cAAQF,MAAR;AACI,aAAK,IAAL;AACIU,UAAAA,MAAM,CAACC,QAAP,GAAkB,yCAAyCR,OAA3D;AACA;;AACJ,aAAK,GAAL;AACIO,UAAAA,MAAM,CAACC,QAAP,GAAkB,+BAA+BR,OAAjD;AACA;;AACJ,aAAK,IAAL;AACIO,UAAAA,MAAM,CAACC,QAAP,GAAkB,uCAAuCR,OAAzD;AACA;;AACJ,aAAK,GAAL;AACIO,UAAAA,MAAM,CAACC,QAAP,GAAkB,iCAAiCR,OAAnD;AACA;;AACJ,aAAK,GAAL;AACIO,UAAAA,MAAM,CAACC,QAAP,GAAkB,6CAA6CR,OAA/D;AACA;;AACJ,aAAK,GAAL;AACIO,UAAAA,MAAM,CAACC,QAAP,GAAkB,qCAAqCR,OAAvD;AACA;;AACJ,aAAK,GAAL;AACIO,UAAAA,MAAM,CAACC,QAAP,GAAkB,8BAA8BR,OAAhD;AACA;;AACJ,aAAK,IAAL;AACIO,UAAAA,MAAM,CAACC,QAAP,GAAkB,qCAAqCR,OAAvD;AACA;;AACJ,aAAK,GAAL;AACIO,UAAAA,MAAM,CAACC,QAAP,GAAkB,6CAA6CR,OAA/D;AACA;;AACJ,aAAK,GAAL;AACIO,UAAAA,MAAM,CAACC,QAAP,GAAkB,mCAAmCR,OAArD;AACA;;AACJ,aAAK,IAAL;AACIO,UAAAA,MAAM,CAACC,QAAP,GAAkB,0CAA0CR,OAA5D;AACA;;AACJ,aAAK,GAAL;AACIO,UAAAA,MAAM,CAACC,QAAP,GAAkB,kDAAkDR,OAApE;AACA;;AACJ,aAAK,GAAL;AACIO,UAAAA,MAAM,CAACC,QAAP,GAAkB,iDAAiDR,OAAnE;AACA;;AACJ,aAAK,GAAL;AACIO,UAAAA,MAAM,CAACC,QAAP,GAAkB,iDAAiDR,OAAnE;AACA;;AACJ,aAAK,IAAL;AACIO,UAAAA,MAAM,CAACC,QAAP,GAAkB,kDAAkDR,OAApE;AACA;AA7CR;AA+CH,KAhDD,MAgDO;AACH,UAAIH,MAAM,GAAGF,IAAI,CAACG,MAAL,CAAY,CAAZ,CAAb;;AACA,cAAQD,MAAR;AACI,aAAK,GAAL;AACIU,UAAAA,MAAM,CAACC,QAAP,GAAkB,4BAAlB;AACA;;AACJ,aAAK,GAAL;AACID,UAAAA,MAAM,CAACC,QAAP,GAAkB,yBAAlB;AACA;;AACJ,aAAK,GAAL;AACID,UAAAA,MAAM,CAACC,QAAP,GAAkB,oBAAlB;AACA;;AACJ,aAAK,GAAL;AACID,UAAAA,MAAM,CAACC,QAAP,GAAkB,0BAAlB;AACA;AAZR;AAcH;AACJ,GAlED,MAkEO,IAAIC,QAAQ,CAACd,IAAD,CAAZ,EAAoB;AACvB,QAAIe,gBAAgB,CAACf,IAAD,CAApB,EACIY,MAAM,CAACC,QAAP,GAAkBb,IAAlB,CADJ,KAGIY,MAAM,CAACC,QAAP,GAAkB,aAAab,IAA/B;AACP,GALM,MAKA;AACHY,IAAAA,MAAM,CAACC,QAAP,GAAkB,qCAAqCb,IAAvD;AACH;AACF;;AACD,SAASc,QAAT,CAAkBE,GAAlB,EAAuB;AACrB,MAAIC,OAAO,GAAG,IAAIC,MAAJ,CAAW,sBAAsB;AAC3C,oDADqB,GACgC;AACrD,+BAFqB,GAEW;AAChC,mCAHqB,GAGe;AACpC,4BAJqB,GAIQ;AAC7B,sBALU,EAKY,GALZ,CAAd,CADqB,CAMW;;AAChC,SAAO,CAAC,CAACD,OAAO,CAACE,IAAR,CAAaH,GAAb,CAAT;AACD;;AACD,SAASD,gBAAT,CAA0BC,GAA1B,EAA+B;AAC7B,MAAIC,OAAO,GAAG,IAAIC,MAAJ,CAAW,uBAAX,EAAoC,GAApC,CAAd;AACA,SAAO,CAAC,CAACD,OAAO,CAACE,IAAR,CAAaH,GAAb,CAAT;AACD;;AACDI,MAAM,CAACC,SAAP,CAAiBpB,UAAjB,GAA8B,UAASK,MAAT,EAAiBgB,WAAjB,EAA8B;AAC1D,MAAIxC,MAAM,GAAG,IAAb;AACA,SAAOA,MAAM,CAACyC,KAAP,CAAajB,MAAb,EAAqBkB,IAArB,CAA0BF,WAA1B,CAAP;AACD,CAHD;;AAIA,SAAS1F,oBAAT,CAA8BgD,CAA9B,EAAiC;AAC/BrG,EAAAA,YAAY,CAAC6G,OAAb,CAAqB,aAArB,EAAoCR,CAAC,CAACE,MAAF,CAAS2C,OAA7C;;AACA,MAAI7C,CAAC,CAACE,MAAF,CAAS2C,OAAb,EAAsB;AACpBlJ,IAAAA,YAAY,CAAC6G,OAAb,CAAqB,iBAArB,EAAwC,MAAxC;AACD,GAFD,MAEO;AACL7G,IAAAA,YAAY,CAAC6G,OAAb,CAAqB,iBAArB,EAAwC,OAAxC;AACD;;AACDnD,EAAAA,iBAAiB;AAClB;;AACD,SAASA,iBAAT,GAA6B;AAC3B7D,EAAAA,wBAAwB,CAAC,aAAD,CAAxB;AACAA,EAAAA,wBAAwB,CAAC,iBAAD,CAAxB;AACD","sourcesContent":["import React from 'react';\nimport { useState, useEffect } from 'react';\nimport ReactDOM from 'react-dom';\nimport './index.css';\n\nconst setValueFromLocalStorage = property => {\n let value = localStorage.getItem(property);\n setValue(property, value);\n};\nconst setValue = (property, value) => {\n if (value) {\n document.documentElement.style.setProperty(`--${property}`, value);\n\n const input = document.querySelector(`#${property}`);\n if (input) {\n value = value.replace('px', '');\n input.value = value;\n }\n }\n};\n\nfunction Homepage() {\n setTheme();\n \n return (\n \n \n \n
\n \n \n
\n \n \n \n
\n \n \n
\n \n \n
\n \n );\n}\n\nfunction Search() {\n return (\n \n )\n}\n\nfunction Header(props) {\n return (\n \n );\n}\n\nfunction Applications() {\n let appList = getApps();\n var items = [];\n for (var i = 0; i < appList.apps.length; i++) {\n var safe = appList.apps[i].NSFW;\n var NSFWEnabled = localStorage.getItem(\"contenttype\");\n if (safe === \"SAFE\") {\n items.push(\n \n );\n } else if (safe === \"NSFW\" && NSFWEnabled) {\n items.push(\n \n );\n } else {\n \n }\n \n }\n return (\n \n Applications
\n \n {items}\n
\n \n );\n}\n\nfunction App(props) {\n \n let classNameType = props.NSFW + \"-content\";\n let hrefUrl = \"https://\" + props.url;\n let iconName = \"mdi-\" + props.icon;\n return (\n \n );\n}\n\nfunction Bookmarks() {\n let bookmarkList = getLinks();\n var items = [];\n for (var i = 0; i < bookmarkList.bookmarks.length; i++) {\n items.push(\n \n );\n }\n return (\n \n Bookmarks
\n \n {items}\n
\n \n );\n}\n\nfunction LinkGroups(props) {\n var items = [];\n for (var i = 0; i < props.links.length; i++) {\n items.push(\n \n );\n }\n return (\n \n
{props.category}
\n {items}\n \n );\n}\n\nfunction LinkItem(props) {\n return (\n \n );\n}\n\nfunction ModalMenu() {\n var providers = getProviders();\n var items = [];\n for (var i = 0; i < providers.providers.length; i++) {\n items.push(\n \n );\n }\n return (\n \n \n \n\n
Color themes
\n\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n\n\n
Search options
\n
\n \n \n \n | Website | \n Prefix | \n
\n {items}\n \n
\n \n\n \n
\n \n );\n}\n\nfunction HideButton() {\n var isChecked = localStorage.getItem(\"content-type\");\n console.log(isChecked);\n return(\n \n \n \n
\n );\n}\n\nfunction Provider(props) {\n return (\n \n | {props.provider.name} | \n {props.provider.prefix} | \n
\n );\n}\n\nfunction ModalInit() {\n setDisplayedItems();\n return (\n \n );\n}\n\nReactDOM.render(\n ,\n document.getElementById('root')\n);\n\n//Functions below this line are for calculating data for\n//other functions\n\nfunction date() {\n let currentDate = new Date();\n let dateOptions = {\n weekday: \"long\",\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\"\n };\n let date = currentDate.toLocaleDateString(\"en-GB\", dateOptions);\n return date;\n}\nfunction fixDigits(k) {\n if (k < 10) {\n return \"0\" + k;\n }\n else {\n return k;\n }\n}\nfunction greet() {\n let currentTime = new Date();\n let greet = Math.floor(currentTime.getHours() / 6);\n let easterEggChance = Math.floor(Math.random() * 100);\n let greetings = require('./messages.json');\n let timeBased = [];\n let easterEggs = [];\n for (var i = 0; i < greetings.messages.length; i++) {\n if (greetings.messages[i].easteregg === \"FALSE\") {\n timeBased = timeBased.concat(greetings.messages[i]);\n } else {\n easterEggs = easterEggs.concat(greetings.messages[i]);\n }\n }\n if (easterEggChance > 10) {\n return timeBased[greet].message;\n } else {\n let easterEggText = Math.floor(Math.random() * easterEggs.length);\n return easterEggs[easterEggText].message;\n }\n}\nfunction Clock() {\n const [date, setDate] = useState(new Date());\n\n function refreshClock() {\n setDate(new Date());\n }\n useEffect(() => {\n const timerId = setInterval(refreshClock, 1000);\n return function cleanup() {\n clearInterval(timerId);\n };\n }, []);\n\n var hour = date.getHours();\n var minutes = date.getMinutes();\n //var seconds = date.getSeconds();\n var midday = \"AM\";\n midday = (hour >= 12) ? \"PM\" : \"AM\";\n hour = (hour === 0) ? 12 : ((hour > 12) ? (hour - 12) : hour);\n minutes = fixDigits(minutes);\n //seconds = fixDigits(seconds);\n let time = hour + \":\" + minutes + \" \" + midday;\n\n return (\n {time}
\n\n );\n}\nfunction getApps() {\n let applications = require('./apps.json');\n return applications;\n}\nfunction getLinks() {\n let links = require('./links.json');\n return links;\n}\nfunction getProviders() {\n let providers = require('./providers.json');\n return providers;\n}\nfunction getThemes() {\n let themes = require('./themes.json');\n return themes;\n}\nfunction updateTheme(e) {\n var themes = getThemes();\n var themeName = e.target.innerHTML.toLowerCase();\n var index = themes.themes.findIndex(function(item, i){\n return item.name === themeName\n });\n localStorage.setItem(\"image-background\", themes.themes[index].imagebackground);\n localStorage.setItem(\"color-background\", themes.themes[index].colorbackground);\n localStorage.setItem(\"color-search-background\", themes.themes[index].colorserachbackground);\n localStorage.setItem(\"color-text-pri\",themes.themes[index].colortextpri);\n localStorage.setItem(\"color-text-acc\", themes.themes[index].colortextacc);\n localStorage.setItem(\"color-border\", themes.themes[index].colorborder);\n \n //document.documentElement.style.setProperty(prop, `var(--${themeName}${prop.substring(10)})`);\n setTheme();\n}\nfunction setTheme() {\n setValueFromLocalStorage('image-background');\n setValueFromLocalStorage('color-background');\n setValueFromLocalStorage('color-search-background');\n setValueFromLocalStorage('color-text-pri');\n setValueFromLocalStorage('color-text-acc');\n setValueFromLocalStorage('color-border');\n setValueFromLocalStorage('content-display');\n}\nfunction handleKeyPress(e) {\n var sindex = 0;\n var cycle = false;\n var key = e.keyCode || e.which;\n var text = e.target.value.replaceAll(\"+\", \"%2B\");\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n if (key == 13) { // Search functions\n search(text);\n }\n if (key == 9) { // Tab Completion Functions\n e.preventDefault();\n e.stopPropagation();\n if (text[0] === ';') {\n switch (option) {\n case 't':\n var streamers = ['admiralbahroo', 'moonmoon_ow', 'witwix'];\n if (!subtext || cycle) {\n cycle = true;\n if (sindex > streamers.length - 1) sindex = 0;\n document.getElementById(\"keywords\").value = ';t ' + streamers[sindex++];\n return;\n }\n for (var streamer of streamers) {\n if (subtext === streamer.substr(0, subtext.length)) {\n document.getElementById(\"keywords\").value = ';t ' + streamer;\n return;\n }\n }\n break;\n }\n }\n }\n if(key == 32){ //Space to go to search\nupdateLabel(text);\n }\n sindex = 0;\n cycle = false;\n updateLabel(text);\n}\nfunction updateLabel(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n if (text[0] === '/') {\n// if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n document.getElementById(\"searchType\").innerHTML = \"Allmusic search\";\n break;\n case \"d\":\n document.getElementById(\"searchType\").innerHTML = \"Duck Duck Go search\";\n break;\n case \"di\":\n document.getElementById(\"searchType\").innerHTML = \"Discogs search\";\n break;\n case \"i\":\n document.getElementById(\"searchType\").innerHTML = \"IMDB search\";\n break;\n case \"m\":\n document.getElementById(\"searchType\").innerHTML = \"TheMovieDB search\";\n break;\n case \"r\":\n document.getElementById(\"searchType\").innerHTML = \"Reddit search\";\n break;\n case \"q\":\n document.getElementById(\"searchType\").innerHTML = \"Qwant search\";\n break;\n case \"so\":\n document.getElementById(\"searchType\").innerHTML = \"Soundcloud search\";\n break;\n case \"s\":\n document.getElementById(\"searchType\").innerHTML = \"Spotify search\";\n break;\n case \"tv\":\n document.getElementById(\"searchType\").innerHTML = \"TheTVDB search\";\n break;\n case \"t\":\n document.getElementById(\"searchType\").innerHTML = \"Trakt search\";\n break;\n case \"y\":\n document.getElementById(\"searchType\").innerHTML = \"YouTube search\";\n break;\n case \"w\":\n document.getElementById(\"searchType\").innerHTML = \"Wikipedia search\";\n break;\n case \"p\":\n document.getElementById(\"searchType\").innerHTML = \"Plex search\";\n break;\n case \"rt\":\n document.getElementById(\"searchType\").innerHTML = \"Rotten Tomatoes search\";\n break;\n default:\n document.getElementById(\"searchType\").innerHTML = \"Invalid search\";\n break;\n }\n}else {\n document.getElementById(\"searchType\").innerHTML = \"Google search\";\n }\n}\nfunction search(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n if (text[0] === '/') {\n if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n window.location = \"https://www.allmusic.com/search/all/\" + subtext;\n break;\n case \"d\":\n window.location = \"https://duckduckgo.com/?q=\" + subtext;\n break;\n case \"di\":\n window.location = \"https://www.discogs.com/search/?q=\" + subtext;\n break;\n case \"i\":\n window.location = \"https://www.imdb.com/find?q=\" + subtext;\n break;\n case \"m\":\n window.location = \"https://www.themoviedb.org/search?query=\" + subtext;\n break;\n case \"r\":\n window.location = \"https://www.reddit.com/search?q=\" + subtext;\n break;\n case \"q\":\n window.location = \"https://www.qwant.com/?q=\" + subtext;\n break;\n case \"so\":\n window.location = \"https://soundcloud.com/search?q=\" + subtext;\n break;\n case \"s\":\n window.location = \"https://open.spotify.com/search/results/\" + subtext;\n break;\n case \"t\":\n window.location = \"https://trakt.tv/search?query=\" + subtext;\n break;\n case \"tv\":\n window.location = \"https://www.thetvdb.com/search?query=\" + subtext;\n break;\n case \"y\":\n window.location = \"https://www.youtube.com/results?search_query=\" + subtext;\n break;\n case \"w\":\n window.location = \"https://en.wikipedia.org/w/index.php?search=\" + subtext;\n break;\n case \"p\":\n window.location = \"https://app.plex.tv/desktop/#!/search?query=\" + subtext;\n break;\n case \"rt\":\n window.location = \"https://www.rottentomatoes.com/search?search=\" + subtext;\n break;\n }\n } else {\n var option = text.substr(1);\n switch (option) {\n case \"d\":\n window.location = \"https://www.duckduckgo.com\";\n break;\n case \"y\":\n window.location = \"https://www.youtube.com\";\n break;\n case \"r\":\n window.location = \"https://reddit.com\";\n break;\n case \"s\":\n window.location = \"https://open.spotify.com\";\n break;\n }\n }\n } else if (validURL(text)) {\n if (containsProtocol(text))\n window.location = text;\n else\n window.location = \"https://\" + text;\n } else {\n window.location = \"https://www.google.com/search?q=\" + text;\n }\n}\nfunction validURL(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/)?' + // protocol\n '((([a-z\\\\d]([a-z\\\\d-]*[a-z\\\\d])*)\\\\.)+[a-z]{2,}|' + // domain name\n '((\\\\d{1,3}\\\\.){3}\\\\d{1,3}))' + // OR ip (v4) address\n '(\\\\:\\\\d+)?(\\\\/[-a-z\\\\d%_.~+]*)*' + // port and path\n '(\\\\?[;&a-z\\\\d%_.~+=-]*)?' + // query string\n '(\\\\#[-a-z\\\\d_]*)?$', 'i'); // fragment locator\n return !!pattern.test(str);\n}\nfunction containsProtocol(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/){1}.*', 'i');\n return !!pattern.test(str);\n}\nString.prototype.replaceAll = function(search, replacement) {\n var target = this;\n return target.split(search).join(replacement);\n};\nfunction udpateDisplayedItems(e) {\n localStorage.setItem('contenttype', e.target.checked);\n if (e.target.checked) {\n localStorage.setItem('content-display', 'none');\n } else {\n localStorage.setItem('content-display', 'block');\n }\n setDisplayedItems();\n}\nfunction setDisplayedItems() {\n setValueFromLocalStorage('contenttype');\n setValueFromLocalStorage('content-display');\n}"]},"metadata":{},"sourceType":"module"}
\ No newline at end of file
diff --git a/node_modules/.cache/babel-loader/bafc1a12836e9da19d34a111fba9ac4b.json b/node_modules/.cache/babel-loader/bafc1a12836e9da19d34a111fba9ac4b.json
new file mode 100644
index 00000000..1d878a87
--- /dev/null
+++ b/node_modules/.cache/babel-loader/bafc1a12836e9da19d34a111fba9ac4b.json
@@ -0,0 +1 @@
+{"ast":null,"code":"var _jsxFileName = \"/home/seanedmunds/dev/home-page/src/index.js\",\n _s = $RefreshSig$();\n\nimport React from 'react';\nimport { useState, useEffect } from 'react';\nimport ReactDOM from 'react-dom'; //import { unstable_createPortal } from 'react-dom';\n\nimport './index.css';\nimport { jsxDEV as _jsxDEV } from \"react/jsx-dev-runtime\";\n\nconst setValueFromLocalStorage = property => {\n let value = localStorage.getItem(property);\n setValue(property, value);\n};\n\nconst setValue = (property, value) => {\n if (value) {\n document.documentElement.style.setProperty(`--${property}`, value);\n const input = document.querySelector(`#${property}`);\n\n if (input) {\n value = value.replace('px', '');\n input.value = value;\n }\n }\n};\n\nfunction Homepage() {\n setTheme();\n return /*#__PURE__*/_jsxDEV(\"main\", {\n id: \"container\",\n className: \"fade\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Search, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 28,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 27,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Header, {\n date: date(),\n greet: greet()\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 31,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 30,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Applications, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 37,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 36,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Bookmarks, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 40,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 39,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(ModalMenu, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 43,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 42,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(ModalInit, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 46,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 45,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 26,\n columnNumber: 5\n }, this);\n}\n\n_c = Homepage;\n\nfunction Search() {\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"search\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"abackground\",\n children: [/*#__PURE__*/_jsxDEV(\"input\", {\n name: \"keywords\",\n type: \"text\",\n className: \"keyword\",\n id: \"keywords\",\n size: \"50\",\n spellCheck: \"true\",\n placeholder: \"\"\n /*onFocus={this.placeholder = \"\"} onBlur={this.placeholder = ''}*/\n ,\n autoComplete: \"off\",\n autoFocus: true,\n onKeyUp: handleKeyPress\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 56,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n id: \"searchType\",\n className: \"Input-label\",\n children: \"Google search\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 57,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 55,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 54,\n columnNumber: 5\n }, this);\n}\n\n_c2 = Search;\n\nfunction Header(props) {\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"header\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n id: \"greeting_block\",\n children: /*#__PURE__*/_jsxDEV(\"h1\", {\n id: \"header_greet\",\n children: props.greet\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 67,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 66,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"date_block\",\n children: [/*#__PURE__*/_jsxDEV(\"h2\", {\n id: \"header_date\",\n children: props.date\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 70,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(Clock, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 71,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 69,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 65,\n columnNumber: 5\n }, this);\n}\n\n_c3 = Header;\n\nfunction Applications() {\n let appList = getApps();\n var items = [];\n\n for (var i = 0; i < appList.apps.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(App, {\n name: appList.apps[i].name,\n url: appList.apps[i].url,\n icon: appList.apps[i].icon,\n NSFW: appList.apps[i].NSFW\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 82,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"apps\",\n children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n children: \"Applications\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 93,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"apps_loop\",\n children: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 94,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 92,\n columnNumber: 5\n }, this);\n}\n\n_c4 = Applications;\n\nfunction App(props) {\n var safe = props.NSFW;\n var NSFWEnabled = localStorage.getItem(\"contenttype\");\n console.log(safe);\n\n if (safe === \"NSFW\" && !NSFWEnabled) {\n return /*#__PURE__*/_jsxDEV(\"div\", {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 107,\n columnNumber: 7\n }, this);\n } else {\n let classNameType = props.NSFW + \"-content\";\n let hrefUrl = \"https://\" + props.url;\n let iconName = \"mdi-\" + props.icon;\n return /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: hrefUrl,\n className: classNameType,\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_item\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_icon\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify icon\",\n \"data-icon\": iconName\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 118,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 117,\n columnNumber: 13\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_text\",\n children: [/*#__PURE__*/_jsxDEV(\"span\", {\n id: \"app-name\",\n children: props.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 121,\n columnNumber: 15\n }, this), /*#__PURE__*/_jsxDEV(\"span\", {\n id: \"app-address\",\n children: props.url\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 122,\n columnNumber: 15\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 120,\n columnNumber: 13\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 116,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 115,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 114,\n columnNumber: 7\n }, this);\n }\n}\n\n_c5 = App;\n\nfunction Bookmarks() {\n let bookmarkList = getLinks();\n var items = [];\n\n for (var i = 0; i < bookmarkList.bookmarks.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(LinkGroups, {\n category: bookmarkList.bookmarks[i].category,\n links: bookmarkList.bookmarks[i].links\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 137,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"links\",\n children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n children: \"Bookmarks\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 146,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"links_loop\",\n children: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 147,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 145,\n columnNumber: 5\n }, this);\n}\n\n_c6 = Bookmarks;\n\nfunction LinkGroups(props) {\n var items = [];\n\n for (var i = 0; i < props.links.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(LinkItem, {\n link: props.links[i]\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 158,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"links_item\",\n children: [/*#__PURE__*/_jsxDEV(\"h4\", {\n children: props.category\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 166,\n columnNumber: 7\n }, this), items]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 165,\n columnNumber: 5\n }, this);\n}\n\n_c7 = LinkGroups;\n\nfunction LinkItem(props) {\n return /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: props.link.url,\n className: \"theme_color-border theme_text-select\",\n children: props.link.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 175,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 174,\n columnNumber: 5\n }, this);\n}\n\n_c8 = LinkItem;\n\nfunction ModalMenu() {\n var providers = getProviders();\n var items = [];\n\n for (var i = 0; i < providers.providers.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(Provider, {\n provider: providers.providers[i]\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 185,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"modal\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n children: [/*#__PURE__*/_jsxDEV(\"header\", {\n id: \"modal-header\",\n children: [/*#__PURE__*/_jsxDEV(\"h1\", {\n children: \"Options\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 195,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n href: \"#\",\n title: \"Close\",\n className: \"modal-close\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-close\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 197,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 196,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 194,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"h2\", {\n children: \"Color themes\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 201,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"modal-theme\",\n children: [/*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"blackboard\",\n className: \"theme-button theme-blackboard\",\n onClick: updateTheme,\n children: \"Blackboard\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 204,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"gazette\",\n className: \"theme-button theme-gazette\",\n onClick: updateTheme,\n children: \"Gazette\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 205,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"espresso\",\n className: \"theme-button theme-espresso\",\n onClick: updateTheme,\n children: \"Espresso\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 206,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cab\",\n className: \"theme-button theme-cab\",\n onClick: updateTheme,\n children: \"Cab\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 207,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cloud\",\n className: \"theme-button theme-cloud\",\n onClick: updateTheme,\n children: \"Cloud\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 208,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"lime\",\n className: \"theme-button theme-lime\",\n onClick: updateTheme,\n children: \"Lime\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 209,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"passion\",\n className: \"theme-button theme-passion\",\n onClick: updateTheme,\n children: \"Passion\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 210,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"blues\",\n className: \"theme-button theme-blues\",\n onClick: updateTheme,\n children: \"Blues\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 211,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"chalk\",\n className: \"theme-button theme-chalk\",\n onClick: updateTheme,\n children: \"Chalk\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 212,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"tron\",\n className: \"theme-button theme-tron\",\n onClick: updateTheme,\n children: \"Tron\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 213,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"paper\",\n className: \"theme-button theme-paper\",\n onClick: updateTheme,\n children: \"Paper\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 214,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cyberpunk\",\n className: \"theme-button theme-cyberpunk\",\n onClick: updateTheme,\n children: \"Cyberpunk\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 215,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"quadra\",\n className: \"theme-button theme-panam\",\n onClick: updateTheme,\n children: \"Quadra\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 216,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"panam\",\n className: \"theme-button theme-panam\",\n onClick: updateTheme,\n children: \"Panam\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 217,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"touch\",\n className: \"theme-button theme-touch\",\n onClick: updateTheme,\n children: \"Touch\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 218,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"peek\",\n className: \"theme-button theme-peek\",\n onClick: updateTheme,\n children: \"Peek\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 219,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 203,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"h2\", {\n children: \"Search options\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 223,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"providers\",\n children: /*#__PURE__*/_jsxDEV(\"table\", {\n children: /*#__PURE__*/_jsxDEV(\"tbody\", {\n children: [/*#__PURE__*/_jsxDEV(\"tr\", {\n children: [/*#__PURE__*/_jsxDEV(\"th\", {\n children: \"Website\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 228,\n columnNumber: 19\n }, this), /*#__PURE__*/_jsxDEV(\"th\", {\n children: \"Prefix\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 229,\n columnNumber: 19\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 227,\n columnNumber: 17\n }, this), items]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 226,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 225,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 224,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"header\", {\n id: \"modal-footer\",\n children: [/*#__PURE__*/_jsxDEV(\"a\", {\n href: \"https://github.com/jeroenpardon/\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-github-box\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 237,\n columnNumber: 54\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 237,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n href: \"https://materialdesignicons.com/\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-material-design\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 238,\n columnNumber: 54\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 238,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"sneaky\",\n children: [/*#__PURE__*/_jsxDEV(\"input\", {\n type: \"checkbox\",\n id: \"contenttype\",\n onChange: udpateDisplayedItems\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 239,\n columnNumber: 35\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n for: \"contenttype\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-domino-mask\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 240,\n columnNumber: 36\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 240,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 239,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 236,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 193,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 192,\n columnNumber: 5\n }, this);\n}\n\n_c9 = ModalMenu;\n\nfunction Provider(props) {\n return /*#__PURE__*/_jsxDEV(\"tr\", {\n children: [/*#__PURE__*/_jsxDEV(\"td\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: props.provider.url,\n children: props.provider.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 250,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 250,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"td\", {\n children: props.provider.prefix\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 251,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 249,\n columnNumber: 5\n }, this);\n}\n\n_c10 = Provider;\n\nfunction ModalInit() {\n return /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"modal_init\",\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n className: \"btn\",\n href: \"#modal\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify icon\",\n \"data-icon\": \"mdi-xbox-controller-menu\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 260,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 259,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 258,\n columnNumber: 5\n }, this);\n}\n\n_c11 = ModalInit;\nReactDOM.render( /*#__PURE__*/_jsxDEV(Homepage, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 267,\n columnNumber: 3\n}, this), document.getElementById('root')); //Functions below this line are for calculating data for\n//other functions\n\nfunction date() {\n let currentDate = new Date();\n let dateOptions = {\n weekday: \"long\",\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\"\n };\n let date = currentDate.toLocaleDateString(\"en-GB\", dateOptions);\n return date;\n}\n\nfunction fixDigits(k) {\n if (k < 10) {\n return \"0\" + k;\n } else {\n return k;\n }\n}\n\nfunction greet() {\n let currentTime = new Date();\n let greet = Math.floor(currentTime.getHours() / 6);\n let easterEggChance = Math.floor(Math.random() * 100);\n\n let greetings = require('./messages.json');\n\n let timeBased = [];\n let easterEggs = [];\n\n for (var i = 0; i < greetings.messages.length; i++) {\n if (greetings.messages[i].easteregg === \"FALSE\") {\n timeBased = timeBased.concat(greetings.messages[i]);\n } else {\n easterEggs = easterEggs.concat(greetings.messages[i]);\n }\n }\n\n if (easterEggChance > 10) {\n return timeBased[greet].message;\n } else {\n let easterEggText = Math.floor(Math.random() * easterEggs.length);\n return easterEggs[easterEggText].message;\n }\n}\n\nfunction Clock() {\n _s();\n\n const [date, setDate] = useState(new Date());\n\n function refreshClock() {\n setDate(new Date());\n }\n\n useEffect(() => {\n const timerId = setInterval(refreshClock, 1000);\n return function cleanup() {\n clearInterval(timerId);\n };\n }, []);\n var hour = date.getHours();\n var minutes = date.getMinutes(); //var seconds = date.getSeconds();\n\n var midday = \"AM\";\n midday = hour >= 12 ? \"PM\" : \"AM\";\n hour = hour === 0 ? 12 : hour > 12 ? hour - 12 : hour;\n minutes = fixDigits(minutes); //seconds = fixDigits(seconds);\n\n let time = hour + \":\" + minutes + \" \" + midday;\n return /*#__PURE__*/_jsxDEV(\"h2\", {\n id: \"clock\",\n children: time\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 338,\n columnNumber: 5\n }, this);\n}\n\n_s(Clock, \"Gqi45WOZhU2c0BLYX0HoJeiR0fk=\");\n\n_c12 = Clock;\n\nfunction getApps() {\n let applications = require('./apps.json');\n\n return applications;\n}\n\nfunction getLinks() {\n let links = require('./links.json');\n\n return links;\n}\n\nfunction getProviders() {\n let providers = require('./providers.json');\n\n return providers;\n}\n\nfunction getThemes() {\n let themes = require('./themes.json');\n\n return themes;\n}\n\nfunction updateTheme(e) {\n var themes = getThemes();\n var themeName = e.target.innerHTML.toLowerCase();\n var index = themes.themes.findIndex(function (item, i) {\n return item.name === themeName;\n });\n console.log(themes.themes[index]);\n localStorage.setItem(\"image-background\", themes.themes[index].imagebackground);\n localStorage.setItem(\"color-background\", themes.themes[index].colorbackground);\n localStorage.setItem(\"color-search-background\", themes.themes[index].colorserachbackground);\n localStorage.setItem(\"color-text-pri\", themes.themes[index].colortextpri);\n localStorage.setItem(\"color-text-acc\", themes.themes[index].colortextacc);\n localStorage.setItem(\"color-border\", themes.themes[index].colorborder); //document.documentElement.style.setProperty(prop, `var(--${themeName}${prop.substring(10)})`);\n\n setTheme();\n}\n\nfunction setTheme() {\n setValueFromLocalStorage('image-background');\n setValueFromLocalStorage('color-background');\n setValueFromLocalStorage('color-search-background');\n setValueFromLocalStorage('color-text-pri');\n setValueFromLocalStorage('color-text-acc');\n setValueFromLocalStorage('color-border');\n setValueFromLocalStorage('content-display');\n}\n\nfunction handleKeyPress(e) {\n var sindex = 0;\n var cycle = false;\n var key = e.keyCode || e.which;\n var text = e.target.value.replaceAll(\"+\", \"%2B\");\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n\n if (key == 13) {\n // Search functions\n search(text);\n }\n\n if (key == 9) {\n // Tab Completion Functions\n e.preventDefault();\n e.stopPropagation();\n\n if (text[0] === ';') {\n switch (option) {\n case 't':\n var streamers = ['admiralbahroo', 'moonmoon_ow', 'witwix'];\n\n if (!subtext || cycle) {\n cycle = true;\n if (sindex > streamers.length - 1) sindex = 0;\n document.getElementById(\"keywords\").value = ';t ' + streamers[sindex++];\n return;\n }\n\n for (var streamer of streamers) {\n if (subtext === streamer.substr(0, subtext.length)) {\n document.getElementById(\"keywords\").value = ';t ' + streamer;\n return;\n }\n }\n\n break;\n }\n }\n }\n\n if (key == 32) {\n //Space to go to search\n updateLabel(text);\n }\n\n sindex = 0;\n cycle = false;\n updateLabel(text);\n}\n\nfunction updateLabel(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n\n if (text[0] === '/') {\n // if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n document.getElementById(\"searchType\").innerHTML = \"Allmusic search\";\n break;\n\n case \"d\":\n document.getElementById(\"searchType\").innerHTML = \"Duck Duck Go search\";\n break;\n\n case \"di\":\n document.getElementById(\"searchType\").innerHTML = \"Discogs search\";\n break;\n\n case \"i\":\n document.getElementById(\"searchType\").innerHTML = \"IMDB search\";\n break;\n\n case \"m\":\n document.getElementById(\"searchType\").innerHTML = \"TheMovieDB search\";\n break;\n\n case \"r\":\n document.getElementById(\"searchType\").innerHTML = \"Reddit search\";\n break;\n\n case \"q\":\n document.getElementById(\"searchType\").innerHTML = \"Qwant search\";\n break;\n\n case \"so\":\n document.getElementById(\"searchType\").innerHTML = \"Soundcloud search\";\n break;\n\n case \"s\":\n document.getElementById(\"searchType\").innerHTML = \"Spotify search\";\n break;\n\n case \"tv\":\n document.getElementById(\"searchType\").innerHTML = \"TheTVDB search\";\n break;\n\n case \"t\":\n document.getElementById(\"searchType\").innerHTML = \"Trakt search\";\n break;\n\n case \"y\":\n document.getElementById(\"searchType\").innerHTML = \"YouTube search\";\n break;\n\n case \"w\":\n document.getElementById(\"searchType\").innerHTML = \"Wikipedia search\";\n break;\n\n case \"p\":\n document.getElementById(\"searchType\").innerHTML = \"Plex search\";\n break;\n\n case \"rt\":\n document.getElementById(\"searchType\").innerHTML = \"Rotten Tomatoes search\";\n break;\n\n default:\n document.getElementById(\"searchType\").innerHTML = \"Invalid search\";\n break;\n }\n } else {\n document.getElementById(\"searchType\").innerHTML = \"Google search\";\n }\n}\n\nfunction search(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n\n if (text[0] === '/') {\n if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n window.location = \"https://www.allmusic.com/search/all/\" + subtext;\n break;\n\n case \"d\":\n window.location = \"https://duckduckgo.com/?q=\" + subtext;\n break;\n\n case \"di\":\n window.location = \"https://www.discogs.com/search/?q=\" + subtext;\n break;\n\n case \"i\":\n window.location = \"https://www.imdb.com/find?q=\" + subtext;\n break;\n\n case \"m\":\n window.location = \"https://www.themoviedb.org/search?query=\" + subtext;\n break;\n\n case \"r\":\n window.location = \"https://www.reddit.com/search?q=\" + subtext;\n break;\n\n case \"q\":\n window.location = \"https://www.qwant.com/?q=\" + subtext;\n break;\n\n case \"so\":\n window.location = \"https://soundcloud.com/search?q=\" + subtext;\n break;\n\n case \"s\":\n window.location = \"https://open.spotify.com/search/results/\" + subtext;\n break;\n\n case \"t\":\n window.location = \"https://trakt.tv/search?query=\" + subtext;\n break;\n\n case \"tv\":\n window.location = \"https://www.thetvdb.com/search?query=\" + subtext;\n break;\n\n case \"y\":\n window.location = \"https://www.youtube.com/results?search_query=\" + subtext;\n break;\n\n case \"w\":\n window.location = \"https://en.wikipedia.org/w/index.php?search=\" + subtext;\n break;\n\n case \"p\":\n window.location = \"https://app.plex.tv/desktop/#!/search?query=\" + subtext;\n break;\n\n case \"rt\":\n window.location = \"https://www.rottentomatoes.com/search?search=\" + subtext;\n break;\n }\n } else {\n var option = text.substr(1);\n\n switch (option) {\n case \"d\":\n window.location = \"https://www.duckduckgo.com\";\n break;\n\n case \"y\":\n window.location = \"https://www.youtube.com\";\n break;\n\n case \"r\":\n window.location = \"https://reddit.com\";\n break;\n\n case \"s\":\n window.location = \"https://open.spotify.com\";\n break;\n }\n }\n } else if (validURL(text)) {\n if (containsProtocol(text)) window.location = text;else window.location = \"https://\" + text;\n } else {\n window.location = \"https://www.google.com/search?q=\" + text;\n }\n} // Source: https://stackoverflow.com/questions/5717093/check-if-a-javascript-string-is-a-url\n\n\nfunction validURL(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/)?' + // protocol\n '((([a-z\\\\d]([a-z\\\\d-]*[a-z\\\\d])*)\\\\.)+[a-z]{2,}|' + // domain name\n '((\\\\d{1,3}\\\\.){3}\\\\d{1,3}))' + // OR ip (v4) address\n '(\\\\:\\\\d+)?(\\\\/[-a-z\\\\d%_.~+]*)*' + // port and path\n '(\\\\?[;&a-z\\\\d%_.~+=-]*)?' + // query string\n '(\\\\#[-a-z\\\\d_]*)?$', 'i'); // fragment locator\n\n return !!pattern.test(str);\n}\n\nfunction containsProtocol(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/){1}.*', 'i');\n return !!pattern.test(str);\n}\n\nString.prototype.replaceAll = function (search, replacement) {\n var target = this;\n return target.split(search).join(replacement);\n};\n\nfunction udpateDisplayedItems(e) {\n localStorage.setItem('contenttype', e.target.checked);\n\n if (e.target.checked) {\n localStorage.setItem('content-display', 'none');\n } else {\n localStorage.setItem('content-display', 'block');\n }\n\n setDisplayedItems();\n}\n\nfunction setDisplayedItems() {\n setValueFromLocalStorage('contenttype');\n setValueFromLocalStorage('content-display');\n}\n\nvar _c, _c2, _c3, _c4, _c5, _c6, _c7, _c8, _c9, _c10, _c11, _c12;\n\n$RefreshReg$(_c, \"Homepage\");\n$RefreshReg$(_c2, \"Search\");\n$RefreshReg$(_c3, \"Header\");\n$RefreshReg$(_c4, \"Applications\");\n$RefreshReg$(_c5, \"App\");\n$RefreshReg$(_c6, \"Bookmarks\");\n$RefreshReg$(_c7, \"LinkGroups\");\n$RefreshReg$(_c8, \"LinkItem\");\n$RefreshReg$(_c9, \"ModalMenu\");\n$RefreshReg$(_c10, \"Provider\");\n$RefreshReg$(_c11, \"ModalInit\");\n$RefreshReg$(_c12, \"Clock\");","map":{"version":3,"sources":["/home/seanedmunds/dev/home-page/src/index.js"],"names":["React","useState","useEffect","ReactDOM","setValueFromLocalStorage","property","value","localStorage","getItem","setValue","document","documentElement","style","setProperty","input","querySelector","replace","Homepage","setTheme","date","greet","Search","handleKeyPress","Header","props","Applications","appList","getApps","items","i","apps","length","push","name","url","icon","NSFW","App","safe","NSFWEnabled","console","log","classNameType","hrefUrl","iconName","Bookmarks","bookmarkList","getLinks","bookmarks","category","links","LinkGroups","LinkItem","link","ModalMenu","providers","getProviders","updateTheme","udpateDisplayedItems","Provider","provider","prefix","ModalInit","render","getElementById","currentDate","Date","dateOptions","weekday","year","month","day","toLocaleDateString","fixDigits","k","currentTime","Math","floor","getHours","easterEggChance","random","greetings","require","timeBased","easterEggs","messages","easteregg","concat","message","easterEggText","Clock","setDate","refreshClock","timerId","setInterval","cleanup","clearInterval","hour","minutes","getMinutes","midday","time","applications","getThemes","themes","e","themeName","target","innerHTML","toLowerCase","index","findIndex","item","setItem","imagebackground","colorbackground","colorserachbackground","colortextpri","colortextacc","colorborder","sindex","cycle","key","keyCode","which","text","replaceAll","option","substr","indexOf","subtext","search","preventDefault","stopPropagation","streamers","streamer","updateLabel","window","location","validURL","containsProtocol","str","pattern","RegExp","test","String","prototype","replacement","split","join","checked","setDisplayedItems"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { useState, useEffect } from 'react';\nimport ReactDOM from 'react-dom';\n//import { unstable_createPortal } from 'react-dom';\nimport './index.css';\n\nconst setValueFromLocalStorage = property => {\n let value = localStorage.getItem(property);\n setValue(property, value);\n};\nconst setValue = (property, value) => {\n if (value) {\n document.documentElement.style.setProperty(`--${property}`, value);\n\n const input = document.querySelector(`#${property}`);\n if (input) {\n value = value.replace('px', '');\n input.value = value;\n }\n }\n};\n\nfunction Homepage() {\n setTheme();\n return (\n \n \n \n
\n \n \n
\n \n \n \n
\n \n \n
\n \n \n
\n \n );\n}\n\nfunction Search() {\n return (\n \n )\n}\n\nfunction Header(props) {\n return (\n \n );\n}\n\nfunction Applications() {\n let appList = getApps();\n var items = [];\n for (var i = 0; i < appList.apps.length; i++) {\n items.push(\n \n );\n }\n return (\n \n Applications
\n \n {items}\n
\n \n );\n}\n\nfunction App(props) {\n var safe = props.NSFW;\n var NSFWEnabled = localStorage.getItem(\"contenttype\");\n console.log(safe);\n if (safe === \"NSFW\" && !NSFWEnabled) {\n return (\n \n );\n } else {\n let classNameType = props.NSFW + \"-content\";\n let hrefUrl = \"https://\" + props.url;\n let iconName = \"mdi-\" + props.icon;\n return (\n \n );\n }\n \n}\n\nfunction Bookmarks() {\n let bookmarkList = getLinks();\n var items = [];\n for (var i = 0; i < bookmarkList.bookmarks.length; i++) {\n items.push(\n \n );\n }\n return (\n \n Bookmarks
\n \n {items}\n
\n \n );\n}\n\nfunction LinkGroups(props) {\n var items = [];\n for (var i = 0; i < props.links.length; i++) {\n items.push(\n \n );\n }\n return (\n \n
{props.category}
\n {items}\n \n );\n}\n\nfunction LinkItem(props) {\n return (\n \n );\n}\n\nfunction ModalMenu() {\n var providers = getProviders();\n var items = [];\n for (var i = 0; i < providers.providers.length; i++) {\n items.push(\n \n );\n }\n return (\n \n \n \n\n
Color themes
\n\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n\n\n
Search options
\n
\n \n \n \n | Website | \n Prefix | \n
\n {items}\n \n
\n \n\n \n
\n \n );\n}\n\nfunction Provider(props) {\n return (\n \n | {props.provider.name} | \n {props.provider.prefix} | \n
\n );\n}\n\nfunction ModalInit() {\n return (\n \n );\n}\n\nReactDOM.render(\n ,\n document.getElementById('root')\n);\n\n//Functions below this line are for calculating data for\n//other functions\n\nfunction date() {\n let currentDate = new Date();\n let dateOptions = {\n weekday: \"long\",\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\"\n };\n let date = currentDate.toLocaleDateString(\"en-GB\", dateOptions);\n return date;\n}\nfunction fixDigits(k) {\n if (k < 10) {\n return \"0\" + k;\n }\n else {\n return k;\n }\n}\nfunction greet() {\n let currentTime = new Date();\n let greet = Math.floor(currentTime.getHours() / 6);\n let easterEggChance = Math.floor(Math.random() * 100);\n let greetings = require('./messages.json');\n let timeBased = [];\n let easterEggs = [];\n for (var i = 0; i < greetings.messages.length; i++) {\n if (greetings.messages[i].easteregg === \"FALSE\") {\n timeBased = timeBased.concat(greetings.messages[i]);\n } else {\n easterEggs = easterEggs.concat(greetings.messages[i]);\n }\n }\n if (easterEggChance > 10) {\n return timeBased[greet].message;\n } else {\n let easterEggText = Math.floor(Math.random() * easterEggs.length);\n return easterEggs[easterEggText].message;\n }\n}\nfunction Clock() {\n const [date, setDate] = useState(new Date());\n\n function refreshClock() {\n setDate(new Date());\n }\n useEffect(() => {\n const timerId = setInterval(refreshClock, 1000);\n return function cleanup() {\n clearInterval(timerId);\n };\n }, []);\n\n var hour = date.getHours();\n var minutes = date.getMinutes();\n //var seconds = date.getSeconds();\n var midday = \"AM\";\n midday = (hour >= 12) ? \"PM\" : \"AM\";\n hour = (hour === 0) ? 12 : ((hour > 12) ? (hour - 12) : hour);\n minutes = fixDigits(minutes);\n //seconds = fixDigits(seconds);\n let time = hour + \":\" + minutes + \" \" + midday;\n\n return (\n {time}
\n\n );\n}\nfunction getApps() {\n let applications = require('./apps.json');\n return applications;\n}\nfunction getLinks() {\n let links = require('./links.json');\n return links;\n}\nfunction getProviders() {\n let providers = require('./providers.json');\n return providers;\n}\nfunction getThemes() {\n let themes = require('./themes.json');\n return themes;\n}\n\nfunction updateTheme(e) {\n var themes = getThemes();\n var themeName = e.target.innerHTML.toLowerCase();\n var index = themes.themes.findIndex(function(item, i){\n return item.name === themeName\n });\n console.log(themes.themes[index]);\n localStorage.setItem(\"image-background\", themes.themes[index].imagebackground);\n localStorage.setItem(\"color-background\", themes.themes[index].colorbackground);\n localStorage.setItem(\"color-search-background\", themes.themes[index].colorserachbackground);\n localStorage.setItem(\"color-text-pri\",themes.themes[index].colortextpri);\n localStorage.setItem(\"color-text-acc\", themes.themes[index].colortextacc);\n localStorage.setItem(\"color-border\", themes.themes[index].colorborder);\n \n //document.documentElement.style.setProperty(prop, `var(--${themeName}${prop.substring(10)})`);\n setTheme();\n}\n\nfunction setTheme() {\n setValueFromLocalStorage('image-background');\n setValueFromLocalStorage('color-background');\n setValueFromLocalStorage('color-search-background');\n setValueFromLocalStorage('color-text-pri');\n setValueFromLocalStorage('color-text-acc');\n setValueFromLocalStorage('color-border');\n setValueFromLocalStorage('content-display');\n}\n\nfunction handleKeyPress(e) {\n var sindex = 0;\n var cycle = false;\n var key = e.keyCode || e.which;\n var text = e.target.value.replaceAll(\"+\", \"%2B\");\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n if (key == 13) { // Search functions\n search(text);\n }\n if (key == 9) { // Tab Completion Functions\n e.preventDefault();\n e.stopPropagation();\n if (text[0] === ';') {\n switch (option) {\n case 't':\n var streamers = ['admiralbahroo', 'moonmoon_ow', 'witwix'];\n if (!subtext || cycle) {\n cycle = true;\n if (sindex > streamers.length - 1) sindex = 0;\n document.getElementById(\"keywords\").value = ';t ' + streamers[sindex++];\n return;\n }\n for (var streamer of streamers) {\n if (subtext === streamer.substr(0, subtext.length)) {\n document.getElementById(\"keywords\").value = ';t ' + streamer;\n return;\n }\n }\n break;\n }\n }\n }\n if(key == 32){ //Space to go to search\nupdateLabel(text);\n }\n sindex = 0;\n cycle = false;\n updateLabel(text);\n}\n\nfunction updateLabel(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n if (text[0] === '/') {\n// if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n document.getElementById(\"searchType\").innerHTML = \"Allmusic search\";\n break;\n case \"d\":\n document.getElementById(\"searchType\").innerHTML = \"Duck Duck Go search\";\n break;\n case \"di\":\n document.getElementById(\"searchType\").innerHTML = \"Discogs search\";\n break;\n case \"i\":\n document.getElementById(\"searchType\").innerHTML = \"IMDB search\";\n break;\n case \"m\":\n document.getElementById(\"searchType\").innerHTML = \"TheMovieDB search\";\n break;\n case \"r\":\n document.getElementById(\"searchType\").innerHTML = \"Reddit search\";\n break;\n case \"q\":\n document.getElementById(\"searchType\").innerHTML = \"Qwant search\";\n break;\n case \"so\":\n document.getElementById(\"searchType\").innerHTML = \"Soundcloud search\";\n break;\n case \"s\":\n document.getElementById(\"searchType\").innerHTML = \"Spotify search\";\n break;\n case \"tv\":\n document.getElementById(\"searchType\").innerHTML = \"TheTVDB search\";\n break;\n case \"t\":\n document.getElementById(\"searchType\").innerHTML = \"Trakt search\";\n break;\n case \"y\":\n document.getElementById(\"searchType\").innerHTML = \"YouTube search\";\n break;\n case \"w\":\n document.getElementById(\"searchType\").innerHTML = \"Wikipedia search\";\n break;\n case \"p\":\n document.getElementById(\"searchType\").innerHTML = \"Plex search\";\n break;\n case \"rt\":\n document.getElementById(\"searchType\").innerHTML = \"Rotten Tomatoes search\";\n break;\n default:\n document.getElementById(\"searchType\").innerHTML = \"Invalid search\";\n break;\n }\n}else {\n document.getElementById(\"searchType\").innerHTML = \"Google search\";\n }\n}\n\nfunction search(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n if (text[0] === '/') {\n if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n window.location = \"https://www.allmusic.com/search/all/\" + subtext;\n break;\n case \"d\":\n window.location = \"https://duckduckgo.com/?q=\" + subtext;\n break;\n case \"di\":\n window.location = \"https://www.discogs.com/search/?q=\" + subtext;\n break;\n case \"i\":\n window.location = \"https://www.imdb.com/find?q=\" + subtext;\n break;\n case \"m\":\n window.location = \"https://www.themoviedb.org/search?query=\" + subtext;\n break;\n case \"r\":\n window.location = \"https://www.reddit.com/search?q=\" + subtext;\n break;\n case \"q\":\n window.location = \"https://www.qwant.com/?q=\" + subtext;\n break;\n case \"so\":\n window.location = \"https://soundcloud.com/search?q=\" + subtext;\n break;\n case \"s\":\n window.location = \"https://open.spotify.com/search/results/\" + subtext;\n break;\n case \"t\":\n window.location = \"https://trakt.tv/search?query=\" + subtext;\n break;\n case \"tv\":\n window.location = \"https://www.thetvdb.com/search?query=\" + subtext;\n break;\n case \"y\":\n window.location = \"https://www.youtube.com/results?search_query=\" + subtext;\n break;\n case \"w\":\n window.location = \"https://en.wikipedia.org/w/index.php?search=\" + subtext;\n break;\n case \"p\":\n window.location = \"https://app.plex.tv/desktop/#!/search?query=\" + subtext;\n break;\n case \"rt\":\n window.location = \"https://www.rottentomatoes.com/search?search=\" + subtext;\n break;\n }\n } else {\n var option = text.substr(1);\n switch (option) {\n case \"d\":\n window.location = \"https://www.duckduckgo.com\";\n break;\n case \"y\":\n window.location = \"https://www.youtube.com\";\n break;\n case \"r\":\n window.location = \"https://reddit.com\";\n break;\n case \"s\":\n window.location = \"https://open.spotify.com\";\n break;\n }\n }\n } else if (validURL(text)) {\n if (containsProtocol(text))\n window.location = text;\n else\n window.location = \"https://\" + text;\n } else {\n window.location = \"https://www.google.com/search?q=\" + text;\n }\n}\n\n// Source: https://stackoverflow.com/questions/5717093/check-if-a-javascript-string-is-a-url\nfunction validURL(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/)?' + // protocol\n '((([a-z\\\\d]([a-z\\\\d-]*[a-z\\\\d])*)\\\\.)+[a-z]{2,}|' + // domain name\n '((\\\\d{1,3}\\\\.){3}\\\\d{1,3}))' + // OR ip (v4) address\n '(\\\\:\\\\d+)?(\\\\/[-a-z\\\\d%_.~+]*)*' + // port and path\n '(\\\\?[;&a-z\\\\d%_.~+=-]*)?' + // query string\n '(\\\\#[-a-z\\\\d_]*)?$', 'i'); // fragment locator\n return !!pattern.test(str);\n}\n\nfunction containsProtocol(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/){1}.*', 'i');\n return !!pattern.test(str);\n}\n\nString.prototype.replaceAll = function(search, replacement) {\n var target = this;\n return target.split(search).join(replacement);\n};\n\nfunction udpateDisplayedItems(e) {\n localStorage.setItem('contenttype', e.target.checked);\n if (e.target.checked) {\n localStorage.setItem('content-display', 'none');\n } else {\n localStorage.setItem('content-display', 'block');\n }\n setDisplayedItems();\n}\nfunction setDisplayedItems() {\n setValueFromLocalStorage('contenttype');\n setValueFromLocalStorage('content-display');\n}"]},"metadata":{},"sourceType":"module"}
\ No newline at end of file
diff --git a/node_modules/.cache/babel-loader/bc5d9e762b20eb4ec265c774f3867499.json b/node_modules/.cache/babel-loader/bc5d9e762b20eb4ec265c774f3867499.json
new file mode 100644
index 00000000..f7e6642d
--- /dev/null
+++ b/node_modules/.cache/babel-loader/bc5d9e762b20eb4ec265c774f3867499.json
@@ -0,0 +1 @@
+{"ast":null,"code":"var _jsxFileName = \"/home/seanedmunds/dev/home-page/src/index.js\",\n _s = $RefreshSig$();\n\nimport React from 'react';\nimport { useState, useEffect } from 'react';\nimport ReactDOM from 'react-dom'; //import { unstable_createPortal } from 'react-dom';\n\nimport './index.css';\nimport { jsxDEV as _jsxDEV } from \"react/jsx-dev-runtime\";\n\nfunction Homepage() {\n return /*#__PURE__*/_jsxDEV(\"main\", {\n id: \"container\",\n className: \"fade\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Search, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 11,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 10,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Header, {\n date: date(),\n greet: greet()\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 14,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 13,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Applications, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 20,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 19,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Bookmarks, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 23,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 22,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(ModalMenu, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 26,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 25,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(ModalInit, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 29,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 28,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 9,\n columnNumber: 5\n }, this);\n}\n\n_c = Homepage;\n\nfunction Search() {\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"search\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"abackground\",\n children: [/*#__PURE__*/_jsxDEV(\"input\", {\n name: \"keywords\",\n type: \"text\",\n className: \"keyword\",\n id: \"keywords\",\n size: \"50\",\n spellCheck: \"true\",\n placeholder: \"\"\n /*onFocus={this.placeholder = \"\"} onBlur={this.placeholder = ''}*/\n ,\n autoComplete: \"off\",\n autoFocus: \"true\",\n onKeyUp: handleKeyPress\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 39,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n id: \"searchType\",\n className: \"Input-label\",\n children: \"Google search\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 40,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 38,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 37,\n columnNumber: 5\n }, this);\n}\n\n_c2 = Search;\n\nfunction Header(props) {\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"header\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n id: \"greeting_block\",\n children: /*#__PURE__*/_jsxDEV(\"h1\", {\n id: \"header_greet\",\n children: props.greet\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 50,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 49,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"date_block\",\n children: [/*#__PURE__*/_jsxDEV(\"h2\", {\n id: \"header_date\",\n children: props.date\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 53,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(Clock, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 54,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 52,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 48,\n columnNumber: 5\n }, this);\n}\n\n_c3 = Header;\n\nfunction Applications() {\n let appList = getApps();\n var items = [];\n\n for (var i = 0; i < appList.apps.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(App, {\n name: appList.apps[i].name,\n url: appList.apps[i].url,\n icon: appList.apps[i].icon,\n NSFW: appList.apps[i].NSFW\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 65,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"apps\",\n children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n children: \"Applications\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 76,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"apps_loop\",\n children: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 77,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 75,\n columnNumber: 5\n }, this);\n}\n\n_c4 = Applications;\n\nfunction App(props) {\n let classNameType = props.NSFW + \"-content\";\n let hrefUrl = \"https://\" + props.url;\n let iconName = \"mdi-\" + props.icon;\n return /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: hrefUrl,\n className: classNameType,\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_item\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_icon\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify icon\",\n \"data-icon\": iconName\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 93,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 92,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_text\",\n children: [/*#__PURE__*/_jsxDEV(\"span\", {\n id: \"app-name\",\n children: props.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 96,\n columnNumber: 13\n }, this), /*#__PURE__*/_jsxDEV(\"span\", {\n id: \"app-address\",\n children: props.url\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 97,\n columnNumber: 13\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 95,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 91,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 90,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 89,\n columnNumber: 5\n }, this);\n}\n\n_c5 = App;\n\nfunction Bookmarks() {\n let bookmarkList = getLinks();\n var items = [];\n\n for (var i = 0; i < bookmarkList.bookmarks.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(LinkGroups, {\n category: bookmarkList.bookmarks[i].category,\n links: bookmarkList.bookmarks[i].links\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 110,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"links\",\n children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n children: \"Bookmarks\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 119,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"links_loop\",\n children: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 120,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 118,\n columnNumber: 5\n }, this);\n}\n\n_c6 = Bookmarks;\n\nfunction LinkGroups(props) {\n var items = [];\n\n for (var i = 0; i < props.links.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(LinkItem, {\n link: props.links[i]\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 131,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"links_item\",\n children: [/*#__PURE__*/_jsxDEV(\"h4\", {\n children: props.category\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 139,\n columnNumber: 7\n }, this), items]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 138,\n columnNumber: 5\n }, this);\n}\n\n_c7 = LinkGroups;\n\nfunction LinkItem(props) {\n return /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: props.link.url,\n className: \"theme_color-border theme_text-select\",\n children: props.link.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 148,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 147,\n columnNumber: 5\n }, this);\n}\n\n_c8 = LinkItem;\n\nfunction ModalMenu() {\n var providers = getProviders();\n var items = [];\n\n for (var i = 0; i < providers.providers.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(Provider, {\n provider: providers.providers[i]\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 158,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"modal\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n children: [/*#__PURE__*/_jsxDEV(\"header\", {\n id: \"modal-header\",\n children: [/*#__PURE__*/_jsxDEV(\"h1\", {\n children: \"Options\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 168,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n href: \"#\",\n title: \"Close\",\n className: \"modal-close\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-close\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 170,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 169,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 167,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"h2\", {\n children: \"Color themes\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 174,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"modal-theme\",\n children: [/*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"blackboard\",\n className: \"theme-button theme-blackboard\",\n children: \"Blackboard\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 177,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"gazette\",\n className: \"theme-button theme-gazette\",\n children: \"Gazette\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 178,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"espresso\",\n className: \"theme-button theme-espresso\",\n children: \"Espresso\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 179,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cab\",\n className: \"theme-button theme-cab\",\n children: \"Cab\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 180,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cloud\",\n className: \"theme-button theme-cloud\",\n children: \"Cloud\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 181,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"lime\",\n className: \"theme-button theme-lime\",\n children: \"Lime\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 182,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"passion\",\n className: \"theme-button theme-passion\",\n children: \"Passion\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 183,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"blues\",\n className: \"theme-button theme-blues\",\n children: \"Blues\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 184,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"chalk\",\n className: \"theme-button theme-chalk\",\n children: \"Chalk\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 185,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"tron\",\n className: \"theme-button theme-tron\",\n children: \"Tron\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 186,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"paper\",\n className: \"theme-button theme-paper\",\n children: \"Paper\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 187,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cyberpunk\",\n className: \"theme-button theme-cyberpunk\",\n children: \"Cyberpunk\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 188,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"quadra\",\n className: \"theme-button theme-panam\",\n children: \"Quadra\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 189,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"panam\",\n className: \"theme-button theme-panam\",\n children: \"Panam\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 190,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"touch\",\n className: \"theme-button theme-touch\",\n children: \"Touch\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 191,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"peek\",\n className: \"theme-button theme-peek\",\n children: \"Peek\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 192,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 176,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"h2\", {\n children: \"Search options\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 196,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"providers\",\n children: /*#__PURE__*/_jsxDEV(\"table\", {\n children: /*#__PURE__*/_jsxDEV(\"tbody\", {\n children: [/*#__PURE__*/_jsxDEV(\"tr\", {\n children: [/*#__PURE__*/_jsxDEV(\"th\", {\n children: \"Website\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 201,\n columnNumber: 19\n }, this), /*#__PURE__*/_jsxDEV(\"th\", {\n children: \"Prefix\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 202,\n columnNumber: 19\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 200,\n columnNumber: 17\n }, this), items]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 199,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 198,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 197,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"header\", {\n id: \"modal-footer\",\n children: [/*#__PURE__*/_jsxDEV(\"a\", {\n href: \"https://github.com/jeroenpardon/\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-github-box\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 210,\n columnNumber: 54\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 210,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n href: \"https://materialdesignicons.com/\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-material-design\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 211,\n columnNumber: 54\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 211,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"sneaky\",\n children: [/*#__PURE__*/_jsxDEV(\"input\", {\n type: \"checkbox\",\n id: \"contenttype\",\n onChange: \"nsfw(this)\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 212,\n columnNumber: 35\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n for: \"contenttype\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-domino-mask\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 213,\n columnNumber: 36\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 213,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 212,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 209,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 166,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 165,\n columnNumber: 5\n }, this);\n}\n\n_c9 = ModalMenu;\n\nfunction Provider(props) {\n return /*#__PURE__*/_jsxDEV(\"tr\", {\n children: [/*#__PURE__*/_jsxDEV(\"td\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: props.provider.url,\n children: props.provider.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 223,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 223,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"td\", {\n children: props.provider.prefix\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 224,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 222,\n columnNumber: 5\n }, this);\n}\n\n_c10 = Provider;\n\nfunction ModalInit() {\n return /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"modal_init\",\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n className: \"btn\",\n href: \"#modal\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify icon\",\n \"data-icon\": \"mdi-xbox-controller-menu\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 233,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 232,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 231,\n columnNumber: 5\n }, this);\n}\n\n_c11 = ModalInit;\nReactDOM.render( /*#__PURE__*/_jsxDEV(Homepage, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 240,\n columnNumber: 3\n}, this), document.getElementById('root')); //Functions below this line are for calculating data for\n//other functions\n\nfunction date() {\n let currentDate = new Date();\n let dateOptions = {\n weekday: \"long\",\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\"\n };\n let date = currentDate.toLocaleDateString(\"en-GB\", dateOptions);\n return date;\n}\n\nfunction fixDigits(k) {\n if (k < 10) {\n return \"0\" + k;\n } else {\n return k;\n }\n}\n\nfunction greet() {\n let currentTime = new Date();\n let greet = Math.floor(currentTime.getHours() / 6);\n let easterEggChance = Math.floor(Math.random() * 100);\n\n let greetings = require('./messages.json');\n\n let timeBased = [];\n let easterEggs = [];\n\n for (var i = 0; i < greetings.messages.length; i++) {\n if (greetings.messages[i].easteregg === \"FALSE\") {\n timeBased = timeBased.concat(greetings.messages[i]);\n } else {\n easterEggs = easterEggs.concat(greetings.messages[i]);\n }\n }\n\n if (easterEggChance > 10) {\n return timeBased[greet].message;\n } else {\n let easterEggText = Math.floor(Math.random() * easterEggs.length);\n return easterEggs[easterEggText].message;\n }\n}\n\nfunction Clock() {\n _s();\n\n const [date, setDate] = useState(new Date());\n\n function refreshClock() {\n setDate(new Date());\n }\n\n useEffect(() => {\n const timerId = setInterval(refreshClock, 1000);\n return function cleanup() {\n clearInterval(timerId);\n };\n }, []);\n var hour = date.getHours();\n var minutes = date.getMinutes(); //var seconds = date.getSeconds();\n\n var midday = \"AM\";\n midday = hour >= 12 ? \"PM\" : \"AM\";\n hour = hour === 0 ? 12 : hour > 12 ? hour - 12 : hour;\n minutes = fixDigits(minutes); //seconds = fixDigits(seconds);\n\n let time = hour + \":\" + minutes + \" \" + midday;\n return /*#__PURE__*/_jsxDEV(\"h2\", {\n id: \"clock\",\n children: time\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 311,\n columnNumber: 5\n }, this);\n}\n\n_s(Clock, \"Gqi45WOZhU2c0BLYX0HoJeiR0fk=\");\n\n_c12 = Clock;\n\nfunction getApps() {\n let applications = require('./apps.json');\n\n return applications;\n}\n\nfunction getLinks() {\n let links = require('./links.json');\n\n return links;\n}\n\nfunction getProviders() {\n let providers = require('./providers.json');\n\n return providers;\n}\n\nfunction handleKeyPress(e) {\n var sindex = 0;\n var cycle = false;\n var key = e.keyCode || e.which;\n var text = e.value.replaceAll(\"+\", \"%2B\");\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n\n if (key == 13) {\n // Search functions\n search(text);\n }\n\n if (key == 9) {\n // Tab Completion Functions\n e.preventDefault();\n e.stopPropagation();\n\n if (text[0] === ';') {\n switch (option) {\n case 't':\n var streamers = ['admiralbahroo', 'moonmoon_ow', 'witwix'];\n\n if (!subtext || cycle) {\n cycle = true;\n if (sindex > streamers.length - 1) sindex = 0;\n document.getElementById(\"keywords\").value = ';t ' + streamers[sindex++];\n return;\n }\n\n for (var streamer of streamers) {\n if (subtext === streamer.substr(0, subtext.length)) {\n document.getElementById(\"keywords\").value = ';t ' + streamer;\n return;\n }\n }\n\n break;\n }\n }\n }\n\n if (key == 32) {\n //Space to go to search\n updateLabel(text);\n }\n\n sindex = 0;\n cycle = false;\n updateLabel(text);\n}\n\nfunction updateLabel(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n\n if (text[0] === '/') {\n // if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n document.getElementById(\"searchType\").innerHTML = \"Allmusic search\";\n break;\n\n case \"d\":\n document.getElementById(\"searchType\").innerHTML = \"Duck Duck Go search\";\n break;\n\n case \"di\":\n document.getElementById(\"searchType\").innerHTML = \"Discogs search\";\n break;\n\n case \"i\":\n document.getElementById(\"searchType\").innerHTML = \"IMDB search\";\n break;\n\n case \"m\":\n document.getElementById(\"searchType\").innerHTML = \"TheMovieDB search\";\n break;\n\n case \"r\":\n document.getElementById(\"searchType\").innerHTML = \"Reddit search\";\n break;\n\n case \"q\":\n document.getElementById(\"searchType\").innerHTML = \"Qwant search\";\n break;\n\n case \"so\":\n document.getElementById(\"searchType\").innerHTML = \"Soundcloud search\";\n break;\n\n case \"s\":\n document.getElementById(\"searchType\").innerHTML = \"Spotify search\";\n break;\n\n case \"tv\":\n document.getElementById(\"searchType\").innerHTML = \"TheTVDB search\";\n break;\n\n case \"t\":\n document.getElementById(\"searchType\").innerHTML = \"Trakt search\";\n break;\n\n case \"y\":\n document.getElementById(\"searchType\").innerHTML = \"YouTube search\";\n break;\n\n case \"w\":\n document.getElementById(\"searchType\").innerHTML = \"Wikipedia search\";\n break;\n\n case \"p\":\n document.getElementById(\"searchType\").innerHTML = \"Plex search\";\n break;\n\n case \"rt\":\n document.getElementById(\"searchType\").innerHTML = \"Rotten Tomatoes search\";\n break;\n\n default:\n document.getElementById(\"searchType\").innerHTML = \"Invalid search\";\n break;\n }\n } else {\n document.getElementById(\"searchType\").innerHTML = \"Google search\";\n }\n}\n\nfunction search(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n\n if (text[0] === '/') {\n if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n window.location = \"https://www.allmusic.com/search/all/\" + subtext;\n break;\n\n case \"d\":\n window.location = \"https://duckduckgo.com/?q=\" + subtext;\n break;\n\n case \"di\":\n window.location = \"https://www.discogs.com/search/?q=\" + subtext;\n break;\n\n case \"i\":\n window.location = \"https://www.imdb.com/find?q=\" + subtext;\n break;\n\n case \"m\":\n window.location = \"https://www.themoviedb.org/search?query=\" + subtext;\n break;\n\n case \"r\":\n window.location = \"https://www.reddit.com/search?q=\" + subtext;\n break;\n\n case \"q\":\n window.location = \"https://www.qwant.com/?q=\" + subtext;\n break;\n\n case \"so\":\n window.location = \"https://soundcloud.com/search?q=\" + subtext;\n break;\n\n case \"s\":\n window.location = \"https://open.spotify.com/search/results/\" + subtext;\n break;\n\n case \"t\":\n window.location = \"https://trakt.tv/search?query=\" + subtext;\n break;\n\n case \"tv\":\n window.location = \"https://www.thetvdb.com/search?query=\" + subtext;\n break;\n\n case \"y\":\n window.location = \"https://www.youtube.com/results?search_query=\" + subtext;\n break;\n\n case \"w\":\n window.location = \"https://en.wikipedia.org/w/index.php?search=\" + subtext;\n break;\n\n case \"p\":\n window.location = \"https://app.plex.tv/desktop/#!/search?query=\" + subtext;\n break;\n\n case \"rt\":\n window.location = \"https://www.rottentomatoes.com/search?search=\" + subtext;\n break;\n }\n } else {\n var option = text.substr(1);\n\n switch (option) {\n case \"d\":\n window.location = \"https://www.duckduckgo.com\";\n break;\n\n case \"y\":\n window.location = \"https://www.youtube.com\";\n break;\n\n case \"r\":\n window.location = \"https://reddit.com\";\n break;\n\n case \"s\":\n window.location = \"https://open.spotify.com\";\n break;\n }\n }\n } else if (validURL(text)) {\n if (containsProtocol(text)) window.location = text;else window.location = \"https://\" + text;\n } else {\n window.location = \"https://www.google.com/search?q=\" + text;\n }\n} // Source: https://stackoverflow.com/questions/5717093/check-if-a-javascript-string-is-a-url\n\n\nfunction validURL(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/)?' + // protocol\n '((([a-z\\\\d]([a-z\\\\d-]*[a-z\\\\d])*)\\\\.)+[a-z]{2,}|' + // domain name\n '((\\\\d{1,3}\\\\.){3}\\\\d{1,3}))' + // OR ip (v4) address\n '(\\\\:\\\\d+)?(\\\\/[-a-z\\\\d%_.~+]*)*' + // port and path\n '(\\\\?[;&a-z\\\\d%_.~+=-]*)?' + // query string\n '(\\\\#[-a-z\\\\d_]*)?$', 'i'); // fragment locator\n\n return !!pattern.test(str);\n}\n\nfunction containsProtocol(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/){1}.*', 'i');\n return !!pattern.test(str);\n}\n\nString.prototype.replaceAll = function (search, replacement) {\n var target = this;\n return target.split(search).join(replacement);\n};\n\nvar _c, _c2, _c3, _c4, _c5, _c6, _c7, _c8, _c9, _c10, _c11, _c12;\n\n$RefreshReg$(_c, \"Homepage\");\n$RefreshReg$(_c2, \"Search\");\n$RefreshReg$(_c3, \"Header\");\n$RefreshReg$(_c4, \"Applications\");\n$RefreshReg$(_c5, \"App\");\n$RefreshReg$(_c6, \"Bookmarks\");\n$RefreshReg$(_c7, \"LinkGroups\");\n$RefreshReg$(_c8, \"LinkItem\");\n$RefreshReg$(_c9, \"ModalMenu\");\n$RefreshReg$(_c10, \"Provider\");\n$RefreshReg$(_c11, \"ModalInit\");\n$RefreshReg$(_c12, \"Clock\");","map":{"version":3,"sources":["/home/seanedmunds/dev/home-page/src/index.js"],"names":["React","useState","useEffect","ReactDOM","Homepage","date","greet","Search","handleKeyPress","Header","props","Applications","appList","getApps","items","i","apps","length","push","name","url","icon","NSFW","App","classNameType","hrefUrl","iconName","Bookmarks","bookmarkList","getLinks","bookmarks","category","links","LinkGroups","LinkItem","link","ModalMenu","providers","getProviders","Provider","provider","prefix","ModalInit","render","document","getElementById","currentDate","Date","dateOptions","weekday","year","month","day","toLocaleDateString","fixDigits","k","currentTime","Math","floor","getHours","easterEggChance","random","greetings","require","timeBased","easterEggs","messages","easteregg","concat","message","easterEggText","Clock","setDate","refreshClock","timerId","setInterval","cleanup","clearInterval","hour","minutes","getMinutes","midday","time","applications","e","sindex","cycle","key","keyCode","which","text","value","replaceAll","option","substr","indexOf","subtext","search","preventDefault","stopPropagation","streamers","streamer","updateLabel","innerHTML","window","location","validURL","containsProtocol","str","pattern","RegExp","test","String","prototype","replacement","target","split","join"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { useState, useEffect } from 'react';\nimport ReactDOM from 'react-dom';\n//import { unstable_createPortal } from 'react-dom';\nimport './index.css';\n\nfunction Homepage() {\n return (\n \n \n \n
\n \n \n
\n \n \n \n
\n \n \n
\n \n \n
\n \n );\n}\n\nfunction Search() {\n return (\n \n )\n}\n\nfunction Header(props) {\n return (\n \n );\n}\n\nfunction Applications() {\n let appList = getApps();\n var items = [];\n for (var i = 0; i < appList.apps.length; i++) {\n items.push(\n \n );\n }\n return (\n \n Applications
\n \n {items}\n
\n \n );\n}\n\nfunction App(props) {\n let classNameType = props.NSFW + \"-content\";\n let hrefUrl = \"https://\" + props.url;\n let iconName = \"mdi-\" + props.icon;\n return (\n \n );\n}\n\nfunction Bookmarks() {\n let bookmarkList = getLinks();\n var items = [];\n for (var i = 0; i < bookmarkList.bookmarks.length; i++) {\n items.push(\n \n );\n }\n return (\n \n Bookmarks
\n \n {items}\n
\n \n );\n}\n\nfunction LinkGroups(props) {\n var items = [];\n for (var i = 0; i < props.links.length; i++) {\n items.push(\n \n );\n }\n return (\n \n
{props.category}
\n {items}\n \n );\n}\n\nfunction LinkItem(props) {\n return (\n \n );\n}\n\nfunction ModalMenu() {\n var providers = getProviders();\n var items = [];\n for (var i = 0; i < providers.providers.length; i++) {\n items.push(\n \n );\n }\n return (\n \n \n \n\n
Color themes
\n\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n\n\n
Search options
\n
\n \n \n \n | Website | \n Prefix | \n
\n {items}\n \n
\n \n\n \n
\n \n );\n}\n\nfunction Provider(props) {\n return (\n \n | {props.provider.name} | \n {props.provider.prefix} | \n
\n );\n}\n\nfunction ModalInit() {\n return (\n \n );\n}\n\nReactDOM.render(\n ,\n document.getElementById('root')\n);\n\n//Functions below this line are for calculating data for\n//other functions\n\nfunction date() {\n let currentDate = new Date();\n let dateOptions = {\n weekday: \"long\",\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\"\n };\n let date = currentDate.toLocaleDateString(\"en-GB\", dateOptions);\n return date;\n}\nfunction fixDigits(k) {\n if (k < 10) {\n return \"0\" + k;\n }\n else {\n return k;\n }\n}\nfunction greet() {\n let currentTime = new Date();\n let greet = Math.floor(currentTime.getHours() / 6);\n let easterEggChance = Math.floor(Math.random() * 100);\n let greetings = require('./messages.json');\n let timeBased = [];\n let easterEggs = [];\n for (var i = 0; i < greetings.messages.length; i++) {\n if (greetings.messages[i].easteregg === \"FALSE\") {\n timeBased = timeBased.concat(greetings.messages[i]);\n } else {\n easterEggs = easterEggs.concat(greetings.messages[i]);\n }\n }\n if (easterEggChance > 10) {\n return timeBased[greet].message;\n } else {\n let easterEggText = Math.floor(Math.random() * easterEggs.length);\n return easterEggs[easterEggText].message;\n }\n}\nfunction Clock() {\n const [date, setDate] = useState(new Date());\n\n function refreshClock() {\n setDate(new Date());\n }\n useEffect(() => {\n const timerId = setInterval(refreshClock, 1000);\n return function cleanup() {\n clearInterval(timerId);\n };\n }, []);\n\n var hour = date.getHours();\n var minutes = date.getMinutes();\n //var seconds = date.getSeconds();\n var midday = \"AM\";\n midday = (hour >= 12) ? \"PM\" : \"AM\";\n hour = (hour === 0) ? 12 : ((hour > 12) ? (hour - 12) : hour);\n minutes = fixDigits(minutes);\n //seconds = fixDigits(seconds);\n let time = hour + \":\" + minutes + \" \" + midday;\n\n return (\n {time}
\n\n );\n}\nfunction getApps() {\n let applications = require('./apps.json');\n return applications;\n}\nfunction getLinks() {\n let links = require('./links.json');\n return links;\n}\nfunction getProviders() {\n let providers = require('./providers.json');\n return providers;\n}\n\nfunction handleKeyPress(e) {\n var sindex = 0;\n var cycle = false;\n var key = e.keyCode || e.which;\n var text = e.value.replaceAll(\"+\", \"%2B\");\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n if (key == 13) { // Search functions\n search(text);\n }\n if (key == 9) { // Tab Completion Functions\n e.preventDefault();\n e.stopPropagation();\n if (text[0] === ';') {\n switch (option) {\n case 't':\n var streamers = ['admiralbahroo', 'moonmoon_ow', 'witwix'];\n if (!subtext || cycle) {\n cycle = true;\n if (sindex > streamers.length - 1) sindex = 0;\n document.getElementById(\"keywords\").value = ';t ' + streamers[sindex++];\n return;\n }\n for (var streamer of streamers) {\n if (subtext === streamer.substr(0, subtext.length)) {\n document.getElementById(\"keywords\").value = ';t ' + streamer;\n return;\n }\n }\n break;\n }\n }\n }\n if(key == 32){ //Space to go to search\nupdateLabel(text);\n }\n sindex = 0;\n cycle = false;\n updateLabel(text);\n}\n\nfunction updateLabel(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n if (text[0] === '/') {\n// if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n document.getElementById(\"searchType\").innerHTML = \"Allmusic search\";\n break;\n case \"d\":\n document.getElementById(\"searchType\").innerHTML = \"Duck Duck Go search\";\n break;\n case \"di\":\n document.getElementById(\"searchType\").innerHTML = \"Discogs search\";\n break;\n case \"i\":\n document.getElementById(\"searchType\").innerHTML = \"IMDB search\";\n break;\n case \"m\":\n document.getElementById(\"searchType\").innerHTML = \"TheMovieDB search\";\n break;\n case \"r\":\n document.getElementById(\"searchType\").innerHTML = \"Reddit search\";\n break;\n case \"q\":\n document.getElementById(\"searchType\").innerHTML = \"Qwant search\";\n break;\n case \"so\":\n document.getElementById(\"searchType\").innerHTML = \"Soundcloud search\";\n break;\n case \"s\":\n document.getElementById(\"searchType\").innerHTML = \"Spotify search\";\n break;\n case \"tv\":\n document.getElementById(\"searchType\").innerHTML = \"TheTVDB search\";\n break;\n case \"t\":\n document.getElementById(\"searchType\").innerHTML = \"Trakt search\";\n break;\n case \"y\":\n document.getElementById(\"searchType\").innerHTML = \"YouTube search\";\n break;\n case \"w\":\n document.getElementById(\"searchType\").innerHTML = \"Wikipedia search\";\n break;\n case \"p\":\n document.getElementById(\"searchType\").innerHTML = \"Plex search\";\n break;\n case \"rt\":\n document.getElementById(\"searchType\").innerHTML = \"Rotten Tomatoes search\";\n break;\n default:\n document.getElementById(\"searchType\").innerHTML = \"Invalid search\";\n break;\n }\n}else {\n document.getElementById(\"searchType\").innerHTML = \"Google search\";\n }\n}\n\nfunction search(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n if (text[0] === '/') {\n if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n window.location = \"https://www.allmusic.com/search/all/\" + subtext;\n break;\n case \"d\":\n window.location = \"https://duckduckgo.com/?q=\" + subtext;\n break;\n case \"di\":\n window.location = \"https://www.discogs.com/search/?q=\" + subtext;\n break;\n case \"i\":\n window.location = \"https://www.imdb.com/find?q=\" + subtext;\n break;\n case \"m\":\n window.location = \"https://www.themoviedb.org/search?query=\" + subtext;\n break;\n case \"r\":\n window.location = \"https://www.reddit.com/search?q=\" + subtext;\n break;\n case \"q\":\n window.location = \"https://www.qwant.com/?q=\" + subtext;\n break;\n case \"so\":\n window.location = \"https://soundcloud.com/search?q=\" + subtext;\n break;\n case \"s\":\n window.location = \"https://open.spotify.com/search/results/\" + subtext;\n break;\n case \"t\":\n window.location = \"https://trakt.tv/search?query=\" + subtext;\n break;\n case \"tv\":\n window.location = \"https://www.thetvdb.com/search?query=\" + subtext;\n break;\n case \"y\":\n window.location = \"https://www.youtube.com/results?search_query=\" + subtext;\n break;\n case \"w\":\n window.location = \"https://en.wikipedia.org/w/index.php?search=\" + subtext;\n break;\n case \"p\":\n window.location = \"https://app.plex.tv/desktop/#!/search?query=\" + subtext;\n break;\n case \"rt\":\n window.location = \"https://www.rottentomatoes.com/search?search=\" + subtext;\n break;\n }\n } else {\n var option = text.substr(1);\n switch (option) {\n case \"d\":\n window.location = \"https://www.duckduckgo.com\";\n break;\n case \"y\":\n window.location = \"https://www.youtube.com\";\n break;\n case \"r\":\n window.location = \"https://reddit.com\";\n break;\n case \"s\":\n window.location = \"https://open.spotify.com\";\n break;\n }\n }\n } else if (validURL(text)) {\n if (containsProtocol(text))\n window.location = text;\n else\n window.location = \"https://\" + text;\n } else {\n window.location = \"https://www.google.com/search?q=\" + text;\n }\n}\n\n// Source: https://stackoverflow.com/questions/5717093/check-if-a-javascript-string-is-a-url\nfunction validURL(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/)?' + // protocol\n '((([a-z\\\\d]([a-z\\\\d-]*[a-z\\\\d])*)\\\\.)+[a-z]{2,}|' + // domain name\n '((\\\\d{1,3}\\\\.){3}\\\\d{1,3}))' + // OR ip (v4) address\n '(\\\\:\\\\d+)?(\\\\/[-a-z\\\\d%_.~+]*)*' + // port and path\n '(\\\\?[;&a-z\\\\d%_.~+=-]*)?' + // query string\n '(\\\\#[-a-z\\\\d_]*)?$', 'i'); // fragment locator\n return !!pattern.test(str);\n}\n\nfunction containsProtocol(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/){1}.*', 'i');\n return !!pattern.test(str);\n}\n\nString.prototype.replaceAll = function(search, replacement) {\n var target = this;\n return target.split(search).join(replacement);\n};"]},"metadata":{},"sourceType":"module"}
\ No newline at end of file
diff --git a/node_modules/.cache/babel-loader/be1e25eb9d400bbba6890d14f7c857bf.json b/node_modules/.cache/babel-loader/be1e25eb9d400bbba6890d14f7c857bf.json
new file mode 100644
index 00000000..8942556d
--- /dev/null
+++ b/node_modules/.cache/babel-loader/be1e25eb9d400bbba6890d14f7c857bf.json
@@ -0,0 +1 @@
+{"ast":null,"code":"var _jsxFileName = \"/home/seanedmunds/dev/home-page/src/index.js\",\n _s = $RefreshSig$();\n\nimport React from 'react';\nimport { useState, useEffect } from 'react';\nimport ReactDOM from 'react-dom'; //import { unstable_createPortal } from 'react-dom';\n\nimport './index.css';\nimport { jsxDEV as _jsxDEV } from \"react/jsx-dev-runtime\";\n\nconst setValueFromLocalStorage = property => {\n let value = localStorage.getItem(property);\n setValue(property, value);\n};\n\nconst setValue = (property, value) => {\n if (value) {\n document.documentElement.style.setProperty(`--${property}`, value);\n const input = document.querySelector(`#${property}`);\n\n if (input) {\n value = value.replace('px', '');\n input.value = value;\n }\n }\n};\n\nfunction Homepage() {\n setTheme();\n var checked = localStorage.getItem(\"contenttype\");\n console.log(\"Checked is \" + checked);\n return /*#__PURE__*/_jsxDEV(\"main\", {\n id: \"container\",\n className: \"fade\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Search, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 30,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 29,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Header, {\n date: date(),\n greet: greet()\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 33,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 32,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Applications, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 39,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 38,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Bookmarks, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 42,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 41,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(ModalMenu, {\n boxChecked: checked\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 45,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 44,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(ModalInit, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 50,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 49,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 28,\n columnNumber: 5\n }, this);\n}\n\n_c = Homepage;\n\nfunction Search() {\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"search\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"abackground\",\n children: [/*#__PURE__*/_jsxDEV(\"input\", {\n name: \"keywords\",\n type: \"text\",\n className: \"keyword\",\n id: \"keywords\",\n size: \"50\",\n spellCheck: \"true\",\n placeholder: \"\"\n /*onFocus={this.placeholder = \"\"} onBlur={this.placeholder = ''}*/\n ,\n autoComplete: \"off\",\n autoFocus: true,\n onKeyUp: handleKeyPress\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 60,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n id: \"searchType\",\n className: \"Input-label\",\n children: \"Google search\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 61,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 59,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 58,\n columnNumber: 5\n }, this);\n}\n\n_c2 = Search;\n\nfunction Header(props) {\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"header\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n id: \"greeting_block\",\n children: /*#__PURE__*/_jsxDEV(\"h1\", {\n id: \"header_greet\",\n children: props.greet\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 71,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 70,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"date_block\",\n children: [/*#__PURE__*/_jsxDEV(\"h2\", {\n id: \"header_date\",\n children: props.date\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 74,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(Clock, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 75,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 73,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 69,\n columnNumber: 5\n }, this);\n}\n\n_c3 = Header;\n\nfunction Applications() {\n let appList = getApps();\n var items = [];\n\n for (var i = 0; i < appList.apps.length; i++) {\n var safe = appList.apps[i].NSFW;\n var NSFWEnabled = localStorage.getItem(\"contenttype\");\n\n if (safe === \"SAFE\") {\n items.push( /*#__PURE__*/_jsxDEV(App, {\n name: appList.apps[i].name,\n url: appList.apps[i].url,\n icon: appList.apps[i].icon,\n NSFW: appList.apps[i].NSFW\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 89,\n columnNumber: 9\n }, this));\n } else if (safe === \"NSFW\" && NSFWEnabled) {\n items.push( /*#__PURE__*/_jsxDEV(App, {\n name: appList.apps[i].name,\n url: appList.apps[i].url,\n icon: appList.apps[i].icon,\n NSFW: appList.apps[i].NSFW\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 99,\n columnNumber: 9\n }, this));\n } else {}\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"apps\",\n children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n children: \"Applications\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 114,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"apps_loop\",\n children: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 115,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 113,\n columnNumber: 5\n }, this);\n}\n\n_c4 = Applications;\n\nfunction App(props) {\n let classNameType = props.NSFW + \"-content\";\n let hrefUrl = \"https://\" + props.url;\n let iconName = \"mdi-\" + props.icon;\n return /*#__PURE__*/_jsxDEV(\"div\", {\n className: classNameType,\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: hrefUrl,\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_item\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_icon\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify icon\",\n \"data-icon\": iconName\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 132,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 131,\n columnNumber: 13\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_text\",\n children: [/*#__PURE__*/_jsxDEV(\"span\", {\n id: \"app-name\",\n children: props.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 135,\n columnNumber: 15\n }, this), /*#__PURE__*/_jsxDEV(\"span\", {\n id: \"app-address\",\n children: props.url\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 136,\n columnNumber: 15\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 134,\n columnNumber: 13\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 130,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 129,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 128,\n columnNumber: 7\n }, this);\n}\n\n_c5 = App;\n\nfunction Bookmarks() {\n let bookmarkList = getLinks();\n var items = [];\n\n for (var i = 0; i < bookmarkList.bookmarks.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(LinkGroups, {\n category: bookmarkList.bookmarks[i].category,\n links: bookmarkList.bookmarks[i].links\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 149,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"links\",\n children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n children: \"Bookmarks\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 158,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"links_loop\",\n children: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 159,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 157,\n columnNumber: 5\n }, this);\n}\n\n_c6 = Bookmarks;\n\nfunction LinkGroups(props) {\n var items = [];\n\n for (var i = 0; i < props.links.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(LinkItem, {\n link: props.links[i]\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 170,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"links_item\",\n children: [/*#__PURE__*/_jsxDEV(\"h4\", {\n children: props.category\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 178,\n columnNumber: 7\n }, this), items]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 177,\n columnNumber: 5\n }, this);\n}\n\n_c7 = LinkGroups;\n\nfunction LinkItem(props) {\n return /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: props.link.url,\n className: \"theme_color-border theme_text-select\",\n children: props.link.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 187,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 186,\n columnNumber: 5\n }, this);\n}\n\n_c8 = LinkItem;\n\nfunction ModalMenu(props) {\n var providers = getProviders();\n var items = [];\n\n for (var i = 0; i < providers.providers.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(Provider, {\n provider: providers.providers[i]\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 197,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"modal\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n children: [/*#__PURE__*/_jsxDEV(\"header\", {\n id: \"modal-header\",\n children: [/*#__PURE__*/_jsxDEV(\"h1\", {\n children: \"Options\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 207,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n href: \"#\",\n title: \"Close\",\n className: \"modal-close\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-close\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 209,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 208,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 206,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"h2\", {\n children: \"Color themes\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 213,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"modal-theme\",\n children: [/*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"blackboard\",\n className: \"theme-button theme-blackboard\",\n onClick: updateTheme,\n children: \"Blackboard\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 216,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"gazette\",\n className: \"theme-button theme-gazette\",\n onClick: updateTheme,\n children: \"Gazette\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 217,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"espresso\",\n className: \"theme-button theme-espresso\",\n onClick: updateTheme,\n children: \"Espresso\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 218,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cab\",\n className: \"theme-button theme-cab\",\n onClick: updateTheme,\n children: \"Cab\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 219,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cloud\",\n className: \"theme-button theme-cloud\",\n onClick: updateTheme,\n children: \"Cloud\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 220,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"lime\",\n className: \"theme-button theme-lime\",\n onClick: updateTheme,\n children: \"Lime\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 221,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"passion\",\n className: \"theme-button theme-passion\",\n onClick: updateTheme,\n children: \"Passion\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 222,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"blues\",\n className: \"theme-button theme-blues\",\n onClick: updateTheme,\n children: \"Blues\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 223,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"chalk\",\n className: \"theme-button theme-chalk\",\n onClick: updateTheme,\n children: \"Chalk\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 224,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"tron\",\n className: \"theme-button theme-tron\",\n onClick: updateTheme,\n children: \"Tron\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 225,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"paper\",\n className: \"theme-button theme-paper\",\n onClick: updateTheme,\n children: \"Paper\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 226,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cyberpunk\",\n className: \"theme-button theme-cyberpunk\",\n onClick: updateTheme,\n children: \"Cyberpunk\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 227,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"quadra\",\n className: \"theme-button theme-panam\",\n onClick: updateTheme,\n children: \"Quadra\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 228,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"panam\",\n className: \"theme-button theme-panam\",\n onClick: updateTheme,\n children: \"Panam\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 229,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"touch\",\n className: \"theme-button theme-touch\",\n onClick: updateTheme,\n children: \"Touch\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 230,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"peek\",\n className: \"theme-button theme-peek\",\n onClick: updateTheme,\n children: \"Peek\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 231,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 215,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"h2\", {\n children: \"Search options\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 235,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"providers\",\n children: /*#__PURE__*/_jsxDEV(\"table\", {\n children: /*#__PURE__*/_jsxDEV(\"tbody\", {\n children: [/*#__PURE__*/_jsxDEV(\"tr\", {\n children: [/*#__PURE__*/_jsxDEV(\"th\", {\n children: \"Website\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 240,\n columnNumber: 19\n }, this), /*#__PURE__*/_jsxDEV(\"th\", {\n children: \"Prefix\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 241,\n columnNumber: 19\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 239,\n columnNumber: 17\n }, this), items]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 238,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 237,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 236,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"header\", {\n id: \"modal-footer\",\n children: [/*#__PURE__*/_jsxDEV(\"a\", {\n href: \"https://github.com/jeroenpardon/\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-github-box\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 249,\n columnNumber: 54\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 249,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n href: \"https://materialdesignicons.com/\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-material-design\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 250,\n columnNumber: 54\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 250,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"sneaky\",\n children: [/*#__PURE__*/_jsxDEV(\"input\", {\n type: \"checkbox\",\n id: \"contenttype\",\n checked: props.checked,\n onChange: udpateDisplayedItems\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 251,\n columnNumber: 35\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n for: \"contenttype\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-domino-mask\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 252,\n columnNumber: 36\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 252,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 251,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 248,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 205,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 204,\n columnNumber: 5\n }, this);\n}\n\n_c9 = ModalMenu;\n\nfunction Provider(props) {\n return /*#__PURE__*/_jsxDEV(\"tr\", {\n children: [/*#__PURE__*/_jsxDEV(\"td\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: props.provider.url,\n children: props.provider.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 262,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 262,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"td\", {\n children: props.provider.prefix\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 263,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 261,\n columnNumber: 5\n }, this);\n}\n\n_c10 = Provider;\n\nfunction ModalInit() {\n setDisplayedItems();\n return /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"modal_init\",\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n className: \"btn\",\n href: \"#modal\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify icon\",\n \"data-icon\": \"mdi-xbox-controller-menu\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 273,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 272,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 271,\n columnNumber: 5\n }, this);\n}\n\n_c11 = ModalInit;\nReactDOM.render( /*#__PURE__*/_jsxDEV(Homepage, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 280,\n columnNumber: 3\n}, this), document.getElementById('root')); //Functions below this line are for calculating data for\n//other functions\n\nfunction date() {\n let currentDate = new Date();\n let dateOptions = {\n weekday: \"long\",\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\"\n };\n let date = currentDate.toLocaleDateString(\"en-GB\", dateOptions);\n return date;\n}\n\nfunction fixDigits(k) {\n if (k < 10) {\n return \"0\" + k;\n } else {\n return k;\n }\n}\n\nfunction greet() {\n let currentTime = new Date();\n let greet = Math.floor(currentTime.getHours() / 6);\n let easterEggChance = Math.floor(Math.random() * 100);\n\n let greetings = require('./messages.json');\n\n let timeBased = [];\n let easterEggs = [];\n\n for (var i = 0; i < greetings.messages.length; i++) {\n if (greetings.messages[i].easteregg === \"FALSE\") {\n timeBased = timeBased.concat(greetings.messages[i]);\n } else {\n easterEggs = easterEggs.concat(greetings.messages[i]);\n }\n }\n\n if (easterEggChance > 10) {\n return timeBased[greet].message;\n } else {\n let easterEggText = Math.floor(Math.random() * easterEggs.length);\n return easterEggs[easterEggText].message;\n }\n}\n\nfunction Clock() {\n _s();\n\n const [date, setDate] = useState(new Date());\n\n function refreshClock() {\n setDate(new Date());\n }\n\n useEffect(() => {\n const timerId = setInterval(refreshClock, 1000);\n return function cleanup() {\n clearInterval(timerId);\n };\n }, []);\n var hour = date.getHours();\n var minutes = date.getMinutes(); //var seconds = date.getSeconds();\n\n var midday = \"AM\";\n midday = hour >= 12 ? \"PM\" : \"AM\";\n hour = hour === 0 ? 12 : hour > 12 ? hour - 12 : hour;\n minutes = fixDigits(minutes); //seconds = fixDigits(seconds);\n\n let time = hour + \":\" + minutes + \" \" + midday;\n return /*#__PURE__*/_jsxDEV(\"h2\", {\n id: \"clock\",\n children: time\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 351,\n columnNumber: 5\n }, this);\n}\n\n_s(Clock, \"Gqi45WOZhU2c0BLYX0HoJeiR0fk=\");\n\n_c12 = Clock;\n\nfunction getApps() {\n let applications = require('./apps.json');\n\n return applications;\n}\n\nfunction getLinks() {\n let links = require('./links.json');\n\n return links;\n}\n\nfunction getProviders() {\n let providers = require('./providers.json');\n\n return providers;\n}\n\nfunction getThemes() {\n let themes = require('./themes.json');\n\n return themes;\n}\n\nfunction updateTheme(e) {\n var themes = getThemes();\n var themeName = e.target.innerHTML.toLowerCase();\n var index = themes.themes.findIndex(function (item, i) {\n return item.name === themeName;\n });\n localStorage.setItem(\"image-background\", themes.themes[index].imagebackground);\n localStorage.setItem(\"color-background\", themes.themes[index].colorbackground);\n localStorage.setItem(\"color-search-background\", themes.themes[index].colorserachbackground);\n localStorage.setItem(\"color-text-pri\", themes.themes[index].colortextpri);\n localStorage.setItem(\"color-text-acc\", themes.themes[index].colortextacc);\n localStorage.setItem(\"color-border\", themes.themes[index].colorborder); //document.documentElement.style.setProperty(prop, `var(--${themeName}${prop.substring(10)})`);\n\n setTheme();\n}\n\nfunction setTheme() {\n setValueFromLocalStorage('image-background');\n setValueFromLocalStorage('color-background');\n setValueFromLocalStorage('color-search-background');\n setValueFromLocalStorage('color-text-pri');\n setValueFromLocalStorage('color-text-acc');\n setValueFromLocalStorage('color-border');\n setValueFromLocalStorage('content-display');\n}\n\nfunction handleKeyPress(e) {\n var sindex = 0;\n var cycle = false;\n var key = e.keyCode || e.which;\n var text = e.target.value.replaceAll(\"+\", \"%2B\");\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n\n if (key == 13) {\n // Search functions\n search(text);\n }\n\n if (key == 9) {\n // Tab Completion Functions\n e.preventDefault();\n e.stopPropagation();\n\n if (text[0] === ';') {\n switch (option) {\n case 't':\n var streamers = ['admiralbahroo', 'moonmoon_ow', 'witwix'];\n\n if (!subtext || cycle) {\n cycle = true;\n if (sindex > streamers.length - 1) sindex = 0;\n document.getElementById(\"keywords\").value = ';t ' + streamers[sindex++];\n return;\n }\n\n for (var streamer of streamers) {\n if (subtext === streamer.substr(0, subtext.length)) {\n document.getElementById(\"keywords\").value = ';t ' + streamer;\n return;\n }\n }\n\n break;\n }\n }\n }\n\n if (key == 32) {\n //Space to go to search\n updateLabel(text);\n }\n\n sindex = 0;\n cycle = false;\n updateLabel(text);\n}\n\nfunction updateLabel(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n\n if (text[0] === '/') {\n // if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n document.getElementById(\"searchType\").innerHTML = \"Allmusic search\";\n break;\n\n case \"d\":\n document.getElementById(\"searchType\").innerHTML = \"Duck Duck Go search\";\n break;\n\n case \"di\":\n document.getElementById(\"searchType\").innerHTML = \"Discogs search\";\n break;\n\n case \"i\":\n document.getElementById(\"searchType\").innerHTML = \"IMDB search\";\n break;\n\n case \"m\":\n document.getElementById(\"searchType\").innerHTML = \"TheMovieDB search\";\n break;\n\n case \"r\":\n document.getElementById(\"searchType\").innerHTML = \"Reddit search\";\n break;\n\n case \"q\":\n document.getElementById(\"searchType\").innerHTML = \"Qwant search\";\n break;\n\n case \"so\":\n document.getElementById(\"searchType\").innerHTML = \"Soundcloud search\";\n break;\n\n case \"s\":\n document.getElementById(\"searchType\").innerHTML = \"Spotify search\";\n break;\n\n case \"tv\":\n document.getElementById(\"searchType\").innerHTML = \"TheTVDB search\";\n break;\n\n case \"t\":\n document.getElementById(\"searchType\").innerHTML = \"Trakt search\";\n break;\n\n case \"y\":\n document.getElementById(\"searchType\").innerHTML = \"YouTube search\";\n break;\n\n case \"w\":\n document.getElementById(\"searchType\").innerHTML = \"Wikipedia search\";\n break;\n\n case \"p\":\n document.getElementById(\"searchType\").innerHTML = \"Plex search\";\n break;\n\n case \"rt\":\n document.getElementById(\"searchType\").innerHTML = \"Rotten Tomatoes search\";\n break;\n\n default:\n document.getElementById(\"searchType\").innerHTML = \"Invalid search\";\n break;\n }\n } else {\n document.getElementById(\"searchType\").innerHTML = \"Google search\";\n }\n}\n\nfunction search(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n\n if (text[0] === '/') {\n if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n window.location = \"https://www.allmusic.com/search/all/\" + subtext;\n break;\n\n case \"d\":\n window.location = \"https://duckduckgo.com/?q=\" + subtext;\n break;\n\n case \"di\":\n window.location = \"https://www.discogs.com/search/?q=\" + subtext;\n break;\n\n case \"i\":\n window.location = \"https://www.imdb.com/find?q=\" + subtext;\n break;\n\n case \"m\":\n window.location = \"https://www.themoviedb.org/search?query=\" + subtext;\n break;\n\n case \"r\":\n window.location = \"https://www.reddit.com/search?q=\" + subtext;\n break;\n\n case \"q\":\n window.location = \"https://www.qwant.com/?q=\" + subtext;\n break;\n\n case \"so\":\n window.location = \"https://soundcloud.com/search?q=\" + subtext;\n break;\n\n case \"s\":\n window.location = \"https://open.spotify.com/search/results/\" + subtext;\n break;\n\n case \"t\":\n window.location = \"https://trakt.tv/search?query=\" + subtext;\n break;\n\n case \"tv\":\n window.location = \"https://www.thetvdb.com/search?query=\" + subtext;\n break;\n\n case \"y\":\n window.location = \"https://www.youtube.com/results?search_query=\" + subtext;\n break;\n\n case \"w\":\n window.location = \"https://en.wikipedia.org/w/index.php?search=\" + subtext;\n break;\n\n case \"p\":\n window.location = \"https://app.plex.tv/desktop/#!/search?query=\" + subtext;\n break;\n\n case \"rt\":\n window.location = \"https://www.rottentomatoes.com/search?search=\" + subtext;\n break;\n }\n } else {\n var option = text.substr(1);\n\n switch (option) {\n case \"d\":\n window.location = \"https://www.duckduckgo.com\";\n break;\n\n case \"y\":\n window.location = \"https://www.youtube.com\";\n break;\n\n case \"r\":\n window.location = \"https://reddit.com\";\n break;\n\n case \"s\":\n window.location = \"https://open.spotify.com\";\n break;\n }\n }\n } else if (validURL(text)) {\n if (containsProtocol(text)) window.location = text;else window.location = \"https://\" + text;\n } else {\n window.location = \"https://www.google.com/search?q=\" + text;\n }\n}\n\nfunction validURL(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/)?' + // protocol\n '((([a-z\\\\d]([a-z\\\\d-]*[a-z\\\\d])*)\\\\.)+[a-z]{2,}|' + // domain name\n '((\\\\d{1,3}\\\\.){3}\\\\d{1,3}))' + // OR ip (v4) address\n '(\\\\:\\\\d+)?(\\\\/[-a-z\\\\d%_.~+]*)*' + // port and path\n '(\\\\?[;&a-z\\\\d%_.~+=-]*)?' + // query string\n '(\\\\#[-a-z\\\\d_]*)?$', 'i'); // fragment locator\n\n return !!pattern.test(str);\n}\n\nfunction containsProtocol(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/){1}.*', 'i');\n return !!pattern.test(str);\n}\n\nString.prototype.replaceAll = function (search, replacement) {\n var target = this;\n return target.split(search).join(replacement);\n};\n\nfunction udpateDisplayedItems(e) {\n localStorage.setItem('contenttype', e.target.checked);\n\n if (e.target.checked) {\n localStorage.setItem('content-display', 'none');\n } else {\n localStorage.setItem('content-display', 'block');\n }\n\n setDisplayedItems();\n}\n\nfunction setDisplayedItems() {\n setValueFromLocalStorage('contenttype');\n setValueFromLocalStorage('content-display');\n}\n\nvar _c, _c2, _c3, _c4, _c5, _c6, _c7, _c8, _c9, _c10, _c11, _c12;\n\n$RefreshReg$(_c, \"Homepage\");\n$RefreshReg$(_c2, \"Search\");\n$RefreshReg$(_c3, \"Header\");\n$RefreshReg$(_c4, \"Applications\");\n$RefreshReg$(_c5, \"App\");\n$RefreshReg$(_c6, \"Bookmarks\");\n$RefreshReg$(_c7, \"LinkGroups\");\n$RefreshReg$(_c8, \"LinkItem\");\n$RefreshReg$(_c9, \"ModalMenu\");\n$RefreshReg$(_c10, \"Provider\");\n$RefreshReg$(_c11, \"ModalInit\");\n$RefreshReg$(_c12, \"Clock\");","map":{"version":3,"sources":["/home/seanedmunds/dev/home-page/src/index.js"],"names":["React","useState","useEffect","ReactDOM","setValueFromLocalStorage","property","value","localStorage","getItem","setValue","document","documentElement","style","setProperty","input","querySelector","replace","Homepage","setTheme","checked","console","log","date","greet","Search","handleKeyPress","Header","props","Applications","appList","getApps","items","i","apps","length","safe","NSFW","NSFWEnabled","push","name","url","icon","App","classNameType","hrefUrl","iconName","Bookmarks","bookmarkList","getLinks","bookmarks","category","links","LinkGroups","LinkItem","link","ModalMenu","providers","getProviders","updateTheme","udpateDisplayedItems","Provider","provider","prefix","ModalInit","setDisplayedItems","render","getElementById","currentDate","Date","dateOptions","weekday","year","month","day","toLocaleDateString","fixDigits","k","currentTime","Math","floor","getHours","easterEggChance","random","greetings","require","timeBased","easterEggs","messages","easteregg","concat","message","easterEggText","Clock","setDate","refreshClock","timerId","setInterval","cleanup","clearInterval","hour","minutes","getMinutes","midday","time","applications","getThemes","themes","e","themeName","target","innerHTML","toLowerCase","index","findIndex","item","setItem","imagebackground","colorbackground","colorserachbackground","colortextpri","colortextacc","colorborder","sindex","cycle","key","keyCode","which","text","replaceAll","option","substr","indexOf","subtext","search","preventDefault","stopPropagation","streamers","streamer","updateLabel","window","location","validURL","containsProtocol","str","pattern","RegExp","test","String","prototype","replacement","split","join"],"mappings":";;;AAAA,OAAOA,KAAP,MAAkB,OAAlB;AACA,SAASC,QAAT,EAAmBC,SAAnB,QAAoC,OAApC;AACA,OAAOC,QAAP,MAAqB,WAArB,C,CACA;;AACA,OAAO,aAAP;;;AAEA,MAAMC,wBAAwB,GAAGC,QAAQ,IAAI;AAC3C,MAAIC,KAAK,GAAGC,YAAY,CAACC,OAAb,CAAqBH,QAArB,CAAZ;AACAI,EAAAA,QAAQ,CAACJ,QAAD,EAAWC,KAAX,CAAR;AACD,CAHD;;AAIA,MAAMG,QAAQ,GAAG,CAACJ,QAAD,EAAWC,KAAX,KAAqB;AACpC,MAAIA,KAAJ,EAAW;AACPI,IAAAA,QAAQ,CAACC,eAAT,CAAyBC,KAAzB,CAA+BC,WAA/B,CAA4C,KAAIR,QAAS,EAAzD,EAA4DC,KAA5D;AAEA,UAAMQ,KAAK,GAAGJ,QAAQ,CAACK,aAAT,CAAwB,IAAGV,QAAS,EAApC,CAAd;;AACA,QAAIS,KAAJ,EAAW;AACPR,MAAAA,KAAK,GAAGA,KAAK,CAACU,OAAN,CAAc,IAAd,EAAoB,EAApB,CAAR;AACAF,MAAAA,KAAK,CAACR,KAAN,GAAcA,KAAd;AACH;AACJ;AACF,CAVD;;AAYA,SAASW,QAAT,GAAoB;AAClBC,EAAAA,QAAQ;AACR,MAAIC,OAAO,GAAGZ,YAAY,CAACC,OAAb,CAAqB,aAArB,CAAd;AACAY,EAAAA,OAAO,CAACC,GAAR,CAAY,gBAAgBF,OAA5B;AACA,sBACE;AAAM,IAAA,EAAE,EAAC,WAAT;AAAqB,IAAA,SAAS,EAAC,MAA/B;AAAA,4BACI;AAAA,6BACE,QAAC,MAAD;AAAA;AAAA;AAAA;AAAA;AADF;AAAA;AAAA;AAAA;AAAA,YADJ,eAII;AAAA,6BACE,QAAC,MAAD;AACE,QAAA,IAAI,EAAEG,IAAI,EADZ;AAEE,QAAA,KAAK,EAAEC,KAAK;AAFd;AAAA;AAAA;AAAA;AAAA;AADF;AAAA;AAAA;AAAA;AAAA,YAJJ,eAUI;AAAA,6BACE,QAAC,YAAD;AAAA;AAAA;AAAA;AAAA;AADF;AAAA;AAAA;AAAA;AAAA,YAVJ,eAaI;AAAA,6BACE,QAAC,SAAD;AAAA;AAAA;AAAA;AAAA;AADF;AAAA;AAAA;AAAA;AAAA,YAbJ,eAgBI;AAAA,6BACE,QAAC,SAAD;AACE,QAAA,UAAU,EAAIJ;AADhB;AAAA;AAAA;AAAA;AAAA;AADF;AAAA;AAAA;AAAA;AAAA,YAhBJ,eAqBI;AAAA,6BACE,QAAC,SAAD;AAAA;AAAA;AAAA;AAAA;AADF;AAAA;AAAA;AAAA;AAAA,YArBJ;AAAA;AAAA;AAAA;AAAA;AAAA,UADF;AA2BD;;KA/BQF,Q;;AAiCT,SAASO,MAAT,GAAkB;AAChB,sBACE;AAAS,IAAA,EAAE,EAAC,QAAZ;AAAA,2BACE;AAAK,MAAA,SAAS,EAAC,aAAf;AAAA,8BACE;AAAO,QAAA,IAAI,EAAC,UAAZ;AAAuB,QAAA,IAAI,EAAC,MAA5B;AAAmC,QAAA,SAAS,EAAC,SAA7C;AAAuD,QAAA,EAAE,EAAC,UAA1D;AAAqE,QAAA,IAAI,EAAC,IAA1E;AAA+E,QAAA,UAAU,EAAC,MAA1F;AAAiG,QAAA,WAAW,EAAC;AAAG;AAAhH;AAAmL,QAAA,YAAY,EAAC,KAAhM;AAAsM,QAAA,SAAS,EAAE,IAAjN;AAAuN,QAAA,OAAO,EAAEC;AAAhO;AAAA;AAAA;AAAA;AAAA,cADF,eAEE;AAAO,QAAA,EAAE,EAAC,YAAV;AAAuB,QAAA,SAAS,EAAC,aAAjC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,cAFF;AAAA;AAAA;AAAA;AAAA;AAAA;AADF;AAAA;AAAA;AAAA;AAAA,UADF;AAQD;;MATQD,M;;AAWT,SAASE,MAAT,CAAgBC,KAAhB,EAAuB;AACrB,sBACE;AAAS,IAAA,EAAE,EAAC,QAAZ;AAAA,4BACE;AAAK,MAAA,EAAE,EAAC,gBAAR;AAAA,6BACE;AAAI,QAAA,EAAE,EAAC,cAAP;AAAA,kBAAuBA,KAAK,CAACJ;AAA7B;AAAA;AAAA;AAAA;AAAA;AADF;AAAA;AAAA;AAAA;AAAA,YADF,eAIE;AAAK,MAAA,EAAE,EAAC,YAAR;AAAA,8BACE;AAAI,QAAA,EAAE,EAAC,aAAP;AAAA,kBAAsBI,KAAK,CAACL;AAA5B;AAAA;AAAA;AAAA;AAAA,cADF,eAEE,QAAC,KAAD;AAAA;AAAA;AAAA;AAAA,cAFF;AAAA;AAAA;AAAA;AAAA;AAAA,YAJF;AAAA;AAAA;AAAA;AAAA;AAAA,UADF;AAWD;;MAZQI,M;;AAcT,SAASE,YAAT,GAAwB;AACtB,MAAIC,OAAO,GAAGC,OAAO,EAArB;AACA,MAAIC,KAAK,GAAG,EAAZ;;AACA,OAAK,IAAIC,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGH,OAAO,CAACI,IAAR,CAAaC,MAAjC,EAAyCF,CAAC,EAA1C,EAA8C;AAC5C,QAAIG,IAAI,GAAGN,OAAO,CAACI,IAAR,CAAaD,CAAb,EAAgBI,IAA3B;AACA,QAAIC,WAAW,GAAG9B,YAAY,CAACC,OAAb,CAAqB,aAArB,CAAlB;;AACA,QAAI2B,IAAI,KAAK,MAAb,EAAqB;AACnBJ,MAAAA,KAAK,CAACO,IAAN,eACE,QAAC,GAAD;AAEE,QAAA,IAAI,EAAET,OAAO,CAACI,IAAR,CAAaD,CAAb,EAAgBO,IAFxB;AAGE,QAAA,GAAG,EAAEV,OAAO,CAACI,IAAR,CAAaD,CAAb,EAAgBQ,GAHvB;AAIE,QAAA,IAAI,EAAEX,OAAO,CAACI,IAAR,CAAaD,CAAb,EAAgBS,IAJxB;AAKE,QAAA,IAAI,EAAEZ,OAAO,CAACI,IAAR,CAAaD,CAAb,EAAgBI;AALxB,SACOJ,CADP;AAAA;AAAA;AAAA;AAAA,cADF;AASD,KAVD,MAUO,IAAIG,IAAI,KAAK,MAAT,IAAmBE,WAAvB,EAAoC;AACzCN,MAAAA,KAAK,CAACO,IAAN,eACE,QAAC,GAAD;AAEE,QAAA,IAAI,EAAET,OAAO,CAACI,IAAR,CAAaD,CAAb,EAAgBO,IAFxB;AAGE,QAAA,GAAG,EAAEV,OAAO,CAACI,IAAR,CAAaD,CAAb,EAAgBQ,GAHvB;AAIE,QAAA,IAAI,EAAEX,OAAO,CAACI,IAAR,CAAaD,CAAb,EAAgBS,IAJxB;AAKE,QAAA,IAAI,EAAEZ,OAAO,CAACI,IAAR,CAAaD,CAAb,EAAgBI;AALxB,SACOJ,CADP;AAAA;AAAA;AAAA;AAAA,cADF;AASD,KAVM,MAUA,CAEN;AAEF;;AACD,sBACE;AAAS,IAAA,EAAE,EAAC,MAAZ;AAAA,4BACE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,YADF,eAEE;AAAK,MAAA,EAAE,EAAC,WAAR;AAAA,gBACGD;AADH;AAAA;AAAA;AAAA;AAAA,YAFF;AAAA;AAAA;AAAA;AAAA;AAAA,UADF;AAQD;;MAvCQH,Y;;AAyCT,SAASc,GAAT,CAAaf,KAAb,EAAoB;AAEhB,MAAIgB,aAAa,GAAGhB,KAAK,CAACS,IAAN,GAAa,UAAjC;AACA,MAAIQ,OAAO,GAAG,aAAajB,KAAK,CAACa,GAAjC;AACA,MAAIK,QAAQ,GAAG,SAASlB,KAAK,CAACc,IAA9B;AACA,sBACE;AAAK,IAAA,SAAS,EAAEE,aAAhB;AAAA,2BACE;AAAG,MAAA,IAAI,EAAEC,OAAT;AAAA,6BACE;AAAK,QAAA,SAAS,EAAC,WAAf;AAAA,gCACE;AAAK,UAAA,SAAS,EAAC,WAAf;AAAA,iCACE;AAAM,YAAA,SAAS,EAAC,cAAhB;AAA+B,yBAAWC;AAA1C;AAAA;AAAA;AAAA;AAAA;AADF;AAAA;AAAA;AAAA;AAAA,gBADF,eAIE;AAAK,UAAA,SAAS,EAAC,WAAf;AAAA,kCACE;AAAM,YAAA,EAAE,EAAC,UAAT;AAAA,sBAAqBlB,KAAK,CAACY;AAA3B;AAAA;AAAA;AAAA;AAAA,kBADF,eAEE;AAAM,YAAA,EAAE,EAAC,aAAT;AAAA,sBAAwBZ,KAAK,CAACa;AAA9B;AAAA;AAAA;AAAA;AAAA,kBAFF;AAAA;AAAA;AAAA;AAAA;AAAA,gBAJF;AAAA;AAAA;AAAA;AAAA;AAAA;AADF;AAAA;AAAA;AAAA;AAAA;AADF;AAAA;AAAA;AAAA;AAAA,UADF;AAeH;;MApBQE,G;;AAsBT,SAASI,SAAT,GAAqB;AACnB,MAAIC,YAAY,GAAGC,QAAQ,EAA3B;AACA,MAAIjB,KAAK,GAAG,EAAZ;;AACA,OAAK,IAAIC,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGe,YAAY,CAACE,SAAb,CAAuBf,MAA3C,EAAmDF,CAAC,EAApD,EAAwD;AACtDD,IAAAA,KAAK,CAACO,IAAN,eACE,QAAC,UAAD;AAEE,MAAA,QAAQ,EAAES,YAAY,CAACE,SAAb,CAAuBjB,CAAvB,EAA0BkB,QAFtC;AAGE,MAAA,KAAK,EAAEH,YAAY,CAACE,SAAb,CAAuBjB,CAAvB,EAA0BmB;AAHnC,OACOnB,CADP;AAAA;AAAA;AAAA;AAAA,YADF;AAOD;;AACD,sBACE;AAAS,IAAA,EAAE,EAAC,OAAZ;AAAA,4BACE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,YADF,eAEE;AAAK,MAAA,EAAE,EAAC,YAAR;AAAA,gBACKD;AADL;AAAA;AAAA;AAAA;AAAA,YAFF;AAAA;AAAA;AAAA;AAAA;AAAA,UADF;AAQD;;MApBQe,S;;AAsBT,SAASM,UAAT,CAAoBzB,KAApB,EAA2B;AACzB,MAAII,KAAK,GAAG,EAAZ;;AACA,OAAK,IAAIC,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGL,KAAK,CAACwB,KAAN,CAAYjB,MAAhC,EAAwCF,CAAC,EAAzC,EAA6C;AAC3CD,IAAAA,KAAK,CAACO,IAAN,eACE,QAAC,QAAD;AAEE,MAAA,IAAI,EAAEX,KAAK,CAACwB,KAAN,CAAYnB,CAAZ;AAFR,OACOA,CADP;AAAA;AAAA;AAAA;AAAA,YADF;AAMD;;AACD,sBACE;AAAK,IAAA,EAAE,EAAC,YAAR;AAAA,4BACE;AAAA,gBAAKL,KAAK,CAACuB;AAAX;AAAA;AAAA;AAAA;AAAA,YADF,EAEGnB,KAFH;AAAA;AAAA;AAAA;AAAA;AAAA,UADF;AAMD;;MAhBQqB,U;;AAkBT,SAASC,QAAT,CAAkB1B,KAAlB,EAAyB;AACvB,sBACE;AAAA,2BACE;AAAG,MAAA,IAAI,EAAEA,KAAK,CAAC2B,IAAN,CAAWd,GAApB;AAAyB,MAAA,SAAS,EAAC,sCAAnC;AAAA,gBAA2Eb,KAAK,CAAC2B,IAAN,CAAWf;AAAtF;AAAA;AAAA;AAAA;AAAA;AADF;AAAA;AAAA;AAAA;AAAA,UADF;AAKD;;MANQc,Q;;AAQT,SAASE,SAAT,CAAmB5B,KAAnB,EAA0B;AACxB,MAAI6B,SAAS,GAAGC,YAAY,EAA5B;AACA,MAAI1B,KAAK,GAAG,EAAZ;;AACA,OAAK,IAAIC,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGwB,SAAS,CAACA,SAAV,CAAoBtB,MAAxC,EAAgDF,CAAC,EAAjD,EAAqD;AACnDD,IAAAA,KAAK,CAACO,IAAN,eACE,QAAC,QAAD;AAEE,MAAA,QAAQ,EAAEkB,SAAS,CAACA,SAAV,CAAoBxB,CAApB;AAFZ,OACOA,CADP;AAAA;AAAA;AAAA;AAAA,YADF;AAMD;;AACD,sBACE;AAAS,IAAA,EAAE,EAAC,OAAZ;AAAA,2BACE;AAAA,8BACE;AAAQ,QAAA,EAAE,EAAC,cAAX;AAAA,gCACE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,gBADF,eAEE;AAAG,UAAA,IAAI,EAAC,GAAR;AAAY,UAAA,KAAK,EAAC,OAAlB;AAA0B,UAAA,SAAS,EAAC,aAApC;AAAA,iCACE;AAAM,YAAA,SAAS,EAAC,SAAhB;AAA0B,yBAAU;AAApC;AAAA;AAAA;AAAA;AAAA;AADF;AAAA;AAAA;AAAA;AAAA,gBAFF;AAAA;AAAA;AAAA;AAAA;AAAA,cADF,eAQE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,cARF,eAUE;AAAK,QAAA,EAAE,EAAC,aAAR;AAAA,gCACE;AAAQ,wBAAW,YAAnB;AAAgC,UAAA,SAAS,EAAC,+BAA1C;AAA0E,UAAA,OAAO,EAAE0B,WAAnF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,gBADF,eAEE;AAAQ,wBAAW,SAAnB;AAA6B,UAAA,SAAS,EAAC,4BAAvC;AAAoE,UAAA,OAAO,EAAEA,WAA7E;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,gBAFF,eAGE;AAAQ,wBAAW,UAAnB;AAA8B,UAAA,SAAS,EAAC,6BAAxC;AAAsE,UAAA,OAAO,EAAEA,WAA/E;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,gBAHF,eAIE;AAAQ,wBAAW,KAAnB;AAAyB,UAAA,SAAS,EAAC,wBAAnC;AAA4D,UAAA,OAAO,EAAEA,WAArE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,gBAJF,eAKE;AAAQ,wBAAW,OAAnB;AAA2B,UAAA,SAAS,EAAC,0BAArC;AAAgE,UAAA,OAAO,EAAEA,WAAzE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,gBALF,eAME;AAAQ,wBAAW,MAAnB;AAA0B,UAAA,SAAS,EAAC,yBAApC;AAA8D,UAAA,OAAO,EAAEA,WAAvE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,gBANF,eAOE;AAAQ,wBAAW,SAAnB;AAA6B,UAAA,SAAS,EAAC,4BAAvC;AAAoE,UAAA,OAAO,EAAEA,WAA7E;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,gBAPF,eAQE;AAAQ,wBAAW,OAAnB;AAA2B,UAAA,SAAS,EAAC,0BAArC;AAAgE,UAAA,OAAO,EAAEA,WAAzE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,gBARF,eASE;AAAQ,wBAAW,OAAnB;AAA2B,UAAA,SAAS,EAAC,0BAArC;AAAgE,UAAA,OAAO,EAAEA,WAAzE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,gBATF,eAUE;AAAQ,wBAAW,MAAnB;AAA0B,UAAA,SAAS,EAAC,yBAApC;AAA8D,UAAA,OAAO,EAAEA,WAAvE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,gBAVF,eAWE;AAAQ,wBAAW,OAAnB;AAA2B,UAAA,SAAS,EAAC,0BAArC;AAAgE,UAAA,OAAO,EAAEA,WAAzE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,gBAXF,eAYE;AAAQ,wBAAW,WAAnB;AAA+B,UAAA,SAAS,EAAC,8BAAzC;AAAwE,UAAA,OAAO,EAAEA,WAAjF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,gBAZF,eAaE;AAAQ,wBAAW,QAAnB;AAA4B,UAAA,SAAS,EAAC,0BAAtC;AAAiE,UAAA,OAAO,EAAEA,WAA1E;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,gBAbF,eAcE;AAAQ,wBAAW,OAAnB;AAA2B,UAAA,SAAS,EAAC,0BAArC;AAAgE,UAAA,OAAO,EAAEA,WAAzE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,gBAdF,eAeE;AAAQ,wBAAW,OAAnB;AAA2B,UAAA,SAAS,EAAC,0BAArC;AAAgE,UAAA,OAAO,EAAEA,WAAzE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,gBAfF,eAgBE;AAAQ,wBAAW,MAAnB;AAA0B,UAAA,SAAS,EAAC,yBAApC;AAA8D,UAAA,OAAO,EAAEA,WAAvE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,gBAhBF;AAAA;AAAA;AAAA;AAAA;AAAA,cAVF,eA8BE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,cA9BF,eA+BI;AAAS,QAAA,EAAE,EAAC,WAAZ;AAAA,+BACE;AAAA,iCACE;AAAA,oCACE;AAAA,sCACE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,sBADF,eAEE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,sBAFF;AAAA;AAAA;AAAA;AAAA;AAAA,oBADF,EAKG3B,KALH;AAAA;AAAA;AAAA;AAAA;AAAA;AADF;AAAA;AAAA;AAAA;AAAA;AADF;AAAA;AAAA;AAAA;AAAA,cA/BJ,eA2CE;AAAQ,QAAA,EAAE,EAAC,cAAX;AAAA,gCACE;AAAG,UAAA,IAAI,EAAC,kCAAR;AAAA,iCAA2C;AAAM,YAAA,SAAS,EAAC,SAAhB;AAA0B,yBAAU;AAApC;AAAA;AAAA;AAAA;AAAA;AAA3C;AAAA;AAAA;AAAA;AAAA,gBADF,eAEE;AAAG,UAAA,IAAI,EAAC,kCAAR;AAAA,iCAA2C;AAAM,YAAA,SAAS,EAAC,SAAhB;AAA0B,yBAAU;AAApC;AAAA;AAAA;AAAA;AAAA;AAA3C;AAAA;AAAA;AAAA;AAAA,gBAFF,eAGE;AAAK,UAAA,SAAS,EAAC,QAAf;AAAA,kCAAwB;AAAO,YAAA,IAAI,EAAC,UAAZ;AAAuB,YAAA,EAAE,EAAC,aAA1B;AAAwC,YAAA,OAAO,EAAEJ,KAAK,CAACR,OAAvD;AAAgE,YAAA,QAAQ,EAAEwC;AAA1E;AAAA;AAAA;AAAA;AAAA,kBAAxB,eACA;AAAO,YAAA,GAAG,EAAC,aAAX;AAAA,mCAAyB;AAAM,cAAA,SAAS,EAAC,SAAhB;AAA0B,2BAAU;AAApC;AAAA;AAAA;AAAA;AAAA;AAAzB;AAAA;AAAA;AAAA;AAAA,kBADA;AAAA;AAAA;AAAA;AAAA;AAAA,gBAHF;AAAA;AAAA;AAAA;AAAA;AAAA,cA3CF;AAAA;AAAA;AAAA;AAAA;AAAA;AADF;AAAA;AAAA;AAAA;AAAA,UADF;AAsDD;;MAjEQJ,S;;AAmET,SAASK,QAAT,CAAkBjC,KAAlB,EAAyB;AACvB,sBACE;AAAA,4BACE;AAAA,6BAAI;AAAG,QAAA,IAAI,EAAEA,KAAK,CAACkC,QAAN,CAAerB,GAAxB;AAAA,kBAA8Bb,KAAK,CAACkC,QAAN,CAAetB;AAA7C;AAAA;AAAA;AAAA;AAAA;AAAJ;AAAA;AAAA;AAAA;AAAA,YADF,eAEE;AAAA,gBAAKZ,KAAK,CAACkC,QAAN,CAAeC;AAApB;AAAA;AAAA;AAAA;AAAA,YAFF;AAAA;AAAA;AAAA;AAAA;AAAA,UADF;AAMD;;OAPQF,Q;;AAST,SAASG,SAAT,GAAqB;AACnBC,EAAAA,iBAAiB;AACjB,sBACE;AAAK,IAAA,EAAE,EAAC,YAAR;AAAA,2BACE;AAAG,MAAA,SAAS,EAAC,KAAb;AAAmB,MAAA,IAAI,EAAC,QAAxB;AAAA,6BACE;AAAM,QAAA,SAAS,EAAC,cAAhB;AAA+B,qBAAU;AAAzC;AAAA;AAAA;AAAA;AAAA;AADF;AAAA;AAAA;AAAA;AAAA;AADF;AAAA;AAAA;AAAA;AAAA,UADF;AAOD;;OATQD,S;AAWT5D,QAAQ,CAAC8D,MAAT,eACE,QAAC,QAAD;AAAA;AAAA;AAAA;AAAA,QADF,EAEEvD,QAAQ,CAACwD,cAAT,CAAwB,MAAxB,CAFF,E,CAKA;AACA;;AAEA,SAAS5C,IAAT,GAAgB;AACd,MAAI6C,WAAW,GAAG,IAAIC,IAAJ,EAAlB;AACA,MAAIC,WAAW,GAAG;AAChBC,IAAAA,OAAO,EAAE,MADO;AAEhBC,IAAAA,IAAI,EAAE,SAFU;AAGhBC,IAAAA,KAAK,EAAE,MAHS;AAIhBC,IAAAA,GAAG,EAAE;AAJW,GAAlB;AAMA,MAAInD,IAAI,GAAG6C,WAAW,CAACO,kBAAZ,CAA+B,OAA/B,EAAwCL,WAAxC,CAAX;AACA,SAAO/C,IAAP;AACD;;AACD,SAASqD,SAAT,CAAmBC,CAAnB,EAAsB;AACpB,MAAIA,CAAC,GAAG,EAAR,EAAY;AACV,WAAO,MAAMA,CAAb;AACD,GAFD,MAGK;AACH,WAAOA,CAAP;AACD;AACF;;AACD,SAASrD,KAAT,GAAiB;AACf,MAAIsD,WAAW,GAAG,IAAIT,IAAJ,EAAlB;AACA,MAAI7C,KAAK,GAAGuD,IAAI,CAACC,KAAL,CAAWF,WAAW,CAACG,QAAZ,KAAyB,CAApC,CAAZ;AACA,MAAIC,eAAe,GAAGH,IAAI,CAACC,KAAL,CAAWD,IAAI,CAACI,MAAL,KAAgB,GAA3B,CAAtB;;AACA,MAAIC,SAAS,GAAGC,OAAO,CAAC,iBAAD,CAAvB;;AACA,MAAIC,SAAS,GAAG,EAAhB;AACA,MAAIC,UAAU,GAAG,EAAjB;;AACA,OAAK,IAAItD,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGmD,SAAS,CAACI,QAAV,CAAmBrD,MAAvC,EAA+CF,CAAC,EAAhD,EAAoD;AAClD,QAAImD,SAAS,CAACI,QAAV,CAAmBvD,CAAnB,EAAsBwD,SAAtB,KAAoC,OAAxC,EAAiD;AAC/CH,MAAAA,SAAS,GAAGA,SAAS,CAACI,MAAV,CAAiBN,SAAS,CAACI,QAAV,CAAmBvD,CAAnB,CAAjB,CAAZ;AACD,KAFD,MAEO;AACLsD,MAAAA,UAAU,GAAGA,UAAU,CAACG,MAAX,CAAkBN,SAAS,CAACI,QAAV,CAAmBvD,CAAnB,CAAlB,CAAb;AACD;AACF;;AACD,MAAIiD,eAAe,GAAG,EAAtB,EAA0B;AACxB,WAAOI,SAAS,CAAC9D,KAAD,CAAT,CAAiBmE,OAAxB;AACD,GAFD,MAEO;AACL,QAAIC,aAAa,GAAGb,IAAI,CAACC,KAAL,CAAWD,IAAI,CAACI,MAAL,KAAgBI,UAAU,CAACpD,MAAtC,CAApB;AACA,WAAOoD,UAAU,CAACK,aAAD,CAAV,CAA0BD,OAAjC;AACD;AACF;;AACD,SAASE,KAAT,GAAiB;AAAA;;AACf,QAAM,CAACtE,IAAD,EAAOuE,OAAP,IAAkB5F,QAAQ,CAAC,IAAImE,IAAJ,EAAD,CAAhC;;AAEA,WAAS0B,YAAT,GAAwB;AACtBD,IAAAA,OAAO,CAAC,IAAIzB,IAAJ,EAAD,CAAP;AACD;;AACDlE,EAAAA,SAAS,CAAC,MAAM;AACd,UAAM6F,OAAO,GAAGC,WAAW,CAACF,YAAD,EAAe,IAAf,CAA3B;AACA,WAAO,SAASG,OAAT,GAAmB;AACxBC,MAAAA,aAAa,CAACH,OAAD,CAAb;AACD,KAFD;AAGD,GALQ,EAKN,EALM,CAAT;AAOA,MAAII,IAAI,GAAG7E,IAAI,CAAC0D,QAAL,EAAX;AACA,MAAIoB,OAAO,GAAG9E,IAAI,CAAC+E,UAAL,EAAd,CAde,CAef;;AACA,MAAIC,MAAM,GAAG,IAAb;AACAA,EAAAA,MAAM,GAAIH,IAAI,IAAI,EAAT,GAAe,IAAf,GAAsB,IAA/B;AACAA,EAAAA,IAAI,GAAIA,IAAI,KAAK,CAAV,GAAe,EAAf,GAAsBA,IAAI,GAAG,EAAR,GAAeA,IAAI,GAAG,EAAtB,GAA4BA,IAAxD;AACAC,EAAAA,OAAO,GAAGzB,SAAS,CAACyB,OAAD,CAAnB,CAnBe,CAoBf;;AACA,MAAIG,IAAI,GAAGJ,IAAI,GAAG,GAAP,GAAaC,OAAb,GAAuB,GAAvB,GAA6BE,MAAxC;AAEA,sBACE;AAAI,IAAA,EAAE,EAAC,OAAP;AAAA,cAAgBC;AAAhB;AAAA;AAAA;AAAA;AAAA,UADF;AAID;;GA3BQX,K;;OAAAA,K;;AA4BT,SAAS9D,OAAT,GAAmB;AACjB,MAAI0E,YAAY,GAAGpB,OAAO,CAAC,aAAD,CAA1B;;AACA,SAAOoB,YAAP;AACD;;AACD,SAASxD,QAAT,GAAoB;AAClB,MAAIG,KAAK,GAAGiC,OAAO,CAAC,cAAD,CAAnB;;AACA,SAAOjC,KAAP;AACD;;AACD,SAASM,YAAT,GAAwB;AACtB,MAAID,SAAS,GAAG4B,OAAO,CAAC,kBAAD,CAAvB;;AACA,SAAO5B,SAAP;AACD;;AACD,SAASiD,SAAT,GAAqB;AACnB,MAAIC,MAAM,GAAGtB,OAAO,CAAC,eAAD,CAApB;;AACA,SAAOsB,MAAP;AACD;;AACD,SAAShD,WAAT,CAAqBiD,CAArB,EAAwB;AACtB,MAAID,MAAM,GAAGD,SAAS,EAAtB;AACA,MAAIG,SAAS,GAAGD,CAAC,CAACE,MAAF,CAASC,SAAT,CAAmBC,WAAnB,EAAhB;AACA,MAAIC,KAAK,GAAGN,MAAM,CAACA,MAAP,CAAcO,SAAd,CAAwB,UAASC,IAAT,EAAelF,CAAf,EAAiB;AACnD,WAAOkF,IAAI,CAAC3E,IAAL,KAAcqE,SAArB;AACD,GAFW,CAAZ;AAGArG,EAAAA,YAAY,CAAC4G,OAAb,CAAqB,kBAArB,EAAyCT,MAAM,CAACA,MAAP,CAAcM,KAAd,EAAqBI,eAA9D;AACA7G,EAAAA,YAAY,CAAC4G,OAAb,CAAqB,kBAArB,EAAyCT,MAAM,CAACA,MAAP,CAAcM,KAAd,EAAqBK,eAA9D;AACA9G,EAAAA,YAAY,CAAC4G,OAAb,CAAqB,yBAArB,EAAgDT,MAAM,CAACA,MAAP,CAAcM,KAAd,EAAqBM,qBAArE;AACA/G,EAAAA,YAAY,CAAC4G,OAAb,CAAqB,gBAArB,EAAsCT,MAAM,CAACA,MAAP,CAAcM,KAAd,EAAqBO,YAA3D;AACAhH,EAAAA,YAAY,CAAC4G,OAAb,CAAqB,gBAArB,EAAuCT,MAAM,CAACA,MAAP,CAAcM,KAAd,EAAqBQ,YAA5D;AACAjH,EAAAA,YAAY,CAAC4G,OAAb,CAAqB,cAArB,EAAqCT,MAAM,CAACA,MAAP,CAAcM,KAAd,EAAqBS,WAA1D,EAXsB,CAatB;;AACAvG,EAAAA,QAAQ;AACT;;AACD,SAASA,QAAT,GAAoB;AAClBd,EAAAA,wBAAwB,CAAC,kBAAD,CAAxB;AACAA,EAAAA,wBAAwB,CAAC,kBAAD,CAAxB;AACAA,EAAAA,wBAAwB,CAAC,yBAAD,CAAxB;AACAA,EAAAA,wBAAwB,CAAC,gBAAD,CAAxB;AACAA,EAAAA,wBAAwB,CAAC,gBAAD,CAAxB;AACAA,EAAAA,wBAAwB,CAAC,cAAD,CAAxB;AACAA,EAAAA,wBAAwB,CAAC,iBAAD,CAAxB;AACD;;AACD,SAASqB,cAAT,CAAwBkF,CAAxB,EAA2B;AACzB,MAAIe,MAAM,GAAG,CAAb;AACA,MAAIC,KAAK,GAAG,KAAZ;AACA,MAAIC,GAAG,GAAGjB,CAAC,CAACkB,OAAF,IAAalB,CAAC,CAACmB,KAAzB;AACA,MAAIC,IAAI,GAAGpB,CAAC,CAACE,MAAF,CAASvG,KAAT,CAAe0H,UAAf,CAA0B,GAA1B,EAA+B,KAA/B,CAAX;AACA,MAAIC,MAAM,GAAGF,IAAI,CAACG,MAAL,CAAY,CAAZ,EAAeH,IAAI,CAACI,OAAL,CAAa,GAAb,IAAoB,CAAnC,KAAyCJ,IAAI,CAACG,MAAL,CAAY,CAAZ,CAAtD;AACA,MAAIE,OAAO,GAAGL,IAAI,CAACG,MAAL,CAAY,IAAID,MAAM,CAAC/F,MAAvB,CAAd;;AACA,MAAI0F,GAAG,IAAI,EAAX,EAAe;AAAE;AACbS,IAAAA,MAAM,CAACN,IAAD,CAAN;AACH;;AACD,MAAIH,GAAG,IAAI,CAAX,EAAc;AAAE;AACZjB,IAAAA,CAAC,CAAC2B,cAAF;AACA3B,IAAAA,CAAC,CAAC4B,eAAF;;AACA,QAAIR,IAAI,CAAC,CAAD,CAAJ,KAAY,GAAhB,EAAqB;AACjB,cAAQE,MAAR;AACI,aAAK,GAAL;AACI,cAAIO,SAAS,GAAG,CAAC,eAAD,EAAkB,aAAlB,EAAiC,QAAjC,CAAhB;;AACA,cAAI,CAACJ,OAAD,IAAYT,KAAhB,EAAuB;AACnBA,YAAAA,KAAK,GAAG,IAAR;AACA,gBAAID,MAAM,GAAGc,SAAS,CAACtG,MAAV,GAAmB,CAAhC,EAAmCwF,MAAM,GAAG,CAAT;AACnChH,YAAAA,QAAQ,CAACwD,cAAT,CAAwB,UAAxB,EAAoC5D,KAApC,GAA4C,QAAQkI,SAAS,CAACd,MAAM,EAAP,CAA7D;AACA;AACH;;AACD,eAAK,IAAIe,QAAT,IAAqBD,SAArB,EAAgC;AAC5B,gBAAIJ,OAAO,KAAKK,QAAQ,CAACP,MAAT,CAAgB,CAAhB,EAAmBE,OAAO,CAAClG,MAA3B,CAAhB,EAAoD;AAChDxB,cAAAA,QAAQ,CAACwD,cAAT,CAAwB,UAAxB,EAAoC5D,KAApC,GAA4C,QAAQmI,QAApD;AACA;AACH;AACJ;;AACD;AAfR;AAiBH;AACJ;;AACD,MAAGb,GAAG,IAAI,EAAV,EAAa;AAAE;AACjBc,IAAAA,WAAW,CAACX,IAAD,CAAX;AACG;;AACDL,EAAAA,MAAM,GAAG,CAAT;AACAC,EAAAA,KAAK,GAAG,KAAR;AACAe,EAAAA,WAAW,CAACX,IAAD,CAAX;AACD;;AACD,SAASW,WAAT,CAAqBX,IAArB,EAA2B;AACzB,MAAIE,MAAM,GAAGF,IAAI,CAACG,MAAL,CAAY,CAAZ,EAAeH,IAAI,CAACI,OAAL,CAAa,GAAb,IAAoB,CAAnC,KAAyCJ,IAAI,CAACG,MAAL,CAAY,CAAZ,CAAtD;;AACA,MAAIH,IAAI,CAAC,CAAD,CAAJ,KAAY,GAAhB,EAAqB;AACvB;AACU,YAAQE,MAAR;AACI,WAAK,IAAL;AACIvH,QAAAA,QAAQ,CAACwD,cAAT,CAAwB,YAAxB,EAAsC4C,SAAtC,GAAkD,iBAAlD;AACA;;AAChB,WAAK,GAAL;AACIpG,QAAAA,QAAQ,CAACwD,cAAT,CAAwB,YAAxB,EAAsC4C,SAAtC,GAAkD,qBAAlD;AACA;;AACJ,WAAK,IAAL;AACIpG,QAAAA,QAAQ,CAACwD,cAAT,CAAwB,YAAxB,EAAsC4C,SAAtC,GAAkD,gBAAlD;AACA;;AACJ,WAAK,GAAL;AACIpG,QAAAA,QAAQ,CAACwD,cAAT,CAAwB,YAAxB,EAAsC4C,SAAtC,GAAkD,aAAlD;AACA;;AACJ,WAAK,GAAL;AACIpG,QAAAA,QAAQ,CAACwD,cAAT,CAAwB,YAAxB,EAAsC4C,SAAtC,GAAkD,mBAAlD;AACA;;AACJ,WAAK,GAAL;AACIpG,QAAAA,QAAQ,CAACwD,cAAT,CAAwB,YAAxB,EAAsC4C,SAAtC,GAAkD,eAAlD;AACA;;AACJ,WAAK,GAAL;AACIpG,QAAAA,QAAQ,CAACwD,cAAT,CAAwB,YAAxB,EAAsC4C,SAAtC,GAAkD,cAAlD;AACA;;AACJ,WAAK,IAAL;AACIpG,QAAAA,QAAQ,CAACwD,cAAT,CAAwB,YAAxB,EAAsC4C,SAAtC,GAAkD,mBAAlD;AACA;;AACJ,WAAK,GAAL;AACIpG,QAAAA,QAAQ,CAACwD,cAAT,CAAwB,YAAxB,EAAsC4C,SAAtC,GAAkD,gBAAlD;AACA;;AACJ,WAAK,IAAL;AACIpG,QAAAA,QAAQ,CAACwD,cAAT,CAAwB,YAAxB,EAAsC4C,SAAtC,GAAkD,gBAAlD;AACA;;AACJ,WAAK,GAAL;AACIpG,QAAAA,QAAQ,CAACwD,cAAT,CAAwB,YAAxB,EAAsC4C,SAAtC,GAAkD,cAAlD;AACA;;AACJ,WAAK,GAAL;AACIpG,QAAAA,QAAQ,CAACwD,cAAT,CAAwB,YAAxB,EAAsC4C,SAAtC,GAAkD,gBAAlD;AACA;;AACJ,WAAK,GAAL;AACIpG,QAAAA,QAAQ,CAACwD,cAAT,CAAwB,YAAxB,EAAsC4C,SAAtC,GAAkD,kBAAlD;AACA;;AACJ,WAAK,GAAL;AACIpG,QAAAA,QAAQ,CAACwD,cAAT,CAAwB,YAAxB,EAAsC4C,SAAtC,GAAkD,aAAlD;AACA;;AACJ,WAAK,IAAL;AACIpG,QAAAA,QAAQ,CAACwD,cAAT,CAAwB,YAAxB,EAAsC4C,SAAtC,GAAkD,wBAAlD;AACA;;AACJ;AACIpG,QAAAA,QAAQ,CAACwD,cAAT,CAAwB,YAAxB,EAAsC4C,SAAtC,GAAkD,gBAAlD;AACA;AAhDI;AAkDT,GApDC,MAoDI;AACJpG,IAAAA,QAAQ,CAACwD,cAAT,CAAwB,YAAxB,EAAsC4C,SAAtC,GAAkD,eAAlD;AACC;AACF;;AACD,SAASuB,MAAT,CAAgBN,IAAhB,EAAsB;AACpB,MAAIE,MAAM,GAAGF,IAAI,CAACG,MAAL,CAAY,CAAZ,EAAeH,IAAI,CAACI,OAAL,CAAa,GAAb,IAAoB,CAAnC,KAAyCJ,IAAI,CAACG,MAAL,CAAY,CAAZ,CAAtD;AACA,MAAIE,OAAO,GAAGL,IAAI,CAACG,MAAL,CAAY,IAAID,MAAM,CAAC/F,MAAvB,CAAd;;AACA,MAAI6F,IAAI,CAAC,CAAD,CAAJ,KAAY,GAAhB,EAAqB;AACjB,QAAIA,IAAI,CAACI,OAAL,CAAa,GAAb,IAAoB,CAAC,CAAzB,EAA4B;AACxB,cAAQF,MAAR;AACI,aAAK,IAAL;AACIU,UAAAA,MAAM,CAACC,QAAP,GAAkB,yCAAyCR,OAA3D;AACA;;AACJ,aAAK,GAAL;AACIO,UAAAA,MAAM,CAACC,QAAP,GAAkB,+BAA+BR,OAAjD;AACA;;AACJ,aAAK,IAAL;AACIO,UAAAA,MAAM,CAACC,QAAP,GAAkB,uCAAuCR,OAAzD;AACA;;AACJ,aAAK,GAAL;AACIO,UAAAA,MAAM,CAACC,QAAP,GAAkB,iCAAiCR,OAAnD;AACA;;AACJ,aAAK,GAAL;AACIO,UAAAA,MAAM,CAACC,QAAP,GAAkB,6CAA6CR,OAA/D;AACA;;AACJ,aAAK,GAAL;AACIO,UAAAA,MAAM,CAACC,QAAP,GAAkB,qCAAqCR,OAAvD;AACA;;AACJ,aAAK,GAAL;AACIO,UAAAA,MAAM,CAACC,QAAP,GAAkB,8BAA8BR,OAAhD;AACA;;AACJ,aAAK,IAAL;AACIO,UAAAA,MAAM,CAACC,QAAP,GAAkB,qCAAqCR,OAAvD;AACA;;AACJ,aAAK,GAAL;AACIO,UAAAA,MAAM,CAACC,QAAP,GAAkB,6CAA6CR,OAA/D;AACA;;AACJ,aAAK,GAAL;AACIO,UAAAA,MAAM,CAACC,QAAP,GAAkB,mCAAmCR,OAArD;AACA;;AACJ,aAAK,IAAL;AACIO,UAAAA,MAAM,CAACC,QAAP,GAAkB,0CAA0CR,OAA5D;AACA;;AACJ,aAAK,GAAL;AACIO,UAAAA,MAAM,CAACC,QAAP,GAAkB,kDAAkDR,OAApE;AACA;;AACJ,aAAK,GAAL;AACIO,UAAAA,MAAM,CAACC,QAAP,GAAkB,iDAAiDR,OAAnE;AACA;;AACJ,aAAK,GAAL;AACIO,UAAAA,MAAM,CAACC,QAAP,GAAkB,iDAAiDR,OAAnE;AACA;;AACJ,aAAK,IAAL;AACIO,UAAAA,MAAM,CAACC,QAAP,GAAkB,kDAAkDR,OAApE;AACA;AA7CR;AA+CH,KAhDD,MAgDO;AACH,UAAIH,MAAM,GAAGF,IAAI,CAACG,MAAL,CAAY,CAAZ,CAAb;;AACA,cAAQD,MAAR;AACI,aAAK,GAAL;AACIU,UAAAA,MAAM,CAACC,QAAP,GAAkB,4BAAlB;AACA;;AACJ,aAAK,GAAL;AACID,UAAAA,MAAM,CAACC,QAAP,GAAkB,yBAAlB;AACA;;AACJ,aAAK,GAAL;AACID,UAAAA,MAAM,CAACC,QAAP,GAAkB,oBAAlB;AACA;;AACJ,aAAK,GAAL;AACID,UAAAA,MAAM,CAACC,QAAP,GAAkB,0BAAlB;AACA;AAZR;AAcH;AACJ,GAlED,MAkEO,IAAIC,QAAQ,CAACd,IAAD,CAAZ,EAAoB;AACvB,QAAIe,gBAAgB,CAACf,IAAD,CAApB,EACIY,MAAM,CAACC,QAAP,GAAkBb,IAAlB,CADJ,KAGIY,MAAM,CAACC,QAAP,GAAkB,aAAab,IAA/B;AACP,GALM,MAKA;AACHY,IAAAA,MAAM,CAACC,QAAP,GAAkB,qCAAqCb,IAAvD;AACH;AACF;;AACD,SAASc,QAAT,CAAkBE,GAAlB,EAAuB;AACrB,MAAIC,OAAO,GAAG,IAAIC,MAAJ,CAAW,sBAAsB;AAC3C,oDADqB,GACgC;AACrD,+BAFqB,GAEW;AAChC,mCAHqB,GAGe;AACpC,4BAJqB,GAIQ;AAC7B,sBALU,EAKY,GALZ,CAAd,CADqB,CAMW;;AAChC,SAAO,CAAC,CAACD,OAAO,CAACE,IAAR,CAAaH,GAAb,CAAT;AACD;;AACD,SAASD,gBAAT,CAA0BC,GAA1B,EAA+B;AAC7B,MAAIC,OAAO,GAAG,IAAIC,MAAJ,CAAW,uBAAX,EAAoC,GAApC,CAAd;AACA,SAAO,CAAC,CAACD,OAAO,CAACE,IAAR,CAAaH,GAAb,CAAT;AACD;;AACDI,MAAM,CAACC,SAAP,CAAiBpB,UAAjB,GAA8B,UAASK,MAAT,EAAiBgB,WAAjB,EAA8B;AAC1D,MAAIxC,MAAM,GAAG,IAAb;AACA,SAAOA,MAAM,CAACyC,KAAP,CAAajB,MAAb,EAAqBkB,IAArB,CAA0BF,WAA1B,CAAP;AACD,CAHD;;AAIA,SAAS1F,oBAAT,CAA8BgD,CAA9B,EAAiC;AAC/BpG,EAAAA,YAAY,CAAC4G,OAAb,CAAqB,aAArB,EAAoCR,CAAC,CAACE,MAAF,CAAS1F,OAA7C;;AACA,MAAIwF,CAAC,CAACE,MAAF,CAAS1F,OAAb,EAAsB;AACpBZ,IAAAA,YAAY,CAAC4G,OAAb,CAAqB,iBAArB,EAAwC,MAAxC;AACD,GAFD,MAEO;AACL5G,IAAAA,YAAY,CAAC4G,OAAb,CAAqB,iBAArB,EAAwC,OAAxC;AACD;;AACDnD,EAAAA,iBAAiB;AAClB;;AACD,SAASA,iBAAT,GAA6B;AAC3B5D,EAAAA,wBAAwB,CAAC,aAAD,CAAxB;AACAA,EAAAA,wBAAwB,CAAC,iBAAD,CAAxB;AACD","sourcesContent":["import React from 'react';\nimport { useState, useEffect } from 'react';\nimport ReactDOM from 'react-dom';\n//import { unstable_createPortal } from 'react-dom';\nimport './index.css';\n\nconst setValueFromLocalStorage = property => {\n let value = localStorage.getItem(property);\n setValue(property, value);\n};\nconst setValue = (property, value) => {\n if (value) {\n document.documentElement.style.setProperty(`--${property}`, value);\n\n const input = document.querySelector(`#${property}`);\n if (input) {\n value = value.replace('px', '');\n input.value = value;\n }\n }\n};\n\nfunction Homepage() {\n setTheme();\n var checked = localStorage.getItem(\"contenttype\");\n console.log(\"Checked is \" + checked);\n return (\n \n \n \n
\n \n \n
\n \n \n \n
\n \n \n
\n \n \n
\n \n );\n}\n\nfunction Search() {\n return (\n \n )\n}\n\nfunction Header(props) {\n return (\n \n );\n}\n\nfunction Applications() {\n let appList = getApps();\n var items = [];\n for (var i = 0; i < appList.apps.length; i++) {\n var safe = appList.apps[i].NSFW;\n var NSFWEnabled = localStorage.getItem(\"contenttype\");\n if (safe === \"SAFE\") {\n items.push(\n \n );\n } else if (safe === \"NSFW\" && NSFWEnabled) {\n items.push(\n \n );\n } else {\n \n }\n \n }\n return (\n \n Applications
\n \n {items}\n
\n \n );\n}\n\nfunction App(props) {\n \n let classNameType = props.NSFW + \"-content\";\n let hrefUrl = \"https://\" + props.url;\n let iconName = \"mdi-\" + props.icon;\n return (\n \n );\n}\n\nfunction Bookmarks() {\n let bookmarkList = getLinks();\n var items = [];\n for (var i = 0; i < bookmarkList.bookmarks.length; i++) {\n items.push(\n \n );\n }\n return (\n \n Bookmarks
\n \n {items}\n
\n \n );\n}\n\nfunction LinkGroups(props) {\n var items = [];\n for (var i = 0; i < props.links.length; i++) {\n items.push(\n \n );\n }\n return (\n \n
{props.category}
\n {items}\n \n );\n}\n\nfunction LinkItem(props) {\n return (\n \n );\n}\n\nfunction ModalMenu(props) {\n var providers = getProviders();\n var items = [];\n for (var i = 0; i < providers.providers.length; i++) {\n items.push(\n \n );\n }\n return (\n \n \n \n\n
Color themes
\n\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n\n\n
Search options
\n
\n \n \n \n | Website | \n Prefix | \n
\n {items}\n \n
\n \n\n \n
\n \n );\n}\n\nfunction Provider(props) {\n return (\n \n | {props.provider.name} | \n {props.provider.prefix} | \n
\n );\n}\n\nfunction ModalInit() {\n setDisplayedItems();\n return (\n \n );\n}\n\nReactDOM.render(\n ,\n document.getElementById('root')\n);\n\n//Functions below this line are for calculating data for\n//other functions\n\nfunction date() {\n let currentDate = new Date();\n let dateOptions = {\n weekday: \"long\",\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\"\n };\n let date = currentDate.toLocaleDateString(\"en-GB\", dateOptions);\n return date;\n}\nfunction fixDigits(k) {\n if (k < 10) {\n return \"0\" + k;\n }\n else {\n return k;\n }\n}\nfunction greet() {\n let currentTime = new Date();\n let greet = Math.floor(currentTime.getHours() / 6);\n let easterEggChance = Math.floor(Math.random() * 100);\n let greetings = require('./messages.json');\n let timeBased = [];\n let easterEggs = [];\n for (var i = 0; i < greetings.messages.length; i++) {\n if (greetings.messages[i].easteregg === \"FALSE\") {\n timeBased = timeBased.concat(greetings.messages[i]);\n } else {\n easterEggs = easterEggs.concat(greetings.messages[i]);\n }\n }\n if (easterEggChance > 10) {\n return timeBased[greet].message;\n } else {\n let easterEggText = Math.floor(Math.random() * easterEggs.length);\n return easterEggs[easterEggText].message;\n }\n}\nfunction Clock() {\n const [date, setDate] = useState(new Date());\n\n function refreshClock() {\n setDate(new Date());\n }\n useEffect(() => {\n const timerId = setInterval(refreshClock, 1000);\n return function cleanup() {\n clearInterval(timerId);\n };\n }, []);\n\n var hour = date.getHours();\n var minutes = date.getMinutes();\n //var seconds = date.getSeconds();\n var midday = \"AM\";\n midday = (hour >= 12) ? \"PM\" : \"AM\";\n hour = (hour === 0) ? 12 : ((hour > 12) ? (hour - 12) : hour);\n minutes = fixDigits(minutes);\n //seconds = fixDigits(seconds);\n let time = hour + \":\" + minutes + \" \" + midday;\n\n return (\n {time}
\n\n );\n}\nfunction getApps() {\n let applications = require('./apps.json');\n return applications;\n}\nfunction getLinks() {\n let links = require('./links.json');\n return links;\n}\nfunction getProviders() {\n let providers = require('./providers.json');\n return providers;\n}\nfunction getThemes() {\n let themes = require('./themes.json');\n return themes;\n}\nfunction updateTheme(e) {\n var themes = getThemes();\n var themeName = e.target.innerHTML.toLowerCase();\n var index = themes.themes.findIndex(function(item, i){\n return item.name === themeName\n });\n localStorage.setItem(\"image-background\", themes.themes[index].imagebackground);\n localStorage.setItem(\"color-background\", themes.themes[index].colorbackground);\n localStorage.setItem(\"color-search-background\", themes.themes[index].colorserachbackground);\n localStorage.setItem(\"color-text-pri\",themes.themes[index].colortextpri);\n localStorage.setItem(\"color-text-acc\", themes.themes[index].colortextacc);\n localStorage.setItem(\"color-border\", themes.themes[index].colorborder);\n \n //document.documentElement.style.setProperty(prop, `var(--${themeName}${prop.substring(10)})`);\n setTheme();\n}\nfunction setTheme() {\n setValueFromLocalStorage('image-background');\n setValueFromLocalStorage('color-background');\n setValueFromLocalStorage('color-search-background');\n setValueFromLocalStorage('color-text-pri');\n setValueFromLocalStorage('color-text-acc');\n setValueFromLocalStorage('color-border');\n setValueFromLocalStorage('content-display');\n}\nfunction handleKeyPress(e) {\n var sindex = 0;\n var cycle = false;\n var key = e.keyCode || e.which;\n var text = e.target.value.replaceAll(\"+\", \"%2B\");\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n if (key == 13) { // Search functions\n search(text);\n }\n if (key == 9) { // Tab Completion Functions\n e.preventDefault();\n e.stopPropagation();\n if (text[0] === ';') {\n switch (option) {\n case 't':\n var streamers = ['admiralbahroo', 'moonmoon_ow', 'witwix'];\n if (!subtext || cycle) {\n cycle = true;\n if (sindex > streamers.length - 1) sindex = 0;\n document.getElementById(\"keywords\").value = ';t ' + streamers[sindex++];\n return;\n }\n for (var streamer of streamers) {\n if (subtext === streamer.substr(0, subtext.length)) {\n document.getElementById(\"keywords\").value = ';t ' + streamer;\n return;\n }\n }\n break;\n }\n }\n }\n if(key == 32){ //Space to go to search\nupdateLabel(text);\n }\n sindex = 0;\n cycle = false;\n updateLabel(text);\n}\nfunction updateLabel(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n if (text[0] === '/') {\n// if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n document.getElementById(\"searchType\").innerHTML = \"Allmusic search\";\n break;\n case \"d\":\n document.getElementById(\"searchType\").innerHTML = \"Duck Duck Go search\";\n break;\n case \"di\":\n document.getElementById(\"searchType\").innerHTML = \"Discogs search\";\n break;\n case \"i\":\n document.getElementById(\"searchType\").innerHTML = \"IMDB search\";\n break;\n case \"m\":\n document.getElementById(\"searchType\").innerHTML = \"TheMovieDB search\";\n break;\n case \"r\":\n document.getElementById(\"searchType\").innerHTML = \"Reddit search\";\n break;\n case \"q\":\n document.getElementById(\"searchType\").innerHTML = \"Qwant search\";\n break;\n case \"so\":\n document.getElementById(\"searchType\").innerHTML = \"Soundcloud search\";\n break;\n case \"s\":\n document.getElementById(\"searchType\").innerHTML = \"Spotify search\";\n break;\n case \"tv\":\n document.getElementById(\"searchType\").innerHTML = \"TheTVDB search\";\n break;\n case \"t\":\n document.getElementById(\"searchType\").innerHTML = \"Trakt search\";\n break;\n case \"y\":\n document.getElementById(\"searchType\").innerHTML = \"YouTube search\";\n break;\n case \"w\":\n document.getElementById(\"searchType\").innerHTML = \"Wikipedia search\";\n break;\n case \"p\":\n document.getElementById(\"searchType\").innerHTML = \"Plex search\";\n break;\n case \"rt\":\n document.getElementById(\"searchType\").innerHTML = \"Rotten Tomatoes search\";\n break;\n default:\n document.getElementById(\"searchType\").innerHTML = \"Invalid search\";\n break;\n }\n}else {\n document.getElementById(\"searchType\").innerHTML = \"Google search\";\n }\n}\nfunction search(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n if (text[0] === '/') {\n if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n window.location = \"https://www.allmusic.com/search/all/\" + subtext;\n break;\n case \"d\":\n window.location = \"https://duckduckgo.com/?q=\" + subtext;\n break;\n case \"di\":\n window.location = \"https://www.discogs.com/search/?q=\" + subtext;\n break;\n case \"i\":\n window.location = \"https://www.imdb.com/find?q=\" + subtext;\n break;\n case \"m\":\n window.location = \"https://www.themoviedb.org/search?query=\" + subtext;\n break;\n case \"r\":\n window.location = \"https://www.reddit.com/search?q=\" + subtext;\n break;\n case \"q\":\n window.location = \"https://www.qwant.com/?q=\" + subtext;\n break;\n case \"so\":\n window.location = \"https://soundcloud.com/search?q=\" + subtext;\n break;\n case \"s\":\n window.location = \"https://open.spotify.com/search/results/\" + subtext;\n break;\n case \"t\":\n window.location = \"https://trakt.tv/search?query=\" + subtext;\n break;\n case \"tv\":\n window.location = \"https://www.thetvdb.com/search?query=\" + subtext;\n break;\n case \"y\":\n window.location = \"https://www.youtube.com/results?search_query=\" + subtext;\n break;\n case \"w\":\n window.location = \"https://en.wikipedia.org/w/index.php?search=\" + subtext;\n break;\n case \"p\":\n window.location = \"https://app.plex.tv/desktop/#!/search?query=\" + subtext;\n break;\n case \"rt\":\n window.location = \"https://www.rottentomatoes.com/search?search=\" + subtext;\n break;\n }\n } else {\n var option = text.substr(1);\n switch (option) {\n case \"d\":\n window.location = \"https://www.duckduckgo.com\";\n break;\n case \"y\":\n window.location = \"https://www.youtube.com\";\n break;\n case \"r\":\n window.location = \"https://reddit.com\";\n break;\n case \"s\":\n window.location = \"https://open.spotify.com\";\n break;\n }\n }\n } else if (validURL(text)) {\n if (containsProtocol(text))\n window.location = text;\n else\n window.location = \"https://\" + text;\n } else {\n window.location = \"https://www.google.com/search?q=\" + text;\n }\n}\nfunction validURL(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/)?' + // protocol\n '((([a-z\\\\d]([a-z\\\\d-]*[a-z\\\\d])*)\\\\.)+[a-z]{2,}|' + // domain name\n '((\\\\d{1,3}\\\\.){3}\\\\d{1,3}))' + // OR ip (v4) address\n '(\\\\:\\\\d+)?(\\\\/[-a-z\\\\d%_.~+]*)*' + // port and path\n '(\\\\?[;&a-z\\\\d%_.~+=-]*)?' + // query string\n '(\\\\#[-a-z\\\\d_]*)?$', 'i'); // fragment locator\n return !!pattern.test(str);\n}\nfunction containsProtocol(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/){1}.*', 'i');\n return !!pattern.test(str);\n}\nString.prototype.replaceAll = function(search, replacement) {\n var target = this;\n return target.split(search).join(replacement);\n};\nfunction udpateDisplayedItems(e) {\n localStorage.setItem('contenttype', e.target.checked);\n if (e.target.checked) {\n localStorage.setItem('content-display', 'none');\n } else {\n localStorage.setItem('content-display', 'block');\n }\n setDisplayedItems();\n}\nfunction setDisplayedItems() {\n setValueFromLocalStorage('contenttype');\n setValueFromLocalStorage('content-display');\n}"]},"metadata":{},"sourceType":"module"}
\ No newline at end of file
diff --git a/node_modules/.cache/babel-loader/bf638b86206bcfe236983f18f47349b7.json b/node_modules/.cache/babel-loader/bf638b86206bcfe236983f18f47349b7.json
new file mode 100644
index 00000000..a2be2a2d
--- /dev/null
+++ b/node_modules/.cache/babel-loader/bf638b86206bcfe236983f18f47349b7.json
@@ -0,0 +1 @@
+{"ast":null,"code":"var _jsxFileName = \"/home/seanedmunds/dev/home-page/src/index.js\",\n _s = $RefreshSig$();\n\nimport React from 'react';\nimport { useState, useEffect } from 'react';\nimport ReactDOM from 'react-dom'; //import { unstable_createPortal } from 'react-dom';\n\nimport './index.css';\nimport { jsxDEV as _jsxDEV } from \"react/jsx-dev-runtime\";\n\nfunction Homepage() {\n return /*#__PURE__*/_jsxDEV(\"main\", {\n id: \"container\",\n className: \"fade\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Search, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 11,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 10,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Header, {\n date: date(),\n greet: greet()\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 14,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 13,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Applications, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 20,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 19,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Bookmarks, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 23,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 22,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(ModalMenu, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 26,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 25,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(ModalInit, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 29,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 28,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 9,\n columnNumber: 5\n }, this);\n}\n\n_c = Homepage;\n\nfunction Search() {\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"search\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"abackground\",\n children: [/*#__PURE__*/_jsxDEV(\"input\", {\n name: \"keywords\",\n type: \"text\",\n className: \"keyword\",\n id: \"keywords\",\n size: \"50\",\n spellCheck: \"true\",\n placeholder: \"\"\n /*onFocus={this.placeholder = \"\"} onBlur={this.placeholder = ''}*/\n ,\n autoComplete: \"off\",\n autoFocus: true,\n onKeyUp: handleKeyPress\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 39,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n id: \"searchType\",\n className: \"Input-label\",\n children: \"Google search\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 40,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 38,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 37,\n columnNumber: 5\n }, this);\n}\n\n_c2 = Search;\n\nfunction Header(props) {\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"header\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n id: \"greeting_block\",\n children: /*#__PURE__*/_jsxDEV(\"h1\", {\n id: \"header_greet\",\n children: props.greet\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 50,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 49,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"date_block\",\n children: [/*#__PURE__*/_jsxDEV(\"h2\", {\n id: \"header_date\",\n children: props.date\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 53,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(Clock, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 54,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 52,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 48,\n columnNumber: 5\n }, this);\n}\n\n_c3 = Header;\n\nfunction Applications() {\n let appList = getApps();\n var items = [];\n\n for (var i = 0; i < appList.apps.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(App, {\n name: appList.apps[i].name,\n url: appList.apps[i].url,\n icon: appList.apps[i].icon,\n NSFW: appList.apps[i].NSFW\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 65,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"apps\",\n children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n children: \"Applications\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 76,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"apps_loop\",\n children: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 77,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 75,\n columnNumber: 5\n }, this);\n}\n\n_c4 = Applications;\n\nfunction App(props) {\n let classNameType = props.NSFW + \"-content\";\n let hrefUrl = \"https://\" + props.url;\n let iconName = \"mdi-\" + props.icon;\n return /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: hrefUrl,\n className: classNameType,\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_item\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_icon\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify icon\",\n \"data-icon\": iconName\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 93,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 92,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_text\",\n children: [/*#__PURE__*/_jsxDEV(\"span\", {\n id: \"app-name\",\n children: props.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 96,\n columnNumber: 13\n }, this), /*#__PURE__*/_jsxDEV(\"span\", {\n id: \"app-address\",\n children: props.url\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 97,\n columnNumber: 13\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 95,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 91,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 90,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 89,\n columnNumber: 5\n }, this);\n}\n\n_c5 = App;\n\nfunction Bookmarks() {\n let bookmarkList = getLinks();\n var items = [];\n\n for (var i = 0; i < bookmarkList.bookmarks.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(LinkGroups, {\n category: bookmarkList.bookmarks[i].category,\n links: bookmarkList.bookmarks[i].links\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 110,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"links\",\n children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n children: \"Bookmarks\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 119,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"links_loop\",\n children: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 120,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 118,\n columnNumber: 5\n }, this);\n}\n\n_c6 = Bookmarks;\n\nfunction LinkGroups(props) {\n var items = [];\n\n for (var i = 0; i < props.links.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(LinkItem, {\n link: props.links[i]\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 131,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"links_item\",\n children: [/*#__PURE__*/_jsxDEV(\"h4\", {\n children: props.category\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 139,\n columnNumber: 7\n }, this), items]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 138,\n columnNumber: 5\n }, this);\n}\n\n_c7 = LinkGroups;\n\nfunction LinkItem(props) {\n return /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: props.link.url,\n className: \"theme_color-border theme_text-select\",\n children: props.link.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 148,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 147,\n columnNumber: 5\n }, this);\n}\n\n_c8 = LinkItem;\n\nfunction ModalMenu() {\n var providers = getProviders();\n var items = [];\n\n for (var i = 0; i < providers.providers.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(Provider, {\n provider: providers.providers[i]\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 158,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"modal\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n children: [/*#__PURE__*/_jsxDEV(\"header\", {\n id: \"modal-header\",\n children: [/*#__PURE__*/_jsxDEV(\"h1\", {\n children: \"Options\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 168,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n href: \"#\",\n title: \"Close\",\n className: \"modal-close\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-close\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 170,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 169,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 167,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"h2\", {\n children: \"Color themes\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 174,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"modal-theme\",\n children: [/*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"blackboard\",\n className: \"theme-button theme-blackboard\",\n onClick: updateTheme,\n children: \"Blackboard\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 177,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"gazette\",\n className: \"theme-button theme-gazette\",\n children: \"Gazette\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 178,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"espresso\",\n className: \"theme-button theme-espresso\",\n children: \"Espresso\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 179,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cab\",\n className: \"theme-button theme-cab\",\n children: \"Cab\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 180,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cloud\",\n className: \"theme-button theme-cloud\",\n children: \"Cloud\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 181,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"lime\",\n className: \"theme-button theme-lime\",\n children: \"Lime\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 182,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"passion\",\n className: \"theme-button theme-passion\",\n children: \"Passion\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 183,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"blues\",\n className: \"theme-button theme-blues\",\n children: \"Blues\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 184,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"chalk\",\n className: \"theme-button theme-chalk\",\n children: \"Chalk\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 185,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"tron\",\n className: \"theme-button theme-tron\",\n children: \"Tron\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 186,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"paper\",\n className: \"theme-button theme-paper\",\n children: \"Paper\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 187,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cyberpunk\",\n className: \"theme-button theme-cyberpunk\",\n children: \"Cyberpunk\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 188,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"quadra\",\n className: \"theme-button theme-panam\",\n children: \"Quadra\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 189,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"panam\",\n className: \"theme-button theme-panam\",\n children: \"Panam\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 190,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"touch\",\n className: \"theme-button theme-touch\",\n children: \"Touch\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 191,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"peek\",\n className: \"theme-button theme-peek\",\n children: \"Peek\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 192,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 176,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"h2\", {\n children: \"Search options\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 196,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"providers\",\n children: /*#__PURE__*/_jsxDEV(\"table\", {\n children: /*#__PURE__*/_jsxDEV(\"tbody\", {\n children: [/*#__PURE__*/_jsxDEV(\"tr\", {\n children: [/*#__PURE__*/_jsxDEV(\"th\", {\n children: \"Website\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 201,\n columnNumber: 19\n }, this), /*#__PURE__*/_jsxDEV(\"th\", {\n children: \"Prefix\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 202,\n columnNumber: 19\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 200,\n columnNumber: 17\n }, this), items]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 199,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 198,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 197,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"header\", {\n id: \"modal-footer\",\n children: [/*#__PURE__*/_jsxDEV(\"a\", {\n href: \"https://github.com/jeroenpardon/\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-github-box\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 210,\n columnNumber: 54\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 210,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n href: \"https://materialdesignicons.com/\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-material-design\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 211,\n columnNumber: 54\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 211,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"sneaky\",\n children: [/*#__PURE__*/_jsxDEV(\"input\", {\n type: \"checkbox\",\n id: \"contenttype\",\n onChange: \"nsfw(this)\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 212,\n columnNumber: 35\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n for: \"contenttype\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-domino-mask\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 213,\n columnNumber: 36\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 213,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 212,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 209,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 166,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 165,\n columnNumber: 5\n }, this);\n}\n\n_c9 = ModalMenu;\n\nfunction Provider(props) {\n return /*#__PURE__*/_jsxDEV(\"tr\", {\n children: [/*#__PURE__*/_jsxDEV(\"td\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: props.provider.url,\n children: props.provider.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 223,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 223,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"td\", {\n children: props.provider.prefix\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 224,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 222,\n columnNumber: 5\n }, this);\n}\n\n_c10 = Provider;\n\nfunction ModalInit() {\n return /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"modal_init\",\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n className: \"btn\",\n href: \"#modal\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify icon\",\n \"data-icon\": \"mdi-xbox-controller-menu\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 233,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 232,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 231,\n columnNumber: 5\n }, this);\n}\n\n_c11 = ModalInit;\nReactDOM.render( /*#__PURE__*/_jsxDEV(Homepage, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 240,\n columnNumber: 3\n}, this), document.getElementById('root')); //Functions below this line are for calculating data for\n//other functions\n\nfunction date() {\n let currentDate = new Date();\n let dateOptions = {\n weekday: \"long\",\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\"\n };\n let date = currentDate.toLocaleDateString(\"en-GB\", dateOptions);\n return date;\n}\n\nfunction fixDigits(k) {\n if (k < 10) {\n return \"0\" + k;\n } else {\n return k;\n }\n}\n\nfunction greet() {\n let currentTime = new Date();\n let greet = Math.floor(currentTime.getHours() / 6);\n let easterEggChance = Math.floor(Math.random() * 100);\n\n let greetings = require('./messages.json');\n\n let timeBased = [];\n let easterEggs = [];\n\n for (var i = 0; i < greetings.messages.length; i++) {\n if (greetings.messages[i].easteregg === \"FALSE\") {\n timeBased = timeBased.concat(greetings.messages[i]);\n } else {\n easterEggs = easterEggs.concat(greetings.messages[i]);\n }\n }\n\n if (easterEggChance > 10) {\n return timeBased[greet].message;\n } else {\n let easterEggText = Math.floor(Math.random() * easterEggs.length);\n return easterEggs[easterEggText].message;\n }\n}\n\nfunction Clock() {\n _s();\n\n const [date, setDate] = useState(new Date());\n\n function refreshClock() {\n setDate(new Date());\n }\n\n useEffect(() => {\n const timerId = setInterval(refreshClock, 1000);\n return function cleanup() {\n clearInterval(timerId);\n };\n }, []);\n var hour = date.getHours();\n var minutes = date.getMinutes(); //var seconds = date.getSeconds();\n\n var midday = \"AM\";\n midday = hour >= 12 ? \"PM\" : \"AM\";\n hour = hour === 0 ? 12 : hour > 12 ? hour - 12 : hour;\n minutes = fixDigits(minutes); //seconds = fixDigits(seconds);\n\n let time = hour + \":\" + minutes + \" \" + midday;\n return /*#__PURE__*/_jsxDEV(\"h2\", {\n id: \"clock\",\n children: time\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 311,\n columnNumber: 5\n }, this);\n}\n\n_s(Clock, \"Gqi45WOZhU2c0BLYX0HoJeiR0fk=\");\n\n_c12 = Clock;\n\nfunction getApps() {\n let applications = require('./apps.json');\n\n return applications;\n}\n\nfunction getLinks() {\n let links = require('./links.json');\n\n return links;\n}\n\nfunction getProviders() {\n let providers = require('./providers.json');\n\n return providers;\n}\n\nfunction getThemes() {\n let themes = require('./themes.json');\n\n return themes;\n}\n\nfunction updateTheme(e) {\n var themes = getThemes();\n var themeName = e.target.innerHTML.toLowerCase();\n var index = themes.themes.findIndex(function (item, i) {\n return item.name === themeName;\n });\n localStorage.setItem(\"image-background\", themes.themes[index].imagebackground);\n localStorage.setItem(\"color-background\", themes.themes[index].colorbackground);\n localStorage.setItem(\"color-search-background\", themes.themes[index].colorserachbackground);\n localStorage.setItem(\"color-text-pri\", themes.themes[index].colortextpri);\n localStorage.setItem(\"color-text-acc\", themes.themes[index].colortextacc);\n localStorage.setItem(\"color-border\", themes.themes[index].colorborder);\n}\n\nfunction handleKeyPress(e) {\n var sindex = 0;\n var cycle = false;\n var key = e.keyCode || e.which;\n var text = e.target.value.replaceAll(\"+\", \"%2B\");\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n\n if (key == 13) {\n // Search functions\n search(text);\n }\n\n if (key == 9) {\n // Tab Completion Functions\n e.preventDefault();\n e.stopPropagation();\n\n if (text[0] === ';') {\n switch (option) {\n case 't':\n var streamers = ['admiralbahroo', 'moonmoon_ow', 'witwix'];\n\n if (!subtext || cycle) {\n cycle = true;\n if (sindex > streamers.length - 1) sindex = 0;\n document.getElementById(\"keywords\").value = ';t ' + streamers[sindex++];\n return;\n }\n\n for (var streamer of streamers) {\n if (subtext === streamer.substr(0, subtext.length)) {\n document.getElementById(\"keywords\").value = ';t ' + streamer;\n return;\n }\n }\n\n break;\n }\n }\n }\n\n if (key == 32) {\n //Space to go to search\n updateLabel(text);\n }\n\n sindex = 0;\n cycle = false;\n updateLabel(text);\n}\n\nfunction updateLabel(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n\n if (text[0] === '/') {\n // if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n document.getElementById(\"searchType\").innerHTML = \"Allmusic search\";\n break;\n\n case \"d\":\n document.getElementById(\"searchType\").innerHTML = \"Duck Duck Go search\";\n break;\n\n case \"di\":\n document.getElementById(\"searchType\").innerHTML = \"Discogs search\";\n break;\n\n case \"i\":\n document.getElementById(\"searchType\").innerHTML = \"IMDB search\";\n break;\n\n case \"m\":\n document.getElementById(\"searchType\").innerHTML = \"TheMovieDB search\";\n break;\n\n case \"r\":\n document.getElementById(\"searchType\").innerHTML = \"Reddit search\";\n break;\n\n case \"q\":\n document.getElementById(\"searchType\").innerHTML = \"Qwant search\";\n break;\n\n case \"so\":\n document.getElementById(\"searchType\").innerHTML = \"Soundcloud search\";\n break;\n\n case \"s\":\n document.getElementById(\"searchType\").innerHTML = \"Spotify search\";\n break;\n\n case \"tv\":\n document.getElementById(\"searchType\").innerHTML = \"TheTVDB search\";\n break;\n\n case \"t\":\n document.getElementById(\"searchType\").innerHTML = \"Trakt search\";\n break;\n\n case \"y\":\n document.getElementById(\"searchType\").innerHTML = \"YouTube search\";\n break;\n\n case \"w\":\n document.getElementById(\"searchType\").innerHTML = \"Wikipedia search\";\n break;\n\n case \"p\":\n document.getElementById(\"searchType\").innerHTML = \"Plex search\";\n break;\n\n case \"rt\":\n document.getElementById(\"searchType\").innerHTML = \"Rotten Tomatoes search\";\n break;\n\n default:\n document.getElementById(\"searchType\").innerHTML = \"Invalid search\";\n break;\n }\n } else {\n document.getElementById(\"searchType\").innerHTML = \"Google search\";\n }\n}\n\nfunction search(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n\n if (text[0] === '/') {\n if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n window.location = \"https://www.allmusic.com/search/all/\" + subtext;\n break;\n\n case \"d\":\n window.location = \"https://duckduckgo.com/?q=\" + subtext;\n break;\n\n case \"di\":\n window.location = \"https://www.discogs.com/search/?q=\" + subtext;\n break;\n\n case \"i\":\n window.location = \"https://www.imdb.com/find?q=\" + subtext;\n break;\n\n case \"m\":\n window.location = \"https://www.themoviedb.org/search?query=\" + subtext;\n break;\n\n case \"r\":\n window.location = \"https://www.reddit.com/search?q=\" + subtext;\n break;\n\n case \"q\":\n window.location = \"https://www.qwant.com/?q=\" + subtext;\n break;\n\n case \"so\":\n window.location = \"https://soundcloud.com/search?q=\" + subtext;\n break;\n\n case \"s\":\n window.location = \"https://open.spotify.com/search/results/\" + subtext;\n break;\n\n case \"t\":\n window.location = \"https://trakt.tv/search?query=\" + subtext;\n break;\n\n case \"tv\":\n window.location = \"https://www.thetvdb.com/search?query=\" + subtext;\n break;\n\n case \"y\":\n window.location = \"https://www.youtube.com/results?search_query=\" + subtext;\n break;\n\n case \"w\":\n window.location = \"https://en.wikipedia.org/w/index.php?search=\" + subtext;\n break;\n\n case \"p\":\n window.location = \"https://app.plex.tv/desktop/#!/search?query=\" + subtext;\n break;\n\n case \"rt\":\n window.location = \"https://www.rottentomatoes.com/search?search=\" + subtext;\n break;\n }\n } else {\n var option = text.substr(1);\n\n switch (option) {\n case \"d\":\n window.location = \"https://www.duckduckgo.com\";\n break;\n\n case \"y\":\n window.location = \"https://www.youtube.com\";\n break;\n\n case \"r\":\n window.location = \"https://reddit.com\";\n break;\n\n case \"s\":\n window.location = \"https://open.spotify.com\";\n break;\n }\n }\n } else if (validURL(text)) {\n if (containsProtocol(text)) window.location = text;else window.location = \"https://\" + text;\n } else {\n window.location = \"https://www.google.com/search?q=\" + text;\n }\n} // Source: https://stackoverflow.com/questions/5717093/check-if-a-javascript-string-is-a-url\n\n\nfunction validURL(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/)?' + // protocol\n '((([a-z\\\\d]([a-z\\\\d-]*[a-z\\\\d])*)\\\\.)+[a-z]{2,}|' + // domain name\n '((\\\\d{1,3}\\\\.){3}\\\\d{1,3}))' + // OR ip (v4) address\n '(\\\\:\\\\d+)?(\\\\/[-a-z\\\\d%_.~+]*)*' + // port and path\n '(\\\\?[;&a-z\\\\d%_.~+=-]*)?' + // query string\n '(\\\\#[-a-z\\\\d_]*)?$', 'i'); // fragment locator\n\n return !!pattern.test(str);\n}\n\nfunction containsProtocol(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/){1}.*', 'i');\n return !!pattern.test(str);\n}\n\nString.prototype.replaceAll = function (search, replacement) {\n var target = this;\n return target.split(search).join(replacement);\n};\n\nvar _c, _c2, _c3, _c4, _c5, _c6, _c7, _c8, _c9, _c10, _c11, _c12;\n\n$RefreshReg$(_c, \"Homepage\");\n$RefreshReg$(_c2, \"Search\");\n$RefreshReg$(_c3, \"Header\");\n$RefreshReg$(_c4, \"Applications\");\n$RefreshReg$(_c5, \"App\");\n$RefreshReg$(_c6, \"Bookmarks\");\n$RefreshReg$(_c7, \"LinkGroups\");\n$RefreshReg$(_c8, \"LinkItem\");\n$RefreshReg$(_c9, \"ModalMenu\");\n$RefreshReg$(_c10, \"Provider\");\n$RefreshReg$(_c11, \"ModalInit\");\n$RefreshReg$(_c12, \"Clock\");","map":{"version":3,"sources":["/home/seanedmunds/dev/home-page/src/index.js"],"names":["React","useState","useEffect","ReactDOM","Homepage","date","greet","Search","handleKeyPress","Header","props","Applications","appList","getApps","items","i","apps","length","push","name","url","icon","NSFW","App","classNameType","hrefUrl","iconName","Bookmarks","bookmarkList","getLinks","bookmarks","category","links","LinkGroups","LinkItem","link","ModalMenu","providers","getProviders","updateTheme","Provider","provider","prefix","ModalInit","render","document","getElementById","currentDate","Date","dateOptions","weekday","year","month","day","toLocaleDateString","fixDigits","k","currentTime","Math","floor","getHours","easterEggChance","random","greetings","require","timeBased","easterEggs","messages","easteregg","concat","message","easterEggText","Clock","setDate","refreshClock","timerId","setInterval","cleanup","clearInterval","hour","minutes","getMinutes","midday","time","applications","getThemes","themes","e","themeName","target","innerHTML","toLowerCase","index","findIndex","item","localStorage","setItem","imagebackground","colorbackground","colorserachbackground","colortextpri","colortextacc","colorborder","sindex","cycle","key","keyCode","which","text","value","replaceAll","option","substr","indexOf","subtext","search","preventDefault","stopPropagation","streamers","streamer","updateLabel","window","location","validURL","containsProtocol","str","pattern","RegExp","test","String","prototype","replacement","split","join"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { useState, useEffect } from 'react';\nimport ReactDOM from 'react-dom';\n//import { unstable_createPortal } from 'react-dom';\nimport './index.css';\n\nfunction Homepage() {\n return (\n \n \n \n
\n \n \n
\n \n \n \n
\n \n \n
\n \n \n
\n \n );\n}\n\nfunction Search() {\n return (\n \n )\n}\n\nfunction Header(props) {\n return (\n \n );\n}\n\nfunction Applications() {\n let appList = getApps();\n var items = [];\n for (var i = 0; i < appList.apps.length; i++) {\n items.push(\n \n );\n }\n return (\n \n Applications
\n \n {items}\n
\n \n );\n}\n\nfunction App(props) {\n let classNameType = props.NSFW + \"-content\";\n let hrefUrl = \"https://\" + props.url;\n let iconName = \"mdi-\" + props.icon;\n return (\n \n );\n}\n\nfunction Bookmarks() {\n let bookmarkList = getLinks();\n var items = [];\n for (var i = 0; i < bookmarkList.bookmarks.length; i++) {\n items.push(\n \n );\n }\n return (\n \n Bookmarks
\n \n {items}\n
\n \n );\n}\n\nfunction LinkGroups(props) {\n var items = [];\n for (var i = 0; i < props.links.length; i++) {\n items.push(\n \n );\n }\n return (\n \n
{props.category}
\n {items}\n \n );\n}\n\nfunction LinkItem(props) {\n return (\n \n );\n}\n\nfunction ModalMenu() {\n var providers = getProviders();\n var items = [];\n for (var i = 0; i < providers.providers.length; i++) {\n items.push(\n \n );\n }\n return (\n \n \n \n\n
Color themes
\n\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n\n\n
Search options
\n
\n \n \n \n | Website | \n Prefix | \n
\n {items}\n \n
\n \n\n \n
\n \n );\n}\n\nfunction Provider(props) {\n return (\n \n | {props.provider.name} | \n {props.provider.prefix} | \n
\n );\n}\n\nfunction ModalInit() {\n return (\n \n );\n}\n\nReactDOM.render(\n ,\n document.getElementById('root')\n);\n\n//Functions below this line are for calculating data for\n//other functions\n\nfunction date() {\n let currentDate = new Date();\n let dateOptions = {\n weekday: \"long\",\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\"\n };\n let date = currentDate.toLocaleDateString(\"en-GB\", dateOptions);\n return date;\n}\nfunction fixDigits(k) {\n if (k < 10) {\n return \"0\" + k;\n }\n else {\n return k;\n }\n}\nfunction greet() {\n let currentTime = new Date();\n let greet = Math.floor(currentTime.getHours() / 6);\n let easterEggChance = Math.floor(Math.random() * 100);\n let greetings = require('./messages.json');\n let timeBased = [];\n let easterEggs = [];\n for (var i = 0; i < greetings.messages.length; i++) {\n if (greetings.messages[i].easteregg === \"FALSE\") {\n timeBased = timeBased.concat(greetings.messages[i]);\n } else {\n easterEggs = easterEggs.concat(greetings.messages[i]);\n }\n }\n if (easterEggChance > 10) {\n return timeBased[greet].message;\n } else {\n let easterEggText = Math.floor(Math.random() * easterEggs.length);\n return easterEggs[easterEggText].message;\n }\n}\nfunction Clock() {\n const [date, setDate] = useState(new Date());\n\n function refreshClock() {\n setDate(new Date());\n }\n useEffect(() => {\n const timerId = setInterval(refreshClock, 1000);\n return function cleanup() {\n clearInterval(timerId);\n };\n }, []);\n\n var hour = date.getHours();\n var minutes = date.getMinutes();\n //var seconds = date.getSeconds();\n var midday = \"AM\";\n midday = (hour >= 12) ? \"PM\" : \"AM\";\n hour = (hour === 0) ? 12 : ((hour > 12) ? (hour - 12) : hour);\n minutes = fixDigits(minutes);\n //seconds = fixDigits(seconds);\n let time = hour + \":\" + minutes + \" \" + midday;\n\n return (\n {time}
\n\n );\n}\nfunction getApps() {\n let applications = require('./apps.json');\n return applications;\n}\nfunction getLinks() {\n let links = require('./links.json');\n return links;\n}\nfunction getProviders() {\n let providers = require('./providers.json');\n return providers;\n}\nfunction getThemes() {\n let themes = require('./themes.json');\n return themes;\n}\n\nfunction updateTheme(e) {\n var themes = getThemes();\n var themeName = e.target.innerHTML.toLowerCase();\n var index = themes.themes.findIndex(function(item, i){\n return item.name === themeName\n });\n \n localStorage.setItem(\"image-background\", themes.themes[index].imagebackground);\n localStorage.setItem(\"color-background\", themes.themes[index].colorbackground);\n localStorage.setItem(\"color-search-background\", themes.themes[index].colorserachbackground);\n localStorage.setItem(\"color-text-pri\",themes.themes[index].colortextpri);\n localStorage.setItem(\"color-text-acc\", themes.themes[index].colortextacc);\n localStorage.setItem(\"color-border\", themes.themes[index].colorborder);\n}\n\nfunction handleKeyPress(e) {\n var sindex = 0;\n var cycle = false;\n var key = e.keyCode || e.which;\n var text = e.target.value.replaceAll(\"+\", \"%2B\");\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n if (key == 13) { // Search functions\n search(text);\n }\n if (key == 9) { // Tab Completion Functions\n e.preventDefault();\n e.stopPropagation();\n if (text[0] === ';') {\n switch (option) {\n case 't':\n var streamers = ['admiralbahroo', 'moonmoon_ow', 'witwix'];\n if (!subtext || cycle) {\n cycle = true;\n if (sindex > streamers.length - 1) sindex = 0;\n document.getElementById(\"keywords\").value = ';t ' + streamers[sindex++];\n return;\n }\n for (var streamer of streamers) {\n if (subtext === streamer.substr(0, subtext.length)) {\n document.getElementById(\"keywords\").value = ';t ' + streamer;\n return;\n }\n }\n break;\n }\n }\n }\n if(key == 32){ //Space to go to search\nupdateLabel(text);\n }\n sindex = 0;\n cycle = false;\n updateLabel(text);\n}\n\nfunction updateLabel(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n if (text[0] === '/') {\n// if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n document.getElementById(\"searchType\").innerHTML = \"Allmusic search\";\n break;\n case \"d\":\n document.getElementById(\"searchType\").innerHTML = \"Duck Duck Go search\";\n break;\n case \"di\":\n document.getElementById(\"searchType\").innerHTML = \"Discogs search\";\n break;\n case \"i\":\n document.getElementById(\"searchType\").innerHTML = \"IMDB search\";\n break;\n case \"m\":\n document.getElementById(\"searchType\").innerHTML = \"TheMovieDB search\";\n break;\n case \"r\":\n document.getElementById(\"searchType\").innerHTML = \"Reddit search\";\n break;\n case \"q\":\n document.getElementById(\"searchType\").innerHTML = \"Qwant search\";\n break;\n case \"so\":\n document.getElementById(\"searchType\").innerHTML = \"Soundcloud search\";\n break;\n case \"s\":\n document.getElementById(\"searchType\").innerHTML = \"Spotify search\";\n break;\n case \"tv\":\n document.getElementById(\"searchType\").innerHTML = \"TheTVDB search\";\n break;\n case \"t\":\n document.getElementById(\"searchType\").innerHTML = \"Trakt search\";\n break;\n case \"y\":\n document.getElementById(\"searchType\").innerHTML = \"YouTube search\";\n break;\n case \"w\":\n document.getElementById(\"searchType\").innerHTML = \"Wikipedia search\";\n break;\n case \"p\":\n document.getElementById(\"searchType\").innerHTML = \"Plex search\";\n break;\n case \"rt\":\n document.getElementById(\"searchType\").innerHTML = \"Rotten Tomatoes search\";\n break;\n default:\n document.getElementById(\"searchType\").innerHTML = \"Invalid search\";\n break;\n }\n}else {\n document.getElementById(\"searchType\").innerHTML = \"Google search\";\n }\n}\n\nfunction search(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n if (text[0] === '/') {\n if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n window.location = \"https://www.allmusic.com/search/all/\" + subtext;\n break;\n case \"d\":\n window.location = \"https://duckduckgo.com/?q=\" + subtext;\n break;\n case \"di\":\n window.location = \"https://www.discogs.com/search/?q=\" + subtext;\n break;\n case \"i\":\n window.location = \"https://www.imdb.com/find?q=\" + subtext;\n break;\n case \"m\":\n window.location = \"https://www.themoviedb.org/search?query=\" + subtext;\n break;\n case \"r\":\n window.location = \"https://www.reddit.com/search?q=\" + subtext;\n break;\n case \"q\":\n window.location = \"https://www.qwant.com/?q=\" + subtext;\n break;\n case \"so\":\n window.location = \"https://soundcloud.com/search?q=\" + subtext;\n break;\n case \"s\":\n window.location = \"https://open.spotify.com/search/results/\" + subtext;\n break;\n case \"t\":\n window.location = \"https://trakt.tv/search?query=\" + subtext;\n break;\n case \"tv\":\n window.location = \"https://www.thetvdb.com/search?query=\" + subtext;\n break;\n case \"y\":\n window.location = \"https://www.youtube.com/results?search_query=\" + subtext;\n break;\n case \"w\":\n window.location = \"https://en.wikipedia.org/w/index.php?search=\" + subtext;\n break;\n case \"p\":\n window.location = \"https://app.plex.tv/desktop/#!/search?query=\" + subtext;\n break;\n case \"rt\":\n window.location = \"https://www.rottentomatoes.com/search?search=\" + subtext;\n break;\n }\n } else {\n var option = text.substr(1);\n switch (option) {\n case \"d\":\n window.location = \"https://www.duckduckgo.com\";\n break;\n case \"y\":\n window.location = \"https://www.youtube.com\";\n break;\n case \"r\":\n window.location = \"https://reddit.com\";\n break;\n case \"s\":\n window.location = \"https://open.spotify.com\";\n break;\n }\n }\n } else if (validURL(text)) {\n if (containsProtocol(text))\n window.location = text;\n else\n window.location = \"https://\" + text;\n } else {\n window.location = \"https://www.google.com/search?q=\" + text;\n }\n}\n\n// Source: https://stackoverflow.com/questions/5717093/check-if-a-javascript-string-is-a-url\nfunction validURL(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/)?' + // protocol\n '((([a-z\\\\d]([a-z\\\\d-]*[a-z\\\\d])*)\\\\.)+[a-z]{2,}|' + // domain name\n '((\\\\d{1,3}\\\\.){3}\\\\d{1,3}))' + // OR ip (v4) address\n '(\\\\:\\\\d+)?(\\\\/[-a-z\\\\d%_.~+]*)*' + // port and path\n '(\\\\?[;&a-z\\\\d%_.~+=-]*)?' + // query string\n '(\\\\#[-a-z\\\\d_]*)?$', 'i'); // fragment locator\n return !!pattern.test(str);\n}\n\nfunction containsProtocol(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/){1}.*', 'i');\n return !!pattern.test(str);\n}\n\nString.prototype.replaceAll = function(search, replacement) {\n var target = this;\n return target.split(search).join(replacement);\n};"]},"metadata":{},"sourceType":"module"}
\ No newline at end of file
diff --git a/node_modules/.cache/babel-loader/c015cf6e5a41fba3e196efe602eabb48.json b/node_modules/.cache/babel-loader/c015cf6e5a41fba3e196efe602eabb48.json
new file mode 100644
index 00000000..89f5ce5e
--- /dev/null
+++ b/node_modules/.cache/babel-loader/c015cf6e5a41fba3e196efe602eabb48.json
@@ -0,0 +1 @@
+{"ast":null,"code":"var _jsxFileName = \"/home/seanedmunds/dev/home-page/src/index.js\",\n _s = $RefreshSig$();\n\nimport React from 'react';\nimport { useState, useEffect } from 'react';\nimport ReactDOM from 'react-dom'; //import { unstable_createPortal } from 'react-dom';\n\nimport './index.css';\nimport { jsxDEV as _jsxDEV } from \"react/jsx-dev-runtime\";\n\nfunction Homepage() {\n return /*#__PURE__*/_jsxDEV(\"main\", {\n id: \"container\",\n className: \"fade\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Search, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 11,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 10,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Header, {\n date: date(),\n greet: greet()\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 14,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 13,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Applications, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 20,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 19,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Bookmarks, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 23,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 22,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(ModalMenu, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 26,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 25,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(ModalInit, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 29,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 28,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 9,\n columnNumber: 5\n }, this);\n}\n\n_c = Homepage;\n\nfunction Search() {\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"search\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"abackground\",\n children: [/*#__PURE__*/_jsxDEV(\"input\", {\n name: \"keywords\",\n type: \"text\",\n className: \"keyword\",\n id: \"keywords\",\n size: \"50\",\n spellCheck: \"true\",\n placeholder: \"\"\n /*onFocus={this.placeholder = \"\"} onBlur={this.placeholder = ''}*/\n ,\n autoComplete: \"off\",\n autoFocus: true,\n onKeyUp: handleKeyPress\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 39,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n id: \"searchType\",\n className: \"Input-label\",\n children: \"Google search\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 40,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 38,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 37,\n columnNumber: 5\n }, this);\n}\n\n_c2 = Search;\n\nfunction Header(props) {\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"header\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n id: \"greeting_block\",\n children: /*#__PURE__*/_jsxDEV(\"h1\", {\n id: \"header_greet\",\n children: props.greet\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 50,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 49,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"date_block\",\n children: [/*#__PURE__*/_jsxDEV(\"h2\", {\n id: \"header_date\",\n children: props.date\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 53,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(Clock, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 54,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 52,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 48,\n columnNumber: 5\n }, this);\n}\n\n_c3 = Header;\n\nfunction Applications() {\n let appList = getApps();\n var items = [];\n\n for (var i = 0; i < appList.apps.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(App, {\n name: appList.apps[i].name,\n url: appList.apps[i].url,\n icon: appList.apps[i].icon,\n NSFW: appList.apps[i].NSFW\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 65,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"apps\",\n children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n children: \"Applications\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 76,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"apps_loop\",\n children: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 77,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 75,\n columnNumber: 5\n }, this);\n}\n\n_c4 = Applications;\n\nfunction App(props) {\n let classNameType = props.NSFW + \"-content\";\n let hrefUrl = \"https://\" + props.url;\n let iconName = \"mdi-\" + props.icon;\n return /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: hrefUrl,\n className: classNameType,\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_item\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_icon\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify icon\",\n \"data-icon\": iconName\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 93,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 92,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_text\",\n children: [/*#__PURE__*/_jsxDEV(\"span\", {\n id: \"app-name\",\n children: props.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 96,\n columnNumber: 13\n }, this), /*#__PURE__*/_jsxDEV(\"span\", {\n id: \"app-address\",\n children: props.url\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 97,\n columnNumber: 13\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 95,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 91,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 90,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 89,\n columnNumber: 5\n }, this);\n}\n\n_c5 = App;\n\nfunction Bookmarks() {\n let bookmarkList = getLinks();\n var items = [];\n\n for (var i = 0; i < bookmarkList.bookmarks.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(LinkGroups, {\n category: bookmarkList.bookmarks[i].category,\n links: bookmarkList.bookmarks[i].links\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 110,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"links\",\n children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n children: \"Bookmarks\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 119,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"links_loop\",\n children: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 120,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 118,\n columnNumber: 5\n }, this);\n}\n\n_c6 = Bookmarks;\n\nfunction LinkGroups(props) {\n var items = [];\n\n for (var i = 0; i < props.links.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(LinkItem, {\n link: props.links[i]\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 131,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"links_item\",\n children: [/*#__PURE__*/_jsxDEV(\"h4\", {\n children: props.category\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 139,\n columnNumber: 7\n }, this), items]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 138,\n columnNumber: 5\n }, this);\n}\n\n_c7 = LinkGroups;\n\nfunction LinkItem(props) {\n return /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: props.link.url,\n className: \"theme_color-border theme_text-select\",\n children: props.link.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 148,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 147,\n columnNumber: 5\n }, this);\n}\n\n_c8 = LinkItem;\n\nfunction ModalMenu() {\n var providers = getProviders();\n var items = [];\n\n for (var i = 0; i < providers.providers.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(Provider, {\n provider: providers.providers[i]\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 158,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"modal\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n children: [/*#__PURE__*/_jsxDEV(\"header\", {\n id: \"modal-header\",\n children: [/*#__PURE__*/_jsxDEV(\"h1\", {\n children: \"Options\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 168,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n href: \"#\",\n title: \"Close\",\n className: \"modal-close\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-close\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 170,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 169,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 167,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"h2\", {\n children: \"Color themes\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 174,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"modal-theme\",\n children: [/*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"blackboard\",\n className: \"theme-button theme-blackboard\",\n onClick: updateTheme,\n children: \"Blackboard\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 177,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"gazette\",\n className: \"theme-button theme-gazette\",\n onClick: updateTheme,\n children: \"Gazette\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 178,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"espresso\",\n className: \"theme-button theme-espresso\",\n onClick: updateTheme,\n children: \"Espresso\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 179,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cab\",\n className: \"theme-button theme-cab\",\n onClick: updateTheme,\n children: \"Cab\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 180,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cloud\",\n className: \"theme-button theme-cloud\",\n onClick: updateTheme,\n children: \"Cloud\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 181,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"lime\",\n className: \"theme-button theme-lime\",\n onClick: updateTheme,\n children: \"Lime\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 182,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"passion\",\n className: \"theme-button theme-passion\",\n onClick: updateTheme,\n children: \"Passion\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 183,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"blues\",\n className: \"theme-button theme-blues\",\n onClick: updateTheme,\n children: \"Blues\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 184,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"chalk\",\n className: \"theme-button theme-chalk\",\n onClick: updateTheme,\n children: \"Chalk\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 185,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"tron\",\n className: \"theme-button theme-tron\",\n onClick: updateTheme,\n children: \"Tron\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 186,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"paper\",\n className: \"theme-button theme-paper\",\n onClick: updateTheme,\n children: \"Paper\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 187,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cyberpunk\",\n className: \"theme-button theme-cyberpunk\",\n onClick: updateTheme,\n children: \"Cyberpunk\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 188,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"quadra\",\n className: \"theme-button theme-panam\",\n onClick: updateTheme,\n children: \"Quadra\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 189,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"panam\",\n className: \"theme-button theme-panam\",\n onClick: updateTheme,\n children: \"Panam\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 190,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"touch\",\n className: \"theme-button theme-touch\",\n onClick: updateTheme,\n children: \"Touch\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 191,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"peek\",\n className: \"theme-button theme-peek\",\n onClick: updateTheme,\n children: \"Peek\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 192,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 176,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"h2\", {\n children: \"Search options\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 196,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"providers\",\n children: /*#__PURE__*/_jsxDEV(\"table\", {\n children: /*#__PURE__*/_jsxDEV(\"tbody\", {\n children: [/*#__PURE__*/_jsxDEV(\"tr\", {\n children: [/*#__PURE__*/_jsxDEV(\"th\", {\n children: \"Website\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 201,\n columnNumber: 19\n }, this), /*#__PURE__*/_jsxDEV(\"th\", {\n children: \"Prefix\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 202,\n columnNumber: 19\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 200,\n columnNumber: 17\n }, this), items]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 199,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 198,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 197,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"header\", {\n id: \"modal-footer\",\n children: [/*#__PURE__*/_jsxDEV(\"a\", {\n href: \"https://github.com/jeroenpardon/\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-github-box\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 210,\n columnNumber: 54\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 210,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n href: \"https://materialdesignicons.com/\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-material-design\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 211,\n columnNumber: 54\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 211,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"sneaky\",\n children: [/*#__PURE__*/_jsxDEV(\"input\", {\n type: \"checkbox\",\n id: \"contenttype\",\n onChange: \"nsfw(this)\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 212,\n columnNumber: 35\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n for: \"contenttype\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-domino-mask\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 213,\n columnNumber: 36\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 213,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 212,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 209,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 166,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 165,\n columnNumber: 5\n }, this);\n}\n\n_c9 = ModalMenu;\n\nfunction Provider(props) {\n return /*#__PURE__*/_jsxDEV(\"tr\", {\n children: [/*#__PURE__*/_jsxDEV(\"td\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: props.provider.url,\n children: props.provider.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 223,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 223,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"td\", {\n children: props.provider.prefix\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 224,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 222,\n columnNumber: 5\n }, this);\n}\n\n_c10 = Provider;\n\nfunction ModalInit() {\n return /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"modal_init\",\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n className: \"btn\",\n href: \"#modal\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify icon\",\n \"data-icon\": \"mdi-xbox-controller-menu\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 233,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 232,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 231,\n columnNumber: 5\n }, this);\n}\n\n_c11 = ModalInit;\nReactDOM.render( /*#__PURE__*/_jsxDEV(Homepage, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 240,\n columnNumber: 3\n}, this), document.getElementById('root')); //Functions below this line are for calculating data for\n//other functions\n\nfunction date() {\n let currentDate = new Date();\n let dateOptions = {\n weekday: \"long\",\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\"\n };\n let date = currentDate.toLocaleDateString(\"en-GB\", dateOptions);\n return date;\n}\n\nfunction fixDigits(k) {\n if (k < 10) {\n return \"0\" + k;\n } else {\n return k;\n }\n}\n\nfunction greet() {\n let currentTime = new Date();\n let greet = Math.floor(currentTime.getHours() / 6);\n let easterEggChance = Math.floor(Math.random() * 100);\n\n let greetings = require('./messages.json');\n\n let timeBased = [];\n let easterEggs = [];\n\n for (var i = 0; i < greetings.messages.length; i++) {\n if (greetings.messages[i].easteregg === \"FALSE\") {\n timeBased = timeBased.concat(greetings.messages[i]);\n } else {\n easterEggs = easterEggs.concat(greetings.messages[i]);\n }\n }\n\n if (easterEggChance > 10) {\n return timeBased[greet].message;\n } else {\n let easterEggText = Math.floor(Math.random() * easterEggs.length);\n return easterEggs[easterEggText].message;\n }\n}\n\nfunction Clock() {\n _s();\n\n const [date, setDate] = useState(new Date());\n\n function refreshClock() {\n setDate(new Date());\n }\n\n useEffect(() => {\n const timerId = setInterval(refreshClock, 1000);\n return function cleanup() {\n clearInterval(timerId);\n };\n }, []);\n var hour = date.getHours();\n var minutes = date.getMinutes(); //var seconds = date.getSeconds();\n\n var midday = \"AM\";\n midday = hour >= 12 ? \"PM\" : \"AM\";\n hour = hour === 0 ? 12 : hour > 12 ? hour - 12 : hour;\n minutes = fixDigits(minutes); //seconds = fixDigits(seconds);\n\n let time = hour + \":\" + minutes + \" \" + midday;\n return /*#__PURE__*/_jsxDEV(\"h2\", {\n id: \"clock\",\n children: time\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 311,\n columnNumber: 5\n }, this);\n}\n\n_s(Clock, \"Gqi45WOZhU2c0BLYX0HoJeiR0fk=\");\n\n_c12 = Clock;\n\nfunction getApps() {\n let applications = require('./apps.json');\n\n return applications;\n}\n\nfunction getLinks() {\n let links = require('./links.json');\n\n return links;\n}\n\nfunction getProviders() {\n let providers = require('./providers.json');\n\n return providers;\n}\n\nfunction getThemes() {\n let themes = require('./themes.json');\n\n return themes;\n}\n\nfunction updateTheme(e) {\n var themes = getThemes();\n var themeName = e.target.innerHTML.toLowerCase();\n var index = themes.themes.findIndex(function (item, i) {\n return item.name === themeName;\n });\n console.log(themes.themes[index]);\n localStorage.setItem(\"image-background\", themes.themes[index].imagebackground);\n localStorage.setItem(\"color-background\", themes.themes[index].colorbackground);\n localStorage.setItem(\"color-search-background\", themes.themes[index].colorserachbackground);\n localStorage.setItem(\"color-text-pri\", themes.themes[index].colortextpri);\n localStorage.setItem(\"color-text-acc\", themes.themes[index].colortextacc);\n localStorage.setItem(\"color-border\", themes.themes[index].colorborder); //document.documentElement.style.setProperty(prop, `var(--${themeName}${prop.substring(10)})`);\n\n setTheme();\n}\n\nfunction setTheme() {\n const setValueFromLocalStorage = property => {\n let value = localStorage.getItem(property);\n setValue(property, value);\n };\n\n const setValue = (property, value) => {\n if (value) {\n document.documentElement.style.setProperty(`--${property}`, value);\n const input = document.querySelector(`#${property}`);\n\n if (input) {\n value = value.replace('px', '');\n input.value = value;\n }\n }\n };\n}\n\nfunction handleKeyPress(e) {\n var sindex = 0;\n var cycle = false;\n var key = e.keyCode || e.which;\n var text = e.target.value.replaceAll(\"+\", \"%2B\");\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n\n if (key == 13) {\n // Search functions\n search(text);\n }\n\n if (key == 9) {\n // Tab Completion Functions\n e.preventDefault();\n e.stopPropagation();\n\n if (text[0] === ';') {\n switch (option) {\n case 't':\n var streamers = ['admiralbahroo', 'moonmoon_ow', 'witwix'];\n\n if (!subtext || cycle) {\n cycle = true;\n if (sindex > streamers.length - 1) sindex = 0;\n document.getElementById(\"keywords\").value = ';t ' + streamers[sindex++];\n return;\n }\n\n for (var streamer of streamers) {\n if (subtext === streamer.substr(0, subtext.length)) {\n document.getElementById(\"keywords\").value = ';t ' + streamer;\n return;\n }\n }\n\n break;\n }\n }\n }\n\n if (key == 32) {\n //Space to go to search\n updateLabel(text);\n }\n\n sindex = 0;\n cycle = false;\n updateLabel(text);\n}\n\nfunction updateLabel(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n\n if (text[0] === '/') {\n // if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n document.getElementById(\"searchType\").innerHTML = \"Allmusic search\";\n break;\n\n case \"d\":\n document.getElementById(\"searchType\").innerHTML = \"Duck Duck Go search\";\n break;\n\n case \"di\":\n document.getElementById(\"searchType\").innerHTML = \"Discogs search\";\n break;\n\n case \"i\":\n document.getElementById(\"searchType\").innerHTML = \"IMDB search\";\n break;\n\n case \"m\":\n document.getElementById(\"searchType\").innerHTML = \"TheMovieDB search\";\n break;\n\n case \"r\":\n document.getElementById(\"searchType\").innerHTML = \"Reddit search\";\n break;\n\n case \"q\":\n document.getElementById(\"searchType\").innerHTML = \"Qwant search\";\n break;\n\n case \"so\":\n document.getElementById(\"searchType\").innerHTML = \"Soundcloud search\";\n break;\n\n case \"s\":\n document.getElementById(\"searchType\").innerHTML = \"Spotify search\";\n break;\n\n case \"tv\":\n document.getElementById(\"searchType\").innerHTML = \"TheTVDB search\";\n break;\n\n case \"t\":\n document.getElementById(\"searchType\").innerHTML = \"Trakt search\";\n break;\n\n case \"y\":\n document.getElementById(\"searchType\").innerHTML = \"YouTube search\";\n break;\n\n case \"w\":\n document.getElementById(\"searchType\").innerHTML = \"Wikipedia search\";\n break;\n\n case \"p\":\n document.getElementById(\"searchType\").innerHTML = \"Plex search\";\n break;\n\n case \"rt\":\n document.getElementById(\"searchType\").innerHTML = \"Rotten Tomatoes search\";\n break;\n\n default:\n document.getElementById(\"searchType\").innerHTML = \"Invalid search\";\n break;\n }\n } else {\n document.getElementById(\"searchType\").innerHTML = \"Google search\";\n }\n}\n\nfunction search(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n\n if (text[0] === '/') {\n if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n window.location = \"https://www.allmusic.com/search/all/\" + subtext;\n break;\n\n case \"d\":\n window.location = \"https://duckduckgo.com/?q=\" + subtext;\n break;\n\n case \"di\":\n window.location = \"https://www.discogs.com/search/?q=\" + subtext;\n break;\n\n case \"i\":\n window.location = \"https://www.imdb.com/find?q=\" + subtext;\n break;\n\n case \"m\":\n window.location = \"https://www.themoviedb.org/search?query=\" + subtext;\n break;\n\n case \"r\":\n window.location = \"https://www.reddit.com/search?q=\" + subtext;\n break;\n\n case \"q\":\n window.location = \"https://www.qwant.com/?q=\" + subtext;\n break;\n\n case \"so\":\n window.location = \"https://soundcloud.com/search?q=\" + subtext;\n break;\n\n case \"s\":\n window.location = \"https://open.spotify.com/search/results/\" + subtext;\n break;\n\n case \"t\":\n window.location = \"https://trakt.tv/search?query=\" + subtext;\n break;\n\n case \"tv\":\n window.location = \"https://www.thetvdb.com/search?query=\" + subtext;\n break;\n\n case \"y\":\n window.location = \"https://www.youtube.com/results?search_query=\" + subtext;\n break;\n\n case \"w\":\n window.location = \"https://en.wikipedia.org/w/index.php?search=\" + subtext;\n break;\n\n case \"p\":\n window.location = \"https://app.plex.tv/desktop/#!/search?query=\" + subtext;\n break;\n\n case \"rt\":\n window.location = \"https://www.rottentomatoes.com/search?search=\" + subtext;\n break;\n }\n } else {\n var option = text.substr(1);\n\n switch (option) {\n case \"d\":\n window.location = \"https://www.duckduckgo.com\";\n break;\n\n case \"y\":\n window.location = \"https://www.youtube.com\";\n break;\n\n case \"r\":\n window.location = \"https://reddit.com\";\n break;\n\n case \"s\":\n window.location = \"https://open.spotify.com\";\n break;\n }\n }\n } else if (validURL(text)) {\n if (containsProtocol(text)) window.location = text;else window.location = \"https://\" + text;\n } else {\n window.location = \"https://www.google.com/search?q=\" + text;\n }\n} // Source: https://stackoverflow.com/questions/5717093/check-if-a-javascript-string-is-a-url\n\n\nfunction validURL(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/)?' + // protocol\n '((([a-z\\\\d]([a-z\\\\d-]*[a-z\\\\d])*)\\\\.)+[a-z]{2,}|' + // domain name\n '((\\\\d{1,3}\\\\.){3}\\\\d{1,3}))' + // OR ip (v4) address\n '(\\\\:\\\\d+)?(\\\\/[-a-z\\\\d%_.~+]*)*' + // port and path\n '(\\\\?[;&a-z\\\\d%_.~+=-]*)?' + // query string\n '(\\\\#[-a-z\\\\d_]*)?$', 'i'); // fragment locator\n\n return !!pattern.test(str);\n}\n\nfunction containsProtocol(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/){1}.*', 'i');\n return !!pattern.test(str);\n}\n\nString.prototype.replaceAll = function (search, replacement) {\n var target = this;\n return target.split(search).join(replacement);\n};\n\nvar _c, _c2, _c3, _c4, _c5, _c6, _c7, _c8, _c9, _c10, _c11, _c12;\n\n$RefreshReg$(_c, \"Homepage\");\n$RefreshReg$(_c2, \"Search\");\n$RefreshReg$(_c3, \"Header\");\n$RefreshReg$(_c4, \"Applications\");\n$RefreshReg$(_c5, \"App\");\n$RefreshReg$(_c6, \"Bookmarks\");\n$RefreshReg$(_c7, \"LinkGroups\");\n$RefreshReg$(_c8, \"LinkItem\");\n$RefreshReg$(_c9, \"ModalMenu\");\n$RefreshReg$(_c10, \"Provider\");\n$RefreshReg$(_c11, \"ModalInit\");\n$RefreshReg$(_c12, \"Clock\");","map":{"version":3,"sources":["/home/seanedmunds/dev/home-page/src/index.js"],"names":["React","useState","useEffect","ReactDOM","Homepage","date","greet","Search","handleKeyPress","Header","props","Applications","appList","getApps","items","i","apps","length","push","name","url","icon","NSFW","App","classNameType","hrefUrl","iconName","Bookmarks","bookmarkList","getLinks","bookmarks","category","links","LinkGroups","LinkItem","link","ModalMenu","providers","getProviders","updateTheme","Provider","provider","prefix","ModalInit","render","document","getElementById","currentDate","Date","dateOptions","weekday","year","month","day","toLocaleDateString","fixDigits","k","currentTime","Math","floor","getHours","easterEggChance","random","greetings","require","timeBased","easterEggs","messages","easteregg","concat","message","easterEggText","Clock","setDate","refreshClock","timerId","setInterval","cleanup","clearInterval","hour","minutes","getMinutes","midday","time","applications","getThemes","themes","e","themeName","target","innerHTML","toLowerCase","index","findIndex","item","console","log","localStorage","setItem","imagebackground","colorbackground","colorserachbackground","colortextpri","colortextacc","colorborder","setTheme","setValueFromLocalStorage","property","value","getItem","setValue","documentElement","style","setProperty","input","querySelector","replace","sindex","cycle","key","keyCode","which","text","replaceAll","option","substr","indexOf","subtext","search","preventDefault","stopPropagation","streamers","streamer","updateLabel","window","location","validURL","containsProtocol","str","pattern","RegExp","test","String","prototype","replacement","split","join"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { useState, useEffect } from 'react';\nimport ReactDOM from 'react-dom';\n//import { unstable_createPortal } from 'react-dom';\nimport './index.css';\n\nfunction Homepage() {\n return (\n \n \n \n
\n \n \n
\n \n \n \n
\n \n \n
\n \n \n
\n \n );\n}\n\nfunction Search() {\n return (\n \n )\n}\n\nfunction Header(props) {\n return (\n \n );\n}\n\nfunction Applications() {\n let appList = getApps();\n var items = [];\n for (var i = 0; i < appList.apps.length; i++) {\n items.push(\n \n );\n }\n return (\n \n Applications
\n \n {items}\n
\n \n );\n}\n\nfunction App(props) {\n let classNameType = props.NSFW + \"-content\";\n let hrefUrl = \"https://\" + props.url;\n let iconName = \"mdi-\" + props.icon;\n return (\n \n );\n}\n\nfunction Bookmarks() {\n let bookmarkList = getLinks();\n var items = [];\n for (var i = 0; i < bookmarkList.bookmarks.length; i++) {\n items.push(\n \n );\n }\n return (\n \n Bookmarks
\n \n {items}\n
\n \n );\n}\n\nfunction LinkGroups(props) {\n var items = [];\n for (var i = 0; i < props.links.length; i++) {\n items.push(\n \n );\n }\n return (\n \n
{props.category}
\n {items}\n \n );\n}\n\nfunction LinkItem(props) {\n return (\n \n );\n}\n\nfunction ModalMenu() {\n var providers = getProviders();\n var items = [];\n for (var i = 0; i < providers.providers.length; i++) {\n items.push(\n \n );\n }\n return (\n \n \n \n\n
Color themes
\n\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n\n\n
Search options
\n
\n \n \n \n | Website | \n Prefix | \n
\n {items}\n \n
\n \n\n \n
\n \n );\n}\n\nfunction Provider(props) {\n return (\n \n | {props.provider.name} | \n {props.provider.prefix} | \n
\n );\n}\n\nfunction ModalInit() {\n return (\n \n );\n}\n\nReactDOM.render(\n ,\n document.getElementById('root')\n);\n\n//Functions below this line are for calculating data for\n//other functions\n\nfunction date() {\n let currentDate = new Date();\n let dateOptions = {\n weekday: \"long\",\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\"\n };\n let date = currentDate.toLocaleDateString(\"en-GB\", dateOptions);\n return date;\n}\nfunction fixDigits(k) {\n if (k < 10) {\n return \"0\" + k;\n }\n else {\n return k;\n }\n}\nfunction greet() {\n let currentTime = new Date();\n let greet = Math.floor(currentTime.getHours() / 6);\n let easterEggChance = Math.floor(Math.random() * 100);\n let greetings = require('./messages.json');\n let timeBased = [];\n let easterEggs = [];\n for (var i = 0; i < greetings.messages.length; i++) {\n if (greetings.messages[i].easteregg === \"FALSE\") {\n timeBased = timeBased.concat(greetings.messages[i]);\n } else {\n easterEggs = easterEggs.concat(greetings.messages[i]);\n }\n }\n if (easterEggChance > 10) {\n return timeBased[greet].message;\n } else {\n let easterEggText = Math.floor(Math.random() * easterEggs.length);\n return easterEggs[easterEggText].message;\n }\n}\nfunction Clock() {\n const [date, setDate] = useState(new Date());\n\n function refreshClock() {\n setDate(new Date());\n }\n useEffect(() => {\n const timerId = setInterval(refreshClock, 1000);\n return function cleanup() {\n clearInterval(timerId);\n };\n }, []);\n\n var hour = date.getHours();\n var minutes = date.getMinutes();\n //var seconds = date.getSeconds();\n var midday = \"AM\";\n midday = (hour >= 12) ? \"PM\" : \"AM\";\n hour = (hour === 0) ? 12 : ((hour > 12) ? (hour - 12) : hour);\n minutes = fixDigits(minutes);\n //seconds = fixDigits(seconds);\n let time = hour + \":\" + minutes + \" \" + midday;\n\n return (\n {time}
\n\n );\n}\nfunction getApps() {\n let applications = require('./apps.json');\n return applications;\n}\nfunction getLinks() {\n let links = require('./links.json');\n return links;\n}\nfunction getProviders() {\n let providers = require('./providers.json');\n return providers;\n}\nfunction getThemes() {\n let themes = require('./themes.json');\n return themes;\n}\n\nfunction updateTheme(e) {\n var themes = getThemes();\n var themeName = e.target.innerHTML.toLowerCase();\n var index = themes.themes.findIndex(function(item, i){\n return item.name === themeName\n });\n console.log(themes.themes[index]);\n localStorage.setItem(\"image-background\", themes.themes[index].imagebackground);\n localStorage.setItem(\"color-background\", themes.themes[index].colorbackground);\n localStorage.setItem(\"color-search-background\", themes.themes[index].colorserachbackground);\n localStorage.setItem(\"color-text-pri\",themes.themes[index].colortextpri);\n localStorage.setItem(\"color-text-acc\", themes.themes[index].colortextacc);\n localStorage.setItem(\"color-border\", themes.themes[index].colorborder);\n \n //document.documentElement.style.setProperty(prop, `var(--${themeName}${prop.substring(10)})`);\n setTheme();\n}\n\nfunction setTheme() {\n const setValueFromLocalStorage = property => {\n let value = localStorage.getItem(property);\n setValue(property, value);\n };\n const setValue = (property, value) => {\n if (value) {\n document.documentElement.style.setProperty(`--${property}`, value);\n\n const input = document.querySelector(`#${property}`);\n if (input) {\n value = value.replace('px', '');\n input.value = value;\n }\n }\n };\n}\n\nfunction handleKeyPress(e) {\n var sindex = 0;\n var cycle = false;\n var key = e.keyCode || e.which;\n var text = e.target.value.replaceAll(\"+\", \"%2B\");\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n if (key == 13) { // Search functions\n search(text);\n }\n if (key == 9) { // Tab Completion Functions\n e.preventDefault();\n e.stopPropagation();\n if (text[0] === ';') {\n switch (option) {\n case 't':\n var streamers = ['admiralbahroo', 'moonmoon_ow', 'witwix'];\n if (!subtext || cycle) {\n cycle = true;\n if (sindex > streamers.length - 1) sindex = 0;\n document.getElementById(\"keywords\").value = ';t ' + streamers[sindex++];\n return;\n }\n for (var streamer of streamers) {\n if (subtext === streamer.substr(0, subtext.length)) {\n document.getElementById(\"keywords\").value = ';t ' + streamer;\n return;\n }\n }\n break;\n }\n }\n }\n if(key == 32){ //Space to go to search\nupdateLabel(text);\n }\n sindex = 0;\n cycle = false;\n updateLabel(text);\n}\n\nfunction updateLabel(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n if (text[0] === '/') {\n// if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n document.getElementById(\"searchType\").innerHTML = \"Allmusic search\";\n break;\n case \"d\":\n document.getElementById(\"searchType\").innerHTML = \"Duck Duck Go search\";\n break;\n case \"di\":\n document.getElementById(\"searchType\").innerHTML = \"Discogs search\";\n break;\n case \"i\":\n document.getElementById(\"searchType\").innerHTML = \"IMDB search\";\n break;\n case \"m\":\n document.getElementById(\"searchType\").innerHTML = \"TheMovieDB search\";\n break;\n case \"r\":\n document.getElementById(\"searchType\").innerHTML = \"Reddit search\";\n break;\n case \"q\":\n document.getElementById(\"searchType\").innerHTML = \"Qwant search\";\n break;\n case \"so\":\n document.getElementById(\"searchType\").innerHTML = \"Soundcloud search\";\n break;\n case \"s\":\n document.getElementById(\"searchType\").innerHTML = \"Spotify search\";\n break;\n case \"tv\":\n document.getElementById(\"searchType\").innerHTML = \"TheTVDB search\";\n break;\n case \"t\":\n document.getElementById(\"searchType\").innerHTML = \"Trakt search\";\n break;\n case \"y\":\n document.getElementById(\"searchType\").innerHTML = \"YouTube search\";\n break;\n case \"w\":\n document.getElementById(\"searchType\").innerHTML = \"Wikipedia search\";\n break;\n case \"p\":\n document.getElementById(\"searchType\").innerHTML = \"Plex search\";\n break;\n case \"rt\":\n document.getElementById(\"searchType\").innerHTML = \"Rotten Tomatoes search\";\n break;\n default:\n document.getElementById(\"searchType\").innerHTML = \"Invalid search\";\n break;\n }\n}else {\n document.getElementById(\"searchType\").innerHTML = \"Google search\";\n }\n}\n\nfunction search(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n if (text[0] === '/') {\n if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n window.location = \"https://www.allmusic.com/search/all/\" + subtext;\n break;\n case \"d\":\n window.location = \"https://duckduckgo.com/?q=\" + subtext;\n break;\n case \"di\":\n window.location = \"https://www.discogs.com/search/?q=\" + subtext;\n break;\n case \"i\":\n window.location = \"https://www.imdb.com/find?q=\" + subtext;\n break;\n case \"m\":\n window.location = \"https://www.themoviedb.org/search?query=\" + subtext;\n break;\n case \"r\":\n window.location = \"https://www.reddit.com/search?q=\" + subtext;\n break;\n case \"q\":\n window.location = \"https://www.qwant.com/?q=\" + subtext;\n break;\n case \"so\":\n window.location = \"https://soundcloud.com/search?q=\" + subtext;\n break;\n case \"s\":\n window.location = \"https://open.spotify.com/search/results/\" + subtext;\n break;\n case \"t\":\n window.location = \"https://trakt.tv/search?query=\" + subtext;\n break;\n case \"tv\":\n window.location = \"https://www.thetvdb.com/search?query=\" + subtext;\n break;\n case \"y\":\n window.location = \"https://www.youtube.com/results?search_query=\" + subtext;\n break;\n case \"w\":\n window.location = \"https://en.wikipedia.org/w/index.php?search=\" + subtext;\n break;\n case \"p\":\n window.location = \"https://app.plex.tv/desktop/#!/search?query=\" + subtext;\n break;\n case \"rt\":\n window.location = \"https://www.rottentomatoes.com/search?search=\" + subtext;\n break;\n }\n } else {\n var option = text.substr(1);\n switch (option) {\n case \"d\":\n window.location = \"https://www.duckduckgo.com\";\n break;\n case \"y\":\n window.location = \"https://www.youtube.com\";\n break;\n case \"r\":\n window.location = \"https://reddit.com\";\n break;\n case \"s\":\n window.location = \"https://open.spotify.com\";\n break;\n }\n }\n } else if (validURL(text)) {\n if (containsProtocol(text))\n window.location = text;\n else\n window.location = \"https://\" + text;\n } else {\n window.location = \"https://www.google.com/search?q=\" + text;\n }\n}\n\n// Source: https://stackoverflow.com/questions/5717093/check-if-a-javascript-string-is-a-url\nfunction validURL(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/)?' + // protocol\n '((([a-z\\\\d]([a-z\\\\d-]*[a-z\\\\d])*)\\\\.)+[a-z]{2,}|' + // domain name\n '((\\\\d{1,3}\\\\.){3}\\\\d{1,3}))' + // OR ip (v4) address\n '(\\\\:\\\\d+)?(\\\\/[-a-z\\\\d%_.~+]*)*' + // port and path\n '(\\\\?[;&a-z\\\\d%_.~+=-]*)?' + // query string\n '(\\\\#[-a-z\\\\d_]*)?$', 'i'); // fragment locator\n return !!pattern.test(str);\n}\n\nfunction containsProtocol(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/){1}.*', 'i');\n return !!pattern.test(str);\n}\n\nString.prototype.replaceAll = function(search, replacement) {\n var target = this;\n return target.split(search).join(replacement);\n};"]},"metadata":{},"sourceType":"module"}
\ No newline at end of file
diff --git a/node_modules/.cache/babel-loader/c11291c835474430c2842561e9708eea.json b/node_modules/.cache/babel-loader/c11291c835474430c2842561e9708eea.json
new file mode 100644
index 00000000..d0763bdf
--- /dev/null
+++ b/node_modules/.cache/babel-loader/c11291c835474430c2842561e9708eea.json
@@ -0,0 +1 @@
+{"ast":null,"code":"var _jsxFileName = \"/home/seanedmunds/dev/home-page/src/index.js\",\n _s = $RefreshSig$();\n\nimport React from 'react';\nimport { useState, useEffect } from 'react';\nimport ReactDOM from 'react-dom'; //import { unstable_createPortal } from 'react-dom';\n\nimport './index.css';\nimport { jsxDEV as _jsxDEV } from \"react/jsx-dev-runtime\";\n\nfunction Homepage() {\n return /*#__PURE__*/_jsxDEV(\"main\", {\n id: \"container\",\n className: \"fade\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Search, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 11,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 10,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Header, {\n date: date(),\n greet: greet()\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 14,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 13,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Applications, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 20,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 19,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Bookmarks, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 23,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 22,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(ModalMenu, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 26,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 25,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(ModalInit, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 29,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 28,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 9,\n columnNumber: 5\n }, this);\n}\n\n_c = Homepage;\n\nfunction Search() {\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"search\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"abackground\",\n children: [/*#__PURE__*/_jsxDEV(\"input\", {\n name: \"keywords\",\n type: \"text\",\n className: \"keyword\",\n id: \"keywords\",\n size: \"50\",\n spellCheck: \"true\",\n placeholder: \"\"\n /*onFocus={this.placeholder = \"\"} onBlur={this.placeholder = ''}*/\n ,\n autoComplete: \"off\",\n autoFocus: true,\n onKeyUp: handleKeyPress\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 39,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n id: \"searchType\",\n className: \"Input-label\",\n children: \"Google search\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 40,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 38,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 37,\n columnNumber: 5\n }, this);\n}\n\n_c2 = Search;\n\nfunction Header(props) {\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"header\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n id: \"greeting_block\",\n children: /*#__PURE__*/_jsxDEV(\"h1\", {\n id: \"header_greet\",\n children: props.greet\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 50,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 49,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"date_block\",\n children: [/*#__PURE__*/_jsxDEV(\"h2\", {\n id: \"header_date\",\n children: props.date\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 53,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(Clock, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 54,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 52,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 48,\n columnNumber: 5\n }, this);\n}\n\n_c3 = Header;\n\nfunction Applications() {\n let appList = getApps();\n var items = [];\n\n for (var i = 0; i < appList.apps.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(App, {\n name: appList.apps[i].name,\n url: appList.apps[i].url,\n icon: appList.apps[i].icon,\n NSFW: appList.apps[i].NSFW\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 65,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"apps\",\n children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n children: \"Applications\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 76,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"apps_loop\",\n children: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 77,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 75,\n columnNumber: 5\n }, this);\n}\n\n_c4 = Applications;\n\nfunction App(props) {\n let classNameType = props.NSFW + \"-content\";\n let hrefUrl = \"https://\" + props.url;\n let iconName = \"mdi-\" + props.icon;\n return /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: hrefUrl,\n className: classNameType,\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_item\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_icon\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify icon\",\n \"data-icon\": iconName\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 93,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 92,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_text\",\n children: [/*#__PURE__*/_jsxDEV(\"span\", {\n id: \"app-name\",\n children: props.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 96,\n columnNumber: 13\n }, this), /*#__PURE__*/_jsxDEV(\"span\", {\n id: \"app-address\",\n children: props.url\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 97,\n columnNumber: 13\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 95,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 91,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 90,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 89,\n columnNumber: 5\n }, this);\n}\n\n_c5 = App;\n\nfunction Bookmarks() {\n let bookmarkList = getLinks();\n var items = [];\n\n for (var i = 0; i < bookmarkList.bookmarks.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(LinkGroups, {\n category: bookmarkList.bookmarks[i].category,\n links: bookmarkList.bookmarks[i].links\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 110,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"links\",\n children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n children: \"Bookmarks\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 119,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"links_loop\",\n children: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 120,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 118,\n columnNumber: 5\n }, this);\n}\n\n_c6 = Bookmarks;\n\nfunction LinkGroups(props) {\n var items = [];\n\n for (var i = 0; i < props.links.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(LinkItem, {\n link: props.links[i]\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 131,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"links_item\",\n children: [/*#__PURE__*/_jsxDEV(\"h4\", {\n children: props.category\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 139,\n columnNumber: 7\n }, this), items]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 138,\n columnNumber: 5\n }, this);\n}\n\n_c7 = LinkGroups;\n\nfunction LinkItem(props) {\n return /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: props.link.url,\n className: \"theme_color-border theme_text-select\",\n children: props.link.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 148,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 147,\n columnNumber: 5\n }, this);\n}\n\n_c8 = LinkItem;\n\nfunction ModalMenu() {\n var providers = getProviders();\n var items = [];\n\n for (var i = 0; i < providers.providers.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(Provider, {\n provider: providers.providers[i]\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 158,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"modal\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n children: [/*#__PURE__*/_jsxDEV(\"header\", {\n id: \"modal-header\",\n children: [/*#__PURE__*/_jsxDEV(\"h1\", {\n children: \"Options\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 168,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n href: \"#\",\n title: \"Close\",\n className: \"modal-close\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-close\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 170,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 169,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 167,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"h2\", {\n children: \"Color themes\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 174,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"modal-theme\",\n children: [/*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"blackboard\",\n className: \"theme-button theme-blackboard\",\n onClick: updateTheme,\n children: \"Blackboard\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 177,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"gazette\",\n className: \"theme-button theme-gazette\",\n children: \"Gazette\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 178,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"espresso\",\n className: \"theme-button theme-espresso\",\n children: \"Espresso\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 179,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cab\",\n className: \"theme-button theme-cab\",\n children: \"Cab\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 180,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cloud\",\n className: \"theme-button theme-cloud\",\n children: \"Cloud\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 181,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"lime\",\n className: \"theme-button theme-lime\",\n children: \"Lime\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 182,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"passion\",\n className: \"theme-button theme-passion\",\n children: \"Passion\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 183,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"blues\",\n className: \"theme-button theme-blues\",\n children: \"Blues\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 184,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"chalk\",\n className: \"theme-button theme-chalk\",\n children: \"Chalk\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 185,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"tron\",\n className: \"theme-button theme-tron\",\n children: \"Tron\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 186,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"paper\",\n className: \"theme-button theme-paper\",\n children: \"Paper\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 187,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cyberpunk\",\n className: \"theme-button theme-cyberpunk\",\n children: \"Cyberpunk\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 188,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"quadra\",\n className: \"theme-button theme-panam\",\n children: \"Quadra\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 189,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"panam\",\n className: \"theme-button theme-panam\",\n children: \"Panam\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 190,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"touch\",\n className: \"theme-button theme-touch\",\n children: \"Touch\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 191,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"peek\",\n className: \"theme-button theme-peek\",\n children: \"Peek\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 192,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 176,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"h2\", {\n children: \"Search options\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 196,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"providers\",\n children: /*#__PURE__*/_jsxDEV(\"table\", {\n children: /*#__PURE__*/_jsxDEV(\"tbody\", {\n children: [/*#__PURE__*/_jsxDEV(\"tr\", {\n children: [/*#__PURE__*/_jsxDEV(\"th\", {\n children: \"Website\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 201,\n columnNumber: 19\n }, this), /*#__PURE__*/_jsxDEV(\"th\", {\n children: \"Prefix\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 202,\n columnNumber: 19\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 200,\n columnNumber: 17\n }, this), items]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 199,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 198,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 197,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"header\", {\n id: \"modal-footer\",\n children: [/*#__PURE__*/_jsxDEV(\"a\", {\n href: \"https://github.com/jeroenpardon/\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-github-box\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 210,\n columnNumber: 54\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 210,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n href: \"https://materialdesignicons.com/\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-material-design\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 211,\n columnNumber: 54\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 211,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"sneaky\",\n children: [/*#__PURE__*/_jsxDEV(\"input\", {\n type: \"checkbox\",\n id: \"contenttype\",\n onChange: \"nsfw(this)\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 212,\n columnNumber: 35\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n for: \"contenttype\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-domino-mask\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 213,\n columnNumber: 36\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 213,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 212,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 209,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 166,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 165,\n columnNumber: 5\n }, this);\n}\n\n_c9 = ModalMenu;\n\nfunction Provider(props) {\n return /*#__PURE__*/_jsxDEV(\"tr\", {\n children: [/*#__PURE__*/_jsxDEV(\"td\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: props.provider.url,\n children: props.provider.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 223,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 223,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"td\", {\n children: props.provider.prefix\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 224,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 222,\n columnNumber: 5\n }, this);\n}\n\n_c10 = Provider;\n\nfunction ModalInit() {\n return /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"modal_init\",\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n className: \"btn\",\n href: \"#modal\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify icon\",\n \"data-icon\": \"mdi-xbox-controller-menu\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 233,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 232,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 231,\n columnNumber: 5\n }, this);\n}\n\n_c11 = ModalInit;\nReactDOM.render( /*#__PURE__*/_jsxDEV(Homepage, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 240,\n columnNumber: 3\n}, this), document.getElementById('root')); //Functions below this line are for calculating data for\n//other functions\n\nfunction date() {\n let currentDate = new Date();\n let dateOptions = {\n weekday: \"long\",\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\"\n };\n let date = currentDate.toLocaleDateString(\"en-GB\", dateOptions);\n return date;\n}\n\nfunction fixDigits(k) {\n if (k < 10) {\n return \"0\" + k;\n } else {\n return k;\n }\n}\n\nfunction greet() {\n let currentTime = new Date();\n let greet = Math.floor(currentTime.getHours() / 6);\n let easterEggChance = Math.floor(Math.random() * 100);\n\n let greetings = require('./messages.json');\n\n let timeBased = [];\n let easterEggs = [];\n\n for (var i = 0; i < greetings.messages.length; i++) {\n if (greetings.messages[i].easteregg === \"FALSE\") {\n timeBased = timeBased.concat(greetings.messages[i]);\n } else {\n easterEggs = easterEggs.concat(greetings.messages[i]);\n }\n }\n\n if (easterEggChance > 10) {\n return timeBased[greet].message;\n } else {\n let easterEggText = Math.floor(Math.random() * easterEggs.length);\n return easterEggs[easterEggText].message;\n }\n}\n\nfunction Clock() {\n _s();\n\n const [date, setDate] = useState(new Date());\n\n function refreshClock() {\n setDate(new Date());\n }\n\n useEffect(() => {\n const timerId = setInterval(refreshClock, 1000);\n return function cleanup() {\n clearInterval(timerId);\n };\n }, []);\n var hour = date.getHours();\n var minutes = date.getMinutes(); //var seconds = date.getSeconds();\n\n var midday = \"AM\";\n midday = hour >= 12 ? \"PM\" : \"AM\";\n hour = hour === 0 ? 12 : hour > 12 ? hour - 12 : hour;\n minutes = fixDigits(minutes); //seconds = fixDigits(seconds);\n\n let time = hour + \":\" + minutes + \" \" + midday;\n return /*#__PURE__*/_jsxDEV(\"h2\", {\n id: \"clock\",\n children: time\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 311,\n columnNumber: 5\n }, this);\n}\n\n_s(Clock, \"Gqi45WOZhU2c0BLYX0HoJeiR0fk=\");\n\n_c12 = Clock;\n\nfunction getApps() {\n let applications = require('./apps.json');\n\n return applications;\n}\n\nfunction getLinks() {\n let links = require('./links.json');\n\n return links;\n}\n\nfunction getProviders() {\n let providers = require('./providers.json');\n\n return providers;\n}\n\nfunction getThemes() {\n let themes = require('./themes.json');\n\n return themes;\n}\n\nfunction updateTheme(e) {\n var themes = getThemes().themes;\n console.log(e.target.children);\n}\n\nfunction handleKeyPress(e) {\n var sindex = 0;\n var cycle = false;\n var key = e.keyCode || e.which;\n var text = e.target.value.replaceAll(\"+\", \"%2B\");\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n\n if (key == 13) {\n // Search functions\n search(text);\n }\n\n if (key == 9) {\n // Tab Completion Functions\n e.preventDefault();\n e.stopPropagation();\n\n if (text[0] === ';') {\n switch (option) {\n case 't':\n var streamers = ['admiralbahroo', 'moonmoon_ow', 'witwix'];\n\n if (!subtext || cycle) {\n cycle = true;\n if (sindex > streamers.length - 1) sindex = 0;\n document.getElementById(\"keywords\").value = ';t ' + streamers[sindex++];\n return;\n }\n\n for (var streamer of streamers) {\n if (subtext === streamer.substr(0, subtext.length)) {\n document.getElementById(\"keywords\").value = ';t ' + streamer;\n return;\n }\n }\n\n break;\n }\n }\n }\n\n if (key == 32) {\n //Space to go to search\n updateLabel(text);\n }\n\n sindex = 0;\n cycle = false;\n updateLabel(text);\n}\n\nfunction updateLabel(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n\n if (text[0] === '/') {\n // if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n document.getElementById(\"searchType\").innerHTML = \"Allmusic search\";\n break;\n\n case \"d\":\n document.getElementById(\"searchType\").innerHTML = \"Duck Duck Go search\";\n break;\n\n case \"di\":\n document.getElementById(\"searchType\").innerHTML = \"Discogs search\";\n break;\n\n case \"i\":\n document.getElementById(\"searchType\").innerHTML = \"IMDB search\";\n break;\n\n case \"m\":\n document.getElementById(\"searchType\").innerHTML = \"TheMovieDB search\";\n break;\n\n case \"r\":\n document.getElementById(\"searchType\").innerHTML = \"Reddit search\";\n break;\n\n case \"q\":\n document.getElementById(\"searchType\").innerHTML = \"Qwant search\";\n break;\n\n case \"so\":\n document.getElementById(\"searchType\").innerHTML = \"Soundcloud search\";\n break;\n\n case \"s\":\n document.getElementById(\"searchType\").innerHTML = \"Spotify search\";\n break;\n\n case \"tv\":\n document.getElementById(\"searchType\").innerHTML = \"TheTVDB search\";\n break;\n\n case \"t\":\n document.getElementById(\"searchType\").innerHTML = \"Trakt search\";\n break;\n\n case \"y\":\n document.getElementById(\"searchType\").innerHTML = \"YouTube search\";\n break;\n\n case \"w\":\n document.getElementById(\"searchType\").innerHTML = \"Wikipedia search\";\n break;\n\n case \"p\":\n document.getElementById(\"searchType\").innerHTML = \"Plex search\";\n break;\n\n case \"rt\":\n document.getElementById(\"searchType\").innerHTML = \"Rotten Tomatoes search\";\n break;\n\n default:\n document.getElementById(\"searchType\").innerHTML = \"Invalid search\";\n break;\n }\n } else {\n document.getElementById(\"searchType\").innerHTML = \"Google search\";\n }\n}\n\nfunction search(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n\n if (text[0] === '/') {\n if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n window.location = \"https://www.allmusic.com/search/all/\" + subtext;\n break;\n\n case \"d\":\n window.location = \"https://duckduckgo.com/?q=\" + subtext;\n break;\n\n case \"di\":\n window.location = \"https://www.discogs.com/search/?q=\" + subtext;\n break;\n\n case \"i\":\n window.location = \"https://www.imdb.com/find?q=\" + subtext;\n break;\n\n case \"m\":\n window.location = \"https://www.themoviedb.org/search?query=\" + subtext;\n break;\n\n case \"r\":\n window.location = \"https://www.reddit.com/search?q=\" + subtext;\n break;\n\n case \"q\":\n window.location = \"https://www.qwant.com/?q=\" + subtext;\n break;\n\n case \"so\":\n window.location = \"https://soundcloud.com/search?q=\" + subtext;\n break;\n\n case \"s\":\n window.location = \"https://open.spotify.com/search/results/\" + subtext;\n break;\n\n case \"t\":\n window.location = \"https://trakt.tv/search?query=\" + subtext;\n break;\n\n case \"tv\":\n window.location = \"https://www.thetvdb.com/search?query=\" + subtext;\n break;\n\n case \"y\":\n window.location = \"https://www.youtube.com/results?search_query=\" + subtext;\n break;\n\n case \"w\":\n window.location = \"https://en.wikipedia.org/w/index.php?search=\" + subtext;\n break;\n\n case \"p\":\n window.location = \"https://app.plex.tv/desktop/#!/search?query=\" + subtext;\n break;\n\n case \"rt\":\n window.location = \"https://www.rottentomatoes.com/search?search=\" + subtext;\n break;\n }\n } else {\n var option = text.substr(1);\n\n switch (option) {\n case \"d\":\n window.location = \"https://www.duckduckgo.com\";\n break;\n\n case \"y\":\n window.location = \"https://www.youtube.com\";\n break;\n\n case \"r\":\n window.location = \"https://reddit.com\";\n break;\n\n case \"s\":\n window.location = \"https://open.spotify.com\";\n break;\n }\n }\n } else if (validURL(text)) {\n if (containsProtocol(text)) window.location = text;else window.location = \"https://\" + text;\n } else {\n window.location = \"https://www.google.com/search?q=\" + text;\n }\n} // Source: https://stackoverflow.com/questions/5717093/check-if-a-javascript-string-is-a-url\n\n\nfunction validURL(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/)?' + // protocol\n '((([a-z\\\\d]([a-z\\\\d-]*[a-z\\\\d])*)\\\\.)+[a-z]{2,}|' + // domain name\n '((\\\\d{1,3}\\\\.){3}\\\\d{1,3}))' + // OR ip (v4) address\n '(\\\\:\\\\d+)?(\\\\/[-a-z\\\\d%_.~+]*)*' + // port and path\n '(\\\\?[;&a-z\\\\d%_.~+=-]*)?' + // query string\n '(\\\\#[-a-z\\\\d_]*)?$', 'i'); // fragment locator\n\n return !!pattern.test(str);\n}\n\nfunction containsProtocol(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/){1}.*', 'i');\n return !!pattern.test(str);\n}\n\nString.prototype.replaceAll = function (search, replacement) {\n var target = this;\n return target.split(search).join(replacement);\n};\n\nvar _c, _c2, _c3, _c4, _c5, _c6, _c7, _c8, _c9, _c10, _c11, _c12;\n\n$RefreshReg$(_c, \"Homepage\");\n$RefreshReg$(_c2, \"Search\");\n$RefreshReg$(_c3, \"Header\");\n$RefreshReg$(_c4, \"Applications\");\n$RefreshReg$(_c5, \"App\");\n$RefreshReg$(_c6, \"Bookmarks\");\n$RefreshReg$(_c7, \"LinkGroups\");\n$RefreshReg$(_c8, \"LinkItem\");\n$RefreshReg$(_c9, \"ModalMenu\");\n$RefreshReg$(_c10, \"Provider\");\n$RefreshReg$(_c11, \"ModalInit\");\n$RefreshReg$(_c12, \"Clock\");","map":{"version":3,"sources":["/home/seanedmunds/dev/home-page/src/index.js"],"names":["React","useState","useEffect","ReactDOM","Homepage","date","greet","Search","handleKeyPress","Header","props","Applications","appList","getApps","items","i","apps","length","push","name","url","icon","NSFW","App","classNameType","hrefUrl","iconName","Bookmarks","bookmarkList","getLinks","bookmarks","category","links","LinkGroups","LinkItem","link","ModalMenu","providers","getProviders","updateTheme","Provider","provider","prefix","ModalInit","render","document","getElementById","currentDate","Date","dateOptions","weekday","year","month","day","toLocaleDateString","fixDigits","k","currentTime","Math","floor","getHours","easterEggChance","random","greetings","require","timeBased","easterEggs","messages","easteregg","concat","message","easterEggText","Clock","setDate","refreshClock","timerId","setInterval","cleanup","clearInterval","hour","minutes","getMinutes","midday","time","applications","getThemes","themes","e","console","log","target","children","sindex","cycle","key","keyCode","which","text","value","replaceAll","option","substr","indexOf","subtext","search","preventDefault","stopPropagation","streamers","streamer","updateLabel","innerHTML","window","location","validURL","containsProtocol","str","pattern","RegExp","test","String","prototype","replacement","split","join"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { useState, useEffect } from 'react';\nimport ReactDOM from 'react-dom';\n//import { unstable_createPortal } from 'react-dom';\nimport './index.css';\n\nfunction Homepage() {\n return (\n \n \n \n
\n \n \n
\n \n \n \n
\n \n \n
\n \n \n
\n \n );\n}\n\nfunction Search() {\n return (\n \n )\n}\n\nfunction Header(props) {\n return (\n \n );\n}\n\nfunction Applications() {\n let appList = getApps();\n var items = [];\n for (var i = 0; i < appList.apps.length; i++) {\n items.push(\n \n );\n }\n return (\n \n Applications
\n \n {items}\n
\n \n );\n}\n\nfunction App(props) {\n let classNameType = props.NSFW + \"-content\";\n let hrefUrl = \"https://\" + props.url;\n let iconName = \"mdi-\" + props.icon;\n return (\n \n );\n}\n\nfunction Bookmarks() {\n let bookmarkList = getLinks();\n var items = [];\n for (var i = 0; i < bookmarkList.bookmarks.length; i++) {\n items.push(\n \n );\n }\n return (\n \n Bookmarks
\n \n {items}\n
\n \n );\n}\n\nfunction LinkGroups(props) {\n var items = [];\n for (var i = 0; i < props.links.length; i++) {\n items.push(\n \n );\n }\n return (\n \n
{props.category}
\n {items}\n \n );\n}\n\nfunction LinkItem(props) {\n return (\n \n );\n}\n\nfunction ModalMenu() {\n var providers = getProviders();\n var items = [];\n for (var i = 0; i < providers.providers.length; i++) {\n items.push(\n \n );\n }\n return (\n \n \n \n\n
Color themes
\n\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n\n\n
Search options
\n
\n \n \n \n | Website | \n Prefix | \n
\n {items}\n \n
\n \n\n \n
\n \n );\n}\n\nfunction Provider(props) {\n return (\n \n | {props.provider.name} | \n {props.provider.prefix} | \n
\n );\n}\n\nfunction ModalInit() {\n return (\n \n );\n}\n\nReactDOM.render(\n ,\n document.getElementById('root')\n);\n\n//Functions below this line are for calculating data for\n//other functions\n\nfunction date() {\n let currentDate = new Date();\n let dateOptions = {\n weekday: \"long\",\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\"\n };\n let date = currentDate.toLocaleDateString(\"en-GB\", dateOptions);\n return date;\n}\nfunction fixDigits(k) {\n if (k < 10) {\n return \"0\" + k;\n }\n else {\n return k;\n }\n}\nfunction greet() {\n let currentTime = new Date();\n let greet = Math.floor(currentTime.getHours() / 6);\n let easterEggChance = Math.floor(Math.random() * 100);\n let greetings = require('./messages.json');\n let timeBased = [];\n let easterEggs = [];\n for (var i = 0; i < greetings.messages.length; i++) {\n if (greetings.messages[i].easteregg === \"FALSE\") {\n timeBased = timeBased.concat(greetings.messages[i]);\n } else {\n easterEggs = easterEggs.concat(greetings.messages[i]);\n }\n }\n if (easterEggChance > 10) {\n return timeBased[greet].message;\n } else {\n let easterEggText = Math.floor(Math.random() * easterEggs.length);\n return easterEggs[easterEggText].message;\n }\n}\nfunction Clock() {\n const [date, setDate] = useState(new Date());\n\n function refreshClock() {\n setDate(new Date());\n }\n useEffect(() => {\n const timerId = setInterval(refreshClock, 1000);\n return function cleanup() {\n clearInterval(timerId);\n };\n }, []);\n\n var hour = date.getHours();\n var minutes = date.getMinutes();\n //var seconds = date.getSeconds();\n var midday = \"AM\";\n midday = (hour >= 12) ? \"PM\" : \"AM\";\n hour = (hour === 0) ? 12 : ((hour > 12) ? (hour - 12) : hour);\n minutes = fixDigits(minutes);\n //seconds = fixDigits(seconds);\n let time = hour + \":\" + minutes + \" \" + midday;\n\n return (\n {time}
\n\n );\n}\nfunction getApps() {\n let applications = require('./apps.json');\n return applications;\n}\nfunction getLinks() {\n let links = require('./links.json');\n return links;\n}\nfunction getProviders() {\n let providers = require('./providers.json');\n return providers;\n}\nfunction getThemes() {\n let themes = require('./themes.json');\n return themes;\n}\n\nfunction updateTheme(e) {\n var themes = getThemes().themes;\n console.log(e.target.children);\n}\n\nfunction handleKeyPress(e) {\n var sindex = 0;\n var cycle = false;\n var key = e.keyCode || e.which;\n var text = e.target.value.replaceAll(\"+\", \"%2B\");\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n if (key == 13) { // Search functions\n search(text);\n }\n if (key == 9) { // Tab Completion Functions\n e.preventDefault();\n e.stopPropagation();\n if (text[0] === ';') {\n switch (option) {\n case 't':\n var streamers = ['admiralbahroo', 'moonmoon_ow', 'witwix'];\n if (!subtext || cycle) {\n cycle = true;\n if (sindex > streamers.length - 1) sindex = 0;\n document.getElementById(\"keywords\").value = ';t ' + streamers[sindex++];\n return;\n }\n for (var streamer of streamers) {\n if (subtext === streamer.substr(0, subtext.length)) {\n document.getElementById(\"keywords\").value = ';t ' + streamer;\n return;\n }\n }\n break;\n }\n }\n }\n if(key == 32){ //Space to go to search\nupdateLabel(text);\n }\n sindex = 0;\n cycle = false;\n updateLabel(text);\n}\n\nfunction updateLabel(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n if (text[0] === '/') {\n// if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n document.getElementById(\"searchType\").innerHTML = \"Allmusic search\";\n break;\n case \"d\":\n document.getElementById(\"searchType\").innerHTML = \"Duck Duck Go search\";\n break;\n case \"di\":\n document.getElementById(\"searchType\").innerHTML = \"Discogs search\";\n break;\n case \"i\":\n document.getElementById(\"searchType\").innerHTML = \"IMDB search\";\n break;\n case \"m\":\n document.getElementById(\"searchType\").innerHTML = \"TheMovieDB search\";\n break;\n case \"r\":\n document.getElementById(\"searchType\").innerHTML = \"Reddit search\";\n break;\n case \"q\":\n document.getElementById(\"searchType\").innerHTML = \"Qwant search\";\n break;\n case \"so\":\n document.getElementById(\"searchType\").innerHTML = \"Soundcloud search\";\n break;\n case \"s\":\n document.getElementById(\"searchType\").innerHTML = \"Spotify search\";\n break;\n case \"tv\":\n document.getElementById(\"searchType\").innerHTML = \"TheTVDB search\";\n break;\n case \"t\":\n document.getElementById(\"searchType\").innerHTML = \"Trakt search\";\n break;\n case \"y\":\n document.getElementById(\"searchType\").innerHTML = \"YouTube search\";\n break;\n case \"w\":\n document.getElementById(\"searchType\").innerHTML = \"Wikipedia search\";\n break;\n case \"p\":\n document.getElementById(\"searchType\").innerHTML = \"Plex search\";\n break;\n case \"rt\":\n document.getElementById(\"searchType\").innerHTML = \"Rotten Tomatoes search\";\n break;\n default:\n document.getElementById(\"searchType\").innerHTML = \"Invalid search\";\n break;\n }\n}else {\n document.getElementById(\"searchType\").innerHTML = \"Google search\";\n }\n}\n\nfunction search(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n if (text[0] === '/') {\n if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n window.location = \"https://www.allmusic.com/search/all/\" + subtext;\n break;\n case \"d\":\n window.location = \"https://duckduckgo.com/?q=\" + subtext;\n break;\n case \"di\":\n window.location = \"https://www.discogs.com/search/?q=\" + subtext;\n break;\n case \"i\":\n window.location = \"https://www.imdb.com/find?q=\" + subtext;\n break;\n case \"m\":\n window.location = \"https://www.themoviedb.org/search?query=\" + subtext;\n break;\n case \"r\":\n window.location = \"https://www.reddit.com/search?q=\" + subtext;\n break;\n case \"q\":\n window.location = \"https://www.qwant.com/?q=\" + subtext;\n break;\n case \"so\":\n window.location = \"https://soundcloud.com/search?q=\" + subtext;\n break;\n case \"s\":\n window.location = \"https://open.spotify.com/search/results/\" + subtext;\n break;\n case \"t\":\n window.location = \"https://trakt.tv/search?query=\" + subtext;\n break;\n case \"tv\":\n window.location = \"https://www.thetvdb.com/search?query=\" + subtext;\n break;\n case \"y\":\n window.location = \"https://www.youtube.com/results?search_query=\" + subtext;\n break;\n case \"w\":\n window.location = \"https://en.wikipedia.org/w/index.php?search=\" + subtext;\n break;\n case \"p\":\n window.location = \"https://app.plex.tv/desktop/#!/search?query=\" + subtext;\n break;\n case \"rt\":\n window.location = \"https://www.rottentomatoes.com/search?search=\" + subtext;\n break;\n }\n } else {\n var option = text.substr(1);\n switch (option) {\n case \"d\":\n window.location = \"https://www.duckduckgo.com\";\n break;\n case \"y\":\n window.location = \"https://www.youtube.com\";\n break;\n case \"r\":\n window.location = \"https://reddit.com\";\n break;\n case \"s\":\n window.location = \"https://open.spotify.com\";\n break;\n }\n }\n } else if (validURL(text)) {\n if (containsProtocol(text))\n window.location = text;\n else\n window.location = \"https://\" + text;\n } else {\n window.location = \"https://www.google.com/search?q=\" + text;\n }\n}\n\n// Source: https://stackoverflow.com/questions/5717093/check-if-a-javascript-string-is-a-url\nfunction validURL(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/)?' + // protocol\n '((([a-z\\\\d]([a-z\\\\d-]*[a-z\\\\d])*)\\\\.)+[a-z]{2,}|' + // domain name\n '((\\\\d{1,3}\\\\.){3}\\\\d{1,3}))' + // OR ip (v4) address\n '(\\\\:\\\\d+)?(\\\\/[-a-z\\\\d%_.~+]*)*' + // port and path\n '(\\\\?[;&a-z\\\\d%_.~+=-]*)?' + // query string\n '(\\\\#[-a-z\\\\d_]*)?$', 'i'); // fragment locator\n return !!pattern.test(str);\n}\n\nfunction containsProtocol(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/){1}.*', 'i');\n return !!pattern.test(str);\n}\n\nString.prototype.replaceAll = function(search, replacement) {\n var target = this;\n return target.split(search).join(replacement);\n};"]},"metadata":{},"sourceType":"module"}
\ No newline at end of file
diff --git a/node_modules/.cache/babel-loader/c1595879108fad7dc0b42f3ddda92614.json b/node_modules/.cache/babel-loader/c1595879108fad7dc0b42f3ddda92614.json
new file mode 100644
index 00000000..80c95576
--- /dev/null
+++ b/node_modules/.cache/babel-loader/c1595879108fad7dc0b42f3ddda92614.json
@@ -0,0 +1 @@
+{"ast":null,"code":"var _jsxFileName = \"/home/seanedmunds/dev/home-page/src/index.js\",\n _s = $RefreshSig$();\n\nimport React from 'react';\nimport { useState, useEffect } from 'react';\nimport ReactDOM from 'react-dom'; //import { unstable_createPortal } from 'react-dom';\n\nimport './index.css';\nimport { jsxDEV as _jsxDEV } from \"react/jsx-dev-runtime\";\n\nconst setValueFromLocalStorage = property => {\n let value = localStorage.getItem(property);\n setValue(property, value);\n};\n\nconst setValue = (property, value) => {\n if (value) {\n document.documentElement.style.setProperty(`--${property}`, value);\n const input = document.querySelector(`#${property}`);\n\n if (input) {\n value = value.replace('px', '');\n input.value = value;\n }\n }\n};\n\nconst setBoxCheckedFromLocalStorage = property => {\n let value = localStorage.getItem(property);\n setBoxChecked(property, value);\n};\n\nconst setBoxChecked = (property, value) => {\n if (value) {\n document.getElementById(property).checked = value;\n }\n};\n\nfunction Homepage() {\n setTheme();\n return /*#__PURE__*/_jsxDEV(\"main\", {\n id: \"container\",\n className: \"fade\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Search, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 39,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 38,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Header, {\n date: date(),\n greet: greet()\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 42,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 41,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Applications, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 48,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 47,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Bookmarks, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 51,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 50,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(ModalMenu, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 54,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 53,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(ModalInit, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 57,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 56,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 37,\n columnNumber: 5\n }, this);\n}\n\n_c = Homepage;\n\nfunction Search() {\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"search\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"abackground\",\n children: [/*#__PURE__*/_jsxDEV(\"input\", {\n name: \"keywords\",\n type: \"text\",\n className: \"keyword\",\n id: \"keywords\",\n size: \"50\",\n spellCheck: \"true\",\n placeholder: \"\"\n /*onFocus={this.placeholder = \"\"} onBlur={this.placeholder = ''}*/\n ,\n autoComplete: \"off\",\n autoFocus: true,\n onKeyUp: handleKeyPress\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 67,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n id: \"searchType\",\n className: \"Input-label\",\n children: \"Google search\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 68,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 66,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 65,\n columnNumber: 5\n }, this);\n}\n\n_c2 = Search;\n\nfunction Header(props) {\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"header\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n id: \"greeting_block\",\n children: /*#__PURE__*/_jsxDEV(\"h1\", {\n id: \"header_greet\",\n children: props.greet\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 78,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 77,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"date_block\",\n children: [/*#__PURE__*/_jsxDEV(\"h2\", {\n id: \"header_date\",\n children: props.date\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 81,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(Clock, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 82,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 80,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 76,\n columnNumber: 5\n }, this);\n}\n\n_c3 = Header;\n\nfunction Applications() {\n let appList = getApps();\n var items = [];\n\n for (var i = 0; i < appList.apps.length; i++) {\n var safe = appList.apps[i].NSFW;\n var NSFWEnabled = localStorage.getItem(\"contenttype\");\n\n if (safe === \"SAFE\") {\n items.push( /*#__PURE__*/_jsxDEV(App, {\n name: appList.apps[i].name,\n url: appList.apps[i].url,\n icon: appList.apps[i].icon,\n NSFW: appList.apps[i].NSFW\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 96,\n columnNumber: 9\n }, this));\n } else if (safe === \"NSFW\" && NSFWEnabled) {\n items.push( /*#__PURE__*/_jsxDEV(App, {\n name: appList.apps[i].name,\n url: appList.apps[i].url,\n icon: appList.apps[i].icon,\n NSFW: appList.apps[i].NSFW\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 106,\n columnNumber: 9\n }, this));\n } else {}\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"apps\",\n children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n children: \"Applications\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 121,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"apps_loop\",\n children: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 122,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 120,\n columnNumber: 5\n }, this);\n}\n\n_c4 = Applications;\n\nfunction App(props) {\n let classNameType = props.NSFW + \"-content\";\n let hrefUrl = \"https://\" + props.url;\n let iconName = \"mdi-\" + props.icon;\n return /*#__PURE__*/_jsxDEV(\"div\", {\n className: classNameType,\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: hrefUrl,\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_item\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_icon\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify icon\",\n \"data-icon\": iconName\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 139,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 138,\n columnNumber: 13\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_text\",\n children: [/*#__PURE__*/_jsxDEV(\"span\", {\n id: \"app-name\",\n children: props.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 142,\n columnNumber: 15\n }, this), /*#__PURE__*/_jsxDEV(\"span\", {\n id: \"app-address\",\n children: props.url\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 143,\n columnNumber: 15\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 141,\n columnNumber: 13\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 137,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 136,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 135,\n columnNumber: 7\n }, this);\n}\n\n_c5 = App;\n\nfunction Bookmarks() {\n let bookmarkList = getLinks();\n var items = [];\n\n for (var i = 0; i < bookmarkList.bookmarks.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(LinkGroups, {\n category: bookmarkList.bookmarks[i].category,\n links: bookmarkList.bookmarks[i].links\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 156,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"links\",\n children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n children: \"Bookmarks\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 165,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"links_loop\",\n children: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 166,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 164,\n columnNumber: 5\n }, this);\n}\n\n_c6 = Bookmarks;\n\nfunction LinkGroups(props) {\n var items = [];\n\n for (var i = 0; i < props.links.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(LinkItem, {\n link: props.links[i]\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 177,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"links_item\",\n children: [/*#__PURE__*/_jsxDEV(\"h4\", {\n children: props.category\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 185,\n columnNumber: 7\n }, this), items]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 184,\n columnNumber: 5\n }, this);\n}\n\n_c7 = LinkGroups;\n\nfunction LinkItem(props) {\n return /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: props.link.url,\n className: \"theme_color-border theme_text-select\",\n children: props.link.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 194,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 193,\n columnNumber: 5\n }, this);\n}\n\n_c8 = LinkItem;\n\nfunction ModalMenu() {\n var providers = getProviders();\n var items = [];\n\n for (var i = 0; i < providers.providers.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(Provider, {\n provider: providers.providers[i]\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 204,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"modal\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n children: [/*#__PURE__*/_jsxDEV(\"header\", {\n id: \"modal-header\",\n children: [/*#__PURE__*/_jsxDEV(\"h1\", {\n children: \"Options\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 214,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n href: \"#\",\n title: \"Close\",\n className: \"modal-close\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-close\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 216,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 215,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 213,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"h2\", {\n children: \"Color themes\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 220,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"modal-theme\",\n children: [/*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"blackboard\",\n className: \"theme-button theme-blackboard\",\n onClick: updateTheme,\n children: \"Blackboard\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 223,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"gazette\",\n className: \"theme-button theme-gazette\",\n onClick: updateTheme,\n children: \"Gazette\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 224,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"espresso\",\n className: \"theme-button theme-espresso\",\n onClick: updateTheme,\n children: \"Espresso\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 225,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cab\",\n className: \"theme-button theme-cab\",\n onClick: updateTheme,\n children: \"Cab\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 226,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cloud\",\n className: \"theme-button theme-cloud\",\n onClick: updateTheme,\n children: \"Cloud\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 227,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"lime\",\n className: \"theme-button theme-lime\",\n onClick: updateTheme,\n children: \"Lime\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 228,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"passion\",\n className: \"theme-button theme-passion\",\n onClick: updateTheme,\n children: \"Passion\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 229,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"blues\",\n className: \"theme-button theme-blues\",\n onClick: updateTheme,\n children: \"Blues\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 230,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"chalk\",\n className: \"theme-button theme-chalk\",\n onClick: updateTheme,\n children: \"Chalk\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 231,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"tron\",\n className: \"theme-button theme-tron\",\n onClick: updateTheme,\n children: \"Tron\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 232,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"paper\",\n className: \"theme-button theme-paper\",\n onClick: updateTheme,\n children: \"Paper\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 233,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cyberpunk\",\n className: \"theme-button theme-cyberpunk\",\n onClick: updateTheme,\n children: \"Cyberpunk\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 234,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"quadra\",\n className: \"theme-button theme-panam\",\n onClick: updateTheme,\n children: \"Quadra\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 235,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"panam\",\n className: \"theme-button theme-panam\",\n onClick: updateTheme,\n children: \"Panam\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 236,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"touch\",\n className: \"theme-button theme-touch\",\n onClick: updateTheme,\n children: \"Touch\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 237,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"peek\",\n className: \"theme-button theme-peek\",\n onClick: updateTheme,\n children: \"Peek\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 238,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 222,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"h2\", {\n children: \"Search options\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 242,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"providers\",\n children: /*#__PURE__*/_jsxDEV(\"table\", {\n children: /*#__PURE__*/_jsxDEV(\"tbody\", {\n children: [/*#__PURE__*/_jsxDEV(\"tr\", {\n children: [/*#__PURE__*/_jsxDEV(\"th\", {\n children: \"Website\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 247,\n columnNumber: 19\n }, this), /*#__PURE__*/_jsxDEV(\"th\", {\n children: \"Prefix\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 248,\n columnNumber: 19\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 246,\n columnNumber: 17\n }, this), items]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 245,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 244,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 243,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"header\", {\n id: \"modal-footer\",\n children: [/*#__PURE__*/_jsxDEV(\"a\", {\n href: \"https://github.com/jeroenpardon/\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-github-box\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 256,\n columnNumber: 54\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 256,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n href: \"https://materialdesignicons.com/\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-material-design\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 257,\n columnNumber: 54\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 257,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"sneaky\",\n children: [/*#__PURE__*/_jsxDEV(\"input\", {\n type: \"checkbox\",\n id: \"contenttype\",\n checked: setBoxCheckedFromLocalStorage,\n onChange: udpateDisplayedItems\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 258,\n columnNumber: 35\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n for: \"contenttype\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-domino-mask\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 259,\n columnNumber: 36\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 259,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 258,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 255,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 212,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 211,\n columnNumber: 5\n }, this);\n}\n\n_c9 = ModalMenu;\n\nfunction Provider(props) {\n return /*#__PURE__*/_jsxDEV(\"tr\", {\n children: [/*#__PURE__*/_jsxDEV(\"td\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: props.provider.url,\n children: props.provider.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 269,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 269,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"td\", {\n children: props.provider.prefix\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 270,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 268,\n columnNumber: 5\n }, this);\n}\n\n_c10 = Provider;\n\nfunction ModalInit() {\n setDisplayedItems();\n return /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"modal_init\",\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n className: \"btn\",\n href: \"#modal\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify icon\",\n \"data-icon\": \"mdi-xbox-controller-menu\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 280,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 279,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 278,\n columnNumber: 5\n }, this);\n}\n\n_c11 = ModalInit;\nReactDOM.render( /*#__PURE__*/_jsxDEV(Homepage, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 287,\n columnNumber: 3\n}, this), document.getElementById('root')); //Functions below this line are for calculating data for\n//other functions\n\nfunction date() {\n let currentDate = new Date();\n let dateOptions = {\n weekday: \"long\",\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\"\n };\n let date = currentDate.toLocaleDateString(\"en-GB\", dateOptions);\n return date;\n}\n\nfunction fixDigits(k) {\n if (k < 10) {\n return \"0\" + k;\n } else {\n return k;\n }\n}\n\nfunction greet() {\n let currentTime = new Date();\n let greet = Math.floor(currentTime.getHours() / 6);\n let easterEggChance = Math.floor(Math.random() * 100);\n\n let greetings = require('./messages.json');\n\n let timeBased = [];\n let easterEggs = [];\n\n for (var i = 0; i < greetings.messages.length; i++) {\n if (greetings.messages[i].easteregg === \"FALSE\") {\n timeBased = timeBased.concat(greetings.messages[i]);\n } else {\n easterEggs = easterEggs.concat(greetings.messages[i]);\n }\n }\n\n if (easterEggChance > 10) {\n return timeBased[greet].message;\n } else {\n let easterEggText = Math.floor(Math.random() * easterEggs.length);\n return easterEggs[easterEggText].message;\n }\n}\n\nfunction Clock() {\n _s();\n\n const [date, setDate] = useState(new Date());\n\n function refreshClock() {\n setDate(new Date());\n }\n\n useEffect(() => {\n const timerId = setInterval(refreshClock, 1000);\n return function cleanup() {\n clearInterval(timerId);\n };\n }, []);\n var hour = date.getHours();\n var minutes = date.getMinutes(); //var seconds = date.getSeconds();\n\n var midday = \"AM\";\n midday = hour >= 12 ? \"PM\" : \"AM\";\n hour = hour === 0 ? 12 : hour > 12 ? hour - 12 : hour;\n minutes = fixDigits(minutes); //seconds = fixDigits(seconds);\n\n let time = hour + \":\" + minutes + \" \" + midday;\n return /*#__PURE__*/_jsxDEV(\"h2\", {\n id: \"clock\",\n children: time\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 358,\n columnNumber: 5\n }, this);\n}\n\n_s(Clock, \"Gqi45WOZhU2c0BLYX0HoJeiR0fk=\");\n\n_c12 = Clock;\n\nfunction getApps() {\n let applications = require('./apps.json');\n\n return applications;\n}\n\nfunction getLinks() {\n let links = require('./links.json');\n\n return links;\n}\n\nfunction getProviders() {\n let providers = require('./providers.json');\n\n return providers;\n}\n\nfunction getThemes() {\n let themes = require('./themes.json');\n\n return themes;\n}\n\nfunction updateTheme(e) {\n var themes = getThemes();\n var themeName = e.target.innerHTML.toLowerCase();\n var index = themes.themes.findIndex(function (item, i) {\n return item.name === themeName;\n });\n localStorage.setItem(\"image-background\", themes.themes[index].imagebackground);\n localStorage.setItem(\"color-background\", themes.themes[index].colorbackground);\n localStorage.setItem(\"color-search-background\", themes.themes[index].colorserachbackground);\n localStorage.setItem(\"color-text-pri\", themes.themes[index].colortextpri);\n localStorage.setItem(\"color-text-acc\", themes.themes[index].colortextacc);\n localStorage.setItem(\"color-border\", themes.themes[index].colorborder); //document.documentElement.style.setProperty(prop, `var(--${themeName}${prop.substring(10)})`);\n\n setTheme();\n}\n\nfunction setTheme() {\n setValueFromLocalStorage('image-background');\n setValueFromLocalStorage('color-background');\n setValueFromLocalStorage('color-search-background');\n setValueFromLocalStorage('color-text-pri');\n setValueFromLocalStorage('color-text-acc');\n setValueFromLocalStorage('color-border');\n setValueFromLocalStorage('content-display');\n}\n\nfunction handleKeyPress(e) {\n var sindex = 0;\n var cycle = false;\n var key = e.keyCode || e.which;\n var text = e.target.value.replaceAll(\"+\", \"%2B\");\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n\n if (key == 13) {\n // Search functions\n search(text);\n }\n\n if (key == 9) {\n // Tab Completion Functions\n e.preventDefault();\n e.stopPropagation();\n\n if (text[0] === ';') {\n switch (option) {\n case 't':\n var streamers = ['admiralbahroo', 'moonmoon_ow', 'witwix'];\n\n if (!subtext || cycle) {\n cycle = true;\n if (sindex > streamers.length - 1) sindex = 0;\n document.getElementById(\"keywords\").value = ';t ' + streamers[sindex++];\n return;\n }\n\n for (var streamer of streamers) {\n if (subtext === streamer.substr(0, subtext.length)) {\n document.getElementById(\"keywords\").value = ';t ' + streamer;\n return;\n }\n }\n\n break;\n }\n }\n }\n\n if (key == 32) {\n //Space to go to search\n updateLabel(text);\n }\n\n sindex = 0;\n cycle = false;\n updateLabel(text);\n}\n\nfunction updateLabel(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n\n if (text[0] === '/') {\n // if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n document.getElementById(\"searchType\").innerHTML = \"Allmusic search\";\n break;\n\n case \"d\":\n document.getElementById(\"searchType\").innerHTML = \"Duck Duck Go search\";\n break;\n\n case \"di\":\n document.getElementById(\"searchType\").innerHTML = \"Discogs search\";\n break;\n\n case \"i\":\n document.getElementById(\"searchType\").innerHTML = \"IMDB search\";\n break;\n\n case \"m\":\n document.getElementById(\"searchType\").innerHTML = \"TheMovieDB search\";\n break;\n\n case \"r\":\n document.getElementById(\"searchType\").innerHTML = \"Reddit search\";\n break;\n\n case \"q\":\n document.getElementById(\"searchType\").innerHTML = \"Qwant search\";\n break;\n\n case \"so\":\n document.getElementById(\"searchType\").innerHTML = \"Soundcloud search\";\n break;\n\n case \"s\":\n document.getElementById(\"searchType\").innerHTML = \"Spotify search\";\n break;\n\n case \"tv\":\n document.getElementById(\"searchType\").innerHTML = \"TheTVDB search\";\n break;\n\n case \"t\":\n document.getElementById(\"searchType\").innerHTML = \"Trakt search\";\n break;\n\n case \"y\":\n document.getElementById(\"searchType\").innerHTML = \"YouTube search\";\n break;\n\n case \"w\":\n document.getElementById(\"searchType\").innerHTML = \"Wikipedia search\";\n break;\n\n case \"p\":\n document.getElementById(\"searchType\").innerHTML = \"Plex search\";\n break;\n\n case \"rt\":\n document.getElementById(\"searchType\").innerHTML = \"Rotten Tomatoes search\";\n break;\n\n default:\n document.getElementById(\"searchType\").innerHTML = \"Invalid search\";\n break;\n }\n } else {\n document.getElementById(\"searchType\").innerHTML = \"Google search\";\n }\n}\n\nfunction search(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n\n if (text[0] === '/') {\n if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n window.location = \"https://www.allmusic.com/search/all/\" + subtext;\n break;\n\n case \"d\":\n window.location = \"https://duckduckgo.com/?q=\" + subtext;\n break;\n\n case \"di\":\n window.location = \"https://www.discogs.com/search/?q=\" + subtext;\n break;\n\n case \"i\":\n window.location = \"https://www.imdb.com/find?q=\" + subtext;\n break;\n\n case \"m\":\n window.location = \"https://www.themoviedb.org/search?query=\" + subtext;\n break;\n\n case \"r\":\n window.location = \"https://www.reddit.com/search?q=\" + subtext;\n break;\n\n case \"q\":\n window.location = \"https://www.qwant.com/?q=\" + subtext;\n break;\n\n case \"so\":\n window.location = \"https://soundcloud.com/search?q=\" + subtext;\n break;\n\n case \"s\":\n window.location = \"https://open.spotify.com/search/results/\" + subtext;\n break;\n\n case \"t\":\n window.location = \"https://trakt.tv/search?query=\" + subtext;\n break;\n\n case \"tv\":\n window.location = \"https://www.thetvdb.com/search?query=\" + subtext;\n break;\n\n case \"y\":\n window.location = \"https://www.youtube.com/results?search_query=\" + subtext;\n break;\n\n case \"w\":\n window.location = \"https://en.wikipedia.org/w/index.php?search=\" + subtext;\n break;\n\n case \"p\":\n window.location = \"https://app.plex.tv/desktop/#!/search?query=\" + subtext;\n break;\n\n case \"rt\":\n window.location = \"https://www.rottentomatoes.com/search?search=\" + subtext;\n break;\n }\n } else {\n var option = text.substr(1);\n\n switch (option) {\n case \"d\":\n window.location = \"https://www.duckduckgo.com\";\n break;\n\n case \"y\":\n window.location = \"https://www.youtube.com\";\n break;\n\n case \"r\":\n window.location = \"https://reddit.com\";\n break;\n\n case \"s\":\n window.location = \"https://open.spotify.com\";\n break;\n }\n }\n } else if (validURL(text)) {\n if (containsProtocol(text)) window.location = text;else window.location = \"https://\" + text;\n } else {\n window.location = \"https://www.google.com/search?q=\" + text;\n }\n}\n\nfunction validURL(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/)?' + // protocol\n '((([a-z\\\\d]([a-z\\\\d-]*[a-z\\\\d])*)\\\\.)+[a-z]{2,}|' + // domain name\n '((\\\\d{1,3}\\\\.){3}\\\\d{1,3}))' + // OR ip (v4) address\n '(\\\\:\\\\d+)?(\\\\/[-a-z\\\\d%_.~+]*)*' + // port and path\n '(\\\\?[;&a-z\\\\d%_.~+=-]*)?' + // query string\n '(\\\\#[-a-z\\\\d_]*)?$', 'i'); // fragment locator\n\n return !!pattern.test(str);\n}\n\nfunction containsProtocol(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/){1}.*', 'i');\n return !!pattern.test(str);\n}\n\nString.prototype.replaceAll = function (search, replacement) {\n var target = this;\n return target.split(search).join(replacement);\n};\n\nfunction udpateDisplayedItems(e) {\n console.log(e);\n localStorage.setItem('contenttype', e.target.checked);\n\n if (e.target.checked) {\n localStorage.setItem('content-display', 'none');\n } else {\n localStorage.setItem('content-display', 'block');\n }\n\n setDisplayedItems();\n}\n\nfunction setDisplayedItems() {\n setValueFromLocalStorage('contenttype');\n setValueFromLocalStorage('content-display');\n}\n\nvar _c, _c2, _c3, _c4, _c5, _c6, _c7, _c8, _c9, _c10, _c11, _c12;\n\n$RefreshReg$(_c, \"Homepage\");\n$RefreshReg$(_c2, \"Search\");\n$RefreshReg$(_c3, \"Header\");\n$RefreshReg$(_c4, \"Applications\");\n$RefreshReg$(_c5, \"App\");\n$RefreshReg$(_c6, \"Bookmarks\");\n$RefreshReg$(_c7, \"LinkGroups\");\n$RefreshReg$(_c8, \"LinkItem\");\n$RefreshReg$(_c9, \"ModalMenu\");\n$RefreshReg$(_c10, \"Provider\");\n$RefreshReg$(_c11, \"ModalInit\");\n$RefreshReg$(_c12, \"Clock\");","map":{"version":3,"sources":["/home/seanedmunds/dev/home-page/src/index.js"],"names":["React","useState","useEffect","ReactDOM","setValueFromLocalStorage","property","value","localStorage","getItem","setValue","document","documentElement","style","setProperty","input","querySelector","replace","setBoxCheckedFromLocalStorage","setBoxChecked","getElementById","checked","Homepage","setTheme","date","greet","Search","handleKeyPress","Header","props","Applications","appList","getApps","items","i","apps","length","safe","NSFW","NSFWEnabled","push","name","url","icon","App","classNameType","hrefUrl","iconName","Bookmarks","bookmarkList","getLinks","bookmarks","category","links","LinkGroups","LinkItem","link","ModalMenu","providers","getProviders","updateTheme","udpateDisplayedItems","Provider","provider","prefix","ModalInit","setDisplayedItems","render","currentDate","Date","dateOptions","weekday","year","month","day","toLocaleDateString","fixDigits","k","currentTime","Math","floor","getHours","easterEggChance","random","greetings","require","timeBased","easterEggs","messages","easteregg","concat","message","easterEggText","Clock","setDate","refreshClock","timerId","setInterval","cleanup","clearInterval","hour","minutes","getMinutes","midday","time","applications","getThemes","themes","e","themeName","target","innerHTML","toLowerCase","index","findIndex","item","setItem","imagebackground","colorbackground","colorserachbackground","colortextpri","colortextacc","colorborder","sindex","cycle","key","keyCode","which","text","replaceAll","option","substr","indexOf","subtext","search","preventDefault","stopPropagation","streamers","streamer","updateLabel","window","location","validURL","containsProtocol","str","pattern","RegExp","test","String","prototype","replacement","split","join","console","log"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { useState, useEffect } from 'react';\nimport ReactDOM from 'react-dom';\n//import { unstable_createPortal } from 'react-dom';\nimport './index.css';\n\nconst setValueFromLocalStorage = property => {\n let value = localStorage.getItem(property);\n setValue(property, value);\n};\nconst setValue = (property, value) => {\n if (value) {\n document.documentElement.style.setProperty(`--${property}`, value);\n\n const input = document.querySelector(`#${property}`);\n if (input) {\n value = value.replace('px', '');\n input.value = value;\n }\n }\n};\n\nconst setBoxCheckedFromLocalStorage = property => {\n let value = localStorage.getItem(property);\n setBoxChecked(property, value);\n};\nconst setBoxChecked = (property, value) => {\n if (value) {\n document.getElementById(property).checked = value;\n }\n}\n\nfunction Homepage() {\n setTheme();\n \n return (\n \n \n \n
\n \n \n
\n \n \n \n
\n \n \n
\n \n \n
\n \n );\n}\n\nfunction Search() {\n return (\n \n )\n}\n\nfunction Header(props) {\n return (\n \n );\n}\n\nfunction Applications() {\n let appList = getApps();\n var items = [];\n for (var i = 0; i < appList.apps.length; i++) {\n var safe = appList.apps[i].NSFW;\n var NSFWEnabled = localStorage.getItem(\"contenttype\");\n if (safe === \"SAFE\") {\n items.push(\n \n );\n } else if (safe === \"NSFW\" && NSFWEnabled) {\n items.push(\n \n );\n } else {\n \n }\n \n }\n return (\n \n Applications
\n \n {items}\n
\n \n );\n}\n\nfunction App(props) {\n \n let classNameType = props.NSFW + \"-content\";\n let hrefUrl = \"https://\" + props.url;\n let iconName = \"mdi-\" + props.icon;\n return (\n \n );\n}\n\nfunction Bookmarks() {\n let bookmarkList = getLinks();\n var items = [];\n for (var i = 0; i < bookmarkList.bookmarks.length; i++) {\n items.push(\n \n );\n }\n return (\n \n Bookmarks
\n \n {items}\n
\n \n );\n}\n\nfunction LinkGroups(props) {\n var items = [];\n for (var i = 0; i < props.links.length; i++) {\n items.push(\n \n );\n }\n return (\n \n
{props.category}
\n {items}\n \n );\n}\n\nfunction LinkItem(props) {\n return (\n \n );\n}\n\nfunction ModalMenu() {\n var providers = getProviders();\n var items = [];\n for (var i = 0; i < providers.providers.length; i++) {\n items.push(\n \n );\n }\n return (\n \n \n \n\n
Color themes
\n\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n\n\n
Search options
\n
\n \n \n \n | Website | \n Prefix | \n
\n {items}\n \n
\n \n\n \n
\n \n );\n}\n\nfunction Provider(props) {\n return (\n \n | {props.provider.name} | \n {props.provider.prefix} | \n
\n );\n}\n\nfunction ModalInit() {\n setDisplayedItems();\n return (\n \n );\n}\n\nReactDOM.render(\n ,\n document.getElementById('root')\n);\n\n//Functions below this line are for calculating data for\n//other functions\n\nfunction date() {\n let currentDate = new Date();\n let dateOptions = {\n weekday: \"long\",\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\"\n };\n let date = currentDate.toLocaleDateString(\"en-GB\", dateOptions);\n return date;\n}\nfunction fixDigits(k) {\n if (k < 10) {\n return \"0\" + k;\n }\n else {\n return k;\n }\n}\nfunction greet() {\n let currentTime = new Date();\n let greet = Math.floor(currentTime.getHours() / 6);\n let easterEggChance = Math.floor(Math.random() * 100);\n let greetings = require('./messages.json');\n let timeBased = [];\n let easterEggs = [];\n for (var i = 0; i < greetings.messages.length; i++) {\n if (greetings.messages[i].easteregg === \"FALSE\") {\n timeBased = timeBased.concat(greetings.messages[i]);\n } else {\n easterEggs = easterEggs.concat(greetings.messages[i]);\n }\n }\n if (easterEggChance > 10) {\n return timeBased[greet].message;\n } else {\n let easterEggText = Math.floor(Math.random() * easterEggs.length);\n return easterEggs[easterEggText].message;\n }\n}\nfunction Clock() {\n const [date, setDate] = useState(new Date());\n\n function refreshClock() {\n setDate(new Date());\n }\n useEffect(() => {\n const timerId = setInterval(refreshClock, 1000);\n return function cleanup() {\n clearInterval(timerId);\n };\n }, []);\n\n var hour = date.getHours();\n var minutes = date.getMinutes();\n //var seconds = date.getSeconds();\n var midday = \"AM\";\n midday = (hour >= 12) ? \"PM\" : \"AM\";\n hour = (hour === 0) ? 12 : ((hour > 12) ? (hour - 12) : hour);\n minutes = fixDigits(minutes);\n //seconds = fixDigits(seconds);\n let time = hour + \":\" + minutes + \" \" + midday;\n\n return (\n {time}
\n\n );\n}\nfunction getApps() {\n let applications = require('./apps.json');\n return applications;\n}\nfunction getLinks() {\n let links = require('./links.json');\n return links;\n}\nfunction getProviders() {\n let providers = require('./providers.json');\n return providers;\n}\nfunction getThemes() {\n let themes = require('./themes.json');\n return themes;\n}\nfunction updateTheme(e) {\n var themes = getThemes();\n var themeName = e.target.innerHTML.toLowerCase();\n var index = themes.themes.findIndex(function(item, i){\n return item.name === themeName\n });\n localStorage.setItem(\"image-background\", themes.themes[index].imagebackground);\n localStorage.setItem(\"color-background\", themes.themes[index].colorbackground);\n localStorage.setItem(\"color-search-background\", themes.themes[index].colorserachbackground);\n localStorage.setItem(\"color-text-pri\",themes.themes[index].colortextpri);\n localStorage.setItem(\"color-text-acc\", themes.themes[index].colortextacc);\n localStorage.setItem(\"color-border\", themes.themes[index].colorborder);\n \n //document.documentElement.style.setProperty(prop, `var(--${themeName}${prop.substring(10)})`);\n setTheme();\n}\nfunction setTheme() {\n setValueFromLocalStorage('image-background');\n setValueFromLocalStorage('color-background');\n setValueFromLocalStorage('color-search-background');\n setValueFromLocalStorage('color-text-pri');\n setValueFromLocalStorage('color-text-acc');\n setValueFromLocalStorage('color-border');\n setValueFromLocalStorage('content-display');\n}\nfunction handleKeyPress(e) {\n var sindex = 0;\n var cycle = false;\n var key = e.keyCode || e.which;\n var text = e.target.value.replaceAll(\"+\", \"%2B\");\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n if (key == 13) { // Search functions\n search(text);\n }\n if (key == 9) { // Tab Completion Functions\n e.preventDefault();\n e.stopPropagation();\n if (text[0] === ';') {\n switch (option) {\n case 't':\n var streamers = ['admiralbahroo', 'moonmoon_ow', 'witwix'];\n if (!subtext || cycle) {\n cycle = true;\n if (sindex > streamers.length - 1) sindex = 0;\n document.getElementById(\"keywords\").value = ';t ' + streamers[sindex++];\n return;\n }\n for (var streamer of streamers) {\n if (subtext === streamer.substr(0, subtext.length)) {\n document.getElementById(\"keywords\").value = ';t ' + streamer;\n return;\n }\n }\n break;\n }\n }\n }\n if(key == 32){ //Space to go to search\nupdateLabel(text);\n }\n sindex = 0;\n cycle = false;\n updateLabel(text);\n}\nfunction updateLabel(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n if (text[0] === '/') {\n// if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n document.getElementById(\"searchType\").innerHTML = \"Allmusic search\";\n break;\n case \"d\":\n document.getElementById(\"searchType\").innerHTML = \"Duck Duck Go search\";\n break;\n case \"di\":\n document.getElementById(\"searchType\").innerHTML = \"Discogs search\";\n break;\n case \"i\":\n document.getElementById(\"searchType\").innerHTML = \"IMDB search\";\n break;\n case \"m\":\n document.getElementById(\"searchType\").innerHTML = \"TheMovieDB search\";\n break;\n case \"r\":\n document.getElementById(\"searchType\").innerHTML = \"Reddit search\";\n break;\n case \"q\":\n document.getElementById(\"searchType\").innerHTML = \"Qwant search\";\n break;\n case \"so\":\n document.getElementById(\"searchType\").innerHTML = \"Soundcloud search\";\n break;\n case \"s\":\n document.getElementById(\"searchType\").innerHTML = \"Spotify search\";\n break;\n case \"tv\":\n document.getElementById(\"searchType\").innerHTML = \"TheTVDB search\";\n break;\n case \"t\":\n document.getElementById(\"searchType\").innerHTML = \"Trakt search\";\n break;\n case \"y\":\n document.getElementById(\"searchType\").innerHTML = \"YouTube search\";\n break;\n case \"w\":\n document.getElementById(\"searchType\").innerHTML = \"Wikipedia search\";\n break;\n case \"p\":\n document.getElementById(\"searchType\").innerHTML = \"Plex search\";\n break;\n case \"rt\":\n document.getElementById(\"searchType\").innerHTML = \"Rotten Tomatoes search\";\n break;\n default:\n document.getElementById(\"searchType\").innerHTML = \"Invalid search\";\n break;\n }\n}else {\n document.getElementById(\"searchType\").innerHTML = \"Google search\";\n }\n}\nfunction search(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n if (text[0] === '/') {\n if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n window.location = \"https://www.allmusic.com/search/all/\" + subtext;\n break;\n case \"d\":\n window.location = \"https://duckduckgo.com/?q=\" + subtext;\n break;\n case \"di\":\n window.location = \"https://www.discogs.com/search/?q=\" + subtext;\n break;\n case \"i\":\n window.location = \"https://www.imdb.com/find?q=\" + subtext;\n break;\n case \"m\":\n window.location = \"https://www.themoviedb.org/search?query=\" + subtext;\n break;\n case \"r\":\n window.location = \"https://www.reddit.com/search?q=\" + subtext;\n break;\n case \"q\":\n window.location = \"https://www.qwant.com/?q=\" + subtext;\n break;\n case \"so\":\n window.location = \"https://soundcloud.com/search?q=\" + subtext;\n break;\n case \"s\":\n window.location = \"https://open.spotify.com/search/results/\" + subtext;\n break;\n case \"t\":\n window.location = \"https://trakt.tv/search?query=\" + subtext;\n break;\n case \"tv\":\n window.location = \"https://www.thetvdb.com/search?query=\" + subtext;\n break;\n case \"y\":\n window.location = \"https://www.youtube.com/results?search_query=\" + subtext;\n break;\n case \"w\":\n window.location = \"https://en.wikipedia.org/w/index.php?search=\" + subtext;\n break;\n case \"p\":\n window.location = \"https://app.plex.tv/desktop/#!/search?query=\" + subtext;\n break;\n case \"rt\":\n window.location = \"https://www.rottentomatoes.com/search?search=\" + subtext;\n break;\n }\n } else {\n var option = text.substr(1);\n switch (option) {\n case \"d\":\n window.location = \"https://www.duckduckgo.com\";\n break;\n case \"y\":\n window.location = \"https://www.youtube.com\";\n break;\n case \"r\":\n window.location = \"https://reddit.com\";\n break;\n case \"s\":\n window.location = \"https://open.spotify.com\";\n break;\n }\n }\n } else if (validURL(text)) {\n if (containsProtocol(text))\n window.location = text;\n else\n window.location = \"https://\" + text;\n } else {\n window.location = \"https://www.google.com/search?q=\" + text;\n }\n}\nfunction validURL(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/)?' + // protocol\n '((([a-z\\\\d]([a-z\\\\d-]*[a-z\\\\d])*)\\\\.)+[a-z]{2,}|' + // domain name\n '((\\\\d{1,3}\\\\.){3}\\\\d{1,3}))' + // OR ip (v4) address\n '(\\\\:\\\\d+)?(\\\\/[-a-z\\\\d%_.~+]*)*' + // port and path\n '(\\\\?[;&a-z\\\\d%_.~+=-]*)?' + // query string\n '(\\\\#[-a-z\\\\d_]*)?$', 'i'); // fragment locator\n return !!pattern.test(str);\n}\nfunction containsProtocol(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/){1}.*', 'i');\n return !!pattern.test(str);\n}\nString.prototype.replaceAll = function(search, replacement) {\n var target = this;\n return target.split(search).join(replacement);\n};\nfunction udpateDisplayedItems(e) {\n console.log(e);\n localStorage.setItem('contenttype', e.target.checked);\n if (e.target.checked) {\n localStorage.setItem('content-display', 'none');\n } else {\n localStorage.setItem('content-display', 'block');\n }\n setDisplayedItems();\n}\nfunction setDisplayedItems() {\n setValueFromLocalStorage('contenttype');\n setValueFromLocalStorage('content-display');\n}"]},"metadata":{},"sourceType":"module"}
\ No newline at end of file
diff --git a/node_modules/.cache/babel-loader/c3381c55bc8cfcebec18988329a90f5a.json b/node_modules/.cache/babel-loader/c3381c55bc8cfcebec18988329a90f5a.json
new file mode 100644
index 00000000..f497b9a4
--- /dev/null
+++ b/node_modules/.cache/babel-loader/c3381c55bc8cfcebec18988329a90f5a.json
@@ -0,0 +1 @@
+{"ast":null,"code":"var _jsxFileName = \"/home/seanedmunds/dev/home-page/src/index.js\",\n _s = $RefreshSig$();\n\nimport React from 'react';\nimport { useState, useEffect } from 'react';\nimport ReactDOM from 'react-dom'; //import { unstable_createPortal } from 'react-dom';\n\nimport './index.css';\nimport { jsxDEV as _jsxDEV } from \"react/jsx-dev-runtime\";\n\nconst setValueFromLocalStorage = property => {\n let value = localStorage.getItem(property);\n setValue(property, value);\n};\n\nconst setValue = (property, value) => {\n if (value) {\n document.documentElement.style.setProperty(`--${property}`, value);\n const input = document.querySelector(`#${property}`);\n\n if (input) {\n value = value.replace('px', '');\n input.value = value;\n }\n }\n};\n\nfunction Homepage() {\n setTheme();\n return /*#__PURE__*/_jsxDEV(\"main\", {\n id: \"container\",\n className: \"fade\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Search, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 28,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 27,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Header, {\n date: date(),\n greet: greet()\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 31,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 30,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Applications, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 37,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 36,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Bookmarks, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 40,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 39,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(ModalMenu, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 43,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 42,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(ModalInit, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 46,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 45,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 26,\n columnNumber: 5\n }, this);\n}\n\n_c = Homepage;\n\nfunction Search() {\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"search\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"abackground\",\n children: [/*#__PURE__*/_jsxDEV(\"input\", {\n name: \"keywords\",\n type: \"text\",\n className: \"keyword\",\n id: \"keywords\",\n size: \"50\",\n spellCheck: \"true\",\n placeholder: \"\"\n /*onFocus={this.placeholder = \"\"} onBlur={this.placeholder = ''}*/\n ,\n autoComplete: \"off\",\n autoFocus: true,\n onKeyUp: handleKeyPress\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 56,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n id: \"searchType\",\n className: \"Input-label\",\n children: \"Google search\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 57,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 55,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 54,\n columnNumber: 5\n }, this);\n}\n\n_c2 = Search;\n\nfunction Header(props) {\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"header\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n id: \"greeting_block\",\n children: /*#__PURE__*/_jsxDEV(\"h1\", {\n id: \"header_greet\",\n children: props.greet\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 67,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 66,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"date_block\",\n children: [/*#__PURE__*/_jsxDEV(\"h2\", {\n id: \"header_date\",\n children: props.date\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 70,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(Clock, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 71,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 69,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 65,\n columnNumber: 5\n }, this);\n}\n\n_c3 = Header;\n\nfunction Applications() {\n let appList = getApps();\n var items = [];\n\n for (var i = 0; i < appList.apps.length; i++) {\n var safe = appList.apps[i].NSFW;\n var NSFWEnabled = localStorage.getItem(\"contenttype\");\n console.log(safe);\n\n if (safe === \"SAFE\") {\n items.push( /*#__PURE__*/_jsxDEV(App, {\n name: appList.apps[i].name,\n url: appList.apps[i].url,\n icon: appList.apps[i].icon,\n NSFW: appList.apps[i].NSFW\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 86,\n columnNumber: 9\n }, this));\n } else if (safe === \"NSFW\" && NSFWEnabled) {\n items.push( /*#__PURE__*/_jsxDEV(App, {\n name: appList.apps[i].name,\n url: appList.apps[i].url,\n icon: appList.apps[i].icon,\n NSFW: appList.apps[i].NSFW\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 96,\n columnNumber: 9\n }, this));\n } else {\n console.log(NSFWEnabled);\n }\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"apps\",\n children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n children: \"Applications\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 111,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"apps_loop\",\n children: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 112,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 110,\n columnNumber: 5\n }, this);\n}\n\n_c4 = Applications;\n\nfunction App(props) {\n let classNameType = props.NSFW + \"-content\";\n let hrefUrl = \"https://\" + props.url;\n let iconName = \"mdi-\" + props.icon;\n return /*#__PURE__*/_jsxDEV(\"div\", {\n className: classNameType,\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: hrefUrl,\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_item\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_icon\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify icon\",\n \"data-icon\": iconName\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 129,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 128,\n columnNumber: 13\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_text\",\n children: [/*#__PURE__*/_jsxDEV(\"span\", {\n id: \"app-name\",\n children: props.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 132,\n columnNumber: 15\n }, this), /*#__PURE__*/_jsxDEV(\"span\", {\n id: \"app-address\",\n children: props.url\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 133,\n columnNumber: 15\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 131,\n columnNumber: 13\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 127,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 126,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 125,\n columnNumber: 7\n }, this);\n}\n\n_c5 = App;\n\nfunction Bookmarks() {\n let bookmarkList = getLinks();\n var items = [];\n\n for (var i = 0; i < bookmarkList.bookmarks.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(LinkGroups, {\n category: bookmarkList.bookmarks[i].category,\n links: bookmarkList.bookmarks[i].links\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 146,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"links\",\n children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n children: \"Bookmarks\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 155,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"links_loop\",\n children: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 156,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 154,\n columnNumber: 5\n }, this);\n}\n\n_c6 = Bookmarks;\n\nfunction LinkGroups(props) {\n var items = [];\n\n for (var i = 0; i < props.links.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(LinkItem, {\n link: props.links[i]\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 167,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"links_item\",\n children: [/*#__PURE__*/_jsxDEV(\"h4\", {\n children: props.category\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 175,\n columnNumber: 7\n }, this), items]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 174,\n columnNumber: 5\n }, this);\n}\n\n_c7 = LinkGroups;\n\nfunction LinkItem(props) {\n return /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: props.link.url,\n className: \"theme_color-border theme_text-select\",\n children: props.link.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 184,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 183,\n columnNumber: 5\n }, this);\n}\n\n_c8 = LinkItem;\n\nfunction ModalMenu() {\n var providers = getProviders();\n var items = [];\n\n for (var i = 0; i < providers.providers.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(Provider, {\n provider: providers.providers[i]\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 194,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"modal\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n children: [/*#__PURE__*/_jsxDEV(\"header\", {\n id: \"modal-header\",\n children: [/*#__PURE__*/_jsxDEV(\"h1\", {\n children: \"Options\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 204,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n href: \"#\",\n title: \"Close\",\n className: \"modal-close\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-close\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 206,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 205,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 203,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"h2\", {\n children: \"Color themes\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 210,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"modal-theme\",\n children: [/*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"blackboard\",\n className: \"theme-button theme-blackboard\",\n onClick: updateTheme,\n children: \"Blackboard\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 213,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"gazette\",\n className: \"theme-button theme-gazette\",\n onClick: updateTheme,\n children: \"Gazette\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 214,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"espresso\",\n className: \"theme-button theme-espresso\",\n onClick: updateTheme,\n children: \"Espresso\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 215,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cab\",\n className: \"theme-button theme-cab\",\n onClick: updateTheme,\n children: \"Cab\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 216,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cloud\",\n className: \"theme-button theme-cloud\",\n onClick: updateTheme,\n children: \"Cloud\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 217,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"lime\",\n className: \"theme-button theme-lime\",\n onClick: updateTheme,\n children: \"Lime\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 218,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"passion\",\n className: \"theme-button theme-passion\",\n onClick: updateTheme,\n children: \"Passion\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 219,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"blues\",\n className: \"theme-button theme-blues\",\n onClick: updateTheme,\n children: \"Blues\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 220,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"chalk\",\n className: \"theme-button theme-chalk\",\n onClick: updateTheme,\n children: \"Chalk\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 221,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"tron\",\n className: \"theme-button theme-tron\",\n onClick: updateTheme,\n children: \"Tron\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 222,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"paper\",\n className: \"theme-button theme-paper\",\n onClick: updateTheme,\n children: \"Paper\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 223,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cyberpunk\",\n className: \"theme-button theme-cyberpunk\",\n onClick: updateTheme,\n children: \"Cyberpunk\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 224,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"quadra\",\n className: \"theme-button theme-panam\",\n onClick: updateTheme,\n children: \"Quadra\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 225,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"panam\",\n className: \"theme-button theme-panam\",\n onClick: updateTheme,\n children: \"Panam\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 226,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"touch\",\n className: \"theme-button theme-touch\",\n onClick: updateTheme,\n children: \"Touch\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 227,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"peek\",\n className: \"theme-button theme-peek\",\n onClick: updateTheme,\n children: \"Peek\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 228,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 212,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"h2\", {\n children: \"Search options\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 232,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"providers\",\n children: /*#__PURE__*/_jsxDEV(\"table\", {\n children: /*#__PURE__*/_jsxDEV(\"tbody\", {\n children: [/*#__PURE__*/_jsxDEV(\"tr\", {\n children: [/*#__PURE__*/_jsxDEV(\"th\", {\n children: \"Website\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 237,\n columnNumber: 19\n }, this), /*#__PURE__*/_jsxDEV(\"th\", {\n children: \"Prefix\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 238,\n columnNumber: 19\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 236,\n columnNumber: 17\n }, this), items]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 235,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 234,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 233,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"header\", {\n id: \"modal-footer\",\n children: [/*#__PURE__*/_jsxDEV(\"a\", {\n href: \"https://github.com/jeroenpardon/\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-github-box\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 246,\n columnNumber: 54\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 246,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n href: \"https://materialdesignicons.com/\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-material-design\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 247,\n columnNumber: 54\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 247,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"sneaky\",\n children: [/*#__PURE__*/_jsxDEV(\"input\", {\n type: \"checkbox\",\n id: \"contenttype\",\n onChange: udpateDisplayedItems\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 248,\n columnNumber: 35\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n for: \"contenttype\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-domino-mask\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 249,\n columnNumber: 36\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 249,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 248,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 245,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 202,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 201,\n columnNumber: 5\n }, this);\n}\n\n_c9 = ModalMenu;\n\nfunction Provider(props) {\n return /*#__PURE__*/_jsxDEV(\"tr\", {\n children: [/*#__PURE__*/_jsxDEV(\"td\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: props.provider.url,\n children: props.provider.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 259,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 259,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"td\", {\n children: props.provider.prefix\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 260,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 258,\n columnNumber: 5\n }, this);\n}\n\n_c10 = Provider;\n\nfunction ModalInit() {\n setDisplayedItems();\n return /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"modal_init\",\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n className: \"btn\",\n href: \"#modal\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify icon\",\n \"data-icon\": \"mdi-xbox-controller-menu\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 270,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 269,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 268,\n columnNumber: 5\n }, this);\n}\n\n_c11 = ModalInit;\nReactDOM.render( /*#__PURE__*/_jsxDEV(Homepage, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 277,\n columnNumber: 3\n}, this), document.getElementById('root')); //Functions below this line are for calculating data for\n//other functions\n\nfunction date() {\n let currentDate = new Date();\n let dateOptions = {\n weekday: \"long\",\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\"\n };\n let date = currentDate.toLocaleDateString(\"en-GB\", dateOptions);\n return date;\n}\n\nfunction fixDigits(k) {\n if (k < 10) {\n return \"0\" + k;\n } else {\n return k;\n }\n}\n\nfunction greet() {\n let currentTime = new Date();\n let greet = Math.floor(currentTime.getHours() / 6);\n let easterEggChance = Math.floor(Math.random() * 100);\n\n let greetings = require('./messages.json');\n\n let timeBased = [];\n let easterEggs = [];\n\n for (var i = 0; i < greetings.messages.length; i++) {\n if (greetings.messages[i].easteregg === \"FALSE\") {\n timeBased = timeBased.concat(greetings.messages[i]);\n } else {\n easterEggs = easterEggs.concat(greetings.messages[i]);\n }\n }\n\n if (easterEggChance > 10) {\n return timeBased[greet].message;\n } else {\n let easterEggText = Math.floor(Math.random() * easterEggs.length);\n return easterEggs[easterEggText].message;\n }\n}\n\nfunction Clock() {\n _s();\n\n const [date, setDate] = useState(new Date());\n\n function refreshClock() {\n setDate(new Date());\n }\n\n useEffect(() => {\n const timerId = setInterval(refreshClock, 1000);\n return function cleanup() {\n clearInterval(timerId);\n };\n }, []);\n var hour = date.getHours();\n var minutes = date.getMinutes(); //var seconds = date.getSeconds();\n\n var midday = \"AM\";\n midday = hour >= 12 ? \"PM\" : \"AM\";\n hour = hour === 0 ? 12 : hour > 12 ? hour - 12 : hour;\n minutes = fixDigits(minutes); //seconds = fixDigits(seconds);\n\n let time = hour + \":\" + minutes + \" \" + midday;\n return /*#__PURE__*/_jsxDEV(\"h2\", {\n id: \"clock\",\n children: time\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 348,\n columnNumber: 5\n }, this);\n}\n\n_s(Clock, \"Gqi45WOZhU2c0BLYX0HoJeiR0fk=\");\n\n_c12 = Clock;\n\nfunction getApps() {\n let applications = require('./apps.json');\n\n return applications;\n}\n\nfunction getLinks() {\n let links = require('./links.json');\n\n return links;\n}\n\nfunction getProviders() {\n let providers = require('./providers.json');\n\n return providers;\n}\n\nfunction getThemes() {\n let themes = require('./themes.json');\n\n return themes;\n}\n\nfunction updateTheme(e) {\n var themes = getThemes();\n var themeName = e.target.innerHTML.toLowerCase();\n var index = themes.themes.findIndex(function (item, i) {\n return item.name === themeName;\n });\n console.log(themes.themes[index]);\n localStorage.setItem(\"image-background\", themes.themes[index].imagebackground);\n localStorage.setItem(\"color-background\", themes.themes[index].colorbackground);\n localStorage.setItem(\"color-search-background\", themes.themes[index].colorserachbackground);\n localStorage.setItem(\"color-text-pri\", themes.themes[index].colortextpri);\n localStorage.setItem(\"color-text-acc\", themes.themes[index].colortextacc);\n localStorage.setItem(\"color-border\", themes.themes[index].colorborder); //document.documentElement.style.setProperty(prop, `var(--${themeName}${prop.substring(10)})`);\n\n setTheme();\n}\n\nfunction setTheme() {\n setValueFromLocalStorage('image-background');\n setValueFromLocalStorage('color-background');\n setValueFromLocalStorage('color-search-background');\n setValueFromLocalStorage('color-text-pri');\n setValueFromLocalStorage('color-text-acc');\n setValueFromLocalStorage('color-border');\n setValueFromLocalStorage('content-display');\n}\n\nfunction handleKeyPress(e) {\n var sindex = 0;\n var cycle = false;\n var key = e.keyCode || e.which;\n var text = e.target.value.replaceAll(\"+\", \"%2B\");\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n\n if (key == 13) {\n // Search functions\n search(text);\n }\n\n if (key == 9) {\n // Tab Completion Functions\n e.preventDefault();\n e.stopPropagation();\n\n if (text[0] === ';') {\n switch (option) {\n case 't':\n var streamers = ['admiralbahroo', 'moonmoon_ow', 'witwix'];\n\n if (!subtext || cycle) {\n cycle = true;\n if (sindex > streamers.length - 1) sindex = 0;\n document.getElementById(\"keywords\").value = ';t ' + streamers[sindex++];\n return;\n }\n\n for (var streamer of streamers) {\n if (subtext === streamer.substr(0, subtext.length)) {\n document.getElementById(\"keywords\").value = ';t ' + streamer;\n return;\n }\n }\n\n break;\n }\n }\n }\n\n if (key == 32) {\n //Space to go to search\n updateLabel(text);\n }\n\n sindex = 0;\n cycle = false;\n updateLabel(text);\n}\n\nfunction updateLabel(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n\n if (text[0] === '/') {\n // if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n document.getElementById(\"searchType\").innerHTML = \"Allmusic search\";\n break;\n\n case \"d\":\n document.getElementById(\"searchType\").innerHTML = \"Duck Duck Go search\";\n break;\n\n case \"di\":\n document.getElementById(\"searchType\").innerHTML = \"Discogs search\";\n break;\n\n case \"i\":\n document.getElementById(\"searchType\").innerHTML = \"IMDB search\";\n break;\n\n case \"m\":\n document.getElementById(\"searchType\").innerHTML = \"TheMovieDB search\";\n break;\n\n case \"r\":\n document.getElementById(\"searchType\").innerHTML = \"Reddit search\";\n break;\n\n case \"q\":\n document.getElementById(\"searchType\").innerHTML = \"Qwant search\";\n break;\n\n case \"so\":\n document.getElementById(\"searchType\").innerHTML = \"Soundcloud search\";\n break;\n\n case \"s\":\n document.getElementById(\"searchType\").innerHTML = \"Spotify search\";\n break;\n\n case \"tv\":\n document.getElementById(\"searchType\").innerHTML = \"TheTVDB search\";\n break;\n\n case \"t\":\n document.getElementById(\"searchType\").innerHTML = \"Trakt search\";\n break;\n\n case \"y\":\n document.getElementById(\"searchType\").innerHTML = \"YouTube search\";\n break;\n\n case \"w\":\n document.getElementById(\"searchType\").innerHTML = \"Wikipedia search\";\n break;\n\n case \"p\":\n document.getElementById(\"searchType\").innerHTML = \"Plex search\";\n break;\n\n case \"rt\":\n document.getElementById(\"searchType\").innerHTML = \"Rotten Tomatoes search\";\n break;\n\n default:\n document.getElementById(\"searchType\").innerHTML = \"Invalid search\";\n break;\n }\n } else {\n document.getElementById(\"searchType\").innerHTML = \"Google search\";\n }\n}\n\nfunction search(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n\n if (text[0] === '/') {\n if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n window.location = \"https://www.allmusic.com/search/all/\" + subtext;\n break;\n\n case \"d\":\n window.location = \"https://duckduckgo.com/?q=\" + subtext;\n break;\n\n case \"di\":\n window.location = \"https://www.discogs.com/search/?q=\" + subtext;\n break;\n\n case \"i\":\n window.location = \"https://www.imdb.com/find?q=\" + subtext;\n break;\n\n case \"m\":\n window.location = \"https://www.themoviedb.org/search?query=\" + subtext;\n break;\n\n case \"r\":\n window.location = \"https://www.reddit.com/search?q=\" + subtext;\n break;\n\n case \"q\":\n window.location = \"https://www.qwant.com/?q=\" + subtext;\n break;\n\n case \"so\":\n window.location = \"https://soundcloud.com/search?q=\" + subtext;\n break;\n\n case \"s\":\n window.location = \"https://open.spotify.com/search/results/\" + subtext;\n break;\n\n case \"t\":\n window.location = \"https://trakt.tv/search?query=\" + subtext;\n break;\n\n case \"tv\":\n window.location = \"https://www.thetvdb.com/search?query=\" + subtext;\n break;\n\n case \"y\":\n window.location = \"https://www.youtube.com/results?search_query=\" + subtext;\n break;\n\n case \"w\":\n window.location = \"https://en.wikipedia.org/w/index.php?search=\" + subtext;\n break;\n\n case \"p\":\n window.location = \"https://app.plex.tv/desktop/#!/search?query=\" + subtext;\n break;\n\n case \"rt\":\n window.location = \"https://www.rottentomatoes.com/search?search=\" + subtext;\n break;\n }\n } else {\n var option = text.substr(1);\n\n switch (option) {\n case \"d\":\n window.location = \"https://www.duckduckgo.com\";\n break;\n\n case \"y\":\n window.location = \"https://www.youtube.com\";\n break;\n\n case \"r\":\n window.location = \"https://reddit.com\";\n break;\n\n case \"s\":\n window.location = \"https://open.spotify.com\";\n break;\n }\n }\n } else if (validURL(text)) {\n if (containsProtocol(text)) window.location = text;else window.location = \"https://\" + text;\n } else {\n window.location = \"https://www.google.com/search?q=\" + text;\n }\n} // Source: https://stackoverflow.com/questions/5717093/check-if-a-javascript-string-is-a-url\n\n\nfunction validURL(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/)?' + // protocol\n '((([a-z\\\\d]([a-z\\\\d-]*[a-z\\\\d])*)\\\\.)+[a-z]{2,}|' + // domain name\n '((\\\\d{1,3}\\\\.){3}\\\\d{1,3}))' + // OR ip (v4) address\n '(\\\\:\\\\d+)?(\\\\/[-a-z\\\\d%_.~+]*)*' + // port and path\n '(\\\\?[;&a-z\\\\d%_.~+=-]*)?' + // query string\n '(\\\\#[-a-z\\\\d_]*)?$', 'i'); // fragment locator\n\n return !!pattern.test(str);\n}\n\nfunction containsProtocol(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/){1}.*', 'i');\n return !!pattern.test(str);\n}\n\nString.prototype.replaceAll = function (search, replacement) {\n var target = this;\n return target.split(search).join(replacement);\n};\n\nfunction udpateDisplayedItems(e) {\n localStorage.setItem('contenttype', e.target.checked);\n\n if (e.target.checked) {\n localStorage.setItem('content-display', 'none');\n } else {\n localStorage.setItem('content-display', 'block');\n }\n\n setDisplayedItems();\n}\n\nfunction setDisplayedItems() {\n setValueFromLocalStorage('contenttype');\n setValueFromLocalStorage('content-display');\n var checked = localStorage.getItem(\"contenttype\"); //document.getElementById('contenttype').checked = checked;\n}\n\nvar _c, _c2, _c3, _c4, _c5, _c6, _c7, _c8, _c9, _c10, _c11, _c12;\n\n$RefreshReg$(_c, \"Homepage\");\n$RefreshReg$(_c2, \"Search\");\n$RefreshReg$(_c3, \"Header\");\n$RefreshReg$(_c4, \"Applications\");\n$RefreshReg$(_c5, \"App\");\n$RefreshReg$(_c6, \"Bookmarks\");\n$RefreshReg$(_c7, \"LinkGroups\");\n$RefreshReg$(_c8, \"LinkItem\");\n$RefreshReg$(_c9, \"ModalMenu\");\n$RefreshReg$(_c10, \"Provider\");\n$RefreshReg$(_c11, \"ModalInit\");\n$RefreshReg$(_c12, \"Clock\");","map":{"version":3,"sources":["/home/seanedmunds/dev/home-page/src/index.js"],"names":["React","useState","useEffect","ReactDOM","setValueFromLocalStorage","property","value","localStorage","getItem","setValue","document","documentElement","style","setProperty","input","querySelector","replace","Homepage","setTheme","date","greet","Search","handleKeyPress","Header","props","Applications","appList","getApps","items","i","apps","length","safe","NSFW","NSFWEnabled","console","log","push","name","url","icon","App","classNameType","hrefUrl","iconName","Bookmarks","bookmarkList","getLinks","bookmarks","category","links","LinkGroups","LinkItem","link","ModalMenu","providers","getProviders","updateTheme","udpateDisplayedItems","Provider","provider","prefix","ModalInit","setDisplayedItems","render","getElementById","currentDate","Date","dateOptions","weekday","year","month","day","toLocaleDateString","fixDigits","k","currentTime","Math","floor","getHours","easterEggChance","random","greetings","require","timeBased","easterEggs","messages","easteregg","concat","message","easterEggText","Clock","setDate","refreshClock","timerId","setInterval","cleanup","clearInterval","hour","minutes","getMinutes","midday","time","applications","getThemes","themes","e","themeName","target","innerHTML","toLowerCase","index","findIndex","item","setItem","imagebackground","colorbackground","colorserachbackground","colortextpri","colortextacc","colorborder","sindex","cycle","key","keyCode","which","text","replaceAll","option","substr","indexOf","subtext","search","preventDefault","stopPropagation","streamers","streamer","updateLabel","window","location","validURL","containsProtocol","str","pattern","RegExp","test","String","prototype","replacement","split","join","checked"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { useState, useEffect } from 'react';\nimport ReactDOM from 'react-dom';\n//import { unstable_createPortal } from 'react-dom';\nimport './index.css';\n\nconst setValueFromLocalStorage = property => {\n let value = localStorage.getItem(property);\n setValue(property, value);\n};\nconst setValue = (property, value) => {\n if (value) {\n document.documentElement.style.setProperty(`--${property}`, value);\n\n const input = document.querySelector(`#${property}`);\n if (input) {\n value = value.replace('px', '');\n input.value = value;\n }\n }\n};\n\nfunction Homepage() {\n setTheme();\n return (\n \n \n \n
\n \n \n
\n \n \n \n
\n \n \n
\n \n \n
\n \n );\n}\n\nfunction Search() {\n return (\n \n )\n}\n\nfunction Header(props) {\n return (\n \n );\n}\n\nfunction Applications() {\n let appList = getApps();\n var items = [];\n for (var i = 0; i < appList.apps.length; i++) {\n var safe = appList.apps[i].NSFW;\n var NSFWEnabled = localStorage.getItem(\"contenttype\");\n console.log(safe);\n if (safe === \"SAFE\") {\n items.push(\n \n );\n } else if (safe === \"NSFW\" && NSFWEnabled) {\n items.push(\n \n );\n } else {\n console.log(NSFWEnabled);\n }\n \n }\n return (\n \n Applications
\n \n {items}\n
\n \n );\n}\n\nfunction App(props) {\n \n let classNameType = props.NSFW + \"-content\";\n let hrefUrl = \"https://\" + props.url;\n let iconName = \"mdi-\" + props.icon;\n return (\n \n );\n}\n\nfunction Bookmarks() {\n let bookmarkList = getLinks();\n var items = [];\n for (var i = 0; i < bookmarkList.bookmarks.length; i++) {\n items.push(\n \n );\n }\n return (\n \n Bookmarks
\n \n {items}\n
\n \n );\n}\n\nfunction LinkGroups(props) {\n var items = [];\n for (var i = 0; i < props.links.length; i++) {\n items.push(\n \n );\n }\n return (\n \n
{props.category}
\n {items}\n \n );\n}\n\nfunction LinkItem(props) {\n return (\n \n );\n}\n\nfunction ModalMenu() {\n var providers = getProviders();\n var items = [];\n for (var i = 0; i < providers.providers.length; i++) {\n items.push(\n \n );\n }\n return (\n \n \n \n\n
Color themes
\n\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n\n\n
Search options
\n
\n \n \n \n | Website | \n Prefix | \n
\n {items}\n \n
\n \n\n \n
\n \n );\n}\n\nfunction Provider(props) {\n return (\n \n | {props.provider.name} | \n {props.provider.prefix} | \n
\n );\n}\n\nfunction ModalInit() {\n setDisplayedItems();\n return (\n \n );\n}\n\nReactDOM.render(\n ,\n document.getElementById('root')\n);\n\n//Functions below this line are for calculating data for\n//other functions\n\nfunction date() {\n let currentDate = new Date();\n let dateOptions = {\n weekday: \"long\",\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\"\n };\n let date = currentDate.toLocaleDateString(\"en-GB\", dateOptions);\n return date;\n}\nfunction fixDigits(k) {\n if (k < 10) {\n return \"0\" + k;\n }\n else {\n return k;\n }\n}\nfunction greet() {\n let currentTime = new Date();\n let greet = Math.floor(currentTime.getHours() / 6);\n let easterEggChance = Math.floor(Math.random() * 100);\n let greetings = require('./messages.json');\n let timeBased = [];\n let easterEggs = [];\n for (var i = 0; i < greetings.messages.length; i++) {\n if (greetings.messages[i].easteregg === \"FALSE\") {\n timeBased = timeBased.concat(greetings.messages[i]);\n } else {\n easterEggs = easterEggs.concat(greetings.messages[i]);\n }\n }\n if (easterEggChance > 10) {\n return timeBased[greet].message;\n } else {\n let easterEggText = Math.floor(Math.random() * easterEggs.length);\n return easterEggs[easterEggText].message;\n }\n}\nfunction Clock() {\n const [date, setDate] = useState(new Date());\n\n function refreshClock() {\n setDate(new Date());\n }\n useEffect(() => {\n const timerId = setInterval(refreshClock, 1000);\n return function cleanup() {\n clearInterval(timerId);\n };\n }, []);\n\n var hour = date.getHours();\n var minutes = date.getMinutes();\n //var seconds = date.getSeconds();\n var midday = \"AM\";\n midday = (hour >= 12) ? \"PM\" : \"AM\";\n hour = (hour === 0) ? 12 : ((hour > 12) ? (hour - 12) : hour);\n minutes = fixDigits(minutes);\n //seconds = fixDigits(seconds);\n let time = hour + \":\" + minutes + \" \" + midday;\n\n return (\n {time}
\n\n );\n}\nfunction getApps() {\n let applications = require('./apps.json');\n return applications;\n}\nfunction getLinks() {\n let links = require('./links.json');\n return links;\n}\nfunction getProviders() {\n let providers = require('./providers.json');\n return providers;\n}\nfunction getThemes() {\n let themes = require('./themes.json');\n return themes;\n}\n\nfunction updateTheme(e) {\n var themes = getThemes();\n var themeName = e.target.innerHTML.toLowerCase();\n var index = themes.themes.findIndex(function(item, i){\n return item.name === themeName\n });\n console.log(themes.themes[index]);\n localStorage.setItem(\"image-background\", themes.themes[index].imagebackground);\n localStorage.setItem(\"color-background\", themes.themes[index].colorbackground);\n localStorage.setItem(\"color-search-background\", themes.themes[index].colorserachbackground);\n localStorage.setItem(\"color-text-pri\",themes.themes[index].colortextpri);\n localStorage.setItem(\"color-text-acc\", themes.themes[index].colortextacc);\n localStorage.setItem(\"color-border\", themes.themes[index].colorborder);\n \n //document.documentElement.style.setProperty(prop, `var(--${themeName}${prop.substring(10)})`);\n setTheme();\n}\n\nfunction setTheme() {\n setValueFromLocalStorage('image-background');\n setValueFromLocalStorage('color-background');\n setValueFromLocalStorage('color-search-background');\n setValueFromLocalStorage('color-text-pri');\n setValueFromLocalStorage('color-text-acc');\n setValueFromLocalStorage('color-border');\n setValueFromLocalStorage('content-display');\n}\n\nfunction handleKeyPress(e) {\n var sindex = 0;\n var cycle = false;\n var key = e.keyCode || e.which;\n var text = e.target.value.replaceAll(\"+\", \"%2B\");\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n if (key == 13) { // Search functions\n search(text);\n }\n if (key == 9) { // Tab Completion Functions\n e.preventDefault();\n e.stopPropagation();\n if (text[0] === ';') {\n switch (option) {\n case 't':\n var streamers = ['admiralbahroo', 'moonmoon_ow', 'witwix'];\n if (!subtext || cycle) {\n cycle = true;\n if (sindex > streamers.length - 1) sindex = 0;\n document.getElementById(\"keywords\").value = ';t ' + streamers[sindex++];\n return;\n }\n for (var streamer of streamers) {\n if (subtext === streamer.substr(0, subtext.length)) {\n document.getElementById(\"keywords\").value = ';t ' + streamer;\n return;\n }\n }\n break;\n }\n }\n }\n if(key == 32){ //Space to go to search\nupdateLabel(text);\n }\n sindex = 0;\n cycle = false;\n updateLabel(text);\n}\n\nfunction updateLabel(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n if (text[0] === '/') {\n// if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n document.getElementById(\"searchType\").innerHTML = \"Allmusic search\";\n break;\n case \"d\":\n document.getElementById(\"searchType\").innerHTML = \"Duck Duck Go search\";\n break;\n case \"di\":\n document.getElementById(\"searchType\").innerHTML = \"Discogs search\";\n break;\n case \"i\":\n document.getElementById(\"searchType\").innerHTML = \"IMDB search\";\n break;\n case \"m\":\n document.getElementById(\"searchType\").innerHTML = \"TheMovieDB search\";\n break;\n case \"r\":\n document.getElementById(\"searchType\").innerHTML = \"Reddit search\";\n break;\n case \"q\":\n document.getElementById(\"searchType\").innerHTML = \"Qwant search\";\n break;\n case \"so\":\n document.getElementById(\"searchType\").innerHTML = \"Soundcloud search\";\n break;\n case \"s\":\n document.getElementById(\"searchType\").innerHTML = \"Spotify search\";\n break;\n case \"tv\":\n document.getElementById(\"searchType\").innerHTML = \"TheTVDB search\";\n break;\n case \"t\":\n document.getElementById(\"searchType\").innerHTML = \"Trakt search\";\n break;\n case \"y\":\n document.getElementById(\"searchType\").innerHTML = \"YouTube search\";\n break;\n case \"w\":\n document.getElementById(\"searchType\").innerHTML = \"Wikipedia search\";\n break;\n case \"p\":\n document.getElementById(\"searchType\").innerHTML = \"Plex search\";\n break;\n case \"rt\":\n document.getElementById(\"searchType\").innerHTML = \"Rotten Tomatoes search\";\n break;\n default:\n document.getElementById(\"searchType\").innerHTML = \"Invalid search\";\n break;\n }\n}else {\n document.getElementById(\"searchType\").innerHTML = \"Google search\";\n }\n}\n\nfunction search(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n if (text[0] === '/') {\n if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n window.location = \"https://www.allmusic.com/search/all/\" + subtext;\n break;\n case \"d\":\n window.location = \"https://duckduckgo.com/?q=\" + subtext;\n break;\n case \"di\":\n window.location = \"https://www.discogs.com/search/?q=\" + subtext;\n break;\n case \"i\":\n window.location = \"https://www.imdb.com/find?q=\" + subtext;\n break;\n case \"m\":\n window.location = \"https://www.themoviedb.org/search?query=\" + subtext;\n break;\n case \"r\":\n window.location = \"https://www.reddit.com/search?q=\" + subtext;\n break;\n case \"q\":\n window.location = \"https://www.qwant.com/?q=\" + subtext;\n break;\n case \"so\":\n window.location = \"https://soundcloud.com/search?q=\" + subtext;\n break;\n case \"s\":\n window.location = \"https://open.spotify.com/search/results/\" + subtext;\n break;\n case \"t\":\n window.location = \"https://trakt.tv/search?query=\" + subtext;\n break;\n case \"tv\":\n window.location = \"https://www.thetvdb.com/search?query=\" + subtext;\n break;\n case \"y\":\n window.location = \"https://www.youtube.com/results?search_query=\" + subtext;\n break;\n case \"w\":\n window.location = \"https://en.wikipedia.org/w/index.php?search=\" + subtext;\n break;\n case \"p\":\n window.location = \"https://app.plex.tv/desktop/#!/search?query=\" + subtext;\n break;\n case \"rt\":\n window.location = \"https://www.rottentomatoes.com/search?search=\" + subtext;\n break;\n }\n } else {\n var option = text.substr(1);\n switch (option) {\n case \"d\":\n window.location = \"https://www.duckduckgo.com\";\n break;\n case \"y\":\n window.location = \"https://www.youtube.com\";\n break;\n case \"r\":\n window.location = \"https://reddit.com\";\n break;\n case \"s\":\n window.location = \"https://open.spotify.com\";\n break;\n }\n }\n } else if (validURL(text)) {\n if (containsProtocol(text))\n window.location = text;\n else\n window.location = \"https://\" + text;\n } else {\n window.location = \"https://www.google.com/search?q=\" + text;\n }\n}\n\n// Source: https://stackoverflow.com/questions/5717093/check-if-a-javascript-string-is-a-url\nfunction validURL(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/)?' + // protocol\n '((([a-z\\\\d]([a-z\\\\d-]*[a-z\\\\d])*)\\\\.)+[a-z]{2,}|' + // domain name\n '((\\\\d{1,3}\\\\.){3}\\\\d{1,3}))' + // OR ip (v4) address\n '(\\\\:\\\\d+)?(\\\\/[-a-z\\\\d%_.~+]*)*' + // port and path\n '(\\\\?[;&a-z\\\\d%_.~+=-]*)?' + // query string\n '(\\\\#[-a-z\\\\d_]*)?$', 'i'); // fragment locator\n return !!pattern.test(str);\n}\n\nfunction containsProtocol(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/){1}.*', 'i');\n return !!pattern.test(str);\n}\n\nString.prototype.replaceAll = function(search, replacement) {\n var target = this;\n return target.split(search).join(replacement);\n};\n\nfunction udpateDisplayedItems(e) {\n localStorage.setItem('contenttype', e.target.checked);\n if (e.target.checked) {\n localStorage.setItem('content-display', 'none');\n } else {\n localStorage.setItem('content-display', 'block');\n }\n setDisplayedItems();\n}\nfunction setDisplayedItems() {\n setValueFromLocalStorage('contenttype');\n setValueFromLocalStorage('content-display');\n var checked = localStorage.getItem(\"contenttype\");\n //document.getElementById('contenttype').checked = checked;\n}"]},"metadata":{},"sourceType":"module"}
\ No newline at end of file
diff --git a/node_modules/.cache/babel-loader/c59290e40e331fa2016690d3087bd4f0.json b/node_modules/.cache/babel-loader/c59290e40e331fa2016690d3087bd4f0.json
new file mode 100644
index 00000000..012c7f9b
--- /dev/null
+++ b/node_modules/.cache/babel-loader/c59290e40e331fa2016690d3087bd4f0.json
@@ -0,0 +1 @@
+{"ast":null,"code":"var _jsxFileName = \"/home/seanedmunds/dev/home-page/src/index.js\",\n _s = $RefreshSig$();\n\nimport React from 'react';\nimport { useState, useEffect } from 'react';\nimport ReactDOM from 'react-dom'; //import { unstable_createPortal } from 'react-dom';\n\nimport './index.css';\nimport { jsxDEV as _jsxDEV } from \"react/jsx-dev-runtime\";\n\nconst setValueFromLocalStorage = property => {\n let value = localStorage.getItem(property);\n setValue(property, value);\n};\n\nconst setValue = (property, value) => {\n if (value) {\n document.documentElement.style.setProperty(`--${property}`, value);\n const input = document.querySelector(`#${property}`);\n\n if (input) {\n value = value.replace('px', '');\n input.value = value;\n }\n }\n};\n\nfunction Homepage() {\n setTheme();\n return /*#__PURE__*/_jsxDEV(\"main\", {\n id: \"container\",\n className: \"fade\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Search, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 28,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 27,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Header, {\n date: date(),\n greet: greet()\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 31,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 30,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Applications, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 37,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 36,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Bookmarks, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 40,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 39,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(ModalMenu, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 43,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 42,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(ModalInit, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 46,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 45,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 26,\n columnNumber: 5\n }, this);\n}\n\n_c = Homepage;\n\nfunction Search() {\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"search\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"abackground\",\n children: [/*#__PURE__*/_jsxDEV(\"input\", {\n name: \"keywords\",\n type: \"text\",\n className: \"keyword\",\n id: \"keywords\",\n size: \"50\",\n spellCheck: \"true\",\n placeholder: \"\"\n /*onFocus={this.placeholder = \"\"} onBlur={this.placeholder = ''}*/\n ,\n autoComplete: \"off\",\n autoFocus: true,\n onKeyUp: handleKeyPress\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 56,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n id: \"searchType\",\n className: \"Input-label\",\n children: \"Google search\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 57,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 55,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 54,\n columnNumber: 5\n }, this);\n}\n\n_c2 = Search;\n\nfunction Header(props) {\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"header\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n id: \"greeting_block\",\n children: /*#__PURE__*/_jsxDEV(\"h1\", {\n id: \"header_greet\",\n children: props.greet\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 67,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 66,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"date_block\",\n children: [/*#__PURE__*/_jsxDEV(\"h2\", {\n id: \"header_date\",\n children: props.date\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 70,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(Clock, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 71,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 69,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 65,\n columnNumber: 5\n }, this);\n}\n\n_c3 = Header;\n\nfunction Applications() {\n let appList = getApps();\n var items = [];\n\n for (var i = 0; i < appList.apps.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(App, {\n name: appList.apps[i].name,\n url: appList.apps[i].url,\n icon: appList.apps[i].icon,\n NSFW: appList.apps[i].NSFW\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 82,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"apps\",\n children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n children: \"Applications\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 93,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"apps_loop\",\n children: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 94,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 92,\n columnNumber: 5\n }, this);\n}\n\n_c4 = Applications;\n\nfunction App(props) {\n let classNameType = props.NSFW + \"-content\";\n let hrefUrl = \"https://\" + props.url;\n let iconName = \"mdi-\" + props.icon;\n return /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: hrefUrl,\n className: classNameType,\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_item\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_icon\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify icon\",\n \"data-icon\": iconName\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 110,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 109,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_text\",\n children: [/*#__PURE__*/_jsxDEV(\"span\", {\n id: \"app-name\",\n children: props.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 113,\n columnNumber: 13\n }, this), /*#__PURE__*/_jsxDEV(\"span\", {\n id: \"app-address\",\n children: props.url\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 114,\n columnNumber: 13\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 112,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 108,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 107,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 106,\n columnNumber: 5\n }, this);\n}\n\n_c5 = App;\n\nfunction Bookmarks() {\n let bookmarkList = getLinks();\n var items = [];\n\n for (var i = 0; i < bookmarkList.bookmarks.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(LinkGroups, {\n category: bookmarkList.bookmarks[i].category,\n links: bookmarkList.bookmarks[i].links\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 127,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"links\",\n children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n children: \"Bookmarks\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 136,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"links_loop\",\n children: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 137,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 135,\n columnNumber: 5\n }, this);\n}\n\n_c6 = Bookmarks;\n\nfunction LinkGroups(props) {\n var items = [];\n\n for (var i = 0; i < props.links.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(LinkItem, {\n link: props.links[i]\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 148,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"links_item\",\n children: [/*#__PURE__*/_jsxDEV(\"h4\", {\n children: props.category\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 156,\n columnNumber: 7\n }, this), items]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 155,\n columnNumber: 5\n }, this);\n}\n\n_c7 = LinkGroups;\n\nfunction LinkItem(props) {\n return /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: props.link.url,\n className: \"theme_color-border theme_text-select\",\n children: props.link.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 165,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 164,\n columnNumber: 5\n }, this);\n}\n\n_c8 = LinkItem;\n\nfunction ModalMenu() {\n var providers = getProviders();\n var items = [];\n\n for (var i = 0; i < providers.providers.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(Provider, {\n provider: providers.providers[i]\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 175,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"modal\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n children: [/*#__PURE__*/_jsxDEV(\"header\", {\n id: \"modal-header\",\n children: [/*#__PURE__*/_jsxDEV(\"h1\", {\n children: \"Options\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 185,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n href: \"#\",\n title: \"Close\",\n className: \"modal-close\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-close\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 187,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 186,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 184,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"h2\", {\n children: \"Color themes\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 191,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"modal-theme\",\n children: [/*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"blackboard\",\n className: \"theme-button theme-blackboard\",\n onClick: updateTheme,\n children: \"Blackboard\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 194,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"gazette\",\n className: \"theme-button theme-gazette\",\n onClick: updateTheme,\n children: \"Gazette\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 195,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"espresso\",\n className: \"theme-button theme-espresso\",\n onClick: updateTheme,\n children: \"Espresso\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 196,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cab\",\n className: \"theme-button theme-cab\",\n onClick: updateTheme,\n children: \"Cab\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 197,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cloud\",\n className: \"theme-button theme-cloud\",\n onClick: updateTheme,\n children: \"Cloud\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 198,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"lime\",\n className: \"theme-button theme-lime\",\n onClick: updateTheme,\n children: \"Lime\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 199,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"passion\",\n className: \"theme-button theme-passion\",\n onClick: updateTheme,\n children: \"Passion\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 200,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"blues\",\n className: \"theme-button theme-blues\",\n onClick: updateTheme,\n children: \"Blues\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 201,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"chalk\",\n className: \"theme-button theme-chalk\",\n onClick: updateTheme,\n children: \"Chalk\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 202,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"tron\",\n className: \"theme-button theme-tron\",\n onClick: updateTheme,\n children: \"Tron\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 203,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"paper\",\n className: \"theme-button theme-paper\",\n onClick: updateTheme,\n children: \"Paper\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 204,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cyberpunk\",\n className: \"theme-button theme-cyberpunk\",\n onClick: updateTheme,\n children: \"Cyberpunk\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 205,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"quadra\",\n className: \"theme-button theme-panam\",\n onClick: updateTheme,\n children: \"Quadra\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 206,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"panam\",\n className: \"theme-button theme-panam\",\n onClick: updateTheme,\n children: \"Panam\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 207,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"touch\",\n className: \"theme-button theme-touch\",\n onClick: updateTheme,\n children: \"Touch\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 208,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"peek\",\n className: \"theme-button theme-peek\",\n onClick: updateTheme,\n children: \"Peek\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 209,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 193,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"h2\", {\n children: \"Search options\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 213,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"providers\",\n children: /*#__PURE__*/_jsxDEV(\"table\", {\n children: /*#__PURE__*/_jsxDEV(\"tbody\", {\n children: [/*#__PURE__*/_jsxDEV(\"tr\", {\n children: [/*#__PURE__*/_jsxDEV(\"th\", {\n children: \"Website\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 218,\n columnNumber: 19\n }, this), /*#__PURE__*/_jsxDEV(\"th\", {\n children: \"Prefix\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 219,\n columnNumber: 19\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 217,\n columnNumber: 17\n }, this), items]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 216,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 215,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 214,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"header\", {\n id: \"modal-footer\",\n children: [/*#__PURE__*/_jsxDEV(\"a\", {\n href: \"https://github.com/jeroenpardon/\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-github-box\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 227,\n columnNumber: 54\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 227,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n href: \"https://materialdesignicons.com/\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-material-design\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 228,\n columnNumber: 54\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 228,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"sneaky\",\n children: [/*#__PURE__*/_jsxDEV(\"input\", {\n type: \"checkbox\",\n id: \"contenttype\",\n onChange: udpateDisplayedItems\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 229,\n columnNumber: 35\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n for: \"contenttype\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-domino-mask\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 230,\n columnNumber: 36\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 230,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 229,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 226,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 183,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 182,\n columnNumber: 5\n }, this);\n}\n\n_c9 = ModalMenu;\n\nfunction Provider(props) {\n return /*#__PURE__*/_jsxDEV(\"tr\", {\n children: [/*#__PURE__*/_jsxDEV(\"td\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: props.provider.url,\n children: props.provider.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 240,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 240,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"td\", {\n children: props.provider.prefix\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 241,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 239,\n columnNumber: 5\n }, this);\n}\n\n_c10 = Provider;\n\nfunction ModalInit() {\n return /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"modal_init\",\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n className: \"btn\",\n href: \"#modal\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify icon\",\n \"data-icon\": \"mdi-xbox-controller-menu\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 250,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 249,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 248,\n columnNumber: 5\n }, this);\n}\n\n_c11 = ModalInit;\nReactDOM.render( /*#__PURE__*/_jsxDEV(Homepage, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 257,\n columnNumber: 3\n}, this), document.getElementById('root')); //Functions below this line are for calculating data for\n//other functions\n\nfunction date() {\n let currentDate = new Date();\n let dateOptions = {\n weekday: \"long\",\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\"\n };\n let date = currentDate.toLocaleDateString(\"en-GB\", dateOptions);\n return date;\n}\n\nfunction fixDigits(k) {\n if (k < 10) {\n return \"0\" + k;\n } else {\n return k;\n }\n}\n\nfunction greet() {\n let currentTime = new Date();\n let greet = Math.floor(currentTime.getHours() / 6);\n let easterEggChance = Math.floor(Math.random() * 100);\n\n let greetings = require('./messages.json');\n\n let timeBased = [];\n let easterEggs = [];\n\n for (var i = 0; i < greetings.messages.length; i++) {\n if (greetings.messages[i].easteregg === \"FALSE\") {\n timeBased = timeBased.concat(greetings.messages[i]);\n } else {\n easterEggs = easterEggs.concat(greetings.messages[i]);\n }\n }\n\n if (easterEggChance > 10) {\n return timeBased[greet].message;\n } else {\n let easterEggText = Math.floor(Math.random() * easterEggs.length);\n return easterEggs[easterEggText].message;\n }\n}\n\nfunction Clock() {\n _s();\n\n const [date, setDate] = useState(new Date());\n\n function refreshClock() {\n setDate(new Date());\n }\n\n useEffect(() => {\n const timerId = setInterval(refreshClock, 1000);\n return function cleanup() {\n clearInterval(timerId);\n };\n }, []);\n var hour = date.getHours();\n var minutes = date.getMinutes(); //var seconds = date.getSeconds();\n\n var midday = \"AM\";\n midday = hour >= 12 ? \"PM\" : \"AM\";\n hour = hour === 0 ? 12 : hour > 12 ? hour - 12 : hour;\n minutes = fixDigits(minutes); //seconds = fixDigits(seconds);\n\n let time = hour + \":\" + minutes + \" \" + midday;\n return /*#__PURE__*/_jsxDEV(\"h2\", {\n id: \"clock\",\n children: time\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 328,\n columnNumber: 5\n }, this);\n}\n\n_s(Clock, \"Gqi45WOZhU2c0BLYX0HoJeiR0fk=\");\n\n_c12 = Clock;\n\nfunction getApps() {\n let applications = require('./apps.json');\n\n return applications;\n}\n\nfunction getLinks() {\n let links = require('./links.json');\n\n return links;\n}\n\nfunction getProviders() {\n let providers = require('./providers.json');\n\n return providers;\n}\n\nfunction getThemes() {\n let themes = require('./themes.json');\n\n return themes;\n}\n\nfunction updateTheme(e) {\n var themes = getThemes();\n var themeName = e.target.innerHTML.toLowerCase();\n var index = themes.themes.findIndex(function (item, i) {\n return item.name === themeName;\n });\n console.log(themes.themes[index]);\n localStorage.setItem(\"image-background\", themes.themes[index].imagebackground);\n localStorage.setItem(\"color-background\", themes.themes[index].colorbackground);\n localStorage.setItem(\"color-search-background\", themes.themes[index].colorserachbackground);\n localStorage.setItem(\"color-text-pri\", themes.themes[index].colortextpri);\n localStorage.setItem(\"color-text-acc\", themes.themes[index].colortextacc);\n localStorage.setItem(\"color-border\", themes.themes[index].colorborder); //document.documentElement.style.setProperty(prop, `var(--${themeName}${prop.substring(10)})`);\n\n setTheme();\n}\n\nfunction setTheme() {\n setValueFromLocalStorage('image-background');\n setValueFromLocalStorage('color-background');\n setValueFromLocalStorage('color-search-background');\n setValueFromLocalStorage('color-text-pri');\n setValueFromLocalStorage('color-text-acc');\n setValueFromLocalStorage('color-border');\n setValueFromLocalStorage('content-display');\n}\n\nfunction handleKeyPress(e) {\n var sindex = 0;\n var cycle = false;\n var key = e.keyCode || e.which;\n var text = e.target.value.replaceAll(\"+\", \"%2B\");\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n\n if (key == 13) {\n // Search functions\n search(text);\n }\n\n if (key == 9) {\n // Tab Completion Functions\n e.preventDefault();\n e.stopPropagation();\n\n if (text[0] === ';') {\n switch (option) {\n case 't':\n var streamers = ['admiralbahroo', 'moonmoon_ow', 'witwix'];\n\n if (!subtext || cycle) {\n cycle = true;\n if (sindex > streamers.length - 1) sindex = 0;\n document.getElementById(\"keywords\").value = ';t ' + streamers[sindex++];\n return;\n }\n\n for (var streamer of streamers) {\n if (subtext === streamer.substr(0, subtext.length)) {\n document.getElementById(\"keywords\").value = ';t ' + streamer;\n return;\n }\n }\n\n break;\n }\n }\n }\n\n if (key == 32) {\n //Space to go to search\n updateLabel(text);\n }\n\n sindex = 0;\n cycle = false;\n updateLabel(text);\n}\n\nfunction updateLabel(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n\n if (text[0] === '/') {\n // if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n document.getElementById(\"searchType\").innerHTML = \"Allmusic search\";\n break;\n\n case \"d\":\n document.getElementById(\"searchType\").innerHTML = \"Duck Duck Go search\";\n break;\n\n case \"di\":\n document.getElementById(\"searchType\").innerHTML = \"Discogs search\";\n break;\n\n case \"i\":\n document.getElementById(\"searchType\").innerHTML = \"IMDB search\";\n break;\n\n case \"m\":\n document.getElementById(\"searchType\").innerHTML = \"TheMovieDB search\";\n break;\n\n case \"r\":\n document.getElementById(\"searchType\").innerHTML = \"Reddit search\";\n break;\n\n case \"q\":\n document.getElementById(\"searchType\").innerHTML = \"Qwant search\";\n break;\n\n case \"so\":\n document.getElementById(\"searchType\").innerHTML = \"Soundcloud search\";\n break;\n\n case \"s\":\n document.getElementById(\"searchType\").innerHTML = \"Spotify search\";\n break;\n\n case \"tv\":\n document.getElementById(\"searchType\").innerHTML = \"TheTVDB search\";\n break;\n\n case \"t\":\n document.getElementById(\"searchType\").innerHTML = \"Trakt search\";\n break;\n\n case \"y\":\n document.getElementById(\"searchType\").innerHTML = \"YouTube search\";\n break;\n\n case \"w\":\n document.getElementById(\"searchType\").innerHTML = \"Wikipedia search\";\n break;\n\n case \"p\":\n document.getElementById(\"searchType\").innerHTML = \"Plex search\";\n break;\n\n case \"rt\":\n document.getElementById(\"searchType\").innerHTML = \"Rotten Tomatoes search\";\n break;\n\n default:\n document.getElementById(\"searchType\").innerHTML = \"Invalid search\";\n break;\n }\n } else {\n document.getElementById(\"searchType\").innerHTML = \"Google search\";\n }\n}\n\nfunction search(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n\n if (text[0] === '/') {\n if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n window.location = \"https://www.allmusic.com/search/all/\" + subtext;\n break;\n\n case \"d\":\n window.location = \"https://duckduckgo.com/?q=\" + subtext;\n break;\n\n case \"di\":\n window.location = \"https://www.discogs.com/search/?q=\" + subtext;\n break;\n\n case \"i\":\n window.location = \"https://www.imdb.com/find?q=\" + subtext;\n break;\n\n case \"m\":\n window.location = \"https://www.themoviedb.org/search?query=\" + subtext;\n break;\n\n case \"r\":\n window.location = \"https://www.reddit.com/search?q=\" + subtext;\n break;\n\n case \"q\":\n window.location = \"https://www.qwant.com/?q=\" + subtext;\n break;\n\n case \"so\":\n window.location = \"https://soundcloud.com/search?q=\" + subtext;\n break;\n\n case \"s\":\n window.location = \"https://open.spotify.com/search/results/\" + subtext;\n break;\n\n case \"t\":\n window.location = \"https://trakt.tv/search?query=\" + subtext;\n break;\n\n case \"tv\":\n window.location = \"https://www.thetvdb.com/search?query=\" + subtext;\n break;\n\n case \"y\":\n window.location = \"https://www.youtube.com/results?search_query=\" + subtext;\n break;\n\n case \"w\":\n window.location = \"https://en.wikipedia.org/w/index.php?search=\" + subtext;\n break;\n\n case \"p\":\n window.location = \"https://app.plex.tv/desktop/#!/search?query=\" + subtext;\n break;\n\n case \"rt\":\n window.location = \"https://www.rottentomatoes.com/search?search=\" + subtext;\n break;\n }\n } else {\n var option = text.substr(1);\n\n switch (option) {\n case \"d\":\n window.location = \"https://www.duckduckgo.com\";\n break;\n\n case \"y\":\n window.location = \"https://www.youtube.com\";\n break;\n\n case \"r\":\n window.location = \"https://reddit.com\";\n break;\n\n case \"s\":\n window.location = \"https://open.spotify.com\";\n break;\n }\n }\n } else if (validURL(text)) {\n if (containsProtocol(text)) window.location = text;else window.location = \"https://\" + text;\n } else {\n window.location = \"https://www.google.com/search?q=\" + text;\n }\n} // Source: https://stackoverflow.com/questions/5717093/check-if-a-javascript-string-is-a-url\n\n\nfunction validURL(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/)?' + // protocol\n '((([a-z\\\\d]([a-z\\\\d-]*[a-z\\\\d])*)\\\\.)+[a-z]{2,}|' + // domain name\n '((\\\\d{1,3}\\\\.){3}\\\\d{1,3}))' + // OR ip (v4) address\n '(\\\\:\\\\d+)?(\\\\/[-a-z\\\\d%_.~+]*)*' + // port and path\n '(\\\\?[;&a-z\\\\d%_.~+=-]*)?' + // query string\n '(\\\\#[-a-z\\\\d_]*)?$', 'i'); // fragment locator\n\n return !!pattern.test(str);\n}\n\nfunction containsProtocol(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/){1}.*', 'i');\n return !!pattern.test(str);\n}\n\nString.prototype.replaceAll = function (search, replacement) {\n var target = this;\n return target.split(search).join(replacement);\n};\n\nfunction udpateDisplayedItems(e) {//console.log(e.target.checked);\n //localStorage.setItem('contenttype', box.checked);\n}\n\nvar _c, _c2, _c3, _c4, _c5, _c6, _c7, _c8, _c9, _c10, _c11, _c12;\n\n$RefreshReg$(_c, \"Homepage\");\n$RefreshReg$(_c2, \"Search\");\n$RefreshReg$(_c3, \"Header\");\n$RefreshReg$(_c4, \"Applications\");\n$RefreshReg$(_c5, \"App\");\n$RefreshReg$(_c6, \"Bookmarks\");\n$RefreshReg$(_c7, \"LinkGroups\");\n$RefreshReg$(_c8, \"LinkItem\");\n$RefreshReg$(_c9, \"ModalMenu\");\n$RefreshReg$(_c10, \"Provider\");\n$RefreshReg$(_c11, \"ModalInit\");\n$RefreshReg$(_c12, \"Clock\");","map":{"version":3,"sources":["/home/seanedmunds/dev/home-page/src/index.js"],"names":["React","useState","useEffect","ReactDOM","setValueFromLocalStorage","property","value","localStorage","getItem","setValue","document","documentElement","style","setProperty","input","querySelector","replace","Homepage","setTheme","date","greet","Search","handleKeyPress","Header","props","Applications","appList","getApps","items","i","apps","length","push","name","url","icon","NSFW","App","classNameType","hrefUrl","iconName","Bookmarks","bookmarkList","getLinks","bookmarks","category","links","LinkGroups","LinkItem","link","ModalMenu","providers","getProviders","updateTheme","udpateDisplayedItems","Provider","provider","prefix","ModalInit","render","getElementById","currentDate","Date","dateOptions","weekday","year","month","day","toLocaleDateString","fixDigits","k","currentTime","Math","floor","getHours","easterEggChance","random","greetings","require","timeBased","easterEggs","messages","easteregg","concat","message","easterEggText","Clock","setDate","refreshClock","timerId","setInterval","cleanup","clearInterval","hour","minutes","getMinutes","midday","time","applications","getThemes","themes","e","themeName","target","innerHTML","toLowerCase","index","findIndex","item","console","log","setItem","imagebackground","colorbackground","colorserachbackground","colortextpri","colortextacc","colorborder","sindex","cycle","key","keyCode","which","text","replaceAll","option","substr","indexOf","subtext","search","preventDefault","stopPropagation","streamers","streamer","updateLabel","window","location","validURL","containsProtocol","str","pattern","RegExp","test","String","prototype","replacement","split","join"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { useState, useEffect } from 'react';\nimport ReactDOM from 'react-dom';\n//import { unstable_createPortal } from 'react-dom';\nimport './index.css';\n\nconst setValueFromLocalStorage = property => {\n let value = localStorage.getItem(property);\n setValue(property, value);\n};\nconst setValue = (property, value) => {\n if (value) {\n document.documentElement.style.setProperty(`--${property}`, value);\n\n const input = document.querySelector(`#${property}`);\n if (input) {\n value = value.replace('px', '');\n input.value = value;\n }\n }\n};\n\nfunction Homepage() {\n setTheme();\n return (\n \n \n \n
\n \n \n
\n \n \n \n
\n \n \n
\n \n \n
\n \n );\n}\n\nfunction Search() {\n return (\n \n )\n}\n\nfunction Header(props) {\n return (\n \n );\n}\n\nfunction Applications() {\n let appList = getApps();\n var items = [];\n for (var i = 0; i < appList.apps.length; i++) {\n items.push(\n \n );\n }\n return (\n \n Applications
\n \n {items}\n
\n \n );\n}\n\nfunction App(props) {\n let classNameType = props.NSFW + \"-content\";\n let hrefUrl = \"https://\" + props.url;\n let iconName = \"mdi-\" + props.icon;\n return (\n \n );\n}\n\nfunction Bookmarks() {\n let bookmarkList = getLinks();\n var items = [];\n for (var i = 0; i < bookmarkList.bookmarks.length; i++) {\n items.push(\n \n );\n }\n return (\n \n Bookmarks
\n \n {items}\n
\n \n );\n}\n\nfunction LinkGroups(props) {\n var items = [];\n for (var i = 0; i < props.links.length; i++) {\n items.push(\n \n );\n }\n return (\n \n
{props.category}
\n {items}\n \n );\n}\n\nfunction LinkItem(props) {\n return (\n \n );\n}\n\nfunction ModalMenu() {\n var providers = getProviders();\n var items = [];\n for (var i = 0; i < providers.providers.length; i++) {\n items.push(\n \n );\n }\n return (\n \n \n \n\n
Color themes
\n\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n\n\n
Search options
\n
\n \n \n \n | Website | \n Prefix | \n
\n {items}\n \n
\n \n\n \n
\n \n );\n}\n\nfunction Provider(props) {\n return (\n \n | {props.provider.name} | \n {props.provider.prefix} | \n
\n );\n}\n\nfunction ModalInit() {\n return (\n \n );\n}\n\nReactDOM.render(\n ,\n document.getElementById('root')\n);\n\n//Functions below this line are for calculating data for\n//other functions\n\nfunction date() {\n let currentDate = new Date();\n let dateOptions = {\n weekday: \"long\",\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\"\n };\n let date = currentDate.toLocaleDateString(\"en-GB\", dateOptions);\n return date;\n}\nfunction fixDigits(k) {\n if (k < 10) {\n return \"0\" + k;\n }\n else {\n return k;\n }\n}\nfunction greet() {\n let currentTime = new Date();\n let greet = Math.floor(currentTime.getHours() / 6);\n let easterEggChance = Math.floor(Math.random() * 100);\n let greetings = require('./messages.json');\n let timeBased = [];\n let easterEggs = [];\n for (var i = 0; i < greetings.messages.length; i++) {\n if (greetings.messages[i].easteregg === \"FALSE\") {\n timeBased = timeBased.concat(greetings.messages[i]);\n } else {\n easterEggs = easterEggs.concat(greetings.messages[i]);\n }\n }\n if (easterEggChance > 10) {\n return timeBased[greet].message;\n } else {\n let easterEggText = Math.floor(Math.random() * easterEggs.length);\n return easterEggs[easterEggText].message;\n }\n}\nfunction Clock() {\n const [date, setDate] = useState(new Date());\n\n function refreshClock() {\n setDate(new Date());\n }\n useEffect(() => {\n const timerId = setInterval(refreshClock, 1000);\n return function cleanup() {\n clearInterval(timerId);\n };\n }, []);\n\n var hour = date.getHours();\n var minutes = date.getMinutes();\n //var seconds = date.getSeconds();\n var midday = \"AM\";\n midday = (hour >= 12) ? \"PM\" : \"AM\";\n hour = (hour === 0) ? 12 : ((hour > 12) ? (hour - 12) : hour);\n minutes = fixDigits(minutes);\n //seconds = fixDigits(seconds);\n let time = hour + \":\" + minutes + \" \" + midday;\n\n return (\n {time}
\n\n );\n}\nfunction getApps() {\n let applications = require('./apps.json');\n return applications;\n}\nfunction getLinks() {\n let links = require('./links.json');\n return links;\n}\nfunction getProviders() {\n let providers = require('./providers.json');\n return providers;\n}\nfunction getThemes() {\n let themes = require('./themes.json');\n return themes;\n}\n\nfunction updateTheme(e) {\n var themes = getThemes();\n var themeName = e.target.innerHTML.toLowerCase();\n var index = themes.themes.findIndex(function(item, i){\n return item.name === themeName\n });\n console.log(themes.themes[index]);\n localStorage.setItem(\"image-background\", themes.themes[index].imagebackground);\n localStorage.setItem(\"color-background\", themes.themes[index].colorbackground);\n localStorage.setItem(\"color-search-background\", themes.themes[index].colorserachbackground);\n localStorage.setItem(\"color-text-pri\",themes.themes[index].colortextpri);\n localStorage.setItem(\"color-text-acc\", themes.themes[index].colortextacc);\n localStorage.setItem(\"color-border\", themes.themes[index].colorborder);\n \n //document.documentElement.style.setProperty(prop, `var(--${themeName}${prop.substring(10)})`);\n setTheme();\n}\n\nfunction setTheme() {\n setValueFromLocalStorage('image-background');\n setValueFromLocalStorage('color-background');\n setValueFromLocalStorage('color-search-background');\n setValueFromLocalStorage('color-text-pri');\n setValueFromLocalStorage('color-text-acc');\n setValueFromLocalStorage('color-border');\n setValueFromLocalStorage('content-display');\n}\n\nfunction handleKeyPress(e) {\n var sindex = 0;\n var cycle = false;\n var key = e.keyCode || e.which;\n var text = e.target.value.replaceAll(\"+\", \"%2B\");\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n if (key == 13) { // Search functions\n search(text);\n }\n if (key == 9) { // Tab Completion Functions\n e.preventDefault();\n e.stopPropagation();\n if (text[0] === ';') {\n switch (option) {\n case 't':\n var streamers = ['admiralbahroo', 'moonmoon_ow', 'witwix'];\n if (!subtext || cycle) {\n cycle = true;\n if (sindex > streamers.length - 1) sindex = 0;\n document.getElementById(\"keywords\").value = ';t ' + streamers[sindex++];\n return;\n }\n for (var streamer of streamers) {\n if (subtext === streamer.substr(0, subtext.length)) {\n document.getElementById(\"keywords\").value = ';t ' + streamer;\n return;\n }\n }\n break;\n }\n }\n }\n if(key == 32){ //Space to go to search\nupdateLabel(text);\n }\n sindex = 0;\n cycle = false;\n updateLabel(text);\n}\n\nfunction updateLabel(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n if (text[0] === '/') {\n// if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n document.getElementById(\"searchType\").innerHTML = \"Allmusic search\";\n break;\n case \"d\":\n document.getElementById(\"searchType\").innerHTML = \"Duck Duck Go search\";\n break;\n case \"di\":\n document.getElementById(\"searchType\").innerHTML = \"Discogs search\";\n break;\n case \"i\":\n document.getElementById(\"searchType\").innerHTML = \"IMDB search\";\n break;\n case \"m\":\n document.getElementById(\"searchType\").innerHTML = \"TheMovieDB search\";\n break;\n case \"r\":\n document.getElementById(\"searchType\").innerHTML = \"Reddit search\";\n break;\n case \"q\":\n document.getElementById(\"searchType\").innerHTML = \"Qwant search\";\n break;\n case \"so\":\n document.getElementById(\"searchType\").innerHTML = \"Soundcloud search\";\n break;\n case \"s\":\n document.getElementById(\"searchType\").innerHTML = \"Spotify search\";\n break;\n case \"tv\":\n document.getElementById(\"searchType\").innerHTML = \"TheTVDB search\";\n break;\n case \"t\":\n document.getElementById(\"searchType\").innerHTML = \"Trakt search\";\n break;\n case \"y\":\n document.getElementById(\"searchType\").innerHTML = \"YouTube search\";\n break;\n case \"w\":\n document.getElementById(\"searchType\").innerHTML = \"Wikipedia search\";\n break;\n case \"p\":\n document.getElementById(\"searchType\").innerHTML = \"Plex search\";\n break;\n case \"rt\":\n document.getElementById(\"searchType\").innerHTML = \"Rotten Tomatoes search\";\n break;\n default:\n document.getElementById(\"searchType\").innerHTML = \"Invalid search\";\n break;\n }\n}else {\n document.getElementById(\"searchType\").innerHTML = \"Google search\";\n }\n}\n\nfunction search(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n if (text[0] === '/') {\n if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n window.location = \"https://www.allmusic.com/search/all/\" + subtext;\n break;\n case \"d\":\n window.location = \"https://duckduckgo.com/?q=\" + subtext;\n break;\n case \"di\":\n window.location = \"https://www.discogs.com/search/?q=\" + subtext;\n break;\n case \"i\":\n window.location = \"https://www.imdb.com/find?q=\" + subtext;\n break;\n case \"m\":\n window.location = \"https://www.themoviedb.org/search?query=\" + subtext;\n break;\n case \"r\":\n window.location = \"https://www.reddit.com/search?q=\" + subtext;\n break;\n case \"q\":\n window.location = \"https://www.qwant.com/?q=\" + subtext;\n break;\n case \"so\":\n window.location = \"https://soundcloud.com/search?q=\" + subtext;\n break;\n case \"s\":\n window.location = \"https://open.spotify.com/search/results/\" + subtext;\n break;\n case \"t\":\n window.location = \"https://trakt.tv/search?query=\" + subtext;\n break;\n case \"tv\":\n window.location = \"https://www.thetvdb.com/search?query=\" + subtext;\n break;\n case \"y\":\n window.location = \"https://www.youtube.com/results?search_query=\" + subtext;\n break;\n case \"w\":\n window.location = \"https://en.wikipedia.org/w/index.php?search=\" + subtext;\n break;\n case \"p\":\n window.location = \"https://app.plex.tv/desktop/#!/search?query=\" + subtext;\n break;\n case \"rt\":\n window.location = \"https://www.rottentomatoes.com/search?search=\" + subtext;\n break;\n }\n } else {\n var option = text.substr(1);\n switch (option) {\n case \"d\":\n window.location = \"https://www.duckduckgo.com\";\n break;\n case \"y\":\n window.location = \"https://www.youtube.com\";\n break;\n case \"r\":\n window.location = \"https://reddit.com\";\n break;\n case \"s\":\n window.location = \"https://open.spotify.com\";\n break;\n }\n }\n } else if (validURL(text)) {\n if (containsProtocol(text))\n window.location = text;\n else\n window.location = \"https://\" + text;\n } else {\n window.location = \"https://www.google.com/search?q=\" + text;\n }\n}\n\n// Source: https://stackoverflow.com/questions/5717093/check-if-a-javascript-string-is-a-url\nfunction validURL(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/)?' + // protocol\n '((([a-z\\\\d]([a-z\\\\d-]*[a-z\\\\d])*)\\\\.)+[a-z]{2,}|' + // domain name\n '((\\\\d{1,3}\\\\.){3}\\\\d{1,3}))' + // OR ip (v4) address\n '(\\\\:\\\\d+)?(\\\\/[-a-z\\\\d%_.~+]*)*' + // port and path\n '(\\\\?[;&a-z\\\\d%_.~+=-]*)?' + // query string\n '(\\\\#[-a-z\\\\d_]*)?$', 'i'); // fragment locator\n return !!pattern.test(str);\n}\n\nfunction containsProtocol(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/){1}.*', 'i');\n return !!pattern.test(str);\n}\n\nString.prototype.replaceAll = function(search, replacement) {\n var target = this;\n return target.split(search).join(replacement);\n};\n\nfunction udpateDisplayedItems(e) {\n //console.log(e.target.checked);\n //localStorage.setItem('contenttype', box.checked);\n}"]},"metadata":{},"sourceType":"module"}
\ No newline at end of file
diff --git a/node_modules/.cache/babel-loader/c74ae255bfc83380e1d4ceaa9dab48d0.json b/node_modules/.cache/babel-loader/c74ae255bfc83380e1d4ceaa9dab48d0.json
new file mode 100644
index 00000000..5a313fab
--- /dev/null
+++ b/node_modules/.cache/babel-loader/c74ae255bfc83380e1d4ceaa9dab48d0.json
@@ -0,0 +1 @@
+{"ast":null,"code":"var _jsxFileName = \"/home/seanedmunds/dev/home-page/src/index.js\",\n _s = $RefreshSig$();\n\nimport React from 'react';\nimport { useState, useEffect } from 'react';\nimport ReactDOM from 'react-dom';\nimport './index.css';\nimport { jsxDEV as _jsxDEV } from \"react/jsx-dev-runtime\";\n\nconst setValueFromLocalStorage = property => {\n let value = localStorage.getItem(property);\n setValue(property, value);\n};\n\nconst setValue = (property, value) => {\n if (value) {\n document.documentElement.style.setProperty(`--${property}`, value);\n const input = document.querySelector(`#${property}`);\n\n if (input) {\n value = value.replace('px', '');\n input.value = value;\n }\n }\n};\n\nfunction Homepage() {\n setTheme();\n return /*#__PURE__*/_jsxDEV(\"main\", {\n id: \"container\",\n className: \"fade\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Search, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 28,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 27,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Header, {\n date: date(),\n greet: greet()\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 31,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 30,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Applications, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 37,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 36,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Bookmarks, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 40,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 39,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(ModalMenu, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 43,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 42,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(ModalInit, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 46,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 45,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 26,\n columnNumber: 5\n }, this);\n}\n\n_c = Homepage;\n\nfunction Search() {\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"search\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"abackground\",\n children: [/*#__PURE__*/_jsxDEV(\"input\", {\n name: \"keywords\",\n type: \"text\",\n className: \"keyword\",\n id: \"keywords\",\n size: \"50\",\n spellCheck: \"true\",\n placeholder: \"\"\n /*onFocus={this.placeholder = \"\"} onBlur={this.placeholder = ''}*/\n ,\n autoComplete: \"off\",\n autoFocus: true,\n onKeyUp: handleKeyPress\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 56,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n id: \"searchType\",\n className: \"Input-label\",\n children: \"Google search\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 57,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 55,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 54,\n columnNumber: 5\n }, this);\n}\n\n_c2 = Search;\n\nfunction Header(props) {\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"header\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n id: \"greeting_block\",\n children: /*#__PURE__*/_jsxDEV(\"h1\", {\n id: \"header_greet\",\n children: props.greet\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 67,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 66,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"date_block\",\n children: [/*#__PURE__*/_jsxDEV(\"h2\", {\n id: \"header_date\",\n children: props.date\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 70,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(Clock, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 71,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 69,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 65,\n columnNumber: 5\n }, this);\n}\n\n_c3 = Header;\n\nfunction Applications() {\n let appList = getApps();\n var items = [];\n\n for (var i = 0; i < appList.apps.length; i++) {\n var safe = appList.apps[i].NSFW;\n var NSFWEnabled = localStorage.getItem(\"contenttype\");\n\n if (safe === \"SAFE\") {\n items.push( /*#__PURE__*/_jsxDEV(App, {\n name: appList.apps[i].name,\n url: appList.apps[i].url,\n icon: appList.apps[i].icon,\n NSFW: appList.apps[i].NSFW\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 85,\n columnNumber: 9\n }, this));\n } else if (safe === \"NSFW\" && NSFWEnabled) {\n items.push( /*#__PURE__*/_jsxDEV(App, {\n name: appList.apps[i].name,\n url: appList.apps[i].url,\n icon: appList.apps[i].icon,\n NSFW: appList.apps[i].NSFW\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 95,\n columnNumber: 9\n }, this));\n } else {}\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"apps\",\n children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n children: \"Applications\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 110,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"apps_loop\",\n children: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 111,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 109,\n columnNumber: 5\n }, this);\n}\n\n_c4 = Applications;\n\nfunction App(props) {\n let classNameType = props.NSFW + \"-content\";\n let hrefUrl = \"https://\" + props.url;\n let iconName = \"mdi-\" + props.icon;\n return /*#__PURE__*/_jsxDEV(\"div\", {\n className: classNameType,\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: hrefUrl,\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_item\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_icon\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify icon\",\n \"data-icon\": iconName\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 128,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 127,\n columnNumber: 13\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_text\",\n children: [/*#__PURE__*/_jsxDEV(\"span\", {\n id: \"app-name\",\n children: props.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 131,\n columnNumber: 15\n }, this), /*#__PURE__*/_jsxDEV(\"span\", {\n id: \"app-address\",\n children: props.url\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 132,\n columnNumber: 15\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 130,\n columnNumber: 13\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 126,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 125,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 124,\n columnNumber: 7\n }, this);\n}\n\n_c5 = App;\n\nfunction Bookmarks() {\n let bookmarkList = getLinks();\n var items = [];\n\n for (var i = 0; i < bookmarkList.bookmarks.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(LinkGroups, {\n category: bookmarkList.bookmarks[i].category,\n links: bookmarkList.bookmarks[i].links\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 145,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"links\",\n children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n children: \"Bookmarks\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 154,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"links_loop\",\n children: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 155,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 153,\n columnNumber: 5\n }, this);\n}\n\n_c6 = Bookmarks;\n\nfunction LinkGroups(props) {\n var items = [];\n\n for (var i = 0; i < props.links.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(LinkItem, {\n link: props.links[i]\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 166,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"links_item\",\n children: [/*#__PURE__*/_jsxDEV(\"h4\", {\n children: props.category\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 174,\n columnNumber: 7\n }, this), items]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 173,\n columnNumber: 5\n }, this);\n}\n\n_c7 = LinkGroups;\n\nfunction LinkItem(props) {\n return /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: props.link.url,\n className: \"theme_color-border theme_text-select\",\n children: props.link.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 183,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 182,\n columnNumber: 5\n }, this);\n}\n\n_c8 = LinkItem;\n\nfunction ModalMenu() {\n var providers = getProviders();\n var items = [];\n var isChecked = localStorage.getItem(\"contenttype\");\n\n for (var i = 0; i < providers.providers.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(Provider, {\n provider: providers.providers[i]\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 194,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"modal\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n children: [/*#__PURE__*/_jsxDEV(\"header\", {\n id: \"modal-header\",\n children: [/*#__PURE__*/_jsxDEV(\"h1\", {\n children: \"Options\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 204,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n href: \"#\",\n title: \"Close\",\n className: \"modal-close\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-close\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 206,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 205,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 203,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"h2\", {\n children: \"Color themes\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 210,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"modal-theme\",\n children: [/*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"blackboard\",\n className: \"theme-button theme-blackboard\",\n onClick: updateTheme,\n children: \"Blackboard\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 213,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"gazette\",\n className: \"theme-button theme-gazette\",\n onClick: updateTheme,\n children: \"Gazette\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 214,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"espresso\",\n className: \"theme-button theme-espresso\",\n onClick: updateTheme,\n children: \"Espresso\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 215,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cab\",\n className: \"theme-button theme-cab\",\n onClick: updateTheme,\n children: \"Cab\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 216,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cloud\",\n className: \"theme-button theme-cloud\",\n onClick: updateTheme,\n children: \"Cloud\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 217,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"lime\",\n className: \"theme-button theme-lime\",\n onClick: updateTheme,\n children: \"Lime\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 218,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"passion\",\n className: \"theme-button theme-passion\",\n onClick: updateTheme,\n children: \"Passion\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 219,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"blues\",\n className: \"theme-button theme-blues\",\n onClick: updateTheme,\n children: \"Blues\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 220,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"chalk\",\n className: \"theme-button theme-chalk\",\n onClick: updateTheme,\n children: \"Chalk\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 221,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"tron\",\n className: \"theme-button theme-tron\",\n onClick: updateTheme,\n children: \"Tron\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 222,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"paper\",\n className: \"theme-button theme-paper\",\n onClick: updateTheme,\n children: \"Paper\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 223,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cyberpunk\",\n className: \"theme-button theme-cyberpunk\",\n onClick: updateTheme,\n children: \"Cyberpunk\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 224,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"quadra\",\n className: \"theme-button theme-panam\",\n onClick: updateTheme,\n children: \"Quadra\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 225,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"panam\",\n className: \"theme-button theme-panam\",\n onClick: updateTheme,\n children: \"Panam\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 226,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"touch\",\n className: \"theme-button theme-touch\",\n onClick: updateTheme,\n children: \"Touch\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 227,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"peek\",\n className: \"theme-button theme-peek\",\n onClick: updateTheme,\n children: \"Peek\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 228,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 212,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"h2\", {\n children: \"Search options\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 232,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"providers\",\n children: /*#__PURE__*/_jsxDEV(\"table\", {\n children: /*#__PURE__*/_jsxDEV(\"tbody\", {\n children: [/*#__PURE__*/_jsxDEV(\"tr\", {\n children: [/*#__PURE__*/_jsxDEV(\"th\", {\n children: \"Website\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 237,\n columnNumber: 19\n }, this), /*#__PURE__*/_jsxDEV(\"th\", {\n children: \"Prefix\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 238,\n columnNumber: 19\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 236,\n columnNumber: 17\n }, this), items]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 235,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 234,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 233,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"header\", {\n id: \"modal-footer\",\n children: [/*#__PURE__*/_jsxDEV(\"a\", {\n href: \"https://github.com/jeroenpardon/\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-github-box\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 246,\n columnNumber: 54\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 246,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n href: \"https://materialdesignicons.com/\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-material-design\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 247,\n columnNumber: 54\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 247,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(HideButton, {\n checked: isChecked\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 248,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 245,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 202,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 201,\n columnNumber: 5\n }, this);\n}\n\n_c9 = ModalMenu;\n\nfunction HideButton(props) {\n console.log(props.checked);\n return /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"sneaky\",\n children: [/*#__PURE__*/_jsxDEV(\"input\", {\n type: \"checkbox\",\n id: \"contenttype\",\n onChange: udpateDisplayedItems,\n defaultChecked: props.checked\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 260,\n columnNumber: 29\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n for: \"contenttype\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-domino-mask\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 261,\n columnNumber: 30\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 261,\n columnNumber: 5\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 260,\n columnNumber: 5\n }, this);\n}\n\n_c10 = HideButton;\n\nfunction Provider(props) {\n return /*#__PURE__*/_jsxDEV(\"tr\", {\n children: [/*#__PURE__*/_jsxDEV(\"td\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: props.provider.url,\n children: props.provider.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 268,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 268,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"td\", {\n children: props.provider.prefix\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 269,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 267,\n columnNumber: 5\n }, this);\n}\n\n_c11 = Provider;\n\nfunction ModalInit() {\n setDisplayedItems();\n return /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"modal_init\",\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n className: \"btn\",\n href: \"#modal\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify icon\",\n \"data-icon\": \"mdi-xbox-controller-menu\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 279,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 278,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 277,\n columnNumber: 5\n }, this);\n}\n\n_c12 = ModalInit;\nReactDOM.render( /*#__PURE__*/_jsxDEV(Homepage, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 286,\n columnNumber: 3\n}, this), document.getElementById('root')); //Functions below this line are for calculating data for\n//other functions\n\nfunction date() {\n let currentDate = new Date();\n let dateOptions = {\n weekday: \"long\",\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\"\n };\n let date = currentDate.toLocaleDateString(\"en-GB\", dateOptions);\n return date;\n}\n\nfunction fixDigits(k) {\n if (k < 10) {\n return \"0\" + k;\n } else {\n return k;\n }\n}\n\nfunction greet() {\n let currentTime = new Date();\n let greet = Math.floor(currentTime.getHours() / 6);\n let easterEggChance = Math.floor(Math.random() * 100);\n\n let greetings = require('./messages.json');\n\n let timeBased = [];\n let easterEggs = [];\n\n for (var i = 0; i < greetings.messages.length; i++) {\n if (greetings.messages[i].easteregg === \"FALSE\") {\n timeBased = timeBased.concat(greetings.messages[i]);\n } else {\n easterEggs = easterEggs.concat(greetings.messages[i]);\n }\n }\n\n if (easterEggChance > 10) {\n return timeBased[greet].message;\n } else {\n let easterEggText = Math.floor(Math.random() * easterEggs.length);\n return easterEggs[easterEggText].message;\n }\n}\n\nfunction Clock() {\n _s();\n\n const [date, setDate] = useState(new Date());\n\n function refreshClock() {\n setDate(new Date());\n }\n\n useEffect(() => {\n const timerId = setInterval(refreshClock, 1000);\n return function cleanup() {\n clearInterval(timerId);\n };\n }, []);\n var hour = date.getHours();\n var minutes = date.getMinutes(); //var seconds = date.getSeconds();\n\n var midday = \"AM\";\n midday = hour >= 12 ? \"PM\" : \"AM\";\n hour = hour === 0 ? 12 : hour > 12 ? hour - 12 : hour;\n minutes = fixDigits(minutes); //seconds = fixDigits(seconds);\n\n let time = hour + \":\" + minutes + \" \" + midday;\n return /*#__PURE__*/_jsxDEV(\"h2\", {\n id: \"clock\",\n children: time\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 357,\n columnNumber: 5\n }, this);\n}\n\n_s(Clock, \"Gqi45WOZhU2c0BLYX0HoJeiR0fk=\");\n\n_c13 = Clock;\n\nfunction getApps() {\n let applications = require('./apps.json');\n\n return applications;\n}\n\nfunction getLinks() {\n let links = require('./links.json');\n\n return links;\n}\n\nfunction getProviders() {\n let providers = require('./providers.json');\n\n return providers;\n}\n\nfunction getThemes() {\n let themes = require('./themes.json');\n\n return themes;\n}\n\nfunction updateTheme(e) {\n var themes = getThemes();\n var themeName = e.target.innerHTML.toLowerCase();\n var index = themes.themes.findIndex(function (item, i) {\n return item.name == themeName;\n });\n localStorage.setItem(\"image-background\", themes.themes[index].imagebackground);\n localStorage.setItem(\"color-background\", themes.themes[index].colorbackground);\n localStorage.setItem(\"color-search-background\", themes.themes[index].colorserachbackground);\n localStorage.setItem(\"color-text-pri\", themes.themes[index].colortextpri);\n localStorage.setItem(\"color-text-acc\", themes.themes[index].colortextacc);\n localStorage.setItem(\"color-border\", themes.themes[index].colorborder); //document.documentElement.style.setProperty(prop, `var(--${themeName}${prop.substring(10)})`);\n\n setTheme();\n}\n\nfunction setTheme() {\n setValueFromLocalStorage('image-background');\n setValueFromLocalStorage('color-background');\n setValueFromLocalStorage('color-search-background');\n setValueFromLocalStorage('color-text-pri');\n setValueFromLocalStorage('color-text-acc');\n setValueFromLocalStorage('color-border');\n setValueFromLocalStorage('content-display');\n}\n\nfunction handleKeyPress(e) {\n var sindex = 0;\n var cycle = false;\n var key = e.keyCode || e.which;\n var text = e.target.value.replaceAll(\"+\", \"%2B\");\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n\n if (key == 13) {\n // Search functions\n search(text);\n }\n\n if (key == 9) {\n // Tab Completion Functions\n e.preventDefault();\n e.stopPropagation();\n\n if (text[0] === ';') {\n switch (option) {\n case 't':\n var streamers = ['admiralbahroo', 'moonmoon_ow', 'witwix'];\n\n if (!subtext || cycle) {\n cycle = true;\n if (sindex > streamers.length - 1) sindex = 0;\n document.getElementById(\"keywords\").value = ';t ' + streamers[sindex++];\n return;\n }\n\n for (var streamer of streamers) {\n if (subtext === streamer.substr(0, subtext.length)) {\n document.getElementById(\"keywords\").value = ';t ' + streamer;\n return;\n }\n }\n\n break;\n }\n }\n }\n\n if (key == 32) {\n //Space to go to search\n updateLabel(text);\n }\n\n sindex = 0;\n cycle = false;\n updateLabel(text);\n}\n\nfunction updateLabel(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n\n if (text[0] === '/') {\n // if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n document.getElementById(\"searchType\").innerHTML = \"Allmusic search\";\n break;\n\n case \"d\":\n document.getElementById(\"searchType\").innerHTML = \"Duck Duck Go search\";\n break;\n\n case \"di\":\n document.getElementById(\"searchType\").innerHTML = \"Discogs search\";\n break;\n\n case \"i\":\n document.getElementById(\"searchType\").innerHTML = \"IMDB search\";\n break;\n\n case \"m\":\n document.getElementById(\"searchType\").innerHTML = \"TheMovieDB search\";\n break;\n\n case \"r\":\n document.getElementById(\"searchType\").innerHTML = \"Reddit search\";\n break;\n\n case \"q\":\n document.getElementById(\"searchType\").innerHTML = \"Qwant search\";\n break;\n\n case \"so\":\n document.getElementById(\"searchType\").innerHTML = \"Soundcloud search\";\n break;\n\n case \"s\":\n document.getElementById(\"searchType\").innerHTML = \"Spotify search\";\n break;\n\n case \"tv\":\n document.getElementById(\"searchType\").innerHTML = \"TheTVDB search\";\n break;\n\n case \"t\":\n document.getElementById(\"searchType\").innerHTML = \"Trakt search\";\n break;\n\n case \"y\":\n document.getElementById(\"searchType\").innerHTML = \"YouTube search\";\n break;\n\n case \"w\":\n document.getElementById(\"searchType\").innerHTML = \"Wikipedia search\";\n break;\n\n case \"p\":\n document.getElementById(\"searchType\").innerHTML = \"Plex search\";\n break;\n\n case \"rt\":\n document.getElementById(\"searchType\").innerHTML = \"Rotten Tomatoes search\";\n break;\n\n default:\n document.getElementById(\"searchType\").innerHTML = \"Invalid search\";\n break;\n }\n } else {\n document.getElementById(\"searchType\").innerHTML = \"Google search\";\n }\n}\n\nfunction search(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n\n if (text[0] === '/') {\n if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n window.location = \"https://www.allmusic.com/search/all/\" + subtext;\n break;\n\n case \"d\":\n window.location = \"https://duckduckgo.com/?q=\" + subtext;\n break;\n\n case \"di\":\n window.location = \"https://www.discogs.com/search/?q=\" + subtext;\n break;\n\n case \"i\":\n window.location = \"https://www.imdb.com/find?q=\" + subtext;\n break;\n\n case \"m\":\n window.location = \"https://www.themoviedb.org/search?query=\" + subtext;\n break;\n\n case \"r\":\n window.location = \"https://www.reddit.com/search?q=\" + subtext;\n break;\n\n case \"q\":\n window.location = \"https://www.qwant.com/?q=\" + subtext;\n break;\n\n case \"so\":\n window.location = \"https://soundcloud.com/search?q=\" + subtext;\n break;\n\n case \"s\":\n window.location = \"https://open.spotify.com/search/results/\" + subtext;\n break;\n\n case \"t\":\n window.location = \"https://trakt.tv/search?query=\" + subtext;\n break;\n\n case \"tv\":\n window.location = \"https://www.thetvdb.com/search?query=\" + subtext;\n break;\n\n case \"y\":\n window.location = \"https://www.youtube.com/results?search_query=\" + subtext;\n break;\n\n case \"w\":\n window.location = \"https://en.wikipedia.org/w/index.php?search=\" + subtext;\n break;\n\n case \"p\":\n window.location = \"https://app.plex.tv/desktop/#!/search?query=\" + subtext;\n break;\n\n case \"rt\":\n window.location = \"https://www.rottentomatoes.com/search?search=\" + subtext;\n break;\n }\n } else {\n var option = text.substr(1);\n\n switch (option) {\n case \"d\":\n window.location = \"https://www.duckduckgo.com\";\n break;\n\n case \"y\":\n window.location = \"https://www.youtube.com\";\n break;\n\n case \"r\":\n window.location = \"https://reddit.com\";\n break;\n\n case \"s\":\n window.location = \"https://open.spotify.com\";\n break;\n }\n }\n } else if (validURL(text)) {\n if (containsProtocol(text)) window.location = text;else window.location = \"https://\" + text;\n } else {\n window.location = \"https://www.google.com/search?q=\" + text;\n }\n}\n\nfunction validURL(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/)?' + // protocol\n '((([a-z\\\\d]([a-z\\\\d-]*[a-z\\\\d])*)\\\\.)+[a-z]{2,}|' + // domain name\n '((\\\\d{1,3}\\\\.){3}\\\\d{1,3}))' + // OR ip (v4) address\n '(\\\\:\\\\d+)?(\\\\/[-a-z\\\\d%_.~+]*)*' + // port and path\n '(\\\\?[;&a-z\\\\d%_.~+=-]*)?' + // query string\n '(\\\\#[-a-z\\\\d_]*)?$', 'i'); // fragment locator\n\n return !!pattern.test(str);\n}\n\nfunction containsProtocol(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/){1}.*', 'i');\n return !!pattern.test(str);\n}\n\nString.prototype.replaceAll = function (search, replacement) {\n var target = this;\n return target.split(search).join(replacement);\n};\n\nfunction udpateDisplayedItems(e) {\n localStorage.setItem('contenttype', e.target.checked);\n\n if (e.target.checked) {\n localStorage.setItem('content-display', 'none');\n } else {\n localStorage.setItem('content-display', 'block');\n }\n\n setDisplayedItems();\n}\n\nfunction setDisplayedItems() {\n setValueFromLocalStorage('contenttype');\n setValueFromLocalStorage('content-display');\n}\n\nvar _c, _c2, _c3, _c4, _c5, _c6, _c7, _c8, _c9, _c10, _c11, _c12, _c13;\n\n$RefreshReg$(_c, \"Homepage\");\n$RefreshReg$(_c2, \"Search\");\n$RefreshReg$(_c3, \"Header\");\n$RefreshReg$(_c4, \"Applications\");\n$RefreshReg$(_c5, \"App\");\n$RefreshReg$(_c6, \"Bookmarks\");\n$RefreshReg$(_c7, \"LinkGroups\");\n$RefreshReg$(_c8, \"LinkItem\");\n$RefreshReg$(_c9, \"ModalMenu\");\n$RefreshReg$(_c10, \"HideButton\");\n$RefreshReg$(_c11, \"Provider\");\n$RefreshReg$(_c12, \"ModalInit\");\n$RefreshReg$(_c13, \"Clock\");","map":{"version":3,"sources":["/home/seanedmunds/dev/home-page/src/index.js"],"names":["React","useState","useEffect","ReactDOM","setValueFromLocalStorage","property","value","localStorage","getItem","setValue","document","documentElement","style","setProperty","input","querySelector","replace","Homepage","setTheme","date","greet","Search","handleKeyPress","Header","props","Applications","appList","getApps","items","i","apps","length","safe","NSFW","NSFWEnabled","push","name","url","icon","App","classNameType","hrefUrl","iconName","Bookmarks","bookmarkList","getLinks","bookmarks","category","links","LinkGroups","LinkItem","link","ModalMenu","providers","getProviders","isChecked","updateTheme","HideButton","console","log","checked","udpateDisplayedItems","Provider","provider","prefix","ModalInit","setDisplayedItems","render","getElementById","currentDate","Date","dateOptions","weekday","year","month","day","toLocaleDateString","fixDigits","k","currentTime","Math","floor","getHours","easterEggChance","random","greetings","require","timeBased","easterEggs","messages","easteregg","concat","message","easterEggText","Clock","setDate","refreshClock","timerId","setInterval","cleanup","clearInterval","hour","minutes","getMinutes","midday","time","applications","getThemes","themes","e","themeName","target","innerHTML","toLowerCase","index","findIndex","item","setItem","imagebackground","colorbackground","colorserachbackground","colortextpri","colortextacc","colorborder","sindex","cycle","key","keyCode","which","text","replaceAll","option","substr","indexOf","subtext","search","preventDefault","stopPropagation","streamers","streamer","updateLabel","window","location","validURL","containsProtocol","str","pattern","RegExp","test","String","prototype","replacement","split","join"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { useState, useEffect } from 'react';\nimport ReactDOM from 'react-dom';\nimport './index.css';\n\nconst setValueFromLocalStorage = property => {\n let value = localStorage.getItem(property);\n setValue(property, value);\n};\nconst setValue = (property, value) => {\n if (value) {\n document.documentElement.style.setProperty(`--${property}`, value);\n\n const input = document.querySelector(`#${property}`);\n if (input) {\n value = value.replace('px', '');\n input.value = value;\n }\n }\n};\n\nfunction Homepage() {\n setTheme();\n \n return (\n \n \n \n
\n \n \n
\n \n \n \n
\n \n \n
\n \n \n
\n \n );\n}\n\nfunction Search() {\n return (\n \n )\n}\n\nfunction Header(props) {\n return (\n \n );\n}\n\nfunction Applications() {\n let appList = getApps();\n var items = [];\n for (var i = 0; i < appList.apps.length; i++) {\n var safe = appList.apps[i].NSFW;\n var NSFWEnabled = localStorage.getItem(\"contenttype\");\n if (safe === \"SAFE\") {\n items.push(\n \n );\n } else if (safe === \"NSFW\" && NSFWEnabled) {\n items.push(\n \n );\n } else {\n \n }\n \n }\n return (\n \n Applications
\n \n {items}\n
\n \n );\n}\n\nfunction App(props) {\n \n let classNameType = props.NSFW + \"-content\";\n let hrefUrl = \"https://\" + props.url;\n let iconName = \"mdi-\" + props.icon;\n return (\n \n );\n}\n\nfunction Bookmarks() {\n let bookmarkList = getLinks();\n var items = [];\n for (var i = 0; i < bookmarkList.bookmarks.length; i++) {\n items.push(\n \n );\n }\n return (\n \n Bookmarks
\n \n {items}\n
\n \n );\n}\n\nfunction LinkGroups(props) {\n var items = [];\n for (var i = 0; i < props.links.length; i++) {\n items.push(\n \n );\n }\n return (\n \n
{props.category}
\n {items}\n \n );\n}\n\nfunction LinkItem(props) {\n return (\n \n );\n}\n\nfunction ModalMenu() {\n var providers = getProviders();\n var items = [];\n var isChecked = localStorage.getItem(\"contenttype\");\n for (var i = 0; i < providers.providers.length; i++) {\n items.push(\n \n );\n }\n return (\n \n \n \n\n
Color themes
\n\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n\n\n
Search options
\n
\n \n \n \n | Website | \n Prefix | \n
\n {items}\n \n
\n \n\n \n
\n \n );\n}\n\nfunction HideButton(props) {\n console.log(props.checked);\n return (\n \n
\n );\n}\n\nfunction Provider(props) {\n return (\n \n | {props.provider.name} | \n {props.provider.prefix} | \n
\n );\n}\n\nfunction ModalInit() {\n setDisplayedItems();\n return (\n \n );\n}\n\nReactDOM.render(\n ,\n document.getElementById('root')\n);\n\n//Functions below this line are for calculating data for\n//other functions\n\nfunction date() {\n let currentDate = new Date();\n let dateOptions = {\n weekday: \"long\",\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\"\n };\n let date = currentDate.toLocaleDateString(\"en-GB\", dateOptions);\n return date;\n}\nfunction fixDigits(k) {\n if (k < 10) {\n return \"0\" + k;\n }\n else {\n return k;\n }\n}\nfunction greet() {\n let currentTime = new Date();\n let greet = Math.floor(currentTime.getHours() / 6);\n let easterEggChance = Math.floor(Math.random() * 100);\n let greetings = require('./messages.json');\n let timeBased = [];\n let easterEggs = [];\n for (var i = 0; i < greetings.messages.length; i++) {\n if (greetings.messages[i].easteregg === \"FALSE\") {\n timeBased = timeBased.concat(greetings.messages[i]);\n } else {\n easterEggs = easterEggs.concat(greetings.messages[i]);\n }\n }\n if (easterEggChance > 10) {\n return timeBased[greet].message;\n } else {\n let easterEggText = Math.floor(Math.random() * easterEggs.length);\n return easterEggs[easterEggText].message;\n }\n}\nfunction Clock() {\n const [date, setDate] = useState(new Date());\n\n function refreshClock() {\n setDate(new Date());\n }\n useEffect(() => {\n const timerId = setInterval(refreshClock, 1000);\n return function cleanup() {\n clearInterval(timerId);\n };\n }, []);\n\n var hour = date.getHours();\n var minutes = date.getMinutes();\n //var seconds = date.getSeconds();\n var midday = \"AM\";\n midday = (hour >= 12) ? \"PM\" : \"AM\";\n hour = (hour === 0) ? 12 : ((hour > 12) ? (hour - 12) : hour);\n minutes = fixDigits(minutes);\n //seconds = fixDigits(seconds);\n let time = hour + \":\" + minutes + \" \" + midday;\n\n return (\n {time}
\n\n );\n}\nfunction getApps() {\n let applications = require('./apps.json');\n return applications;\n}\nfunction getLinks() {\n let links = require('./links.json');\n return links;\n}\nfunction getProviders() {\n let providers = require('./providers.json');\n return providers;\n}\nfunction getThemes() {\n let themes = require('./themes.json');\n return themes;\n}\nfunction updateTheme(e) {\n var themes = getThemes();\n var themeName = e.target.innerHTML.toLowerCase();\n var index = themes.themes.findIndex(function(item, i){\n return item.name == themeName;\n });\n localStorage.setItem(\"image-background\", themes.themes[index].imagebackground);\n localStorage.setItem(\"color-background\", themes.themes[index].colorbackground);\n localStorage.setItem(\"color-search-background\", themes.themes[index].colorserachbackground);\n localStorage.setItem(\"color-text-pri\",themes.themes[index].colortextpri);\n localStorage.setItem(\"color-text-acc\", themes.themes[index].colortextacc);\n localStorage.setItem(\"color-border\", themes.themes[index].colorborder);\n \n //document.documentElement.style.setProperty(prop, `var(--${themeName}${prop.substring(10)})`);\n setTheme();\n}\nfunction setTheme() {\n setValueFromLocalStorage('image-background');\n setValueFromLocalStorage('color-background');\n setValueFromLocalStorage('color-search-background');\n setValueFromLocalStorage('color-text-pri');\n setValueFromLocalStorage('color-text-acc');\n setValueFromLocalStorage('color-border');\n setValueFromLocalStorage('content-display');\n}\nfunction handleKeyPress(e) {\n var sindex = 0;\n var cycle = false;\n var key = e.keyCode || e.which;\n var text = e.target.value.replaceAll(\"+\", \"%2B\");\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n if (key == 13) { // Search functions\n search(text);\n }\n if (key == 9) { // Tab Completion Functions\n e.preventDefault();\n e.stopPropagation();\n if (text[0] === ';') {\n switch (option) {\n case 't':\n var streamers = ['admiralbahroo', 'moonmoon_ow', 'witwix'];\n if (!subtext || cycle) {\n cycle = true;\n if (sindex > streamers.length - 1) sindex = 0;\n document.getElementById(\"keywords\").value = ';t ' + streamers[sindex++];\n return;\n }\n for (var streamer of streamers) {\n if (subtext === streamer.substr(0, subtext.length)) {\n document.getElementById(\"keywords\").value = ';t ' + streamer;\n return;\n }\n }\n break;\n }\n }\n }\n if(key == 32){ //Space to go to search\nupdateLabel(text);\n }\n sindex = 0;\n cycle = false;\n updateLabel(text);\n}\nfunction updateLabel(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n if (text[0] === '/') {\n// if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n document.getElementById(\"searchType\").innerHTML = \"Allmusic search\";\n break;\n case \"d\":\n document.getElementById(\"searchType\").innerHTML = \"Duck Duck Go search\";\n break;\n case \"di\":\n document.getElementById(\"searchType\").innerHTML = \"Discogs search\";\n break;\n case \"i\":\n document.getElementById(\"searchType\").innerHTML = \"IMDB search\";\n break;\n case \"m\":\n document.getElementById(\"searchType\").innerHTML = \"TheMovieDB search\";\n break;\n case \"r\":\n document.getElementById(\"searchType\").innerHTML = \"Reddit search\";\n break;\n case \"q\":\n document.getElementById(\"searchType\").innerHTML = \"Qwant search\";\n break;\n case \"so\":\n document.getElementById(\"searchType\").innerHTML = \"Soundcloud search\";\n break;\n case \"s\":\n document.getElementById(\"searchType\").innerHTML = \"Spotify search\";\n break;\n case \"tv\":\n document.getElementById(\"searchType\").innerHTML = \"TheTVDB search\";\n break;\n case \"t\":\n document.getElementById(\"searchType\").innerHTML = \"Trakt search\";\n break;\n case \"y\":\n document.getElementById(\"searchType\").innerHTML = \"YouTube search\";\n break;\n case \"w\":\n document.getElementById(\"searchType\").innerHTML = \"Wikipedia search\";\n break;\n case \"p\":\n document.getElementById(\"searchType\").innerHTML = \"Plex search\";\n break;\n case \"rt\":\n document.getElementById(\"searchType\").innerHTML = \"Rotten Tomatoes search\";\n break;\n default:\n document.getElementById(\"searchType\").innerHTML = \"Invalid search\";\n break;\n }\n}else {\n document.getElementById(\"searchType\").innerHTML = \"Google search\";\n }\n}\nfunction search(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n if (text[0] === '/') {\n if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n window.location = \"https://www.allmusic.com/search/all/\" + subtext;\n break;\n case \"d\":\n window.location = \"https://duckduckgo.com/?q=\" + subtext;\n break;\n case \"di\":\n window.location = \"https://www.discogs.com/search/?q=\" + subtext;\n break;\n case \"i\":\n window.location = \"https://www.imdb.com/find?q=\" + subtext;\n break;\n case \"m\":\n window.location = \"https://www.themoviedb.org/search?query=\" + subtext;\n break;\n case \"r\":\n window.location = \"https://www.reddit.com/search?q=\" + subtext;\n break;\n case \"q\":\n window.location = \"https://www.qwant.com/?q=\" + subtext;\n break;\n case \"so\":\n window.location = \"https://soundcloud.com/search?q=\" + subtext;\n break;\n case \"s\":\n window.location = \"https://open.spotify.com/search/results/\" + subtext;\n break;\n case \"t\":\n window.location = \"https://trakt.tv/search?query=\" + subtext;\n break;\n case \"tv\":\n window.location = \"https://www.thetvdb.com/search?query=\" + subtext;\n break;\n case \"y\":\n window.location = \"https://www.youtube.com/results?search_query=\" + subtext;\n break;\n case \"w\":\n window.location = \"https://en.wikipedia.org/w/index.php?search=\" + subtext;\n break;\n case \"p\":\n window.location = \"https://app.plex.tv/desktop/#!/search?query=\" + subtext;\n break;\n case \"rt\":\n window.location = \"https://www.rottentomatoes.com/search?search=\" + subtext;\n break;\n }\n } else {\n var option = text.substr(1);\n switch (option) {\n case \"d\":\n window.location = \"https://www.duckduckgo.com\";\n break;\n case \"y\":\n window.location = \"https://www.youtube.com\";\n break;\n case \"r\":\n window.location = \"https://reddit.com\";\n break;\n case \"s\":\n window.location = \"https://open.spotify.com\";\n break;\n }\n }\n } else if (validURL(text)) {\n if (containsProtocol(text))\n window.location = text;\n else\n window.location = \"https://\" + text;\n } else {\n window.location = \"https://www.google.com/search?q=\" + text;\n }\n}\nfunction validURL(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/)?' + // protocol\n '((([a-z\\\\d]([a-z\\\\d-]*[a-z\\\\d])*)\\\\.)+[a-z]{2,}|' + // domain name\n '((\\\\d{1,3}\\\\.){3}\\\\d{1,3}))' + // OR ip (v4) address\n '(\\\\:\\\\d+)?(\\\\/[-a-z\\\\d%_.~+]*)*' + // port and path\n '(\\\\?[;&a-z\\\\d%_.~+=-]*)?' + // query string\n '(\\\\#[-a-z\\\\d_]*)?$', 'i'); // fragment locator\n return !!pattern.test(str);\n}\nfunction containsProtocol(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/){1}.*', 'i');\n return !!pattern.test(str);\n}\nString.prototype.replaceAll = function(search, replacement) {\n var target = this;\n return target.split(search).join(replacement);\n};\nfunction udpateDisplayedItems(e) {\n localStorage.setItem('contenttype', e.target.checked);\n if (e.target.checked) {\n localStorage.setItem('content-display', 'none');\n } else {\n localStorage.setItem('content-display', 'block');\n }\n setDisplayedItems();\n}\nfunction setDisplayedItems() {\n setValueFromLocalStorage('contenttype');\n setValueFromLocalStorage('content-display');\n}"]},"metadata":{},"sourceType":"module"}
\ No newline at end of file
diff --git a/node_modules/.cache/babel-loader/c7cb15ebde0cae70e3a8c41aa925c0f6.json b/node_modules/.cache/babel-loader/c7cb15ebde0cae70e3a8c41aa925c0f6.json
new file mode 100644
index 00000000..b4d461fb
--- /dev/null
+++ b/node_modules/.cache/babel-loader/c7cb15ebde0cae70e3a8c41aa925c0f6.json
@@ -0,0 +1 @@
+{"ast":null,"code":"var _jsxFileName = \"/home/seanedmunds/dev/home-page/src/index.js\",\n _s = $RefreshSig$();\n\nimport React from 'react';\nimport { useState, useEffect } from 'react';\nimport ReactDOM from 'react-dom';\nimport './index.css';\nimport { jsxDEV as _jsxDEV } from \"react/jsx-dev-runtime\";\n\nconst setValueFromLocalStorage = property => {\n let value = localStorage.getItem(property);\n setValue(property, value);\n};\n\nconst setValue = (property, value) => {\n if (value) {\n document.documentElement.style.setProperty(`--${property}`, value);\n const input = document.querySelector(`#${property}`);\n\n if (input) {\n value = value.replace('px', '');\n input.value = value;\n }\n }\n};\n\nfunction Homepage() {\n setTheme();\n return /*#__PURE__*/_jsxDEV(\"main\", {\n id: \"container\",\n className: \"fade\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Search, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 28,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 27,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Header, {\n date: date(),\n greet: greet()\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 31,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 30,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Applications, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 37,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 36,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Bookmarks, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 40,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 39,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(ModalMenu, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 43,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 42,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(ModalInit, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 46,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 45,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 26,\n columnNumber: 5\n }, this);\n}\n\n_c = Homepage;\n\nfunction Search() {\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"search\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"abackground\",\n children: [/*#__PURE__*/_jsxDEV(\"input\", {\n name: \"keywords\",\n type: \"text\",\n className: \"keyword\",\n id: \"keywords\",\n size: \"50\",\n spellCheck: \"true\",\n placeholder: \"\"\n /*onFocus={this.placeholder = \"\"} onBlur={this.placeholder = ''}*/\n ,\n autoComplete: \"off\",\n autoFocus: true,\n onKeyUp: handleKeyPress\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 56,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n id: \"searchType\",\n className: \"Input-label\",\n children: \"Google search\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 57,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 55,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 54,\n columnNumber: 5\n }, this);\n}\n\n_c2 = Search;\n\nfunction Header(props) {\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"header\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n id: \"greeting_block\",\n children: /*#__PURE__*/_jsxDEV(\"h1\", {\n id: \"header_greet\",\n children: props.greet\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 67,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 66,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"date_block\",\n children: [/*#__PURE__*/_jsxDEV(\"h2\", {\n id: \"header_date\",\n children: props.date\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 70,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(Clock, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 71,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 69,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 65,\n columnNumber: 5\n }, this);\n}\n\n_c3 = Header;\n\nfunction Applications() {\n let appList = getApps();\n var items = [];\n\n for (var i = 0; i < appList.apps.length; i++) {\n var safe = appList.apps[i].NSFW;\n var NSFWEnabled = localStorage.getItem(\"contenttype\");\n\n if (safe === \"SAFE\") {\n items.push( /*#__PURE__*/_jsxDEV(App, {\n name: appList.apps[i].name,\n url: appList.apps[i].url,\n icon: appList.apps[i].icon,\n NSFW: appList.apps[i].NSFW\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 85,\n columnNumber: 9\n }, this));\n } else if (safe === \"NSFW\" && NSFWEnabled) {\n items.push( /*#__PURE__*/_jsxDEV(App, {\n name: appList.apps[i].name,\n url: appList.apps[i].url,\n icon: appList.apps[i].icon,\n NSFW: appList.apps[i].NSFW\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 95,\n columnNumber: 9\n }, this));\n } else {}\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"apps\",\n children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n children: \"Applications\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 110,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"apps_loop\",\n children: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 111,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 109,\n columnNumber: 5\n }, this);\n}\n\n_c4 = Applications;\n\nfunction App(props) {\n let classNameType = props.NSFW + \"-content\";\n let hrefUrl = \"https://\" + props.url;\n let iconName = \"mdi-\" + props.icon;\n return /*#__PURE__*/_jsxDEV(\"div\", {\n className: classNameType,\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: hrefUrl,\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_item\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_icon\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify icon\",\n \"data-icon\": iconName\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 128,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 127,\n columnNumber: 13\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_text\",\n children: [/*#__PURE__*/_jsxDEV(\"span\", {\n id: \"app-name\",\n children: props.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 131,\n columnNumber: 15\n }, this), /*#__PURE__*/_jsxDEV(\"span\", {\n id: \"app-address\",\n children: props.url\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 132,\n columnNumber: 15\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 130,\n columnNumber: 13\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 126,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 125,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 124,\n columnNumber: 7\n }, this);\n}\n\n_c5 = App;\n\nfunction Bookmarks() {\n let bookmarkList = getLinks();\n var items = [];\n\n for (var i = 0; i < bookmarkList.bookmarks.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(LinkGroups, {\n category: bookmarkList.bookmarks[i].category,\n links: bookmarkList.bookmarks[i].links\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 145,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"links\",\n children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n children: \"Bookmarks\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 154,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"links_loop\",\n children: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 155,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 153,\n columnNumber: 5\n }, this);\n}\n\n_c6 = Bookmarks;\n\nfunction LinkGroups(props) {\n var items = [];\n\n for (var i = 0; i < props.links.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(LinkItem, {\n link: props.links[i]\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 166,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"links_item\",\n children: [/*#__PURE__*/_jsxDEV(\"h4\", {\n children: props.category\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 174,\n columnNumber: 7\n }, this), items]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 173,\n columnNumber: 5\n }, this);\n}\n\n_c7 = LinkGroups;\n\nfunction LinkItem(props) {\n return /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: props.link.url,\n className: \"theme_color-border theme_text-select\",\n children: props.link.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 183,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 182,\n columnNumber: 5\n }, this);\n}\n\n_c8 = LinkItem;\n\nfunction ModalMenu() {\n var providers = getProviders();\n var items = [];\n var isChecked = localStorage.getItem(\"contenttype\");\n console.log(localStorage.getItem(\"contenttype\"));\n\n for (var i = 0; i < providers.providers.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(Provider, {\n provider: providers.providers[i]\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 195,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"modal\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n children: [/*#__PURE__*/_jsxDEV(\"header\", {\n id: \"modal-header\",\n children: [/*#__PURE__*/_jsxDEV(\"h1\", {\n children: \"Options\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 205,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n href: \"#\",\n title: \"Close\",\n className: \"modal-close\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-close\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 207,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 206,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 204,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"h2\", {\n children: \"Color themes\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 211,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"modal-theme\",\n children: [/*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"blackboard\",\n className: \"theme-button theme-blackboard\",\n onClick: updateTheme,\n children: \"Blackboard\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 214,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"gazette\",\n className: \"theme-button theme-gazette\",\n onClick: updateTheme,\n children: \"Gazette\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 215,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"espresso\",\n className: \"theme-button theme-espresso\",\n onClick: updateTheme,\n children: \"Espresso\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 216,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cab\",\n className: \"theme-button theme-cab\",\n onClick: updateTheme,\n children: \"Cab\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 217,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cloud\",\n className: \"theme-button theme-cloud\",\n onClick: updateTheme,\n children: \"Cloud\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 218,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"lime\",\n className: \"theme-button theme-lime\",\n onClick: updateTheme,\n children: \"Lime\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 219,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"passion\",\n className: \"theme-button theme-passion\",\n onClick: updateTheme,\n children: \"Passion\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 220,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"blues\",\n className: \"theme-button theme-blues\",\n onClick: updateTheme,\n children: \"Blues\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 221,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"chalk\",\n className: \"theme-button theme-chalk\",\n onClick: updateTheme,\n children: \"Chalk\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 222,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"tron\",\n className: \"theme-button theme-tron\",\n onClick: updateTheme,\n children: \"Tron\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 223,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"paper\",\n className: \"theme-button theme-paper\",\n onClick: updateTheme,\n children: \"Paper\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 224,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cyberpunk\",\n className: \"theme-button theme-cyberpunk\",\n onClick: updateTheme,\n children: \"Cyberpunk\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 225,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"quadra\",\n className: \"theme-button theme-panam\",\n onClick: updateTheme,\n children: \"Quadra\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 226,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"panam\",\n className: \"theme-button theme-panam\",\n onClick: updateTheme,\n children: \"Panam\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 227,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"touch\",\n className: \"theme-button theme-touch\",\n onClick: updateTheme,\n children: \"Touch\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 228,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"peek\",\n className: \"theme-button theme-peek\",\n onClick: updateTheme,\n children: \"Peek\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 229,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 213,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"h2\", {\n children: \"Search options\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 233,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"providers\",\n children: /*#__PURE__*/_jsxDEV(\"table\", {\n children: /*#__PURE__*/_jsxDEV(\"tbody\", {\n children: [/*#__PURE__*/_jsxDEV(\"tr\", {\n children: [/*#__PURE__*/_jsxDEV(\"th\", {\n children: \"Website\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 238,\n columnNumber: 19\n }, this), /*#__PURE__*/_jsxDEV(\"th\", {\n children: \"Prefix\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 239,\n columnNumber: 19\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 237,\n columnNumber: 17\n }, this), items]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 236,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 235,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 234,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"header\", {\n id: \"modal-footer\",\n children: [/*#__PURE__*/_jsxDEV(\"a\", {\n href: \"https://github.com/jeroenpardon/\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-github-box\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 247,\n columnNumber: 54\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 247,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n href: \"https://materialdesignicons.com/\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-material-design\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 248,\n columnNumber: 54\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 248,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(HideButton, {\n checked: isChecked\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 249,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 246,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 203,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 202,\n columnNumber: 5\n }, this);\n}\n\n_c9 = ModalMenu;\n\nfunction HideButton(props) {\n console.log(props.checked);\n\n if (props.checked === \"false\") {\n console.log(\"icon should be grey\");\n return /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"sneaky\",\n children: [/*#__PURE__*/_jsxDEV(\"input\", {\n type: \"checkbox\",\n id: \"contenttype\",\n onChange: udpateDisplayedItems,\n defaultChecked: true\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 263,\n columnNumber: 31\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n for: \"contenttype\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-domino-mask\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 264,\n columnNumber: 32\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 264,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 263,\n columnNumber: 7\n }, this);\n } else {\n console.log(\"icon should be white\");\n return /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"sneaky\",\n children: [/*#__PURE__*/_jsxDEV(\"input\", {\n type: \"checkbox\",\n id: \"contenttype\",\n onChange: udpateDisplayedItems,\n defaultChecked: false\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 269,\n columnNumber: 31\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n for: \"contenttype\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-domino-mask\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 270,\n columnNumber: 32\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 270,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 269,\n columnNumber: 7\n }, this);\n }\n}\n\n_c10 = HideButton;\n\nfunction Provider(props) {\n return /*#__PURE__*/_jsxDEV(\"tr\", {\n children: [/*#__PURE__*/_jsxDEV(\"td\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: props.provider.url,\n children: props.provider.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 278,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 278,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"td\", {\n children: props.provider.prefix\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 279,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 277,\n columnNumber: 5\n }, this);\n}\n\n_c11 = Provider;\n\nfunction ModalInit() {\n setDisplayedItems();\n return /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"modal_init\",\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n className: \"btn\",\n href: \"#modal\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify icon\",\n \"data-icon\": \"mdi-xbox-controller-menu\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 289,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 288,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 287,\n columnNumber: 5\n }, this);\n}\n\n_c12 = ModalInit;\nReactDOM.render( /*#__PURE__*/_jsxDEV(Homepage, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 296,\n columnNumber: 3\n}, this), document.getElementById('root')); //Functions below this line are for calculating data for\n//other functions\n\nfunction date() {\n let currentDate = new Date();\n let dateOptions = {\n weekday: \"long\",\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\"\n };\n let date = currentDate.toLocaleDateString(\"en-GB\", dateOptions);\n return date;\n}\n\nfunction fixDigits(k) {\n if (k < 10) {\n return \"0\" + k;\n } else {\n return k;\n }\n}\n\nfunction greet() {\n let currentTime = new Date();\n let greet = Math.floor(currentTime.getHours() / 6);\n let easterEggChance = Math.floor(Math.random() * 100);\n\n let greetings = require('./messages.json');\n\n let timeBased = [];\n let easterEggs = [];\n\n for (var i = 0; i < greetings.messages.length; i++) {\n if (greetings.messages[i].easteregg === \"FALSE\") {\n timeBased = timeBased.concat(greetings.messages[i]);\n } else {\n easterEggs = easterEggs.concat(greetings.messages[i]);\n }\n }\n\n if (easterEggChance > 10) {\n return timeBased[greet].message;\n } else {\n let easterEggText = Math.floor(Math.random() * easterEggs.length);\n return easterEggs[easterEggText].message;\n }\n}\n\nfunction Clock() {\n _s();\n\n const [date, setDate] = useState(new Date());\n\n function refreshClock() {\n setDate(new Date());\n }\n\n useEffect(() => {\n const timerId = setInterval(refreshClock, 1000);\n return function cleanup() {\n clearInterval(timerId);\n };\n }, []);\n var hour = date.getHours();\n var minutes = date.getMinutes(); //var seconds = date.getSeconds();\n\n var midday = \"AM\";\n midday = hour >= 12 ? \"PM\" : \"AM\";\n hour = hour === 0 ? 12 : hour > 12 ? hour - 12 : hour;\n minutes = fixDigits(minutes); //seconds = fixDigits(seconds);\n\n let time = hour + \":\" + minutes + \" \" + midday;\n return /*#__PURE__*/_jsxDEV(\"h2\", {\n id: \"clock\",\n children: time\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 367,\n columnNumber: 5\n }, this);\n}\n\n_s(Clock, \"Gqi45WOZhU2c0BLYX0HoJeiR0fk=\");\n\n_c13 = Clock;\n\nfunction getApps() {\n let applications = require('./apps.json');\n\n return applications;\n}\n\nfunction getLinks() {\n let links = require('./links.json');\n\n return links;\n}\n\nfunction getProviders() {\n let providers = require('./providers.json');\n\n return providers;\n}\n\nfunction getThemes() {\n let themes = require('./themes.json');\n\n return themes;\n}\n\nfunction updateTheme(e) {\n var themes = getThemes();\n var themeName = e.target.innerHTML.toLowerCase();\n var index = themes.themes.findIndex(function (item, i) {\n return item.name === themeName;\n });\n localStorage.setItem(\"image-background\", themes.themes[index].imagebackground);\n localStorage.setItem(\"color-background\", themes.themes[index].colorbackground);\n localStorage.setItem(\"color-search-background\", themes.themes[index].colorserachbackground);\n localStorage.setItem(\"color-text-pri\", themes.themes[index].colortextpri);\n localStorage.setItem(\"color-text-acc\", themes.themes[index].colortextacc);\n localStorage.setItem(\"color-border\", themes.themes[index].colorborder); //document.documentElement.style.setProperty(prop, `var(--${themeName}${prop.substring(10)})`);\n\n setTheme();\n}\n\nfunction setTheme() {\n setValueFromLocalStorage('image-background');\n setValueFromLocalStorage('color-background');\n setValueFromLocalStorage('color-search-background');\n setValueFromLocalStorage('color-text-pri');\n setValueFromLocalStorage('color-text-acc');\n setValueFromLocalStorage('color-border');\n setValueFromLocalStorage('content-display');\n}\n\nfunction handleKeyPress(e) {\n var sindex = 0;\n var cycle = false;\n var key = e.keyCode || e.which;\n var text = e.target.value.replaceAll(\"+\", \"%2B\");\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n\n if (key == 13) {\n // Search functions\n search(text);\n }\n\n if (key == 9) {\n // Tab Completion Functions\n e.preventDefault();\n e.stopPropagation();\n\n if (text[0] === ';') {\n switch (option) {\n case 't':\n var streamers = ['admiralbahroo', 'moonmoon_ow', 'witwix'];\n\n if (!subtext || cycle) {\n cycle = true;\n if (sindex > streamers.length - 1) sindex = 0;\n document.getElementById(\"keywords\").value = ';t ' + streamers[sindex++];\n return;\n }\n\n for (var streamer of streamers) {\n if (subtext === streamer.substr(0, subtext.length)) {\n document.getElementById(\"keywords\").value = ';t ' + streamer;\n return;\n }\n }\n\n break;\n }\n }\n }\n\n if (key == 32) {\n //Space to go to search\n updateLabel(text);\n }\n\n sindex = 0;\n cycle = false;\n updateLabel(text);\n}\n\nfunction updateLabel(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n\n if (text[0] === '/') {\n // if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n document.getElementById(\"searchType\").innerHTML = \"Allmusic search\";\n break;\n\n case \"d\":\n document.getElementById(\"searchType\").innerHTML = \"Duck Duck Go search\";\n break;\n\n case \"di\":\n document.getElementById(\"searchType\").innerHTML = \"Discogs search\";\n break;\n\n case \"i\":\n document.getElementById(\"searchType\").innerHTML = \"IMDB search\";\n break;\n\n case \"m\":\n document.getElementById(\"searchType\").innerHTML = \"TheMovieDB search\";\n break;\n\n case \"r\":\n document.getElementById(\"searchType\").innerHTML = \"Reddit search\";\n break;\n\n case \"q\":\n document.getElementById(\"searchType\").innerHTML = \"Qwant search\";\n break;\n\n case \"so\":\n document.getElementById(\"searchType\").innerHTML = \"Soundcloud search\";\n break;\n\n case \"s\":\n document.getElementById(\"searchType\").innerHTML = \"Spotify search\";\n break;\n\n case \"tv\":\n document.getElementById(\"searchType\").innerHTML = \"TheTVDB search\";\n break;\n\n case \"t\":\n document.getElementById(\"searchType\").innerHTML = \"Trakt search\";\n break;\n\n case \"y\":\n document.getElementById(\"searchType\").innerHTML = \"YouTube search\";\n break;\n\n case \"w\":\n document.getElementById(\"searchType\").innerHTML = \"Wikipedia search\";\n break;\n\n case \"p\":\n document.getElementById(\"searchType\").innerHTML = \"Plex search\";\n break;\n\n case \"rt\":\n document.getElementById(\"searchType\").innerHTML = \"Rotten Tomatoes search\";\n break;\n\n default:\n document.getElementById(\"searchType\").innerHTML = \"Invalid search\";\n break;\n }\n } else {\n document.getElementById(\"searchType\").innerHTML = \"Google search\";\n }\n}\n\nfunction search(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n\n if (text[0] === '/') {\n if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n window.location = \"https://www.allmusic.com/search/all/\" + subtext;\n break;\n\n case \"d\":\n window.location = \"https://duckduckgo.com/?q=\" + subtext;\n break;\n\n case \"di\":\n window.location = \"https://www.discogs.com/search/?q=\" + subtext;\n break;\n\n case \"i\":\n window.location = \"https://www.imdb.com/find?q=\" + subtext;\n break;\n\n case \"m\":\n window.location = \"https://www.themoviedb.org/search?query=\" + subtext;\n break;\n\n case \"r\":\n window.location = \"https://www.reddit.com/search?q=\" + subtext;\n break;\n\n case \"q\":\n window.location = \"https://www.qwant.com/?q=\" + subtext;\n break;\n\n case \"so\":\n window.location = \"https://soundcloud.com/search?q=\" + subtext;\n break;\n\n case \"s\":\n window.location = \"https://open.spotify.com/search/results/\" + subtext;\n break;\n\n case \"t\":\n window.location = \"https://trakt.tv/search?query=\" + subtext;\n break;\n\n case \"tv\":\n window.location = \"https://www.thetvdb.com/search?query=\" + subtext;\n break;\n\n case \"y\":\n window.location = \"https://www.youtube.com/results?search_query=\" + subtext;\n break;\n\n case \"w\":\n window.location = \"https://en.wikipedia.org/w/index.php?search=\" + subtext;\n break;\n\n case \"p\":\n window.location = \"https://app.plex.tv/desktop/#!/search?query=\" + subtext;\n break;\n\n case \"rt\":\n window.location = \"https://www.rottentomatoes.com/search?search=\" + subtext;\n break;\n }\n } else {\n var option = text.substr(1);\n\n switch (option) {\n case \"d\":\n window.location = \"https://www.duckduckgo.com\";\n break;\n\n case \"y\":\n window.location = \"https://www.youtube.com\";\n break;\n\n case \"r\":\n window.location = \"https://reddit.com\";\n break;\n\n case \"s\":\n window.location = \"https://open.spotify.com\";\n break;\n }\n }\n } else if (validURL(text)) {\n if (containsProtocol(text)) window.location = text;else window.location = \"https://\" + text;\n } else {\n window.location = \"https://www.google.com/search?q=\" + text;\n }\n}\n\nfunction validURL(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/)?' + // protocol\n '((([a-z\\\\d]([a-z\\\\d-]*[a-z\\\\d])*)\\\\.)+[a-z]{2,}|' + // domain name\n '((\\\\d{1,3}\\\\.){3}\\\\d{1,3}))' + // OR ip (v4) address\n '(\\\\:\\\\d+)?(\\\\/[-a-z\\\\d%_.~+]*)*' + // port and path\n '(\\\\?[;&a-z\\\\d%_.~+=-]*)?' + // query string\n '(\\\\#[-a-z\\\\d_]*)?$', 'i'); // fragment locator\n\n return !!pattern.test(str);\n}\n\nfunction containsProtocol(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/){1}.*', 'i');\n return !!pattern.test(str);\n}\n\nString.prototype.replaceAll = function (search, replacement) {\n var target = this;\n return target.split(search).join(replacement);\n};\n\nfunction udpateDisplayedItems(e) {\n localStorage.setItem('contenttype', e.target.checked);\n\n if (e.target.checked) {\n localStorage.setItem('content-display', 'none');\n } else {\n localStorage.setItem('content-display', 'block');\n }\n\n setDisplayedItems();\n}\n\nfunction setDisplayedItems() {\n setValueFromLocalStorage('contenttype');\n setValueFromLocalStorage('content-display');\n}\n\nvar _c, _c2, _c3, _c4, _c5, _c6, _c7, _c8, _c9, _c10, _c11, _c12, _c13;\n\n$RefreshReg$(_c, \"Homepage\");\n$RefreshReg$(_c2, \"Search\");\n$RefreshReg$(_c3, \"Header\");\n$RefreshReg$(_c4, \"Applications\");\n$RefreshReg$(_c5, \"App\");\n$RefreshReg$(_c6, \"Bookmarks\");\n$RefreshReg$(_c7, \"LinkGroups\");\n$RefreshReg$(_c8, \"LinkItem\");\n$RefreshReg$(_c9, \"ModalMenu\");\n$RefreshReg$(_c10, \"HideButton\");\n$RefreshReg$(_c11, \"Provider\");\n$RefreshReg$(_c12, \"ModalInit\");\n$RefreshReg$(_c13, \"Clock\");","map":{"version":3,"sources":["/home/seanedmunds/dev/home-page/src/index.js"],"names":["React","useState","useEffect","ReactDOM","setValueFromLocalStorage","property","value","localStorage","getItem","setValue","document","documentElement","style","setProperty","input","querySelector","replace","Homepage","setTheme","date","greet","Search","handleKeyPress","Header","props","Applications","appList","getApps","items","i","apps","length","safe","NSFW","NSFWEnabled","push","name","url","icon","App","classNameType","hrefUrl","iconName","Bookmarks","bookmarkList","getLinks","bookmarks","category","links","LinkGroups","LinkItem","link","ModalMenu","providers","getProviders","isChecked","console","log","updateTheme","HideButton","checked","udpateDisplayedItems","Provider","provider","prefix","ModalInit","setDisplayedItems","render","getElementById","currentDate","Date","dateOptions","weekday","year","month","day","toLocaleDateString","fixDigits","k","currentTime","Math","floor","getHours","easterEggChance","random","greetings","require","timeBased","easterEggs","messages","easteregg","concat","message","easterEggText","Clock","setDate","refreshClock","timerId","setInterval","cleanup","clearInterval","hour","minutes","getMinutes","midday","time","applications","getThemes","themes","e","themeName","target","innerHTML","toLowerCase","index","findIndex","item","setItem","imagebackground","colorbackground","colorserachbackground","colortextpri","colortextacc","colorborder","sindex","cycle","key","keyCode","which","text","replaceAll","option","substr","indexOf","subtext","search","preventDefault","stopPropagation","streamers","streamer","updateLabel","window","location","validURL","containsProtocol","str","pattern","RegExp","test","String","prototype","replacement","split","join"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { useState, useEffect } from 'react';\nimport ReactDOM from 'react-dom';\nimport './index.css';\n\nconst setValueFromLocalStorage = property => {\n let value = localStorage.getItem(property);\n setValue(property, value);\n};\nconst setValue = (property, value) => {\n if (value) {\n document.documentElement.style.setProperty(`--${property}`, value);\n\n const input = document.querySelector(`#${property}`);\n if (input) {\n value = value.replace('px', '');\n input.value = value;\n }\n }\n};\n\nfunction Homepage() {\n setTheme();\n \n return (\n \n \n \n
\n \n \n
\n \n \n \n
\n \n \n
\n \n \n
\n \n );\n}\n\nfunction Search() {\n return (\n \n )\n}\n\nfunction Header(props) {\n return (\n \n );\n}\n\nfunction Applications() {\n let appList = getApps();\n var items = [];\n for (var i = 0; i < appList.apps.length; i++) {\n var safe = appList.apps[i].NSFW;\n var NSFWEnabled = localStorage.getItem(\"contenttype\");\n if (safe === \"SAFE\") {\n items.push(\n \n );\n } else if (safe === \"NSFW\" && NSFWEnabled) {\n items.push(\n \n );\n } else {\n \n }\n \n }\n return (\n \n Applications
\n \n {items}\n
\n \n );\n}\n\nfunction App(props) {\n \n let classNameType = props.NSFW + \"-content\";\n let hrefUrl = \"https://\" + props.url;\n let iconName = \"mdi-\" + props.icon;\n return (\n \n );\n}\n\nfunction Bookmarks() {\n let bookmarkList = getLinks();\n var items = [];\n for (var i = 0; i < bookmarkList.bookmarks.length; i++) {\n items.push(\n \n );\n }\n return (\n \n Bookmarks
\n \n {items}\n
\n \n );\n}\n\nfunction LinkGroups(props) {\n var items = [];\n for (var i = 0; i < props.links.length; i++) {\n items.push(\n \n );\n }\n return (\n \n
{props.category}
\n {items}\n \n );\n}\n\nfunction LinkItem(props) {\n return (\n \n );\n}\n\nfunction ModalMenu() {\n var providers = getProviders();\n var items = [];\n var isChecked = localStorage.getItem(\"contenttype\");\n console.log(localStorage.getItem(\"contenttype\"));\n for (var i = 0; i < providers.providers.length; i++) {\n items.push(\n \n );\n }\n return (\n \n \n \n\n
Color themes
\n\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n\n\n
Search options
\n
\n \n \n \n | Website | \n Prefix | \n
\n {items}\n \n
\n \n\n \n
\n \n );\n}\n\nfunction HideButton(props) {\n console.log(props.checked);\n if(props.checked === \"false\") {\n console.log(\"icon should be grey\");\n return (\n \n
\n );\n } else {\n console.log(\"icon should be white\");\n return (\n \n
\n );\n }\n}\n\nfunction Provider(props) {\n return (\n \n | {props.provider.name} | \n {props.provider.prefix} | \n
\n );\n}\n\nfunction ModalInit() {\n setDisplayedItems();\n return (\n \n );\n}\n\nReactDOM.render(\n ,\n document.getElementById('root')\n);\n\n//Functions below this line are for calculating data for\n//other functions\n\nfunction date() {\n let currentDate = new Date();\n let dateOptions = {\n weekday: \"long\",\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\"\n };\n let date = currentDate.toLocaleDateString(\"en-GB\", dateOptions);\n return date;\n}\nfunction fixDigits(k) {\n if (k < 10) {\n return \"0\" + k;\n }\n else {\n return k;\n }\n}\nfunction greet() {\n let currentTime = new Date();\n let greet = Math.floor(currentTime.getHours() / 6);\n let easterEggChance = Math.floor(Math.random() * 100);\n let greetings = require('./messages.json');\n let timeBased = [];\n let easterEggs = [];\n for (var i = 0; i < greetings.messages.length; i++) {\n if (greetings.messages[i].easteregg === \"FALSE\") {\n timeBased = timeBased.concat(greetings.messages[i]);\n } else {\n easterEggs = easterEggs.concat(greetings.messages[i]);\n }\n }\n if (easterEggChance > 10) {\n return timeBased[greet].message;\n } else {\n let easterEggText = Math.floor(Math.random() * easterEggs.length);\n return easterEggs[easterEggText].message;\n }\n}\nfunction Clock() {\n const [date, setDate] = useState(new Date());\n\n function refreshClock() {\n setDate(new Date());\n }\n useEffect(() => {\n const timerId = setInterval(refreshClock, 1000);\n return function cleanup() {\n clearInterval(timerId);\n };\n }, []);\n\n var hour = date.getHours();\n var minutes = date.getMinutes();\n //var seconds = date.getSeconds();\n var midday = \"AM\";\n midday = (hour >= 12) ? \"PM\" : \"AM\";\n hour = (hour === 0) ? 12 : ((hour > 12) ? (hour - 12) : hour);\n minutes = fixDigits(minutes);\n //seconds = fixDigits(seconds);\n let time = hour + \":\" + minutes + \" \" + midday;\n\n return (\n {time}
\n\n );\n}\nfunction getApps() {\n let applications = require('./apps.json');\n return applications;\n}\nfunction getLinks() {\n let links = require('./links.json');\n return links;\n}\nfunction getProviders() {\n let providers = require('./providers.json');\n return providers;\n}\nfunction getThemes() {\n let themes = require('./themes.json');\n return themes;\n}\nfunction updateTheme(e) {\n var themes = getThemes();\n var themeName = e.target.innerHTML.toLowerCase();\n var index = themes.themes.findIndex(function(item, i){\n return item.name === themeName;\n });\n localStorage.setItem(\"image-background\", themes.themes[index].imagebackground);\n localStorage.setItem(\"color-background\", themes.themes[index].colorbackground);\n localStorage.setItem(\"color-search-background\", themes.themes[index].colorserachbackground);\n localStorage.setItem(\"color-text-pri\",themes.themes[index].colortextpri);\n localStorage.setItem(\"color-text-acc\", themes.themes[index].colortextacc);\n localStorage.setItem(\"color-border\", themes.themes[index].colorborder);\n \n //document.documentElement.style.setProperty(prop, `var(--${themeName}${prop.substring(10)})`);\n setTheme();\n}\nfunction setTheme() {\n setValueFromLocalStorage('image-background');\n setValueFromLocalStorage('color-background');\n setValueFromLocalStorage('color-search-background');\n setValueFromLocalStorage('color-text-pri');\n setValueFromLocalStorage('color-text-acc');\n setValueFromLocalStorage('color-border');\n setValueFromLocalStorage('content-display');\n}\nfunction handleKeyPress(e) {\n var sindex = 0;\n var cycle = false;\n var key = e.keyCode || e.which;\n var text = e.target.value.replaceAll(\"+\", \"%2B\");\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n if (key == 13) { // Search functions\n search(text);\n }\n if (key == 9) { // Tab Completion Functions\n e.preventDefault();\n e.stopPropagation();\n if (text[0] === ';') {\n switch (option) {\n case 't':\n var streamers = ['admiralbahroo', 'moonmoon_ow', 'witwix'];\n if (!subtext || cycle) {\n cycle = true;\n if (sindex > streamers.length - 1) sindex = 0;\n document.getElementById(\"keywords\").value = ';t ' + streamers[sindex++];\n return;\n }\n for (var streamer of streamers) {\n if (subtext === streamer.substr(0, subtext.length)) {\n document.getElementById(\"keywords\").value = ';t ' + streamer;\n return;\n }\n }\n break;\n }\n }\n }\n if(key == 32){ //Space to go to search\nupdateLabel(text);\n }\n sindex = 0;\n cycle = false;\n updateLabel(text);\n}\nfunction updateLabel(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n if (text[0] === '/') {\n// if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n document.getElementById(\"searchType\").innerHTML = \"Allmusic search\";\n break;\n case \"d\":\n document.getElementById(\"searchType\").innerHTML = \"Duck Duck Go search\";\n break;\n case \"di\":\n document.getElementById(\"searchType\").innerHTML = \"Discogs search\";\n break;\n case \"i\":\n document.getElementById(\"searchType\").innerHTML = \"IMDB search\";\n break;\n case \"m\":\n document.getElementById(\"searchType\").innerHTML = \"TheMovieDB search\";\n break;\n case \"r\":\n document.getElementById(\"searchType\").innerHTML = \"Reddit search\";\n break;\n case \"q\":\n document.getElementById(\"searchType\").innerHTML = \"Qwant search\";\n break;\n case \"so\":\n document.getElementById(\"searchType\").innerHTML = \"Soundcloud search\";\n break;\n case \"s\":\n document.getElementById(\"searchType\").innerHTML = \"Spotify search\";\n break;\n case \"tv\":\n document.getElementById(\"searchType\").innerHTML = \"TheTVDB search\";\n break;\n case \"t\":\n document.getElementById(\"searchType\").innerHTML = \"Trakt search\";\n break;\n case \"y\":\n document.getElementById(\"searchType\").innerHTML = \"YouTube search\";\n break;\n case \"w\":\n document.getElementById(\"searchType\").innerHTML = \"Wikipedia search\";\n break;\n case \"p\":\n document.getElementById(\"searchType\").innerHTML = \"Plex search\";\n break;\n case \"rt\":\n document.getElementById(\"searchType\").innerHTML = \"Rotten Tomatoes search\";\n break;\n default:\n document.getElementById(\"searchType\").innerHTML = \"Invalid search\";\n break;\n }\n}else {\n document.getElementById(\"searchType\").innerHTML = \"Google search\";\n }\n}\nfunction search(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n if (text[0] === '/') {\n if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n window.location = \"https://www.allmusic.com/search/all/\" + subtext;\n break;\n case \"d\":\n window.location = \"https://duckduckgo.com/?q=\" + subtext;\n break;\n case \"di\":\n window.location = \"https://www.discogs.com/search/?q=\" + subtext;\n break;\n case \"i\":\n window.location = \"https://www.imdb.com/find?q=\" + subtext;\n break;\n case \"m\":\n window.location = \"https://www.themoviedb.org/search?query=\" + subtext;\n break;\n case \"r\":\n window.location = \"https://www.reddit.com/search?q=\" + subtext;\n break;\n case \"q\":\n window.location = \"https://www.qwant.com/?q=\" + subtext;\n break;\n case \"so\":\n window.location = \"https://soundcloud.com/search?q=\" + subtext;\n break;\n case \"s\":\n window.location = \"https://open.spotify.com/search/results/\" + subtext;\n break;\n case \"t\":\n window.location = \"https://trakt.tv/search?query=\" + subtext;\n break;\n case \"tv\":\n window.location = \"https://www.thetvdb.com/search?query=\" + subtext;\n break;\n case \"y\":\n window.location = \"https://www.youtube.com/results?search_query=\" + subtext;\n break;\n case \"w\":\n window.location = \"https://en.wikipedia.org/w/index.php?search=\" + subtext;\n break;\n case \"p\":\n window.location = \"https://app.plex.tv/desktop/#!/search?query=\" + subtext;\n break;\n case \"rt\":\n window.location = \"https://www.rottentomatoes.com/search?search=\" + subtext;\n break;\n }\n } else {\n var option = text.substr(1);\n switch (option) {\n case \"d\":\n window.location = \"https://www.duckduckgo.com\";\n break;\n case \"y\":\n window.location = \"https://www.youtube.com\";\n break;\n case \"r\":\n window.location = \"https://reddit.com\";\n break;\n case \"s\":\n window.location = \"https://open.spotify.com\";\n break;\n }\n }\n } else if (validURL(text)) {\n if (containsProtocol(text))\n window.location = text;\n else\n window.location = \"https://\" + text;\n } else {\n window.location = \"https://www.google.com/search?q=\" + text;\n }\n}\nfunction validURL(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/)?' + // protocol\n '((([a-z\\\\d]([a-z\\\\d-]*[a-z\\\\d])*)\\\\.)+[a-z]{2,}|' + // domain name\n '((\\\\d{1,3}\\\\.){3}\\\\d{1,3}))' + // OR ip (v4) address\n '(\\\\:\\\\d+)?(\\\\/[-a-z\\\\d%_.~+]*)*' + // port and path\n '(\\\\?[;&a-z\\\\d%_.~+=-]*)?' + // query string\n '(\\\\#[-a-z\\\\d_]*)?$', 'i'); // fragment locator\n return !!pattern.test(str);\n}\nfunction containsProtocol(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/){1}.*', 'i');\n return !!pattern.test(str);\n}\nString.prototype.replaceAll = function(search, replacement) {\n var target = this;\n return target.split(search).join(replacement);\n};\nfunction udpateDisplayedItems(e) {\n localStorage.setItem('contenttype', e.target.checked);\n if (e.target.checked) {\n localStorage.setItem('content-display', 'none');\n } else {\n localStorage.setItem('content-display', 'block');\n }\n setDisplayedItems();\n}\nfunction setDisplayedItems() {\n setValueFromLocalStorage('contenttype');\n setValueFromLocalStorage('content-display');\n}"]},"metadata":{},"sourceType":"module"}
\ No newline at end of file
diff --git a/node_modules/.cache/babel-loader/c8ff6b00966cc6259c20896201183cc2.json b/node_modules/.cache/babel-loader/c8ff6b00966cc6259c20896201183cc2.json
new file mode 100644
index 00000000..c625145e
--- /dev/null
+++ b/node_modules/.cache/babel-loader/c8ff6b00966cc6259c20896201183cc2.json
@@ -0,0 +1 @@
+{"ast":null,"code":"var _jsxFileName = \"/home/seanedmunds/dev/home-page/src/index.js\",\n _s = $RefreshSig$();\n\nimport React from 'react';\nimport { useState, useEffect } from 'react';\nimport ReactDOM from 'react-dom';\nimport './index.css';\nimport { jsxDEV as _jsxDEV } from \"react/jsx-dev-runtime\";\n\nconst setValueFromLocalStorage = property => {\n let value = localStorage.getItem(property);\n setValue(property, value);\n};\n\nconst setValue = (property, value) => {\n if (value) {\n document.documentElement.style.setProperty(`--${property}`, value);\n const input = document.querySelector(`#${property}`);\n\n if (input) {\n value = value.replace('px', '');\n input.value = value;\n }\n }\n};\n\nfunction Homepage() {\n setTheme();\n return /*#__PURE__*/_jsxDEV(\"main\", {\n id: \"container\",\n className: \"fade\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Search, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 28,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 27,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Header, {\n date: date(),\n greet: greet()\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 31,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 30,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Applications, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 37,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 36,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Bookmarks, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 40,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 39,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(ModalMenu, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 43,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 42,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(ModalInit, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 46,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 45,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 26,\n columnNumber: 5\n }, this);\n}\n\n_c = Homepage;\n\nfunction Search() {\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"search\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"abackground\",\n children: [/*#__PURE__*/_jsxDEV(\"input\", {\n name: \"keywords\",\n type: \"text\",\n className: \"keyword\",\n id: \"keywords\",\n size: \"50\",\n spellCheck: \"true\",\n placeholder: \"\"\n /*onFocus={this.placeholder = \"\"} onBlur={this.placeholder = ''}*/\n ,\n autoComplete: \"off\",\n autoFocus: true,\n onKeyUp: handleKeyPress\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 56,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n id: \"searchType\",\n className: \"Input-label\",\n children: \"Google search\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 57,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 55,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 54,\n columnNumber: 5\n }, this);\n}\n\n_c2 = Search;\n\nfunction Header(props) {\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"header\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n id: \"greeting_block\",\n children: /*#__PURE__*/_jsxDEV(\"h1\", {\n id: \"header_greet\",\n children: props.greet\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 67,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 66,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"date_block\",\n children: [/*#__PURE__*/_jsxDEV(\"h2\", {\n id: \"header_date\",\n children: props.date\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 70,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(Clock, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 71,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 69,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 65,\n columnNumber: 5\n }, this);\n}\n\n_c3 = Header;\n\nfunction Applications() {\n let appList = getApps();\n var items = [];\n\n for (var i = 0; i < appList.apps.length; i++) {\n var safe = appList.apps[i].NSFW;\n var NSFWEnabled = localStorage.getItem(\"contenttype\");\n\n if (safe === \"SAFE\") {\n items.push( /*#__PURE__*/_jsxDEV(App, {\n name: appList.apps[i].name,\n url: appList.apps[i].url,\n icon: appList.apps[i].icon,\n NSFW: appList.apps[i].NSFW\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 85,\n columnNumber: 9\n }, this));\n } else if (safe === \"NSFW\" && NSFWEnabled) {\n items.push( /*#__PURE__*/_jsxDEV(App, {\n name: appList.apps[i].name,\n url: appList.apps[i].url,\n icon: appList.apps[i].icon,\n NSFW: appList.apps[i].NSFW\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 95,\n columnNumber: 9\n }, this));\n } else {}\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"apps\",\n children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n children: \"Applications\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 110,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"apps_loop\",\n children: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 111,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 109,\n columnNumber: 5\n }, this);\n}\n\n_c4 = Applications;\n\nfunction App(props) {\n let classNameType = props.NSFW + \"-content\";\n let hrefUrl = \"https://\" + props.url;\n let iconName = \"mdi-\" + props.icon;\n return /*#__PURE__*/_jsxDEV(\"div\", {\n className: classNameType,\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: hrefUrl,\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_item\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_icon\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify icon\",\n \"data-icon\": iconName\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 128,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 127,\n columnNumber: 13\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_text\",\n children: [/*#__PURE__*/_jsxDEV(\"span\", {\n id: \"app-name\",\n children: props.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 131,\n columnNumber: 15\n }, this), /*#__PURE__*/_jsxDEV(\"span\", {\n id: \"app-address\",\n children: props.url\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 132,\n columnNumber: 15\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 130,\n columnNumber: 13\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 126,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 125,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 124,\n columnNumber: 7\n }, this);\n}\n\n_c5 = App;\n\nfunction Bookmarks() {\n let bookmarkList = getLinks();\n var items = [];\n\n for (var i = 0; i < bookmarkList.bookmarks.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(LinkGroups, {\n category: bookmarkList.bookmarks[i].category,\n links: bookmarkList.bookmarks[i].links\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 145,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"links\",\n children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n children: \"Bookmarks\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 154,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"links_loop\",\n children: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 155,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 153,\n columnNumber: 5\n }, this);\n}\n\n_c6 = Bookmarks;\n\nfunction LinkGroups(props) {\n var items = [];\n\n for (var i = 0; i < props.links.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(LinkItem, {\n link: props.links[i]\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 166,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"links_item\",\n children: [/*#__PURE__*/_jsxDEV(\"h4\", {\n children: props.category\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 174,\n columnNumber: 7\n }, this), items]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 173,\n columnNumber: 5\n }, this);\n}\n\n_c7 = LinkGroups;\n\nfunction LinkItem(props) {\n return /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: props.link.url,\n className: \"theme_color-border theme_text-select\",\n children: props.link.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 183,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 182,\n columnNumber: 5\n }, this);\n}\n\n_c8 = LinkItem;\n\nfunction ModalMenu() {\n var providers = getProviders();\n var items = [];\n var isChecked = localStorage.getItem(\"contenttype\");\n console.log(localStorage.getItem(\"contenttype\"));\n\n for (var i = 0; i < providers.providers.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(Provider, {\n provider: providers.providers[i]\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 195,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"modal\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n children: [/*#__PURE__*/_jsxDEV(\"header\", {\n id: \"modal-header\",\n children: [/*#__PURE__*/_jsxDEV(\"h1\", {\n children: \"Options\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 205,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n href: \"#\",\n title: \"Close\",\n className: \"modal-close\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-close\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 207,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 206,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 204,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"h2\", {\n children: \"Color themes\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 211,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"modal-theme\",\n children: [/*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"blackboard\",\n className: \"theme-button theme-blackboard\",\n onClick: updateTheme,\n children: \"Blackboard\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 214,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"gazette\",\n className: \"theme-button theme-gazette\",\n onClick: updateTheme,\n children: \"Gazette\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 215,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"espresso\",\n className: \"theme-button theme-espresso\",\n onClick: updateTheme,\n children: \"Espresso\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 216,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cab\",\n className: \"theme-button theme-cab\",\n onClick: updateTheme,\n children: \"Cab\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 217,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cloud\",\n className: \"theme-button theme-cloud\",\n onClick: updateTheme,\n children: \"Cloud\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 218,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"lime\",\n className: \"theme-button theme-lime\",\n onClick: updateTheme,\n children: \"Lime\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 219,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"passion\",\n className: \"theme-button theme-passion\",\n onClick: updateTheme,\n children: \"Passion\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 220,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"blues\",\n className: \"theme-button theme-blues\",\n onClick: updateTheme,\n children: \"Blues\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 221,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"chalk\",\n className: \"theme-button theme-chalk\",\n onClick: updateTheme,\n children: \"Chalk\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 222,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"tron\",\n className: \"theme-button theme-tron\",\n onClick: updateTheme,\n children: \"Tron\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 223,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"paper\",\n className: \"theme-button theme-paper\",\n onClick: updateTheme,\n children: \"Paper\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 224,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cyberpunk\",\n className: \"theme-button theme-cyberpunk\",\n onClick: updateTheme,\n children: \"Cyberpunk\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 225,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"quadra\",\n className: \"theme-button theme-panam\",\n onClick: updateTheme,\n children: \"Quadra\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 226,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"panam\",\n className: \"theme-button theme-panam\",\n onClick: updateTheme,\n children: \"Panam\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 227,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"touch\",\n className: \"theme-button theme-touch\",\n onClick: updateTheme,\n children: \"Touch\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 228,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"peek\",\n className: \"theme-button theme-peek\",\n onClick: updateTheme,\n children: \"Peek\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 229,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 213,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"h2\", {\n children: \"Search options\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 233,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"providers\",\n children: /*#__PURE__*/_jsxDEV(\"table\", {\n children: /*#__PURE__*/_jsxDEV(\"tbody\", {\n children: [/*#__PURE__*/_jsxDEV(\"tr\", {\n children: [/*#__PURE__*/_jsxDEV(\"th\", {\n children: \"Website\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 238,\n columnNumber: 19\n }, this), /*#__PURE__*/_jsxDEV(\"th\", {\n children: \"Prefix\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 239,\n columnNumber: 19\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 237,\n columnNumber: 17\n }, this), items]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 236,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 235,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 234,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"header\", {\n id: \"modal-footer\",\n children: [/*#__PURE__*/_jsxDEV(\"a\", {\n href: \"https://github.com/jeroenpardon/\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-github-box\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 247,\n columnNumber: 54\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 247,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n href: \"https://materialdesignicons.com/\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-material-design\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 248,\n columnNumber: 54\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 248,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(HideButton, {\n checked: isChecked\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 249,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 246,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 203,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 202,\n columnNumber: 5\n }, this);\n}\n\n_c9 = ModalMenu;\n\nfunction HideButton(props) {\n console.log(props.checked);\n\n if (props.checked) {\n console.log(\"icon should be grey\");\n return /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"sneaky\",\n children: [/*#__PURE__*/_jsxDEV(\"input\", {\n type: \"checkbox\",\n id: \"contenttype\",\n onChange: udpateDisplayedItems,\n defaultChecked: true\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 263,\n columnNumber: 31\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n for: \"contenttype\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-domino-mask\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 264,\n columnNumber: 32\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 264,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 263,\n columnNumber: 7\n }, this);\n } else {\n console.log(\"icon should be white\");\n return /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"sneaky\",\n children: [/*#__PURE__*/_jsxDEV(\"input\", {\n type: \"checkbox\",\n id: \"contenttype\",\n onChange: udpateDisplayedItems,\n defaultChecked: false\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 269,\n columnNumber: 31\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n for: \"contenttype\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-domino-mask\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 270,\n columnNumber: 32\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 270,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 269,\n columnNumber: 7\n }, this);\n }\n}\n\n_c10 = HideButton;\n\nfunction Provider(props) {\n return /*#__PURE__*/_jsxDEV(\"tr\", {\n children: [/*#__PURE__*/_jsxDEV(\"td\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: props.provider.url,\n children: props.provider.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 278,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 278,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"td\", {\n children: props.provider.prefix\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 279,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 277,\n columnNumber: 5\n }, this);\n}\n\n_c11 = Provider;\n\nfunction ModalInit() {\n setDisplayedItems();\n return /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"modal_init\",\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n className: \"btn\",\n href: \"#modal\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify icon\",\n \"data-icon\": \"mdi-xbox-controller-menu\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 289,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 288,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 287,\n columnNumber: 5\n }, this);\n}\n\n_c12 = ModalInit;\nReactDOM.render( /*#__PURE__*/_jsxDEV(Homepage, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 296,\n columnNumber: 3\n}, this), document.getElementById('root')); //Functions below this line are for calculating data for\n//other functions\n\nfunction date() {\n let currentDate = new Date();\n let dateOptions = {\n weekday: \"long\",\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\"\n };\n let date = currentDate.toLocaleDateString(\"en-GB\", dateOptions);\n return date;\n}\n\nfunction fixDigits(k) {\n if (k < 10) {\n return \"0\" + k;\n } else {\n return k;\n }\n}\n\nfunction greet() {\n let currentTime = new Date();\n let greet = Math.floor(currentTime.getHours() / 6);\n let easterEggChance = Math.floor(Math.random() * 100);\n\n let greetings = require('./messages.json');\n\n let timeBased = [];\n let easterEggs = [];\n\n for (var i = 0; i < greetings.messages.length; i++) {\n if (greetings.messages[i].easteregg === \"FALSE\") {\n timeBased = timeBased.concat(greetings.messages[i]);\n } else {\n easterEggs = easterEggs.concat(greetings.messages[i]);\n }\n }\n\n if (easterEggChance > 10) {\n return timeBased[greet].message;\n } else {\n let easterEggText = Math.floor(Math.random() * easterEggs.length);\n return easterEggs[easterEggText].message;\n }\n}\n\nfunction Clock() {\n _s();\n\n const [date, setDate] = useState(new Date());\n\n function refreshClock() {\n setDate(new Date());\n }\n\n useEffect(() => {\n const timerId = setInterval(refreshClock, 1000);\n return function cleanup() {\n clearInterval(timerId);\n };\n }, []);\n var hour = date.getHours();\n var minutes = date.getMinutes(); //var seconds = date.getSeconds();\n\n var midday = \"AM\";\n midday = hour >= 12 ? \"PM\" : \"AM\";\n hour = hour === 0 ? 12 : hour > 12 ? hour - 12 : hour;\n minutes = fixDigits(minutes); //seconds = fixDigits(seconds);\n\n let time = hour + \":\" + minutes + \" \" + midday;\n return /*#__PURE__*/_jsxDEV(\"h2\", {\n id: \"clock\",\n children: time\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 367,\n columnNumber: 5\n }, this);\n}\n\n_s(Clock, \"Gqi45WOZhU2c0BLYX0HoJeiR0fk=\");\n\n_c13 = Clock;\n\nfunction getApps() {\n let applications = require('./apps.json');\n\n return applications;\n}\n\nfunction getLinks() {\n let links = require('./links.json');\n\n return links;\n}\n\nfunction getProviders() {\n let providers = require('./providers.json');\n\n return providers;\n}\n\nfunction getThemes() {\n let themes = require('./themes.json');\n\n return themes;\n}\n\nfunction updateTheme(e) {\n var themes = getThemes();\n var themeName = e.target.innerHTML.toLowerCase();\n var index = themes.themes.findIndex(function (item, i) {\n return item.name === themeName;\n });\n localStorage.setItem(\"image-background\", themes.themes[index].imagebackground);\n localStorage.setItem(\"color-background\", themes.themes[index].colorbackground);\n localStorage.setItem(\"color-search-background\", themes.themes[index].colorserachbackground);\n localStorage.setItem(\"color-text-pri\", themes.themes[index].colortextpri);\n localStorage.setItem(\"color-text-acc\", themes.themes[index].colortextacc);\n localStorage.setItem(\"color-border\", themes.themes[index].colorborder); //document.documentElement.style.setProperty(prop, `var(--${themeName}${prop.substring(10)})`);\n\n setTheme();\n}\n\nfunction setTheme() {\n setValueFromLocalStorage('image-background');\n setValueFromLocalStorage('color-background');\n setValueFromLocalStorage('color-search-background');\n setValueFromLocalStorage('color-text-pri');\n setValueFromLocalStorage('color-text-acc');\n setValueFromLocalStorage('color-border');\n setValueFromLocalStorage('content-display');\n}\n\nfunction handleKeyPress(e) {\n var sindex = 0;\n var cycle = false;\n var key = e.keyCode || e.which;\n var text = e.target.value.replaceAll(\"+\", \"%2B\");\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n\n if (key == 13) {\n // Search functions\n search(text);\n }\n\n if (key == 9) {\n // Tab Completion Functions\n e.preventDefault();\n e.stopPropagation();\n\n if (text[0] === ';') {\n switch (option) {\n case 't':\n var streamers = ['admiralbahroo', 'moonmoon_ow', 'witwix'];\n\n if (!subtext || cycle) {\n cycle = true;\n if (sindex > streamers.length - 1) sindex = 0;\n document.getElementById(\"keywords\").value = ';t ' + streamers[sindex++];\n return;\n }\n\n for (var streamer of streamers) {\n if (subtext === streamer.substr(0, subtext.length)) {\n document.getElementById(\"keywords\").value = ';t ' + streamer;\n return;\n }\n }\n\n break;\n }\n }\n }\n\n if (key == 32) {\n //Space to go to search\n updateLabel(text);\n }\n\n sindex = 0;\n cycle = false;\n updateLabel(text);\n}\n\nfunction updateLabel(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n\n if (text[0] === '/') {\n // if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n document.getElementById(\"searchType\").innerHTML = \"Allmusic search\";\n break;\n\n case \"d\":\n document.getElementById(\"searchType\").innerHTML = \"Duck Duck Go search\";\n break;\n\n case \"di\":\n document.getElementById(\"searchType\").innerHTML = \"Discogs search\";\n break;\n\n case \"i\":\n document.getElementById(\"searchType\").innerHTML = \"IMDB search\";\n break;\n\n case \"m\":\n document.getElementById(\"searchType\").innerHTML = \"TheMovieDB search\";\n break;\n\n case \"r\":\n document.getElementById(\"searchType\").innerHTML = \"Reddit search\";\n break;\n\n case \"q\":\n document.getElementById(\"searchType\").innerHTML = \"Qwant search\";\n break;\n\n case \"so\":\n document.getElementById(\"searchType\").innerHTML = \"Soundcloud search\";\n break;\n\n case \"s\":\n document.getElementById(\"searchType\").innerHTML = \"Spotify search\";\n break;\n\n case \"tv\":\n document.getElementById(\"searchType\").innerHTML = \"TheTVDB search\";\n break;\n\n case \"t\":\n document.getElementById(\"searchType\").innerHTML = \"Trakt search\";\n break;\n\n case \"y\":\n document.getElementById(\"searchType\").innerHTML = \"YouTube search\";\n break;\n\n case \"w\":\n document.getElementById(\"searchType\").innerHTML = \"Wikipedia search\";\n break;\n\n case \"p\":\n document.getElementById(\"searchType\").innerHTML = \"Plex search\";\n break;\n\n case \"rt\":\n document.getElementById(\"searchType\").innerHTML = \"Rotten Tomatoes search\";\n break;\n\n default:\n document.getElementById(\"searchType\").innerHTML = \"Invalid search\";\n break;\n }\n } else {\n document.getElementById(\"searchType\").innerHTML = \"Google search\";\n }\n}\n\nfunction search(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n\n if (text[0] === '/') {\n if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n window.location = \"https://www.allmusic.com/search/all/\" + subtext;\n break;\n\n case \"d\":\n window.location = \"https://duckduckgo.com/?q=\" + subtext;\n break;\n\n case \"di\":\n window.location = \"https://www.discogs.com/search/?q=\" + subtext;\n break;\n\n case \"i\":\n window.location = \"https://www.imdb.com/find?q=\" + subtext;\n break;\n\n case \"m\":\n window.location = \"https://www.themoviedb.org/search?query=\" + subtext;\n break;\n\n case \"r\":\n window.location = \"https://www.reddit.com/search?q=\" + subtext;\n break;\n\n case \"q\":\n window.location = \"https://www.qwant.com/?q=\" + subtext;\n break;\n\n case \"so\":\n window.location = \"https://soundcloud.com/search?q=\" + subtext;\n break;\n\n case \"s\":\n window.location = \"https://open.spotify.com/search/results/\" + subtext;\n break;\n\n case \"t\":\n window.location = \"https://trakt.tv/search?query=\" + subtext;\n break;\n\n case \"tv\":\n window.location = \"https://www.thetvdb.com/search?query=\" + subtext;\n break;\n\n case \"y\":\n window.location = \"https://www.youtube.com/results?search_query=\" + subtext;\n break;\n\n case \"w\":\n window.location = \"https://en.wikipedia.org/w/index.php?search=\" + subtext;\n break;\n\n case \"p\":\n window.location = \"https://app.plex.tv/desktop/#!/search?query=\" + subtext;\n break;\n\n case \"rt\":\n window.location = \"https://www.rottentomatoes.com/search?search=\" + subtext;\n break;\n }\n } else {\n var option = text.substr(1);\n\n switch (option) {\n case \"d\":\n window.location = \"https://www.duckduckgo.com\";\n break;\n\n case \"y\":\n window.location = \"https://www.youtube.com\";\n break;\n\n case \"r\":\n window.location = \"https://reddit.com\";\n break;\n\n case \"s\":\n window.location = \"https://open.spotify.com\";\n break;\n }\n }\n } else if (validURL(text)) {\n if (containsProtocol(text)) window.location = text;else window.location = \"https://\" + text;\n } else {\n window.location = \"https://www.google.com/search?q=\" + text;\n }\n}\n\nfunction validURL(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/)?' + // protocol\n '((([a-z\\\\d]([a-z\\\\d-]*[a-z\\\\d])*)\\\\.)+[a-z]{2,}|' + // domain name\n '((\\\\d{1,3}\\\\.){3}\\\\d{1,3}))' + // OR ip (v4) address\n '(\\\\:\\\\d+)?(\\\\/[-a-z\\\\d%_.~+]*)*' + // port and path\n '(\\\\?[;&a-z\\\\d%_.~+=-]*)?' + // query string\n '(\\\\#[-a-z\\\\d_]*)?$', 'i'); // fragment locator\n\n return !!pattern.test(str);\n}\n\nfunction containsProtocol(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/){1}.*', 'i');\n return !!pattern.test(str);\n}\n\nString.prototype.replaceAll = function (search, replacement) {\n var target = this;\n return target.split(search).join(replacement);\n};\n\nfunction udpateDisplayedItems(e) {\n localStorage.setItem('contenttype', e.target.checked);\n\n if (e.target.checked) {\n localStorage.setItem('content-display', 'none');\n } else {\n localStorage.setItem('content-display', 'block');\n }\n\n setDisplayedItems();\n}\n\nfunction setDisplayedItems() {\n setValueFromLocalStorage('contenttype');\n setValueFromLocalStorage('content-display');\n}\n\nvar _c, _c2, _c3, _c4, _c5, _c6, _c7, _c8, _c9, _c10, _c11, _c12, _c13;\n\n$RefreshReg$(_c, \"Homepage\");\n$RefreshReg$(_c2, \"Search\");\n$RefreshReg$(_c3, \"Header\");\n$RefreshReg$(_c4, \"Applications\");\n$RefreshReg$(_c5, \"App\");\n$RefreshReg$(_c6, \"Bookmarks\");\n$RefreshReg$(_c7, \"LinkGroups\");\n$RefreshReg$(_c8, \"LinkItem\");\n$RefreshReg$(_c9, \"ModalMenu\");\n$RefreshReg$(_c10, \"HideButton\");\n$RefreshReg$(_c11, \"Provider\");\n$RefreshReg$(_c12, \"ModalInit\");\n$RefreshReg$(_c13, \"Clock\");","map":{"version":3,"sources":["/home/seanedmunds/dev/home-page/src/index.js"],"names":["React","useState","useEffect","ReactDOM","setValueFromLocalStorage","property","value","localStorage","getItem","setValue","document","documentElement","style","setProperty","input","querySelector","replace","Homepage","setTheme","date","greet","Search","handleKeyPress","Header","props","Applications","appList","getApps","items","i","apps","length","safe","NSFW","NSFWEnabled","push","name","url","icon","App","classNameType","hrefUrl","iconName","Bookmarks","bookmarkList","getLinks","bookmarks","category","links","LinkGroups","LinkItem","link","ModalMenu","providers","getProviders","isChecked","console","log","updateTheme","HideButton","checked","udpateDisplayedItems","Provider","provider","prefix","ModalInit","setDisplayedItems","render","getElementById","currentDate","Date","dateOptions","weekday","year","month","day","toLocaleDateString","fixDigits","k","currentTime","Math","floor","getHours","easterEggChance","random","greetings","require","timeBased","easterEggs","messages","easteregg","concat","message","easterEggText","Clock","setDate","refreshClock","timerId","setInterval","cleanup","clearInterval","hour","minutes","getMinutes","midday","time","applications","getThemes","themes","e","themeName","target","innerHTML","toLowerCase","index","findIndex","item","setItem","imagebackground","colorbackground","colorserachbackground","colortextpri","colortextacc","colorborder","sindex","cycle","key","keyCode","which","text","replaceAll","option","substr","indexOf","subtext","search","preventDefault","stopPropagation","streamers","streamer","updateLabel","window","location","validURL","containsProtocol","str","pattern","RegExp","test","String","prototype","replacement","split","join"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { useState, useEffect } from 'react';\nimport ReactDOM from 'react-dom';\nimport './index.css';\n\nconst setValueFromLocalStorage = property => {\n let value = localStorage.getItem(property);\n setValue(property, value);\n};\nconst setValue = (property, value) => {\n if (value) {\n document.documentElement.style.setProperty(`--${property}`, value);\n\n const input = document.querySelector(`#${property}`);\n if (input) {\n value = value.replace('px', '');\n input.value = value;\n }\n }\n};\n\nfunction Homepage() {\n setTheme();\n \n return (\n \n \n \n
\n \n \n
\n \n \n \n
\n \n \n
\n \n \n
\n \n );\n}\n\nfunction Search() {\n return (\n \n )\n}\n\nfunction Header(props) {\n return (\n \n );\n}\n\nfunction Applications() {\n let appList = getApps();\n var items = [];\n for (var i = 0; i < appList.apps.length; i++) {\n var safe = appList.apps[i].NSFW;\n var NSFWEnabled = localStorage.getItem(\"contenttype\");\n if (safe === \"SAFE\") {\n items.push(\n \n );\n } else if (safe === \"NSFW\" && NSFWEnabled) {\n items.push(\n \n );\n } else {\n \n }\n \n }\n return (\n \n Applications
\n \n {items}\n
\n \n );\n}\n\nfunction App(props) {\n \n let classNameType = props.NSFW + \"-content\";\n let hrefUrl = \"https://\" + props.url;\n let iconName = \"mdi-\" + props.icon;\n return (\n \n );\n}\n\nfunction Bookmarks() {\n let bookmarkList = getLinks();\n var items = [];\n for (var i = 0; i < bookmarkList.bookmarks.length; i++) {\n items.push(\n \n );\n }\n return (\n \n Bookmarks
\n \n {items}\n
\n \n );\n}\n\nfunction LinkGroups(props) {\n var items = [];\n for (var i = 0; i < props.links.length; i++) {\n items.push(\n \n );\n }\n return (\n \n
{props.category}
\n {items}\n \n );\n}\n\nfunction LinkItem(props) {\n return (\n \n );\n}\n\nfunction ModalMenu() {\n var providers = getProviders();\n var items = [];\n var isChecked = localStorage.getItem(\"contenttype\");\n console.log(localStorage.getItem(\"contenttype\"));\n for (var i = 0; i < providers.providers.length; i++) {\n items.push(\n \n );\n }\n return (\n \n \n \n\n
Color themes
\n\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n\n\n
Search options
\n
\n \n \n \n | Website | \n Prefix | \n
\n {items}\n \n
\n \n\n \n
\n \n );\n}\n\nfunction HideButton(props) {\n console.log(props.checked);\n if(props.checked) {\n console.log(\"icon should be grey\");\n return (\n \n
\n );\n } else {\n console.log(\"icon should be white\");\n return (\n \n
\n );\n }\n}\n\nfunction Provider(props) {\n return (\n \n | {props.provider.name} | \n {props.provider.prefix} | \n
\n );\n}\n\nfunction ModalInit() {\n setDisplayedItems();\n return (\n \n );\n}\n\nReactDOM.render(\n ,\n document.getElementById('root')\n);\n\n//Functions below this line are for calculating data for\n//other functions\n\nfunction date() {\n let currentDate = new Date();\n let dateOptions = {\n weekday: \"long\",\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\"\n };\n let date = currentDate.toLocaleDateString(\"en-GB\", dateOptions);\n return date;\n}\nfunction fixDigits(k) {\n if (k < 10) {\n return \"0\" + k;\n }\n else {\n return k;\n }\n}\nfunction greet() {\n let currentTime = new Date();\n let greet = Math.floor(currentTime.getHours() / 6);\n let easterEggChance = Math.floor(Math.random() * 100);\n let greetings = require('./messages.json');\n let timeBased = [];\n let easterEggs = [];\n for (var i = 0; i < greetings.messages.length; i++) {\n if (greetings.messages[i].easteregg === \"FALSE\") {\n timeBased = timeBased.concat(greetings.messages[i]);\n } else {\n easterEggs = easterEggs.concat(greetings.messages[i]);\n }\n }\n if (easterEggChance > 10) {\n return timeBased[greet].message;\n } else {\n let easterEggText = Math.floor(Math.random() * easterEggs.length);\n return easterEggs[easterEggText].message;\n }\n}\nfunction Clock() {\n const [date, setDate] = useState(new Date());\n\n function refreshClock() {\n setDate(new Date());\n }\n useEffect(() => {\n const timerId = setInterval(refreshClock, 1000);\n return function cleanup() {\n clearInterval(timerId);\n };\n }, []);\n\n var hour = date.getHours();\n var minutes = date.getMinutes();\n //var seconds = date.getSeconds();\n var midday = \"AM\";\n midday = (hour >= 12) ? \"PM\" : \"AM\";\n hour = (hour === 0) ? 12 : ((hour > 12) ? (hour - 12) : hour);\n minutes = fixDigits(minutes);\n //seconds = fixDigits(seconds);\n let time = hour + \":\" + minutes + \" \" + midday;\n\n return (\n {time}
\n\n );\n}\nfunction getApps() {\n let applications = require('./apps.json');\n return applications;\n}\nfunction getLinks() {\n let links = require('./links.json');\n return links;\n}\nfunction getProviders() {\n let providers = require('./providers.json');\n return providers;\n}\nfunction getThemes() {\n let themes = require('./themes.json');\n return themes;\n}\nfunction updateTheme(e) {\n var themes = getThemes();\n var themeName = e.target.innerHTML.toLowerCase();\n var index = themes.themes.findIndex(function(item, i){\n return item.name === themeName;\n });\n localStorage.setItem(\"image-background\", themes.themes[index].imagebackground);\n localStorage.setItem(\"color-background\", themes.themes[index].colorbackground);\n localStorage.setItem(\"color-search-background\", themes.themes[index].colorserachbackground);\n localStorage.setItem(\"color-text-pri\",themes.themes[index].colortextpri);\n localStorage.setItem(\"color-text-acc\", themes.themes[index].colortextacc);\n localStorage.setItem(\"color-border\", themes.themes[index].colorborder);\n \n //document.documentElement.style.setProperty(prop, `var(--${themeName}${prop.substring(10)})`);\n setTheme();\n}\nfunction setTheme() {\n setValueFromLocalStorage('image-background');\n setValueFromLocalStorage('color-background');\n setValueFromLocalStorage('color-search-background');\n setValueFromLocalStorage('color-text-pri');\n setValueFromLocalStorage('color-text-acc');\n setValueFromLocalStorage('color-border');\n setValueFromLocalStorage('content-display');\n}\nfunction handleKeyPress(e) {\n var sindex = 0;\n var cycle = false;\n var key = e.keyCode || e.which;\n var text = e.target.value.replaceAll(\"+\", \"%2B\");\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n if (key == 13) { // Search functions\n search(text);\n }\n if (key == 9) { // Tab Completion Functions\n e.preventDefault();\n e.stopPropagation();\n if (text[0] === ';') {\n switch (option) {\n case 't':\n var streamers = ['admiralbahroo', 'moonmoon_ow', 'witwix'];\n if (!subtext || cycle) {\n cycle = true;\n if (sindex > streamers.length - 1) sindex = 0;\n document.getElementById(\"keywords\").value = ';t ' + streamers[sindex++];\n return;\n }\n for (var streamer of streamers) {\n if (subtext === streamer.substr(0, subtext.length)) {\n document.getElementById(\"keywords\").value = ';t ' + streamer;\n return;\n }\n }\n break;\n }\n }\n }\n if(key == 32){ //Space to go to search\nupdateLabel(text);\n }\n sindex = 0;\n cycle = false;\n updateLabel(text);\n}\nfunction updateLabel(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n if (text[0] === '/') {\n// if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n document.getElementById(\"searchType\").innerHTML = \"Allmusic search\";\n break;\n case \"d\":\n document.getElementById(\"searchType\").innerHTML = \"Duck Duck Go search\";\n break;\n case \"di\":\n document.getElementById(\"searchType\").innerHTML = \"Discogs search\";\n break;\n case \"i\":\n document.getElementById(\"searchType\").innerHTML = \"IMDB search\";\n break;\n case \"m\":\n document.getElementById(\"searchType\").innerHTML = \"TheMovieDB search\";\n break;\n case \"r\":\n document.getElementById(\"searchType\").innerHTML = \"Reddit search\";\n break;\n case \"q\":\n document.getElementById(\"searchType\").innerHTML = \"Qwant search\";\n break;\n case \"so\":\n document.getElementById(\"searchType\").innerHTML = \"Soundcloud search\";\n break;\n case \"s\":\n document.getElementById(\"searchType\").innerHTML = \"Spotify search\";\n break;\n case \"tv\":\n document.getElementById(\"searchType\").innerHTML = \"TheTVDB search\";\n break;\n case \"t\":\n document.getElementById(\"searchType\").innerHTML = \"Trakt search\";\n break;\n case \"y\":\n document.getElementById(\"searchType\").innerHTML = \"YouTube search\";\n break;\n case \"w\":\n document.getElementById(\"searchType\").innerHTML = \"Wikipedia search\";\n break;\n case \"p\":\n document.getElementById(\"searchType\").innerHTML = \"Plex search\";\n break;\n case \"rt\":\n document.getElementById(\"searchType\").innerHTML = \"Rotten Tomatoes search\";\n break;\n default:\n document.getElementById(\"searchType\").innerHTML = \"Invalid search\";\n break;\n }\n}else {\n document.getElementById(\"searchType\").innerHTML = \"Google search\";\n }\n}\nfunction search(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n if (text[0] === '/') {\n if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n window.location = \"https://www.allmusic.com/search/all/\" + subtext;\n break;\n case \"d\":\n window.location = \"https://duckduckgo.com/?q=\" + subtext;\n break;\n case \"di\":\n window.location = \"https://www.discogs.com/search/?q=\" + subtext;\n break;\n case \"i\":\n window.location = \"https://www.imdb.com/find?q=\" + subtext;\n break;\n case \"m\":\n window.location = \"https://www.themoviedb.org/search?query=\" + subtext;\n break;\n case \"r\":\n window.location = \"https://www.reddit.com/search?q=\" + subtext;\n break;\n case \"q\":\n window.location = \"https://www.qwant.com/?q=\" + subtext;\n break;\n case \"so\":\n window.location = \"https://soundcloud.com/search?q=\" + subtext;\n break;\n case \"s\":\n window.location = \"https://open.spotify.com/search/results/\" + subtext;\n break;\n case \"t\":\n window.location = \"https://trakt.tv/search?query=\" + subtext;\n break;\n case \"tv\":\n window.location = \"https://www.thetvdb.com/search?query=\" + subtext;\n break;\n case \"y\":\n window.location = \"https://www.youtube.com/results?search_query=\" + subtext;\n break;\n case \"w\":\n window.location = \"https://en.wikipedia.org/w/index.php?search=\" + subtext;\n break;\n case \"p\":\n window.location = \"https://app.plex.tv/desktop/#!/search?query=\" + subtext;\n break;\n case \"rt\":\n window.location = \"https://www.rottentomatoes.com/search?search=\" + subtext;\n break;\n }\n } else {\n var option = text.substr(1);\n switch (option) {\n case \"d\":\n window.location = \"https://www.duckduckgo.com\";\n break;\n case \"y\":\n window.location = \"https://www.youtube.com\";\n break;\n case \"r\":\n window.location = \"https://reddit.com\";\n break;\n case \"s\":\n window.location = \"https://open.spotify.com\";\n break;\n }\n }\n } else if (validURL(text)) {\n if (containsProtocol(text))\n window.location = text;\n else\n window.location = \"https://\" + text;\n } else {\n window.location = \"https://www.google.com/search?q=\" + text;\n }\n}\nfunction validURL(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/)?' + // protocol\n '((([a-z\\\\d]([a-z\\\\d-]*[a-z\\\\d])*)\\\\.)+[a-z]{2,}|' + // domain name\n '((\\\\d{1,3}\\\\.){3}\\\\d{1,3}))' + // OR ip (v4) address\n '(\\\\:\\\\d+)?(\\\\/[-a-z\\\\d%_.~+]*)*' + // port and path\n '(\\\\?[;&a-z\\\\d%_.~+=-]*)?' + // query string\n '(\\\\#[-a-z\\\\d_]*)?$', 'i'); // fragment locator\n return !!pattern.test(str);\n}\nfunction containsProtocol(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/){1}.*', 'i');\n return !!pattern.test(str);\n}\nString.prototype.replaceAll = function(search, replacement) {\n var target = this;\n return target.split(search).join(replacement);\n};\nfunction udpateDisplayedItems(e) {\n localStorage.setItem('contenttype', e.target.checked);\n if (e.target.checked) {\n localStorage.setItem('content-display', 'none');\n } else {\n localStorage.setItem('content-display', 'block');\n }\n setDisplayedItems();\n}\nfunction setDisplayedItems() {\n setValueFromLocalStorage('contenttype');\n setValueFromLocalStorage('content-display');\n}"]},"metadata":{},"sourceType":"module"}
\ No newline at end of file
diff --git a/node_modules/.cache/babel-loader/cb722ccf032f2abaa8f7bc94f66b03e2.json b/node_modules/.cache/babel-loader/cb722ccf032f2abaa8f7bc94f66b03e2.json
new file mode 100644
index 00000000..aba1e1cd
--- /dev/null
+++ b/node_modules/.cache/babel-loader/cb722ccf032f2abaa8f7bc94f66b03e2.json
@@ -0,0 +1 @@
+{"ast":null,"code":"var _jsxFileName = \"/home/seanedmunds/dev/home-page/src/index.js\",\n _s = $RefreshSig$();\n\nimport React from 'react';\nimport { useState, useEffect } from 'react';\nimport ReactDOM from 'react-dom'; //import { unstable_createPortal } from 'react-dom';\n\nimport './index.css';\nimport { jsxDEV as _jsxDEV } from \"react/jsx-dev-runtime\";\n\nfunction Homepage() {\n return /*#__PURE__*/_jsxDEV(\"main\", {\n id: \"container\",\n className: \"fade\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Search, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 11,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 10,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Header, {\n date: date(),\n greet: greet()\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 14,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 13,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Applications, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 20,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 19,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Bookmarks, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 23,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 22,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(ModalMenu, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 26,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 25,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(ModalInit, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 29,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 28,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 9,\n columnNumber: 5\n }, this);\n}\n\n_c = Homepage;\n\nfunction Search() {\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"search\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"abackground\",\n children: [/*#__PURE__*/_jsxDEV(\"input\", {\n name: \"keywords\",\n type: \"text\",\n className: \"keyword\",\n id: \"keywords\",\n size: \"50\",\n spellCheck: \"true\",\n placeholder: \"\"\n /*onFocus={this.placeholder = \"\"} onBlur={this.placeholder = ''}*/\n ,\n autoComplete: \"off\",\n autoFocus: true,\n onKeyUp: handleKeyPress\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 39,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n id: \"searchType\",\n className: \"Input-label\",\n children: \"Google search\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 40,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 38,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 37,\n columnNumber: 5\n }, this);\n}\n\n_c2 = Search;\n\nfunction Header(props) {\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"header\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n id: \"greeting_block\",\n children: /*#__PURE__*/_jsxDEV(\"h1\", {\n id: \"header_greet\",\n children: props.greet\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 50,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 49,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"date_block\",\n children: [/*#__PURE__*/_jsxDEV(\"h2\", {\n id: \"header_date\",\n children: props.date\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 53,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(Clock, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 54,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 52,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 48,\n columnNumber: 5\n }, this);\n}\n\n_c3 = Header;\n\nfunction Applications() {\n let appList = getApps();\n var items = [];\n\n for (var i = 0; i < appList.apps.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(App, {\n name: appList.apps[i].name,\n url: appList.apps[i].url,\n icon: appList.apps[i].icon,\n NSFW: appList.apps[i].NSFW\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 65,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"apps\",\n children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n children: \"Applications\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 76,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"apps_loop\",\n children: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 77,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 75,\n columnNumber: 5\n }, this);\n}\n\n_c4 = Applications;\n\nfunction App(props) {\n let classNameType = props.NSFW + \"-content\";\n let hrefUrl = \"https://\" + props.url;\n let iconName = \"mdi-\" + props.icon;\n return /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: hrefUrl,\n className: classNameType,\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_item\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_icon\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify icon\",\n \"data-icon\": iconName\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 93,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 92,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_text\",\n children: [/*#__PURE__*/_jsxDEV(\"span\", {\n id: \"app-name\",\n children: props.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 96,\n columnNumber: 13\n }, this), /*#__PURE__*/_jsxDEV(\"span\", {\n id: \"app-address\",\n children: props.url\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 97,\n columnNumber: 13\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 95,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 91,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 90,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 89,\n columnNumber: 5\n }, this);\n}\n\n_c5 = App;\n\nfunction Bookmarks() {\n let bookmarkList = getLinks();\n var items = [];\n\n for (var i = 0; i < bookmarkList.bookmarks.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(LinkGroups, {\n category: bookmarkList.bookmarks[i].category,\n links: bookmarkList.bookmarks[i].links\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 110,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"links\",\n children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n children: \"Bookmarks\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 119,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"links_loop\",\n children: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 120,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 118,\n columnNumber: 5\n }, this);\n}\n\n_c6 = Bookmarks;\n\nfunction LinkGroups(props) {\n var items = [];\n\n for (var i = 0; i < props.links.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(LinkItem, {\n link: props.links[i]\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 131,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"links_item\",\n children: [/*#__PURE__*/_jsxDEV(\"h4\", {\n children: props.category\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 139,\n columnNumber: 7\n }, this), items]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 138,\n columnNumber: 5\n }, this);\n}\n\n_c7 = LinkGroups;\n\nfunction LinkItem(props) {\n return /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: props.link.url,\n className: \"theme_color-border theme_text-select\",\n children: props.link.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 148,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 147,\n columnNumber: 5\n }, this);\n}\n\n_c8 = LinkItem;\n\nfunction ModalMenu() {\n var providers = getProviders();\n var items = [];\n\n for (var i = 0; i < providers.providers.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(Provider, {\n provider: providers.providers[i]\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 158,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"modal\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n children: [/*#__PURE__*/_jsxDEV(\"header\", {\n id: \"modal-header\",\n children: [/*#__PURE__*/_jsxDEV(\"h1\", {\n children: \"Options\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 168,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n href: \"#\",\n title: \"Close\",\n className: \"modal-close\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-close\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 170,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 169,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 167,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"h2\", {\n children: \"Color themes\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 174,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"modal-theme\",\n children: [/*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"blackboard\",\n className: \"theme-button theme-blackboard\",\n onClick: updateTheme,\n children: \"Blackboard\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 177,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"gazette\",\n className: \"theme-button theme-gazette\",\n children: \"Gazette\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 178,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"espresso\",\n className: \"theme-button theme-espresso\",\n children: \"Espresso\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 179,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cab\",\n className: \"theme-button theme-cab\",\n children: \"Cab\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 180,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cloud\",\n className: \"theme-button theme-cloud\",\n children: \"Cloud\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 181,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"lime\",\n className: \"theme-button theme-lime\",\n children: \"Lime\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 182,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"passion\",\n className: \"theme-button theme-passion\",\n children: \"Passion\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 183,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"blues\",\n className: \"theme-button theme-blues\",\n children: \"Blues\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 184,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"chalk\",\n className: \"theme-button theme-chalk\",\n children: \"Chalk\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 185,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"tron\",\n className: \"theme-button theme-tron\",\n children: \"Tron\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 186,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"paper\",\n className: \"theme-button theme-paper\",\n children: \"Paper\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 187,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cyberpunk\",\n className: \"theme-button theme-cyberpunk\",\n children: \"Cyberpunk\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 188,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"quadra\",\n className: \"theme-button theme-panam\",\n children: \"Quadra\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 189,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"panam\",\n className: \"theme-button theme-panam\",\n children: \"Panam\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 190,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"touch\",\n className: \"theme-button theme-touch\",\n children: \"Touch\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 191,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"peek\",\n className: \"theme-button theme-peek\",\n children: \"Peek\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 192,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 176,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"h2\", {\n children: \"Search options\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 196,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"providers\",\n children: /*#__PURE__*/_jsxDEV(\"table\", {\n children: /*#__PURE__*/_jsxDEV(\"tbody\", {\n children: [/*#__PURE__*/_jsxDEV(\"tr\", {\n children: [/*#__PURE__*/_jsxDEV(\"th\", {\n children: \"Website\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 201,\n columnNumber: 19\n }, this), /*#__PURE__*/_jsxDEV(\"th\", {\n children: \"Prefix\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 202,\n columnNumber: 19\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 200,\n columnNumber: 17\n }, this), items]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 199,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 198,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 197,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"header\", {\n id: \"modal-footer\",\n children: [/*#__PURE__*/_jsxDEV(\"a\", {\n href: \"https://github.com/jeroenpardon/\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-github-box\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 210,\n columnNumber: 54\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 210,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n href: \"https://materialdesignicons.com/\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-material-design\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 211,\n columnNumber: 54\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 211,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"sneaky\",\n children: [/*#__PURE__*/_jsxDEV(\"input\", {\n type: \"checkbox\",\n id: \"contenttype\",\n onChange: \"nsfw(this)\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 212,\n columnNumber: 35\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n for: \"contenttype\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-domino-mask\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 213,\n columnNumber: 36\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 213,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 212,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 209,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 166,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 165,\n columnNumber: 5\n }, this);\n}\n\n_c9 = ModalMenu;\n\nfunction Provider(props) {\n return /*#__PURE__*/_jsxDEV(\"tr\", {\n children: [/*#__PURE__*/_jsxDEV(\"td\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: props.provider.url,\n children: props.provider.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 223,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 223,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"td\", {\n children: props.provider.prefix\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 224,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 222,\n columnNumber: 5\n }, this);\n}\n\n_c10 = Provider;\n\nfunction ModalInit() {\n return /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"modal_init\",\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n className: \"btn\",\n href: \"#modal\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify icon\",\n \"data-icon\": \"mdi-xbox-controller-menu\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 233,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 232,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 231,\n columnNumber: 5\n }, this);\n}\n\n_c11 = ModalInit;\nReactDOM.render( /*#__PURE__*/_jsxDEV(Homepage, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 240,\n columnNumber: 3\n}, this), document.getElementById('root')); //Functions below this line are for calculating data for\n//other functions\n\nfunction date() {\n let currentDate = new Date();\n let dateOptions = {\n weekday: \"long\",\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\"\n };\n let date = currentDate.toLocaleDateString(\"en-GB\", dateOptions);\n return date;\n}\n\nfunction fixDigits(k) {\n if (k < 10) {\n return \"0\" + k;\n } else {\n return k;\n }\n}\n\nfunction greet() {\n let currentTime = new Date();\n let greet = Math.floor(currentTime.getHours() / 6);\n let easterEggChance = Math.floor(Math.random() * 100);\n\n let greetings = require('./messages.json');\n\n let timeBased = [];\n let easterEggs = [];\n\n for (var i = 0; i < greetings.messages.length; i++) {\n if (greetings.messages[i].easteregg === \"FALSE\") {\n timeBased = timeBased.concat(greetings.messages[i]);\n } else {\n easterEggs = easterEggs.concat(greetings.messages[i]);\n }\n }\n\n if (easterEggChance > 10) {\n return timeBased[greet].message;\n } else {\n let easterEggText = Math.floor(Math.random() * easterEggs.length);\n return easterEggs[easterEggText].message;\n }\n}\n\nfunction Clock() {\n _s();\n\n const [date, setDate] = useState(new Date());\n\n function refreshClock() {\n setDate(new Date());\n }\n\n useEffect(() => {\n const timerId = setInterval(refreshClock, 1000);\n return function cleanup() {\n clearInterval(timerId);\n };\n }, []);\n var hour = date.getHours();\n var minutes = date.getMinutes(); //var seconds = date.getSeconds();\n\n var midday = \"AM\";\n midday = hour >= 12 ? \"PM\" : \"AM\";\n hour = hour === 0 ? 12 : hour > 12 ? hour - 12 : hour;\n minutes = fixDigits(minutes); //seconds = fixDigits(seconds);\n\n let time = hour + \":\" + minutes + \" \" + midday;\n return /*#__PURE__*/_jsxDEV(\"h2\", {\n id: \"clock\",\n children: time\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 311,\n columnNumber: 5\n }, this);\n}\n\n_s(Clock, \"Gqi45WOZhU2c0BLYX0HoJeiR0fk=\");\n\n_c12 = Clock;\n\nfunction getApps() {\n let applications = require('./apps.json');\n\n return applications;\n}\n\nfunction getLinks() {\n let links = require('./links.json');\n\n return links;\n}\n\nfunction getProviders() {\n let providers = require('./providers.json');\n\n return providers;\n}\n\nfunction getThemes() {\n let themes = require('./themes.json');\n\n return themes;\n}\n\nfunction updateTheme(e) {\n var themes = getThemes().themes;\n var themeName = e.target.innerHTML.toLowerCase();\n console.log(themes);\n}\n\nfunction handleKeyPress(e) {\n var sindex = 0;\n var cycle = false;\n var key = e.keyCode || e.which;\n var text = e.target.value.replaceAll(\"+\", \"%2B\");\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n\n if (key == 13) {\n // Search functions\n search(text);\n }\n\n if (key == 9) {\n // Tab Completion Functions\n e.preventDefault();\n e.stopPropagation();\n\n if (text[0] === ';') {\n switch (option) {\n case 't':\n var streamers = ['admiralbahroo', 'moonmoon_ow', 'witwix'];\n\n if (!subtext || cycle) {\n cycle = true;\n if (sindex > streamers.length - 1) sindex = 0;\n document.getElementById(\"keywords\").value = ';t ' + streamers[sindex++];\n return;\n }\n\n for (var streamer of streamers) {\n if (subtext === streamer.substr(0, subtext.length)) {\n document.getElementById(\"keywords\").value = ';t ' + streamer;\n return;\n }\n }\n\n break;\n }\n }\n }\n\n if (key == 32) {\n //Space to go to search\n updateLabel(text);\n }\n\n sindex = 0;\n cycle = false;\n updateLabel(text);\n}\n\nfunction updateLabel(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n\n if (text[0] === '/') {\n // if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n document.getElementById(\"searchType\").innerHTML = \"Allmusic search\";\n break;\n\n case \"d\":\n document.getElementById(\"searchType\").innerHTML = \"Duck Duck Go search\";\n break;\n\n case \"di\":\n document.getElementById(\"searchType\").innerHTML = \"Discogs search\";\n break;\n\n case \"i\":\n document.getElementById(\"searchType\").innerHTML = \"IMDB search\";\n break;\n\n case \"m\":\n document.getElementById(\"searchType\").innerHTML = \"TheMovieDB search\";\n break;\n\n case \"r\":\n document.getElementById(\"searchType\").innerHTML = \"Reddit search\";\n break;\n\n case \"q\":\n document.getElementById(\"searchType\").innerHTML = \"Qwant search\";\n break;\n\n case \"so\":\n document.getElementById(\"searchType\").innerHTML = \"Soundcloud search\";\n break;\n\n case \"s\":\n document.getElementById(\"searchType\").innerHTML = \"Spotify search\";\n break;\n\n case \"tv\":\n document.getElementById(\"searchType\").innerHTML = \"TheTVDB search\";\n break;\n\n case \"t\":\n document.getElementById(\"searchType\").innerHTML = \"Trakt search\";\n break;\n\n case \"y\":\n document.getElementById(\"searchType\").innerHTML = \"YouTube search\";\n break;\n\n case \"w\":\n document.getElementById(\"searchType\").innerHTML = \"Wikipedia search\";\n break;\n\n case \"p\":\n document.getElementById(\"searchType\").innerHTML = \"Plex search\";\n break;\n\n case \"rt\":\n document.getElementById(\"searchType\").innerHTML = \"Rotten Tomatoes search\";\n break;\n\n default:\n document.getElementById(\"searchType\").innerHTML = \"Invalid search\";\n break;\n }\n } else {\n document.getElementById(\"searchType\").innerHTML = \"Google search\";\n }\n}\n\nfunction search(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n\n if (text[0] === '/') {\n if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n window.location = \"https://www.allmusic.com/search/all/\" + subtext;\n break;\n\n case \"d\":\n window.location = \"https://duckduckgo.com/?q=\" + subtext;\n break;\n\n case \"di\":\n window.location = \"https://www.discogs.com/search/?q=\" + subtext;\n break;\n\n case \"i\":\n window.location = \"https://www.imdb.com/find?q=\" + subtext;\n break;\n\n case \"m\":\n window.location = \"https://www.themoviedb.org/search?query=\" + subtext;\n break;\n\n case \"r\":\n window.location = \"https://www.reddit.com/search?q=\" + subtext;\n break;\n\n case \"q\":\n window.location = \"https://www.qwant.com/?q=\" + subtext;\n break;\n\n case \"so\":\n window.location = \"https://soundcloud.com/search?q=\" + subtext;\n break;\n\n case \"s\":\n window.location = \"https://open.spotify.com/search/results/\" + subtext;\n break;\n\n case \"t\":\n window.location = \"https://trakt.tv/search?query=\" + subtext;\n break;\n\n case \"tv\":\n window.location = \"https://www.thetvdb.com/search?query=\" + subtext;\n break;\n\n case \"y\":\n window.location = \"https://www.youtube.com/results?search_query=\" + subtext;\n break;\n\n case \"w\":\n window.location = \"https://en.wikipedia.org/w/index.php?search=\" + subtext;\n break;\n\n case \"p\":\n window.location = \"https://app.plex.tv/desktop/#!/search?query=\" + subtext;\n break;\n\n case \"rt\":\n window.location = \"https://www.rottentomatoes.com/search?search=\" + subtext;\n break;\n }\n } else {\n var option = text.substr(1);\n\n switch (option) {\n case \"d\":\n window.location = \"https://www.duckduckgo.com\";\n break;\n\n case \"y\":\n window.location = \"https://www.youtube.com\";\n break;\n\n case \"r\":\n window.location = \"https://reddit.com\";\n break;\n\n case \"s\":\n window.location = \"https://open.spotify.com\";\n break;\n }\n }\n } else if (validURL(text)) {\n if (containsProtocol(text)) window.location = text;else window.location = \"https://\" + text;\n } else {\n window.location = \"https://www.google.com/search?q=\" + text;\n }\n} // Source: https://stackoverflow.com/questions/5717093/check-if-a-javascript-string-is-a-url\n\n\nfunction validURL(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/)?' + // protocol\n '((([a-z\\\\d]([a-z\\\\d-]*[a-z\\\\d])*)\\\\.)+[a-z]{2,}|' + // domain name\n '((\\\\d{1,3}\\\\.){3}\\\\d{1,3}))' + // OR ip (v4) address\n '(\\\\:\\\\d+)?(\\\\/[-a-z\\\\d%_.~+]*)*' + // port and path\n '(\\\\?[;&a-z\\\\d%_.~+=-]*)?' + // query string\n '(\\\\#[-a-z\\\\d_]*)?$', 'i'); // fragment locator\n\n return !!pattern.test(str);\n}\n\nfunction containsProtocol(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/){1}.*', 'i');\n return !!pattern.test(str);\n}\n\nString.prototype.replaceAll = function (search, replacement) {\n var target = this;\n return target.split(search).join(replacement);\n};\n\nvar _c, _c2, _c3, _c4, _c5, _c6, _c7, _c8, _c9, _c10, _c11, _c12;\n\n$RefreshReg$(_c, \"Homepage\");\n$RefreshReg$(_c2, \"Search\");\n$RefreshReg$(_c3, \"Header\");\n$RefreshReg$(_c4, \"Applications\");\n$RefreshReg$(_c5, \"App\");\n$RefreshReg$(_c6, \"Bookmarks\");\n$RefreshReg$(_c7, \"LinkGroups\");\n$RefreshReg$(_c8, \"LinkItem\");\n$RefreshReg$(_c9, \"ModalMenu\");\n$RefreshReg$(_c10, \"Provider\");\n$RefreshReg$(_c11, \"ModalInit\");\n$RefreshReg$(_c12, \"Clock\");","map":{"version":3,"sources":["/home/seanedmunds/dev/home-page/src/index.js"],"names":["React","useState","useEffect","ReactDOM","Homepage","date","greet","Search","handleKeyPress","Header","props","Applications","appList","getApps","items","i","apps","length","push","name","url","icon","NSFW","App","classNameType","hrefUrl","iconName","Bookmarks","bookmarkList","getLinks","bookmarks","category","links","LinkGroups","LinkItem","link","ModalMenu","providers","getProviders","updateTheme","Provider","provider","prefix","ModalInit","render","document","getElementById","currentDate","Date","dateOptions","weekday","year","month","day","toLocaleDateString","fixDigits","k","currentTime","Math","floor","getHours","easterEggChance","random","greetings","require","timeBased","easterEggs","messages","easteregg","concat","message","easterEggText","Clock","setDate","refreshClock","timerId","setInterval","cleanup","clearInterval","hour","minutes","getMinutes","midday","time","applications","getThemes","themes","e","themeName","target","innerHTML","toLowerCase","console","log","sindex","cycle","key","keyCode","which","text","value","replaceAll","option","substr","indexOf","subtext","search","preventDefault","stopPropagation","streamers","streamer","updateLabel","window","location","validURL","containsProtocol","str","pattern","RegExp","test","String","prototype","replacement","split","join"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { useState, useEffect } from 'react';\nimport ReactDOM from 'react-dom';\n//import { unstable_createPortal } from 'react-dom';\nimport './index.css';\n\nfunction Homepage() {\n return (\n \n \n \n
\n \n \n
\n \n \n \n
\n \n \n
\n \n \n
\n \n );\n}\n\nfunction Search() {\n return (\n \n )\n}\n\nfunction Header(props) {\n return (\n \n );\n}\n\nfunction Applications() {\n let appList = getApps();\n var items = [];\n for (var i = 0; i < appList.apps.length; i++) {\n items.push(\n \n );\n }\n return (\n \n Applications
\n \n {items}\n
\n \n );\n}\n\nfunction App(props) {\n let classNameType = props.NSFW + \"-content\";\n let hrefUrl = \"https://\" + props.url;\n let iconName = \"mdi-\" + props.icon;\n return (\n \n );\n}\n\nfunction Bookmarks() {\n let bookmarkList = getLinks();\n var items = [];\n for (var i = 0; i < bookmarkList.bookmarks.length; i++) {\n items.push(\n \n );\n }\n return (\n \n Bookmarks
\n \n {items}\n
\n \n );\n}\n\nfunction LinkGroups(props) {\n var items = [];\n for (var i = 0; i < props.links.length; i++) {\n items.push(\n \n );\n }\n return (\n \n
{props.category}
\n {items}\n \n );\n}\n\nfunction LinkItem(props) {\n return (\n \n );\n}\n\nfunction ModalMenu() {\n var providers = getProviders();\n var items = [];\n for (var i = 0; i < providers.providers.length; i++) {\n items.push(\n \n );\n }\n return (\n \n \n \n\n
Color themes
\n\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n\n\n
Search options
\n
\n \n \n \n | Website | \n Prefix | \n
\n {items}\n \n
\n \n\n \n
\n \n );\n}\n\nfunction Provider(props) {\n return (\n \n | {props.provider.name} | \n {props.provider.prefix} | \n
\n );\n}\n\nfunction ModalInit() {\n return (\n \n );\n}\n\nReactDOM.render(\n ,\n document.getElementById('root')\n);\n\n//Functions below this line are for calculating data for\n//other functions\n\nfunction date() {\n let currentDate = new Date();\n let dateOptions = {\n weekday: \"long\",\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\"\n };\n let date = currentDate.toLocaleDateString(\"en-GB\", dateOptions);\n return date;\n}\nfunction fixDigits(k) {\n if (k < 10) {\n return \"0\" + k;\n }\n else {\n return k;\n }\n}\nfunction greet() {\n let currentTime = new Date();\n let greet = Math.floor(currentTime.getHours() / 6);\n let easterEggChance = Math.floor(Math.random() * 100);\n let greetings = require('./messages.json');\n let timeBased = [];\n let easterEggs = [];\n for (var i = 0; i < greetings.messages.length; i++) {\n if (greetings.messages[i].easteregg === \"FALSE\") {\n timeBased = timeBased.concat(greetings.messages[i]);\n } else {\n easterEggs = easterEggs.concat(greetings.messages[i]);\n }\n }\n if (easterEggChance > 10) {\n return timeBased[greet].message;\n } else {\n let easterEggText = Math.floor(Math.random() * easterEggs.length);\n return easterEggs[easterEggText].message;\n }\n}\nfunction Clock() {\n const [date, setDate] = useState(new Date());\n\n function refreshClock() {\n setDate(new Date());\n }\n useEffect(() => {\n const timerId = setInterval(refreshClock, 1000);\n return function cleanup() {\n clearInterval(timerId);\n };\n }, []);\n\n var hour = date.getHours();\n var minutes = date.getMinutes();\n //var seconds = date.getSeconds();\n var midday = \"AM\";\n midday = (hour >= 12) ? \"PM\" : \"AM\";\n hour = (hour === 0) ? 12 : ((hour > 12) ? (hour - 12) : hour);\n minutes = fixDigits(minutes);\n //seconds = fixDigits(seconds);\n let time = hour + \":\" + minutes + \" \" + midday;\n\n return (\n {time}
\n\n );\n}\nfunction getApps() {\n let applications = require('./apps.json');\n return applications;\n}\nfunction getLinks() {\n let links = require('./links.json');\n return links;\n}\nfunction getProviders() {\n let providers = require('./providers.json');\n return providers;\n}\nfunction getThemes() {\n let themes = require('./themes.json');\n return themes;\n}\n\nfunction updateTheme(e) {\n var themes = getThemes().themes;\n var themeName = e.target.innerHTML.toLowerCase();\n console.log(themes);\n}\n\nfunction handleKeyPress(e) {\n var sindex = 0;\n var cycle = false;\n var key = e.keyCode || e.which;\n var text = e.target.value.replaceAll(\"+\", \"%2B\");\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n if (key == 13) { // Search functions\n search(text);\n }\n if (key == 9) { // Tab Completion Functions\n e.preventDefault();\n e.stopPropagation();\n if (text[0] === ';') {\n switch (option) {\n case 't':\n var streamers = ['admiralbahroo', 'moonmoon_ow', 'witwix'];\n if (!subtext || cycle) {\n cycle = true;\n if (sindex > streamers.length - 1) sindex = 0;\n document.getElementById(\"keywords\").value = ';t ' + streamers[sindex++];\n return;\n }\n for (var streamer of streamers) {\n if (subtext === streamer.substr(0, subtext.length)) {\n document.getElementById(\"keywords\").value = ';t ' + streamer;\n return;\n }\n }\n break;\n }\n }\n }\n if(key == 32){ //Space to go to search\nupdateLabel(text);\n }\n sindex = 0;\n cycle = false;\n updateLabel(text);\n}\n\nfunction updateLabel(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n if (text[0] === '/') {\n// if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n document.getElementById(\"searchType\").innerHTML = \"Allmusic search\";\n break;\n case \"d\":\n document.getElementById(\"searchType\").innerHTML = \"Duck Duck Go search\";\n break;\n case \"di\":\n document.getElementById(\"searchType\").innerHTML = \"Discogs search\";\n break;\n case \"i\":\n document.getElementById(\"searchType\").innerHTML = \"IMDB search\";\n break;\n case \"m\":\n document.getElementById(\"searchType\").innerHTML = \"TheMovieDB search\";\n break;\n case \"r\":\n document.getElementById(\"searchType\").innerHTML = \"Reddit search\";\n break;\n case \"q\":\n document.getElementById(\"searchType\").innerHTML = \"Qwant search\";\n break;\n case \"so\":\n document.getElementById(\"searchType\").innerHTML = \"Soundcloud search\";\n break;\n case \"s\":\n document.getElementById(\"searchType\").innerHTML = \"Spotify search\";\n break;\n case \"tv\":\n document.getElementById(\"searchType\").innerHTML = \"TheTVDB search\";\n break;\n case \"t\":\n document.getElementById(\"searchType\").innerHTML = \"Trakt search\";\n break;\n case \"y\":\n document.getElementById(\"searchType\").innerHTML = \"YouTube search\";\n break;\n case \"w\":\n document.getElementById(\"searchType\").innerHTML = \"Wikipedia search\";\n break;\n case \"p\":\n document.getElementById(\"searchType\").innerHTML = \"Plex search\";\n break;\n case \"rt\":\n document.getElementById(\"searchType\").innerHTML = \"Rotten Tomatoes search\";\n break;\n default:\n document.getElementById(\"searchType\").innerHTML = \"Invalid search\";\n break;\n }\n}else {\n document.getElementById(\"searchType\").innerHTML = \"Google search\";\n }\n}\n\nfunction search(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n if (text[0] === '/') {\n if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n window.location = \"https://www.allmusic.com/search/all/\" + subtext;\n break;\n case \"d\":\n window.location = \"https://duckduckgo.com/?q=\" + subtext;\n break;\n case \"di\":\n window.location = \"https://www.discogs.com/search/?q=\" + subtext;\n break;\n case \"i\":\n window.location = \"https://www.imdb.com/find?q=\" + subtext;\n break;\n case \"m\":\n window.location = \"https://www.themoviedb.org/search?query=\" + subtext;\n break;\n case \"r\":\n window.location = \"https://www.reddit.com/search?q=\" + subtext;\n break;\n case \"q\":\n window.location = \"https://www.qwant.com/?q=\" + subtext;\n break;\n case \"so\":\n window.location = \"https://soundcloud.com/search?q=\" + subtext;\n break;\n case \"s\":\n window.location = \"https://open.spotify.com/search/results/\" + subtext;\n break;\n case \"t\":\n window.location = \"https://trakt.tv/search?query=\" + subtext;\n break;\n case \"tv\":\n window.location = \"https://www.thetvdb.com/search?query=\" + subtext;\n break;\n case \"y\":\n window.location = \"https://www.youtube.com/results?search_query=\" + subtext;\n break;\n case \"w\":\n window.location = \"https://en.wikipedia.org/w/index.php?search=\" + subtext;\n break;\n case \"p\":\n window.location = \"https://app.plex.tv/desktop/#!/search?query=\" + subtext;\n break;\n case \"rt\":\n window.location = \"https://www.rottentomatoes.com/search?search=\" + subtext;\n break;\n }\n } else {\n var option = text.substr(1);\n switch (option) {\n case \"d\":\n window.location = \"https://www.duckduckgo.com\";\n break;\n case \"y\":\n window.location = \"https://www.youtube.com\";\n break;\n case \"r\":\n window.location = \"https://reddit.com\";\n break;\n case \"s\":\n window.location = \"https://open.spotify.com\";\n break;\n }\n }\n } else if (validURL(text)) {\n if (containsProtocol(text))\n window.location = text;\n else\n window.location = \"https://\" + text;\n } else {\n window.location = \"https://www.google.com/search?q=\" + text;\n }\n}\n\n// Source: https://stackoverflow.com/questions/5717093/check-if-a-javascript-string-is-a-url\nfunction validURL(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/)?' + // protocol\n '((([a-z\\\\d]([a-z\\\\d-]*[a-z\\\\d])*)\\\\.)+[a-z]{2,}|' + // domain name\n '((\\\\d{1,3}\\\\.){3}\\\\d{1,3}))' + // OR ip (v4) address\n '(\\\\:\\\\d+)?(\\\\/[-a-z\\\\d%_.~+]*)*' + // port and path\n '(\\\\?[;&a-z\\\\d%_.~+=-]*)?' + // query string\n '(\\\\#[-a-z\\\\d_]*)?$', 'i'); // fragment locator\n return !!pattern.test(str);\n}\n\nfunction containsProtocol(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/){1}.*', 'i');\n return !!pattern.test(str);\n}\n\nString.prototype.replaceAll = function(search, replacement) {\n var target = this;\n return target.split(search).join(replacement);\n};"]},"metadata":{},"sourceType":"module"}
\ No newline at end of file
diff --git a/node_modules/.cache/babel-loader/cbc91e96bfbff9357ab029fe8c57a5f8.json b/node_modules/.cache/babel-loader/cbc91e96bfbff9357ab029fe8c57a5f8.json
new file mode 100644
index 00000000..338464ca
--- /dev/null
+++ b/node_modules/.cache/babel-loader/cbc91e96bfbff9357ab029fe8c57a5f8.json
@@ -0,0 +1 @@
+{"ast":null,"code":"'use strict';\n\nfunction checkDCE() {\n /* global __REACT_DEVTOOLS_GLOBAL_HOOK__ */\n if (typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ === 'undefined' || typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE !== 'function') {\n return;\n }\n\n if (process.env.NODE_ENV !== 'production') {\n // This branch is unreachable because this function is only called\n // in production, but the condition is true only in development.\n // Therefore if the branch is still here, dead code elimination wasn't\n // properly applied.\n // Don't change the message. React DevTools relies on it. Also make sure\n // this message doesn't occur elsewhere in this function, or it will cause\n // a false positive.\n throw new Error('^_^');\n }\n\n try {\n // Verify that the code above has been dead code eliminated (DCE'd).\n __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(checkDCE);\n } catch (err) {\n // DevTools shouldn't crash React, no matter what.\n // We should still report in case we break this code.\n console.error(err);\n }\n}\n\nif (process.env.NODE_ENV === 'production') {\n // DCE check should happen before ReactDOM bundle executes so that\n // DevTools can report bad minification during injection.\n checkDCE();\n module.exports = require('./cjs/react-dom.production.min.js');\n} else {\n module.exports = require('./cjs/react-dom.development.js');\n}","map":{"version":3,"sources":["/home/seanedmunds/dev/home-page/node_modules/react-dom/index.js"],"names":["checkDCE","__REACT_DEVTOOLS_GLOBAL_HOOK__","process","env","NODE_ENV","Error","err","console","error","module","exports","require"],"mappings":"AAAA;;AAEA,SAASA,QAAT,GAAoB;AAClB;AACA,MACE,OAAOC,8BAAP,KAA0C,WAA1C,IACA,OAAOA,8BAA8B,CAACD,QAAtC,KAAmD,UAFrD,EAGE;AACA;AACD;;AACD,MAAIE,OAAO,CAACC,GAAR,CAAYC,QAAZ,KAAyB,YAA7B,EAA2C;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAM,IAAIC,KAAJ,CAAU,KAAV,CAAN;AACD;;AACD,MAAI;AACF;AACAJ,IAAAA,8BAA8B,CAACD,QAA/B,CAAwCA,QAAxC;AACD,GAHD,CAGE,OAAOM,GAAP,EAAY;AACZ;AACA;AACAC,IAAAA,OAAO,CAACC,KAAR,CAAcF,GAAd;AACD;AACF;;AAED,IAAIJ,OAAO,CAACC,GAAR,CAAYC,QAAZ,KAAyB,YAA7B,EAA2C;AACzC;AACA;AACAJ,EAAAA,QAAQ;AACRS,EAAAA,MAAM,CAACC,OAAP,GAAiBC,OAAO,CAAC,mCAAD,CAAxB;AACD,CALD,MAKO;AACLF,EAAAA,MAAM,CAACC,OAAP,GAAiBC,OAAO,CAAC,gCAAD,CAAxB;AACD","sourcesContent":["'use strict';\n\nfunction checkDCE() {\n /* global __REACT_DEVTOOLS_GLOBAL_HOOK__ */\n if (\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ === 'undefined' ||\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE !== 'function'\n ) {\n return;\n }\n if (process.env.NODE_ENV !== 'production') {\n // This branch is unreachable because this function is only called\n // in production, but the condition is true only in development.\n // Therefore if the branch is still here, dead code elimination wasn't\n // properly applied.\n // Don't change the message. React DevTools relies on it. Also make sure\n // this message doesn't occur elsewhere in this function, or it will cause\n // a false positive.\n throw new Error('^_^');\n }\n try {\n // Verify that the code above has been dead code eliminated (DCE'd).\n __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(checkDCE);\n } catch (err) {\n // DevTools shouldn't crash React, no matter what.\n // We should still report in case we break this code.\n console.error(err);\n }\n}\n\nif (process.env.NODE_ENV === 'production') {\n // DCE check should happen before ReactDOM bundle executes so that\n // DevTools can report bad minification during injection.\n checkDCE();\n module.exports = require('./cjs/react-dom.production.min.js');\n} else {\n module.exports = require('./cjs/react-dom.development.js');\n}\n"]},"metadata":{},"sourceType":"script"}
\ No newline at end of file
diff --git a/node_modules/.cache/babel-loader/cc39f84c136adf67d913a54aa68f3bc3.json b/node_modules/.cache/babel-loader/cc39f84c136adf67d913a54aa68f3bc3.json
new file mode 100644
index 00000000..61457fe1
--- /dev/null
+++ b/node_modules/.cache/babel-loader/cc39f84c136adf67d913a54aa68f3bc3.json
@@ -0,0 +1 @@
+{"ast":null,"code":"var _jsxFileName = \"/home/seanedmunds/dev/home-page/src/index.js\",\n _s = $RefreshSig$();\n\nimport React from 'react';\nimport { useState, useEffect } from 'react';\nimport ReactDOM from 'react-dom'; //import { unstable_createPortal } from 'react-dom';\n\nimport './index.css';\nimport { jsxDEV as _jsxDEV } from \"react/jsx-dev-runtime\";\n\nfunction Homepage() {\n return /*#__PURE__*/_jsxDEV(\"main\", {\n id: \"container\",\n className: \"fade\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Search, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 11,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 10,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Header, {\n date: date(),\n greet: greet()\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 14,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 13,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Applications, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 20,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 19,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Bookmarks, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 23,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 22,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(ModalMenu, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 26,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 25,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(ModalInit, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 29,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 28,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 9,\n columnNumber: 5\n }, this);\n}\n\n_c = Homepage;\n\nfunction Search() {\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"search\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"abackground\",\n children: [/*#__PURE__*/_jsxDEV(\"input\", {\n name: \"keywords\",\n type: \"text\",\n className: \"keyword\",\n id: \"keywords\",\n size: \"50\",\n spellCheck: \"true\",\n placeholder: \"\"\n /*onFocus={this.placeholder = \"\"} onBlur={this.placeholder = ''}*/\n ,\n autoComplete: \"off\",\n autoFocus: true,\n onKeyUp: handleKeyPress\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 39,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n id: \"searchType\",\n className: \"Input-label\",\n children: \"Google search\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 40,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 38,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 37,\n columnNumber: 5\n }, this);\n}\n\n_c2 = Search;\n\nfunction Header(props) {\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"header\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n id: \"greeting_block\",\n children: /*#__PURE__*/_jsxDEV(\"h1\", {\n id: \"header_greet\",\n children: props.greet\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 50,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 49,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"date_block\",\n children: [/*#__PURE__*/_jsxDEV(\"h2\", {\n id: \"header_date\",\n children: props.date\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 53,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(Clock, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 54,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 52,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 48,\n columnNumber: 5\n }, this);\n}\n\n_c3 = Header;\n\nfunction Applications() {\n let appList = getApps();\n var items = [];\n\n for (var i = 0; i < appList.apps.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(App, {\n name: appList.apps[i].name,\n url: appList.apps[i].url,\n icon: appList.apps[i].icon,\n NSFW: appList.apps[i].NSFW\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 65,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"apps\",\n children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n children: \"Applications\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 76,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"apps_loop\",\n children: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 77,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 75,\n columnNumber: 5\n }, this);\n}\n\n_c4 = Applications;\n\nfunction App(props) {\n let classNameType = props.NSFW + \"-content\";\n let hrefUrl = \"https://\" + props.url;\n let iconName = \"mdi-\" + props.icon;\n return /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: hrefUrl,\n className: classNameType,\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_item\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_icon\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify icon\",\n \"data-icon\": iconName\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 93,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 92,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_text\",\n children: [/*#__PURE__*/_jsxDEV(\"span\", {\n id: \"app-name\",\n children: props.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 96,\n columnNumber: 13\n }, this), /*#__PURE__*/_jsxDEV(\"span\", {\n id: \"app-address\",\n children: props.url\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 97,\n columnNumber: 13\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 95,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 91,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 90,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 89,\n columnNumber: 5\n }, this);\n}\n\n_c5 = App;\n\nfunction Bookmarks() {\n let bookmarkList = getLinks();\n var items = [];\n\n for (var i = 0; i < bookmarkList.bookmarks.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(LinkGroups, {\n category: bookmarkList.bookmarks[i].category,\n links: bookmarkList.bookmarks[i].links\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 110,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"links\",\n children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n children: \"Bookmarks\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 119,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"links_loop\",\n children: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 120,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 118,\n columnNumber: 5\n }, this);\n}\n\n_c6 = Bookmarks;\n\nfunction LinkGroups(props) {\n var items = [];\n\n for (var i = 0; i < props.links.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(LinkItem, {\n link: props.links[i]\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 131,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"links_item\",\n children: [/*#__PURE__*/_jsxDEV(\"h4\", {\n children: props.category\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 139,\n columnNumber: 7\n }, this), items]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 138,\n columnNumber: 5\n }, this);\n}\n\n_c7 = LinkGroups;\n\nfunction LinkItem(props) {\n return /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: props.link.url,\n className: \"theme_color-border theme_text-select\",\n children: props.link.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 148,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 147,\n columnNumber: 5\n }, this);\n}\n\n_c8 = LinkItem;\n\nfunction ModalMenu() {\n var providers = getProviders();\n var items = [];\n\n for (var i = 0; i < providers.providers.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(Provider, {\n provider: providers.providers[i]\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 158,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"modal\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n children: [/*#__PURE__*/_jsxDEV(\"header\", {\n id: \"modal-header\",\n children: [/*#__PURE__*/_jsxDEV(\"h1\", {\n children: \"Options\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 168,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n href: \"#\",\n title: \"Close\",\n className: \"modal-close\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-close\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 170,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 169,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 167,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"h2\", {\n children: \"Color themes\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 174,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"modal-theme\",\n children: [/*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"blackboard\",\n className: \"theme-button theme-blackboard\",\n onClick: updateTheme,\n children: \"Blackboard\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 177,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"gazette\",\n className: \"theme-button theme-gazette\",\n children: \"Gazette\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 178,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"espresso\",\n className: \"theme-button theme-espresso\",\n children: \"Espresso\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 179,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cab\",\n className: \"theme-button theme-cab\",\n children: \"Cab\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 180,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cloud\",\n className: \"theme-button theme-cloud\",\n children: \"Cloud\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 181,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"lime\",\n className: \"theme-button theme-lime\",\n children: \"Lime\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 182,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"passion\",\n className: \"theme-button theme-passion\",\n children: \"Passion\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 183,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"blues\",\n className: \"theme-button theme-blues\",\n children: \"Blues\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 184,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"chalk\",\n className: \"theme-button theme-chalk\",\n children: \"Chalk\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 185,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"tron\",\n className: \"theme-button theme-tron\",\n children: \"Tron\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 186,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"paper\",\n className: \"theme-button theme-paper\",\n children: \"Paper\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 187,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cyberpunk\",\n className: \"theme-button theme-cyberpunk\",\n children: \"Cyberpunk\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 188,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"quadra\",\n className: \"theme-button theme-panam\",\n children: \"Quadra\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 189,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"panam\",\n className: \"theme-button theme-panam\",\n children: \"Panam\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 190,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"touch\",\n className: \"theme-button theme-touch\",\n children: \"Touch\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 191,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"peek\",\n className: \"theme-button theme-peek\",\n children: \"Peek\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 192,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 176,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"h2\", {\n children: \"Search options\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 196,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"providers\",\n children: /*#__PURE__*/_jsxDEV(\"table\", {\n children: /*#__PURE__*/_jsxDEV(\"tbody\", {\n children: [/*#__PURE__*/_jsxDEV(\"tr\", {\n children: [/*#__PURE__*/_jsxDEV(\"th\", {\n children: \"Website\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 201,\n columnNumber: 19\n }, this), /*#__PURE__*/_jsxDEV(\"th\", {\n children: \"Prefix\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 202,\n columnNumber: 19\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 200,\n columnNumber: 17\n }, this), items]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 199,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 198,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 197,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"header\", {\n id: \"modal-footer\",\n children: [/*#__PURE__*/_jsxDEV(\"a\", {\n href: \"https://github.com/jeroenpardon/\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-github-box\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 210,\n columnNumber: 54\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 210,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n href: \"https://materialdesignicons.com/\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-material-design\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 211,\n columnNumber: 54\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 211,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"sneaky\",\n children: [/*#__PURE__*/_jsxDEV(\"input\", {\n type: \"checkbox\",\n id: \"contenttype\",\n onChange: \"nsfw(this)\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 212,\n columnNumber: 35\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n for: \"contenttype\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-domino-mask\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 213,\n columnNumber: 36\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 213,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 212,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 209,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 166,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 165,\n columnNumber: 5\n }, this);\n}\n\n_c9 = ModalMenu;\n\nfunction Provider(props) {\n return /*#__PURE__*/_jsxDEV(\"tr\", {\n children: [/*#__PURE__*/_jsxDEV(\"td\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: props.provider.url,\n children: props.provider.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 223,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 223,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"td\", {\n children: props.provider.prefix\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 224,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 222,\n columnNumber: 5\n }, this);\n}\n\n_c10 = Provider;\n\nfunction ModalInit() {\n return /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"modal_init\",\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n className: \"btn\",\n href: \"#modal\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify icon\",\n \"data-icon\": \"mdi-xbox-controller-menu\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 233,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 232,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 231,\n columnNumber: 5\n }, this);\n}\n\n_c11 = ModalInit;\nReactDOM.render( /*#__PURE__*/_jsxDEV(Homepage, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 240,\n columnNumber: 3\n}, this), document.getElementById('root')); //Functions below this line are for calculating data for\n//other functions\n\nfunction date() {\n let currentDate = new Date();\n let dateOptions = {\n weekday: \"long\",\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\"\n };\n let date = currentDate.toLocaleDateString(\"en-GB\", dateOptions);\n return date;\n}\n\nfunction fixDigits(k) {\n if (k < 10) {\n return \"0\" + k;\n } else {\n return k;\n }\n}\n\nfunction greet() {\n let currentTime = new Date();\n let greet = Math.floor(currentTime.getHours() / 6);\n let easterEggChance = Math.floor(Math.random() * 100);\n\n let greetings = require('./messages.json');\n\n let timeBased = [];\n let easterEggs = [];\n\n for (var i = 0; i < greetings.messages.length; i++) {\n if (greetings.messages[i].easteregg === \"FALSE\") {\n timeBased = timeBased.concat(greetings.messages[i]);\n } else {\n easterEggs = easterEggs.concat(greetings.messages[i]);\n }\n }\n\n if (easterEggChance > 10) {\n return timeBased[greet].message;\n } else {\n let easterEggText = Math.floor(Math.random() * easterEggs.length);\n return easterEggs[easterEggText].message;\n }\n}\n\nfunction Clock() {\n _s();\n\n const [date, setDate] = useState(new Date());\n\n function refreshClock() {\n setDate(new Date());\n }\n\n useEffect(() => {\n const timerId = setInterval(refreshClock, 1000);\n return function cleanup() {\n clearInterval(timerId);\n };\n }, []);\n var hour = date.getHours();\n var minutes = date.getMinutes(); //var seconds = date.getSeconds();\n\n var midday = \"AM\";\n midday = hour >= 12 ? \"PM\" : \"AM\";\n hour = hour === 0 ? 12 : hour > 12 ? hour - 12 : hour;\n minutes = fixDigits(minutes); //seconds = fixDigits(seconds);\n\n let time = hour + \":\" + minutes + \" \" + midday;\n return /*#__PURE__*/_jsxDEV(\"h2\", {\n id: \"clock\",\n children: time\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 311,\n columnNumber: 5\n }, this);\n}\n\n_s(Clock, \"Gqi45WOZhU2c0BLYX0HoJeiR0fk=\");\n\n_c12 = Clock;\n\nfunction getApps() {\n let applications = require('./apps.json');\n\n return applications;\n}\n\nfunction getLinks() {\n let links = require('./links.json');\n\n return links;\n}\n\nfunction getProviders() {\n let providers = require('./providers.json');\n\n return providers;\n}\n\nfunction getThemes() {\n let providers = require('./themes.json');\n\n return themes;\n}\n\nfunction updateTheme() {\n var themes = getThemes();\n}\n\nfunction handleKeyPress(e) {\n var sindex = 0;\n var cycle = false;\n var key = e.keyCode || e.which;\n var text = e.target.value.replaceAll(\"+\", \"%2B\");\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n\n if (key == 13) {\n // Search functions\n search(text);\n }\n\n if (key == 9) {\n // Tab Completion Functions\n e.preventDefault();\n e.stopPropagation();\n\n if (text[0] === ';') {\n switch (option) {\n case 't':\n var streamers = ['admiralbahroo', 'moonmoon_ow', 'witwix'];\n\n if (!subtext || cycle) {\n cycle = true;\n if (sindex > streamers.length - 1) sindex = 0;\n document.getElementById(\"keywords\").value = ';t ' + streamers[sindex++];\n return;\n }\n\n for (var streamer of streamers) {\n if (subtext === streamer.substr(0, subtext.length)) {\n document.getElementById(\"keywords\").value = ';t ' + streamer;\n return;\n }\n }\n\n break;\n }\n }\n }\n\n if (key == 32) {\n //Space to go to search\n updateLabel(text);\n }\n\n sindex = 0;\n cycle = false;\n updateLabel(text);\n}\n\nfunction updateLabel(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n\n if (text[0] === '/') {\n // if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n document.getElementById(\"searchType\").innerHTML = \"Allmusic search\";\n break;\n\n case \"d\":\n document.getElementById(\"searchType\").innerHTML = \"Duck Duck Go search\";\n break;\n\n case \"di\":\n document.getElementById(\"searchType\").innerHTML = \"Discogs search\";\n break;\n\n case \"i\":\n document.getElementById(\"searchType\").innerHTML = \"IMDB search\";\n break;\n\n case \"m\":\n document.getElementById(\"searchType\").innerHTML = \"TheMovieDB search\";\n break;\n\n case \"r\":\n document.getElementById(\"searchType\").innerHTML = \"Reddit search\";\n break;\n\n case \"q\":\n document.getElementById(\"searchType\").innerHTML = \"Qwant search\";\n break;\n\n case \"so\":\n document.getElementById(\"searchType\").innerHTML = \"Soundcloud search\";\n break;\n\n case \"s\":\n document.getElementById(\"searchType\").innerHTML = \"Spotify search\";\n break;\n\n case \"tv\":\n document.getElementById(\"searchType\").innerHTML = \"TheTVDB search\";\n break;\n\n case \"t\":\n document.getElementById(\"searchType\").innerHTML = \"Trakt search\";\n break;\n\n case \"y\":\n document.getElementById(\"searchType\").innerHTML = \"YouTube search\";\n break;\n\n case \"w\":\n document.getElementById(\"searchType\").innerHTML = \"Wikipedia search\";\n break;\n\n case \"p\":\n document.getElementById(\"searchType\").innerHTML = \"Plex search\";\n break;\n\n case \"rt\":\n document.getElementById(\"searchType\").innerHTML = \"Rotten Tomatoes search\";\n break;\n\n default:\n document.getElementById(\"searchType\").innerHTML = \"Invalid search\";\n break;\n }\n } else {\n document.getElementById(\"searchType\").innerHTML = \"Google search\";\n }\n}\n\nfunction search(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n\n if (text[0] === '/') {\n if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n window.location = \"https://www.allmusic.com/search/all/\" + subtext;\n break;\n\n case \"d\":\n window.location = \"https://duckduckgo.com/?q=\" + subtext;\n break;\n\n case \"di\":\n window.location = \"https://www.discogs.com/search/?q=\" + subtext;\n break;\n\n case \"i\":\n window.location = \"https://www.imdb.com/find?q=\" + subtext;\n break;\n\n case \"m\":\n window.location = \"https://www.themoviedb.org/search?query=\" + subtext;\n break;\n\n case \"r\":\n window.location = \"https://www.reddit.com/search?q=\" + subtext;\n break;\n\n case \"q\":\n window.location = \"https://www.qwant.com/?q=\" + subtext;\n break;\n\n case \"so\":\n window.location = \"https://soundcloud.com/search?q=\" + subtext;\n break;\n\n case \"s\":\n window.location = \"https://open.spotify.com/search/results/\" + subtext;\n break;\n\n case \"t\":\n window.location = \"https://trakt.tv/search?query=\" + subtext;\n break;\n\n case \"tv\":\n window.location = \"https://www.thetvdb.com/search?query=\" + subtext;\n break;\n\n case \"y\":\n window.location = \"https://www.youtube.com/results?search_query=\" + subtext;\n break;\n\n case \"w\":\n window.location = \"https://en.wikipedia.org/w/index.php?search=\" + subtext;\n break;\n\n case \"p\":\n window.location = \"https://app.plex.tv/desktop/#!/search?query=\" + subtext;\n break;\n\n case \"rt\":\n window.location = \"https://www.rottentomatoes.com/search?search=\" + subtext;\n break;\n }\n } else {\n var option = text.substr(1);\n\n switch (option) {\n case \"d\":\n window.location = \"https://www.duckduckgo.com\";\n break;\n\n case \"y\":\n window.location = \"https://www.youtube.com\";\n break;\n\n case \"r\":\n window.location = \"https://reddit.com\";\n break;\n\n case \"s\":\n window.location = \"https://open.spotify.com\";\n break;\n }\n }\n } else if (validURL(text)) {\n if (containsProtocol(text)) window.location = text;else window.location = \"https://\" + text;\n } else {\n window.location = \"https://www.google.com/search?q=\" + text;\n }\n} // Source: https://stackoverflow.com/questions/5717093/check-if-a-javascript-string-is-a-url\n\n\nfunction validURL(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/)?' + // protocol\n '((([a-z\\\\d]([a-z\\\\d-]*[a-z\\\\d])*)\\\\.)+[a-z]{2,}|' + // domain name\n '((\\\\d{1,3}\\\\.){3}\\\\d{1,3}))' + // OR ip (v4) address\n '(\\\\:\\\\d+)?(\\\\/[-a-z\\\\d%_.~+]*)*' + // port and path\n '(\\\\?[;&a-z\\\\d%_.~+=-]*)?' + // query string\n '(\\\\#[-a-z\\\\d_]*)?$', 'i'); // fragment locator\n\n return !!pattern.test(str);\n}\n\nfunction containsProtocol(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/){1}.*', 'i');\n return !!pattern.test(str);\n}\n\nString.prototype.replaceAll = function (search, replacement) {\n var target = this;\n return target.split(search).join(replacement);\n};\n\nvar _c, _c2, _c3, _c4, _c5, _c6, _c7, _c8, _c9, _c10, _c11, _c12;\n\n$RefreshReg$(_c, \"Homepage\");\n$RefreshReg$(_c2, \"Search\");\n$RefreshReg$(_c3, \"Header\");\n$RefreshReg$(_c4, \"Applications\");\n$RefreshReg$(_c5, \"App\");\n$RefreshReg$(_c6, \"Bookmarks\");\n$RefreshReg$(_c7, \"LinkGroups\");\n$RefreshReg$(_c8, \"LinkItem\");\n$RefreshReg$(_c9, \"ModalMenu\");\n$RefreshReg$(_c10, \"Provider\");\n$RefreshReg$(_c11, \"ModalInit\");\n$RefreshReg$(_c12, \"Clock\");","map":{"version":3,"sources":["/home/seanedmunds/dev/home-page/src/index.js"],"names":["React","useState","useEffect","ReactDOM","Homepage","date","greet","Search","handleKeyPress","Header","props","Applications","appList","getApps","items","i","apps","length","push","name","url","icon","NSFW","App","classNameType","hrefUrl","iconName","Bookmarks","bookmarkList","getLinks","bookmarks","category","links","LinkGroups","LinkItem","link","ModalMenu","providers","getProviders","updateTheme","Provider","provider","prefix","ModalInit","render","document","getElementById","currentDate","Date","dateOptions","weekday","year","month","day","toLocaleDateString","fixDigits","k","currentTime","Math","floor","getHours","easterEggChance","random","greetings","require","timeBased","easterEggs","messages","easteregg","concat","message","easterEggText","Clock","setDate","refreshClock","timerId","setInterval","cleanup","clearInterval","hour","minutes","getMinutes","midday","time","applications","getThemes","themes","e","sindex","cycle","key","keyCode","which","text","target","value","replaceAll","option","substr","indexOf","subtext","search","preventDefault","stopPropagation","streamers","streamer","updateLabel","innerHTML","window","location","validURL","containsProtocol","str","pattern","RegExp","test","String","prototype","replacement","split","join"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { useState, useEffect } from 'react';\nimport ReactDOM from 'react-dom';\n//import { unstable_createPortal } from 'react-dom';\nimport './index.css';\n\nfunction Homepage() {\n return (\n \n \n \n
\n \n \n
\n \n \n \n
\n \n \n
\n \n \n
\n \n );\n}\n\nfunction Search() {\n return (\n \n )\n}\n\nfunction Header(props) {\n return (\n \n );\n}\n\nfunction Applications() {\n let appList = getApps();\n var items = [];\n for (var i = 0; i < appList.apps.length; i++) {\n items.push(\n \n );\n }\n return (\n \n Applications
\n \n {items}\n
\n \n );\n}\n\nfunction App(props) {\n let classNameType = props.NSFW + \"-content\";\n let hrefUrl = \"https://\" + props.url;\n let iconName = \"mdi-\" + props.icon;\n return (\n \n );\n}\n\nfunction Bookmarks() {\n let bookmarkList = getLinks();\n var items = [];\n for (var i = 0; i < bookmarkList.bookmarks.length; i++) {\n items.push(\n \n );\n }\n return (\n \n Bookmarks
\n \n {items}\n
\n \n );\n}\n\nfunction LinkGroups(props) {\n var items = [];\n for (var i = 0; i < props.links.length; i++) {\n items.push(\n \n );\n }\n return (\n \n
{props.category}
\n {items}\n \n );\n}\n\nfunction LinkItem(props) {\n return (\n \n );\n}\n\nfunction ModalMenu() {\n var providers = getProviders();\n var items = [];\n for (var i = 0; i < providers.providers.length; i++) {\n items.push(\n \n );\n }\n return (\n \n \n \n\n
Color themes
\n\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n\n\n
Search options
\n
\n \n \n \n | Website | \n Prefix | \n
\n {items}\n \n
\n \n\n \n
\n \n );\n}\n\nfunction Provider(props) {\n return (\n \n | {props.provider.name} | \n {props.provider.prefix} | \n
\n );\n}\n\nfunction ModalInit() {\n return (\n \n );\n}\n\nReactDOM.render(\n ,\n document.getElementById('root')\n);\n\n//Functions below this line are for calculating data for\n//other functions\n\nfunction date() {\n let currentDate = new Date();\n let dateOptions = {\n weekday: \"long\",\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\"\n };\n let date = currentDate.toLocaleDateString(\"en-GB\", dateOptions);\n return date;\n}\nfunction fixDigits(k) {\n if (k < 10) {\n return \"0\" + k;\n }\n else {\n return k;\n }\n}\nfunction greet() {\n let currentTime = new Date();\n let greet = Math.floor(currentTime.getHours() / 6);\n let easterEggChance = Math.floor(Math.random() * 100);\n let greetings = require('./messages.json');\n let timeBased = [];\n let easterEggs = [];\n for (var i = 0; i < greetings.messages.length; i++) {\n if (greetings.messages[i].easteregg === \"FALSE\") {\n timeBased = timeBased.concat(greetings.messages[i]);\n } else {\n easterEggs = easterEggs.concat(greetings.messages[i]);\n }\n }\n if (easterEggChance > 10) {\n return timeBased[greet].message;\n } else {\n let easterEggText = Math.floor(Math.random() * easterEggs.length);\n return easterEggs[easterEggText].message;\n }\n}\nfunction Clock() {\n const [date, setDate] = useState(new Date());\n\n function refreshClock() {\n setDate(new Date());\n }\n useEffect(() => {\n const timerId = setInterval(refreshClock, 1000);\n return function cleanup() {\n clearInterval(timerId);\n };\n }, []);\n\n var hour = date.getHours();\n var minutes = date.getMinutes();\n //var seconds = date.getSeconds();\n var midday = \"AM\";\n midday = (hour >= 12) ? \"PM\" : \"AM\";\n hour = (hour === 0) ? 12 : ((hour > 12) ? (hour - 12) : hour);\n minutes = fixDigits(minutes);\n //seconds = fixDigits(seconds);\n let time = hour + \":\" + minutes + \" \" + midday;\n\n return (\n {time}
\n\n );\n}\nfunction getApps() {\n let applications = require('./apps.json');\n return applications;\n}\nfunction getLinks() {\n let links = require('./links.json');\n return links;\n}\nfunction getProviders() {\n let providers = require('./providers.json');\n return providers;\n}\nfunction getThemes() {\n let providers = require('./themes.json');\n return themes;\n}\n\nfunction updateTheme() {\n var themes = getThemes();\n\n}\n\nfunction handleKeyPress(e) {\n var sindex = 0;\n var cycle = false;\n var key = e.keyCode || e.which;\n var text = e.target.value.replaceAll(\"+\", \"%2B\");\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n if (key == 13) { // Search functions\n search(text);\n }\n if (key == 9) { // Tab Completion Functions\n e.preventDefault();\n e.stopPropagation();\n if (text[0] === ';') {\n switch (option) {\n case 't':\n var streamers = ['admiralbahroo', 'moonmoon_ow', 'witwix'];\n if (!subtext || cycle) {\n cycle = true;\n if (sindex > streamers.length - 1) sindex = 0;\n document.getElementById(\"keywords\").value = ';t ' + streamers[sindex++];\n return;\n }\n for (var streamer of streamers) {\n if (subtext === streamer.substr(0, subtext.length)) {\n document.getElementById(\"keywords\").value = ';t ' + streamer;\n return;\n }\n }\n break;\n }\n }\n }\n if(key == 32){ //Space to go to search\nupdateLabel(text);\n }\n sindex = 0;\n cycle = false;\n updateLabel(text);\n}\n\nfunction updateLabel(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n if (text[0] === '/') {\n// if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n document.getElementById(\"searchType\").innerHTML = \"Allmusic search\";\n break;\n case \"d\":\n document.getElementById(\"searchType\").innerHTML = \"Duck Duck Go search\";\n break;\n case \"di\":\n document.getElementById(\"searchType\").innerHTML = \"Discogs search\";\n break;\n case \"i\":\n document.getElementById(\"searchType\").innerHTML = \"IMDB search\";\n break;\n case \"m\":\n document.getElementById(\"searchType\").innerHTML = \"TheMovieDB search\";\n break;\n case \"r\":\n document.getElementById(\"searchType\").innerHTML = \"Reddit search\";\n break;\n case \"q\":\n document.getElementById(\"searchType\").innerHTML = \"Qwant search\";\n break;\n case \"so\":\n document.getElementById(\"searchType\").innerHTML = \"Soundcloud search\";\n break;\n case \"s\":\n document.getElementById(\"searchType\").innerHTML = \"Spotify search\";\n break;\n case \"tv\":\n document.getElementById(\"searchType\").innerHTML = \"TheTVDB search\";\n break;\n case \"t\":\n document.getElementById(\"searchType\").innerHTML = \"Trakt search\";\n break;\n case \"y\":\n document.getElementById(\"searchType\").innerHTML = \"YouTube search\";\n break;\n case \"w\":\n document.getElementById(\"searchType\").innerHTML = \"Wikipedia search\";\n break;\n case \"p\":\n document.getElementById(\"searchType\").innerHTML = \"Plex search\";\n break;\n case \"rt\":\n document.getElementById(\"searchType\").innerHTML = \"Rotten Tomatoes search\";\n break;\n default:\n document.getElementById(\"searchType\").innerHTML = \"Invalid search\";\n break;\n }\n}else {\n document.getElementById(\"searchType\").innerHTML = \"Google search\";\n }\n}\n\nfunction search(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n if (text[0] === '/') {\n if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n window.location = \"https://www.allmusic.com/search/all/\" + subtext;\n break;\n case \"d\":\n window.location = \"https://duckduckgo.com/?q=\" + subtext;\n break;\n case \"di\":\n window.location = \"https://www.discogs.com/search/?q=\" + subtext;\n break;\n case \"i\":\n window.location = \"https://www.imdb.com/find?q=\" + subtext;\n break;\n case \"m\":\n window.location = \"https://www.themoviedb.org/search?query=\" + subtext;\n break;\n case \"r\":\n window.location = \"https://www.reddit.com/search?q=\" + subtext;\n break;\n case \"q\":\n window.location = \"https://www.qwant.com/?q=\" + subtext;\n break;\n case \"so\":\n window.location = \"https://soundcloud.com/search?q=\" + subtext;\n break;\n case \"s\":\n window.location = \"https://open.spotify.com/search/results/\" + subtext;\n break;\n case \"t\":\n window.location = \"https://trakt.tv/search?query=\" + subtext;\n break;\n case \"tv\":\n window.location = \"https://www.thetvdb.com/search?query=\" + subtext;\n break;\n case \"y\":\n window.location = \"https://www.youtube.com/results?search_query=\" + subtext;\n break;\n case \"w\":\n window.location = \"https://en.wikipedia.org/w/index.php?search=\" + subtext;\n break;\n case \"p\":\n window.location = \"https://app.plex.tv/desktop/#!/search?query=\" + subtext;\n break;\n case \"rt\":\n window.location = \"https://www.rottentomatoes.com/search?search=\" + subtext;\n break;\n }\n } else {\n var option = text.substr(1);\n switch (option) {\n case \"d\":\n window.location = \"https://www.duckduckgo.com\";\n break;\n case \"y\":\n window.location = \"https://www.youtube.com\";\n break;\n case \"r\":\n window.location = \"https://reddit.com\";\n break;\n case \"s\":\n window.location = \"https://open.spotify.com\";\n break;\n }\n }\n } else if (validURL(text)) {\n if (containsProtocol(text))\n window.location = text;\n else\n window.location = \"https://\" + text;\n } else {\n window.location = \"https://www.google.com/search?q=\" + text;\n }\n}\n\n// Source: https://stackoverflow.com/questions/5717093/check-if-a-javascript-string-is-a-url\nfunction validURL(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/)?' + // protocol\n '((([a-z\\\\d]([a-z\\\\d-]*[a-z\\\\d])*)\\\\.)+[a-z]{2,}|' + // domain name\n '((\\\\d{1,3}\\\\.){3}\\\\d{1,3}))' + // OR ip (v4) address\n '(\\\\:\\\\d+)?(\\\\/[-a-z\\\\d%_.~+]*)*' + // port and path\n '(\\\\?[;&a-z\\\\d%_.~+=-]*)?' + // query string\n '(\\\\#[-a-z\\\\d_]*)?$', 'i'); // fragment locator\n return !!pattern.test(str);\n}\n\nfunction containsProtocol(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/){1}.*', 'i');\n return !!pattern.test(str);\n}\n\nString.prototype.replaceAll = function(search, replacement) {\n var target = this;\n return target.split(search).join(replacement);\n};"]},"metadata":{},"sourceType":"module"}
\ No newline at end of file
diff --git a/node_modules/.cache/babel-loader/ccdd2700637492e7192ec97fe31b98a6.json b/node_modules/.cache/babel-loader/ccdd2700637492e7192ec97fe31b98a6.json
new file mode 100644
index 00000000..28b7d295
--- /dev/null
+++ b/node_modules/.cache/babel-loader/ccdd2700637492e7192ec97fe31b98a6.json
@@ -0,0 +1 @@
+{"ast":null,"code":"var _jsxFileName = \"/home/seanedmunds/dev/home-page/src/index.js\",\n _s = $RefreshSig$();\n\nimport React from 'react';\nimport { useState, useEffect } from 'react';\nimport ReactDOM from 'react-dom'; //import { unstable_createPortal } from 'react-dom';\n\nimport './index.css';\nimport './search.js';\nimport { jsxDEV as _jsxDEV } from \"react/jsx-dev-runtime\";\n\nfunction Homepage() {\n return /*#__PURE__*/_jsxDEV(\"main\", {\n id: \"container\",\n class: \"fade\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Search, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 12,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 11,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Header, {\n date: date(),\n greet: greet()\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 15,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 14,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Applications, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 21,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 20,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Bookmarks, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 24,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 23,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(ModalMenu, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 27,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 26,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(ModalInit, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 30,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 29,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 10,\n columnNumber: 5\n }, this);\n}\n\n_c = Homepage;\n\nfunction Search() {\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"search\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n class: \"abackground\",\n children: [/*#__PURE__*/_jsxDEV(\"input\", {\n name: \"keywords\",\n type: \"text\",\n class: \"keyword\",\n id: \"keywords\",\n size: \"50\",\n placeholder: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 40,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n id: \"searchType\",\n class: \"Input-label\",\n children: \"Google search\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 41,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 39,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 38,\n columnNumber: 5\n }, this);\n}\n\n_c2 = Search;\n\nfunction Header(props) {\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"header\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n id: \"greeting_block\",\n children: /*#__PURE__*/_jsxDEV(\"h1\", {\n id: \"header_greet\",\n children: props.greet\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 51,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 50,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"date_block\",\n children: [/*#__PURE__*/_jsxDEV(\"h2\", {\n id: \"header_date\",\n children: props.date\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 54,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(Clock, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 55,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 53,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 49,\n columnNumber: 5\n }, this);\n}\n\n_c3 = Header;\n\nfunction Applications() {\n let appList = getApps();\n var items = [];\n\n for (var i = 0; i < appList.apps.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(App, {\n name: appList.apps[i].name,\n url: appList.apps[i].url,\n icon: appList.apps[i].icon,\n NSFW: appList.apps[i].NSFW\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 66,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"apps\",\n children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n children: \"Applications\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 77,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"apps_loop\",\n children: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 78,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 76,\n columnNumber: 5\n }, this);\n}\n\n_c4 = Applications;\n\nfunction App(props) {\n let classType = props.NSFW + \"-content\";\n let hrefUrl = \"https://\" + props.url;\n let iconName = \"mdi-\" + props.icon;\n return /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: hrefUrl,\n class: classType,\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n class: \"apps_item\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n class: \"apps_icon\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n class: \"iconify icon\",\n \"data-icon\": iconName\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 94,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 93,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n class: \"apps_text\",\n children: [/*#__PURE__*/_jsxDEV(\"span\", {\n id: \"app-name\",\n children: props.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 97,\n columnNumber: 13\n }, this), /*#__PURE__*/_jsxDEV(\"span\", {\n id: \"app-address\",\n children: props.url\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 98,\n columnNumber: 13\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 96,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 92,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 91,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 90,\n columnNumber: 5\n }, this);\n}\n\n_c5 = App;\n\nfunction Bookmarks() {\n let bookmarkList = getLinks();\n var items = [];\n\n for (var i = 0; i < bookmarkList.bookmarks.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(LinkGroups, {\n category: bookmarkList.bookmarks[i].category,\n links: bookmarkList.bookmarks[i].links\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 111,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"links\",\n children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n children: \"Bookmarks\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 120,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"links_loop\",\n children: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 121,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 119,\n columnNumber: 5\n }, this);\n}\n\n_c6 = Bookmarks;\n\nfunction LinkGroups(props) {\n var items = [];\n\n for (var i = 0; i < props.links.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(LinkItem, {\n link: props.links[i]\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 132,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"links_item\",\n children: [/*#__PURE__*/_jsxDEV(\"h4\", {\n children: props.category\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 140,\n columnNumber: 7\n }, this), items]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 139,\n columnNumber: 5\n }, this);\n}\n\n_c7 = LinkGroups;\n\nfunction LinkItem(props) {\n return /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: props.link.url,\n class: \"theme_color-border theme_text-select\",\n children: props.link.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 149,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 148,\n columnNumber: 5\n }, this);\n}\n\n_c8 = LinkItem;\n\nfunction ModalMenu() {\n var providers = getProviders();\n var items = [];\n\n for (var i = 0; i < providers.providers.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(Provider, {\n provider: providers.providers[i]\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 159,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"modal\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n children: [/*#__PURE__*/_jsxDEV(\"header\", {\n id: \"modal-header\",\n children: [/*#__PURE__*/_jsxDEV(\"h1\", {\n children: \"Options\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 169,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n href: \"#\",\n title: \"Close\",\n class: \"modal-close\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n class: \"iconify\",\n \"data-icon\": \"mdi-close\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 171,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 170,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 168,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"h2\", {\n children: \"Color themes\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 175,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"modal-theme\",\n children: [/*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"blackboard\",\n class: \"theme-button theme-blackboard\",\n children: \"Blackboard\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 178,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"gazette\",\n class: \"theme-button theme-gazette\",\n children: \"Gazette\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 179,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"espresso\",\n class: \"theme-button theme-espresso\",\n children: \"Espresso\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 180,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cab\",\n class: \"theme-button theme-cab\",\n children: \"Cab\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 181,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cloud\",\n class: \"theme-button theme-cloud\",\n children: \"Cloud\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 182,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"lime\",\n class: \"theme-button theme-lime\",\n children: \"Lime\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 183,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"passion\",\n class: \"theme-button theme-passion\",\n children: \"Passion\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 184,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"blues\",\n class: \"theme-button theme-blues\",\n children: \"Blues\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 185,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"chalk\",\n class: \"theme-button theme-chalk\",\n children: \"Chalk\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 186,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"tron\",\n class: \"theme-button theme-tron\",\n children: \"Tron\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 187,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"paper\",\n class: \"theme-button theme-paper\",\n children: \"Paper\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 188,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cyberpunk\",\n class: \"theme-button theme-cyberpunk\",\n children: \"Cyberpunk\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 189,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"quadra\",\n class: \"theme-button theme-panam\",\n children: \"Quadra\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 190,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"panam\",\n class: \"theme-button theme-panam\",\n children: \"Panam\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 191,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"touch\",\n class: \"theme-button theme-touch\",\n children: \"Touch\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 192,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"peek\",\n class: \"theme-button theme-peek\",\n children: \"Peek\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 193,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 177,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"h2\", {\n children: \"Search options\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 197,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"providers\",\n children: /*#__PURE__*/_jsxDEV(\"table\", {\n children: /*#__PURE__*/_jsxDEV(\"tbody\", {\n children: [/*#__PURE__*/_jsxDEV(\"tr\", {\n children: [/*#__PURE__*/_jsxDEV(\"th\", {\n children: \"Website\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 202,\n columnNumber: 19\n }, this), /*#__PURE__*/_jsxDEV(\"th\", {\n children: \"Prefix\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 203,\n columnNumber: 19\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 201,\n columnNumber: 17\n }, this), items]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 200,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 199,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 198,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"header\", {\n id: \"modal-footer\",\n children: [/*#__PURE__*/_jsxDEV(\"a\", {\n href: \"https://github.com/jeroenpardon/\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n class: \"iconify\",\n \"data-icon\": \"mdi-github-box\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 211,\n columnNumber: 54\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 211,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n href: \"https://materialdesignicons.com/\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n class: \"iconify\",\n \"data-icon\": \"mdi-material-design\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 212,\n columnNumber: 54\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 212,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n class: \"sneaky\",\n children: [/*#__PURE__*/_jsxDEV(\"input\", {\n type: \"checkbox\",\n id: \"contenttype\",\n onChange: \"nsfw(this)\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 213,\n columnNumber: 31\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n for: \"contenttype\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n class: \"iconify\",\n \"data-icon\": \"mdi-domino-mask\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 214,\n columnNumber: 36\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 214,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 213,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 210,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 167,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 166,\n columnNumber: 5\n }, this);\n}\n\n_c9 = ModalMenu;\n\nfunction Provider(props) {\n return /*#__PURE__*/_jsxDEV(\"tr\", {\n children: [/*#__PURE__*/_jsxDEV(\"td\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: props.provider.url,\n children: props.provider.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 224,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 224,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"td\", {\n children: props.provider.prefix\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 225,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 223,\n columnNumber: 5\n }, this);\n}\n\n_c10 = Provider;\n\nfunction ModalInit() {\n return /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"modal_init\",\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n class: \"btn\",\n href: \"#modal\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n class: \"iconify icon\",\n \"data-icon\": \"mdi-xbox-controller-menu\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 234,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 233,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 232,\n columnNumber: 5\n }, this);\n}\n\n_c11 = ModalInit;\nReactDOM.render( /*#__PURE__*/_jsxDEV(Homepage, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 241,\n columnNumber: 3\n}, this), document.getElementById('root')); //Functions below this line are for calculating data for\n//other functions\n\nfunction date() {\n let currentDate = new Date();\n let dateOptions = {\n weekday: \"long\",\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\"\n };\n let date = currentDate.toLocaleDateString(\"en-GB\", dateOptions);\n return date;\n}\n\nfunction fixDigits(k) {\n if (k < 10) {\n return \"0\" + k;\n } else {\n return k;\n }\n}\n\nfunction greet() {\n let currentTime = new Date();\n let greet = Math.floor(currentTime.getHours() / 6);\n let easterEggChance = Math.floor(Math.random() * 100);\n\n let greetings = require('./messages.json');\n\n let timeBased = [];\n let easterEggs = [];\n\n for (var i = 0; i < greetings.messages.length; i++) {\n if (greetings.messages[i].easteregg == \"FALSE\") {\n timeBased = timeBased.concat(greetings.messages[i]);\n } else {\n easterEggs = easterEggs.concat(greetings.messages[i]);\n }\n }\n\n if (easterEggChance > 10) {\n return timeBased[greet].message;\n } else {\n let easterEggText = Math.floor(Math.random() * easterEggs.length);\n return easterEggs[easterEggText].message;\n }\n}\n\nfunction Clock() {\n _s();\n\n const [date, setDate] = useState(new Date());\n\n function refreshClock() {\n setDate(new Date());\n }\n\n useEffect(() => {\n const timerId = setInterval(refreshClock, 1000);\n return function cleanup() {\n clearInterval(timerId);\n };\n }, []);\n var hour = date.getHours();\n var minutes = date.getMinutes(); //var seconds = date.getSeconds();\n\n var midday = \"AM\";\n midday = hour >= 12 ? \"PM\" : \"AM\";\n hour = hour == 0 ? 12 : hour > 12 ? hour - 12 : hour;\n minutes = fixDigits(minutes); //seconds = fixDigits(seconds);\n\n let time = hour + \":\" + minutes + \" \" + midday;\n return /*#__PURE__*/_jsxDEV(\"h2\", {\n id: \"clock\",\n children: time\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 312,\n columnNumber: 5\n }, this);\n}\n\n_s(Clock, \"Gqi45WOZhU2c0BLYX0HoJeiR0fk=\");\n\n_c12 = Clock;\n\nfunction getApps() {\n let applications = require('./apps.json');\n\n return applications;\n}\n\nfunction getLinks() {\n let links = require('./links.json');\n\n return links;\n}\n\nfunction getProviders() {\n let providers = require('./providers.json');\n\n return providers;\n}\n\nvar _c, _c2, _c3, _c4, _c5, _c6, _c7, _c8, _c9, _c10, _c11, _c12;\n\n$RefreshReg$(_c, \"Homepage\");\n$RefreshReg$(_c2, \"Search\");\n$RefreshReg$(_c3, \"Header\");\n$RefreshReg$(_c4, \"Applications\");\n$RefreshReg$(_c5, \"App\");\n$RefreshReg$(_c6, \"Bookmarks\");\n$RefreshReg$(_c7, \"LinkGroups\");\n$RefreshReg$(_c8, \"LinkItem\");\n$RefreshReg$(_c9, \"ModalMenu\");\n$RefreshReg$(_c10, \"Provider\");\n$RefreshReg$(_c11, \"ModalInit\");\n$RefreshReg$(_c12, \"Clock\");","map":{"version":3,"sources":["/home/seanedmunds/dev/home-page/src/index.js"],"names":["React","useState","useEffect","ReactDOM","Homepage","date","greet","Search","Header","props","Applications","appList","getApps","items","i","apps","length","push","name","url","icon","NSFW","App","classType","hrefUrl","iconName","Bookmarks","bookmarkList","getLinks","bookmarks","category","links","LinkGroups","LinkItem","link","ModalMenu","providers","getProviders","Provider","provider","prefix","ModalInit","render","document","getElementById","currentDate","Date","dateOptions","weekday","year","month","day","toLocaleDateString","fixDigits","k","currentTime","Math","floor","getHours","easterEggChance","random","greetings","require","timeBased","easterEggs","messages","easteregg","concat","message","easterEggText","Clock","setDate","refreshClock","timerId","setInterval","cleanup","clearInterval","hour","minutes","getMinutes","midday","time","applications"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { useState, useEffect } from 'react';\nimport ReactDOM from 'react-dom';\n//import { unstable_createPortal } from 'react-dom';\nimport './index.css';\nimport './search.js'\n\nfunction Homepage() {\n return (\n \n \n \n
\n \n \n
\n \n \n \n
\n \n \n
\n \n \n
\n \n );\n}\n\nfunction Search() {\n return (\n \n )\n}\n\nfunction Header(props) {\n return (\n \n );\n}\n\nfunction Applications() {\n let appList = getApps();\n var items = [];\n for (var i = 0; i < appList.apps.length; i++) {\n items.push(\n \n );\n }\n return (\n \n Applications
\n \n {items}\n
\n \n );\n}\n\nfunction App(props) {\n let classType = props.NSFW + \"-content\";\n let hrefUrl = \"https://\" + props.url;\n let iconName = \"mdi-\" + props.icon;\n return (\n \n );\n}\n\nfunction Bookmarks() {\n let bookmarkList = getLinks();\n var items = [];\n for (var i = 0; i < bookmarkList.bookmarks.length; i++) {\n items.push(\n \n );\n }\n return (\n \n Bookmarks
\n \n {items}\n
\n \n );\n}\n\nfunction LinkGroups(props) {\n var items = [];\n for (var i = 0; i < props.links.length; i++) {\n items.push(\n \n );\n }\n return (\n \n
{props.category}
\n {items}\n \n );\n}\n\nfunction LinkItem(props) {\n return (\n \n );\n}\n\nfunction ModalMenu() {\n var providers = getProviders();\n var items = [];\n for (var i = 0; i < providers.providers.length; i++) {\n items.push(\n \n );\n }\n return (\n \n \n \n\n
Color themes
\n\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n\n\n
Search options
\n
\n \n \n \n | Website | \n Prefix | \n
\n {items}\n \n
\n \n\n \n
\n \n );\n}\n\nfunction Provider(props) {\n return (\n \n | {props.provider.name} | \n {props.provider.prefix} | \n
\n );\n}\n\nfunction ModalInit() {\n return (\n \n );\n}\n\nReactDOM.render(\n ,\n document.getElementById('root')\n);\n\n//Functions below this line are for calculating data for\n//other functions\n\nfunction date() {\n let currentDate = new Date();\n let dateOptions = {\n weekday: \"long\",\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\"\n };\n let date = currentDate.toLocaleDateString(\"en-GB\", dateOptions);\n return date;\n}\nfunction fixDigits(k) {\n if (k < 10) {\n return \"0\" + k;\n }\n else {\n return k;\n }\n}\nfunction greet() {\n let currentTime = new Date();\n let greet = Math.floor(currentTime.getHours() / 6);\n let easterEggChance = Math.floor(Math.random() * 100);\n let greetings = require('./messages.json');\n let timeBased = [];\n let easterEggs = [];\n for (var i = 0; i < greetings.messages.length; i++) {\n if (greetings.messages[i].easteregg == \"FALSE\") {\n timeBased = timeBased.concat(greetings.messages[i]);\n } else {\n easterEggs = easterEggs.concat(greetings.messages[i]);\n }\n }\n if (easterEggChance > 10) {\n return timeBased[greet].message;\n } else {\n let easterEggText = Math.floor(Math.random() * easterEggs.length);\n return easterEggs[easterEggText].message;\n }\n}\nfunction Clock() {\n const [date, setDate] = useState(new Date());\n\n function refreshClock() {\n setDate(new Date());\n }\n useEffect(() => {\n const timerId = setInterval(refreshClock, 1000);\n return function cleanup() {\n clearInterval(timerId);\n };\n }, []);\n\n var hour = date.getHours();\n var minutes = date.getMinutes();\n //var seconds = date.getSeconds();\n var midday = \"AM\";\n midday = (hour >= 12) ? \"PM\" : \"AM\";\n hour = (hour == 0) ? 12 : ((hour > 12) ? (hour - 12) : hour);\n minutes = fixDigits(minutes);\n //seconds = fixDigits(seconds);\n let time = hour + \":\" + minutes + \" \" + midday;\n\n return (\n {time}
\n\n );\n}\nfunction getApps() {\n let applications = require('./apps.json');\n return applications;\n}\nfunction getLinks() {\n let links = require('./links.json');\n return links;\n}\nfunction getProviders() {\n let providers = require('./providers.json');\n return providers;\n}"]},"metadata":{},"sourceType":"module"}
\ No newline at end of file
diff --git a/node_modules/.cache/babel-loader/ccfffbd58847af2139913ab786e8fe49.json b/node_modules/.cache/babel-loader/ccfffbd58847af2139913ab786e8fe49.json
new file mode 100644
index 00000000..c9a3430f
--- /dev/null
+++ b/node_modules/.cache/babel-loader/ccfffbd58847af2139913ab786e8fe49.json
@@ -0,0 +1 @@
+{"ast":null,"code":"var _jsxFileName = \"/home/seanedmunds/dev/home-page/src/index.js\",\n _s = $RefreshSig$();\n\nimport React from 'react';\nimport { useState, useEffect } from 'react';\nimport ReactDOM from 'react-dom'; //import { unstable_createPortal } from 'react-dom';\n\nimport './index.css';\nimport { jsxDEV as _jsxDEV } from \"react/jsx-dev-runtime\";\n\nconst setValueFromLocalStorage = property => {\n let value = localStorage.getItem(property);\n setValue(property, value);\n};\n\nconst setValue = (property, value) => {\n if (value) {\n document.documentElement.style.setProperty(`--${property}`, value);\n const input = document.querySelector(`#${property}`);\n\n if (input) {\n value = value.replace('px', '');\n input.value = value;\n }\n }\n};\n\nfunction Homepage() {\n setTheme();\n return /*#__PURE__*/_jsxDEV(\"main\", {\n id: \"container\",\n className: \"fade\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Search, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 28,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 27,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Header, {\n date: date(),\n greet: greet()\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 31,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 30,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Applications, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 37,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 36,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Bookmarks, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 40,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 39,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(ModalMenu, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 43,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 42,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(ModalInit, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 46,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 45,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 26,\n columnNumber: 5\n }, this);\n}\n\n_c = Homepage;\n\nfunction Search() {\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"search\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"abackground\",\n children: [/*#__PURE__*/_jsxDEV(\"input\", {\n name: \"keywords\",\n type: \"text\",\n className: \"keyword\",\n id: \"keywords\",\n size: \"50\",\n spellCheck: \"true\",\n placeholder: \"\"\n /*onFocus={this.placeholder = \"\"} onBlur={this.placeholder = ''}*/\n ,\n autoComplete: \"off\",\n autoFocus: true,\n onKeyUp: handleKeyPress\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 56,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n id: \"searchType\",\n className: \"Input-label\",\n children: \"Google search\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 57,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 55,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 54,\n columnNumber: 5\n }, this);\n}\n\n_c2 = Search;\n\nfunction Header(props) {\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"header\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n id: \"greeting_block\",\n children: /*#__PURE__*/_jsxDEV(\"h1\", {\n id: \"header_greet\",\n children: props.greet\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 67,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 66,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"date_block\",\n children: [/*#__PURE__*/_jsxDEV(\"h2\", {\n id: \"header_date\",\n children: props.date\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 70,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(Clock, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 71,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 69,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 65,\n columnNumber: 5\n }, this);\n}\n\n_c3 = Header;\n\nfunction Applications() {\n let appList = getApps();\n var items = [];\n\n for (var i = 0; i < appList.apps.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(App, {\n name: appList.apps[i].name,\n url: appList.apps[i].url,\n icon: appList.apps[i].icon,\n NSFW: appList.apps[i].NSFW\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 82,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"apps\",\n children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n children: \"Applications\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 93,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"apps_loop\",\n children: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 94,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 92,\n columnNumber: 5\n }, this);\n}\n\n_c4 = Applications;\n\nfunction App(props) {\n let classNameType = props.NSFW + \"-content\";\n let hrefUrl = \"https://\" + props.url;\n let iconName = \"mdi-\" + props.icon;\n return /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: hrefUrl,\n className: classNameType,\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_item\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_icon\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify icon\",\n \"data-icon\": iconName\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 110,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 109,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_text\",\n children: [/*#__PURE__*/_jsxDEV(\"span\", {\n id: \"app-name\",\n children: props.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 113,\n columnNumber: 13\n }, this), /*#__PURE__*/_jsxDEV(\"span\", {\n id: \"app-address\",\n children: props.url\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 114,\n columnNumber: 13\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 112,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 108,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 107,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 106,\n columnNumber: 5\n }, this);\n}\n\n_c5 = App;\n\nfunction Bookmarks() {\n let bookmarkList = getLinks();\n var items = [];\n\n for (var i = 0; i < bookmarkList.bookmarks.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(LinkGroups, {\n category: bookmarkList.bookmarks[i].category,\n links: bookmarkList.bookmarks[i].links\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 127,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"links\",\n children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n children: \"Bookmarks\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 136,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"links_loop\",\n children: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 137,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 135,\n columnNumber: 5\n }, this);\n}\n\n_c6 = Bookmarks;\n\nfunction LinkGroups(props) {\n var items = [];\n\n for (var i = 0; i < props.links.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(LinkItem, {\n link: props.links[i]\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 148,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"links_item\",\n children: [/*#__PURE__*/_jsxDEV(\"h4\", {\n children: props.category\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 156,\n columnNumber: 7\n }, this), items]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 155,\n columnNumber: 5\n }, this);\n}\n\n_c7 = LinkGroups;\n\nfunction LinkItem(props) {\n return /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: props.link.url,\n className: \"theme_color-border theme_text-select\",\n children: props.link.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 165,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 164,\n columnNumber: 5\n }, this);\n}\n\n_c8 = LinkItem;\n\nfunction ModalMenu() {\n var providers = getProviders();\n var items = [];\n\n for (var i = 0; i < providers.providers.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(Provider, {\n provider: providers.providers[i]\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 175,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"modal\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n children: [/*#__PURE__*/_jsxDEV(\"header\", {\n id: \"modal-header\",\n children: [/*#__PURE__*/_jsxDEV(\"h1\", {\n children: \"Options\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 185,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n href: \"#\",\n title: \"Close\",\n className: \"modal-close\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-close\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 187,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 186,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 184,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"h2\", {\n children: \"Color themes\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 191,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"modal-theme\",\n children: [/*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"blackboard\",\n className: \"theme-button theme-blackboard\",\n onClick: updateTheme,\n children: \"Blackboard\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 194,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"gazette\",\n className: \"theme-button theme-gazette\",\n onClick: updateTheme,\n children: \"Gazette\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 195,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"espresso\",\n className: \"theme-button theme-espresso\",\n onClick: updateTheme,\n children: \"Espresso\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 196,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cab\",\n className: \"theme-button theme-cab\",\n onClick: updateTheme,\n children: \"Cab\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 197,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cloud\",\n className: \"theme-button theme-cloud\",\n onClick: updateTheme,\n children: \"Cloud\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 198,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"lime\",\n className: \"theme-button theme-lime\",\n onClick: updateTheme,\n children: \"Lime\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 199,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"passion\",\n className: \"theme-button theme-passion\",\n onClick: updateTheme,\n children: \"Passion\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 200,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"blues\",\n className: \"theme-button theme-blues\",\n onClick: updateTheme,\n children: \"Blues\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 201,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"chalk\",\n className: \"theme-button theme-chalk\",\n onClick: updateTheme,\n children: \"Chalk\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 202,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"tron\",\n className: \"theme-button theme-tron\",\n onClick: updateTheme,\n children: \"Tron\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 203,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"paper\",\n className: \"theme-button theme-paper\",\n onClick: updateTheme,\n children: \"Paper\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 204,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cyberpunk\",\n className: \"theme-button theme-cyberpunk\",\n onClick: updateTheme,\n children: \"Cyberpunk\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 205,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"quadra\",\n className: \"theme-button theme-panam\",\n onClick: updateTheme,\n children: \"Quadra\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 206,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"panam\",\n className: \"theme-button theme-panam\",\n onClick: updateTheme,\n children: \"Panam\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 207,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"touch\",\n className: \"theme-button theme-touch\",\n onClick: updateTheme,\n children: \"Touch\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 208,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"peek\",\n className: \"theme-button theme-peek\",\n onClick: updateTheme,\n children: \"Peek\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 209,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 193,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"h2\", {\n children: \"Search options\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 213,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"providers\",\n children: /*#__PURE__*/_jsxDEV(\"table\", {\n children: /*#__PURE__*/_jsxDEV(\"tbody\", {\n children: [/*#__PURE__*/_jsxDEV(\"tr\", {\n children: [/*#__PURE__*/_jsxDEV(\"th\", {\n children: \"Website\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 218,\n columnNumber: 19\n }, this), /*#__PURE__*/_jsxDEV(\"th\", {\n children: \"Prefix\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 219,\n columnNumber: 19\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 217,\n columnNumber: 17\n }, this), items]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 216,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 215,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 214,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"header\", {\n id: \"modal-footer\",\n children: [/*#__PURE__*/_jsxDEV(\"a\", {\n href: \"https://github.com/jeroenpardon/\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-github-box\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 227,\n columnNumber: 54\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 227,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n href: \"https://materialdesignicons.com/\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-material-design\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 228,\n columnNumber: 54\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 228,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"sneaky\",\n children: [/*#__PURE__*/_jsxDEV(\"input\", {\n type: \"checkbox\",\n id: \"contenttype\",\n onChange: udpateDisplayedItems\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 229,\n columnNumber: 35\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n for: \"contenttype\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-domino-mask\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 230,\n columnNumber: 36\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 230,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 229,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 226,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 183,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 182,\n columnNumber: 5\n }, this);\n}\n\n_c9 = ModalMenu;\n\nfunction Provider(props) {\n return /*#__PURE__*/_jsxDEV(\"tr\", {\n children: [/*#__PURE__*/_jsxDEV(\"td\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: props.provider.url,\n children: props.provider.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 240,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 240,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"td\", {\n children: props.provider.prefix\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 241,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 239,\n columnNumber: 5\n }, this);\n}\n\n_c10 = Provider;\n\nfunction ModalInit() {\n return /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"modal_init\",\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n className: \"btn\",\n href: \"#modal\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify icon\",\n \"data-icon\": \"mdi-xbox-controller-menu\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 250,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 249,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 248,\n columnNumber: 5\n }, this);\n}\n\n_c11 = ModalInit;\nReactDOM.render( /*#__PURE__*/_jsxDEV(Homepage, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 257,\n columnNumber: 3\n}, this), document.getElementById('root')); //Functions below this line are for calculating data for\n//other functions\n\nfunction date() {\n let currentDate = new Date();\n let dateOptions = {\n weekday: \"long\",\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\"\n };\n let date = currentDate.toLocaleDateString(\"en-GB\", dateOptions);\n return date;\n}\n\nfunction fixDigits(k) {\n if (k < 10) {\n return \"0\" + k;\n } else {\n return k;\n }\n}\n\nfunction greet() {\n let currentTime = new Date();\n let greet = Math.floor(currentTime.getHours() / 6);\n let easterEggChance = Math.floor(Math.random() * 100);\n\n let greetings = require('./messages.json');\n\n let timeBased = [];\n let easterEggs = [];\n\n for (var i = 0; i < greetings.messages.length; i++) {\n if (greetings.messages[i].easteregg === \"FALSE\") {\n timeBased = timeBased.concat(greetings.messages[i]);\n } else {\n easterEggs = easterEggs.concat(greetings.messages[i]);\n }\n }\n\n if (easterEggChance > 10) {\n return timeBased[greet].message;\n } else {\n let easterEggText = Math.floor(Math.random() * easterEggs.length);\n return easterEggs[easterEggText].message;\n }\n}\n\nfunction Clock() {\n _s();\n\n const [date, setDate] = useState(new Date());\n\n function refreshClock() {\n setDate(new Date());\n }\n\n useEffect(() => {\n const timerId = setInterval(refreshClock, 1000);\n return function cleanup() {\n clearInterval(timerId);\n };\n }, []);\n var hour = date.getHours();\n var minutes = date.getMinutes(); //var seconds = date.getSeconds();\n\n var midday = \"AM\";\n midday = hour >= 12 ? \"PM\" : \"AM\";\n hour = hour === 0 ? 12 : hour > 12 ? hour - 12 : hour;\n minutes = fixDigits(minutes); //seconds = fixDigits(seconds);\n\n let time = hour + \":\" + minutes + \" \" + midday;\n return /*#__PURE__*/_jsxDEV(\"h2\", {\n id: \"clock\",\n children: time\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 328,\n columnNumber: 5\n }, this);\n}\n\n_s(Clock, \"Gqi45WOZhU2c0BLYX0HoJeiR0fk=\");\n\n_c12 = Clock;\n\nfunction getApps() {\n let applications = require('./apps.json');\n\n return applications;\n}\n\nfunction getLinks() {\n let links = require('./links.json');\n\n return links;\n}\n\nfunction getProviders() {\n let providers = require('./providers.json');\n\n return providers;\n}\n\nfunction getThemes() {\n let themes = require('./themes.json');\n\n return themes;\n}\n\nfunction updateTheme(e) {\n var themes = getThemes();\n var themeName = e.target.innerHTML.toLowerCase();\n var index = themes.themes.findIndex(function (item, i) {\n return item.name === themeName;\n });\n console.log(themes.themes[index]);\n localStorage.setItem(\"image-background\", themes.themes[index].imagebackground);\n localStorage.setItem(\"color-background\", themes.themes[index].colorbackground);\n localStorage.setItem(\"color-search-background\", themes.themes[index].colorserachbackground);\n localStorage.setItem(\"color-text-pri\", themes.themes[index].colortextpri);\n localStorage.setItem(\"color-text-acc\", themes.themes[index].colortextacc);\n localStorage.setItem(\"color-border\", themes.themes[index].colorborder); //document.documentElement.style.setProperty(prop, `var(--${themeName}${prop.substring(10)})`);\n\n setTheme();\n}\n\nfunction setTheme() {\n setValueFromLocalStorage('image-background');\n setValueFromLocalStorage('color-background');\n setValueFromLocalStorage('color-search-background');\n setValueFromLocalStorage('color-text-pri');\n setValueFromLocalStorage('color-text-acc');\n setValueFromLocalStorage('color-border');\n setValueFromLocalStorage('content-display');\n}\n\nfunction handleKeyPress(e) {\n var sindex = 0;\n var cycle = false;\n var key = e.keyCode || e.which;\n var text = e.target.value.replaceAll(\"+\", \"%2B\");\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n\n if (key == 13) {\n // Search functions\n search(text);\n }\n\n if (key == 9) {\n // Tab Completion Functions\n e.preventDefault();\n e.stopPropagation();\n\n if (text[0] === ';') {\n switch (option) {\n case 't':\n var streamers = ['admiralbahroo', 'moonmoon_ow', 'witwix'];\n\n if (!subtext || cycle) {\n cycle = true;\n if (sindex > streamers.length - 1) sindex = 0;\n document.getElementById(\"keywords\").value = ';t ' + streamers[sindex++];\n return;\n }\n\n for (var streamer of streamers) {\n if (subtext === streamer.substr(0, subtext.length)) {\n document.getElementById(\"keywords\").value = ';t ' + streamer;\n return;\n }\n }\n\n break;\n }\n }\n }\n\n if (key == 32) {\n //Space to go to search\n updateLabel(text);\n }\n\n sindex = 0;\n cycle = false;\n updateLabel(text);\n}\n\nfunction updateLabel(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n\n if (text[0] === '/') {\n // if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n document.getElementById(\"searchType\").innerHTML = \"Allmusic search\";\n break;\n\n case \"d\":\n document.getElementById(\"searchType\").innerHTML = \"Duck Duck Go search\";\n break;\n\n case \"di\":\n document.getElementById(\"searchType\").innerHTML = \"Discogs search\";\n break;\n\n case \"i\":\n document.getElementById(\"searchType\").innerHTML = \"IMDB search\";\n break;\n\n case \"m\":\n document.getElementById(\"searchType\").innerHTML = \"TheMovieDB search\";\n break;\n\n case \"r\":\n document.getElementById(\"searchType\").innerHTML = \"Reddit search\";\n break;\n\n case \"q\":\n document.getElementById(\"searchType\").innerHTML = \"Qwant search\";\n break;\n\n case \"so\":\n document.getElementById(\"searchType\").innerHTML = \"Soundcloud search\";\n break;\n\n case \"s\":\n document.getElementById(\"searchType\").innerHTML = \"Spotify search\";\n break;\n\n case \"tv\":\n document.getElementById(\"searchType\").innerHTML = \"TheTVDB search\";\n break;\n\n case \"t\":\n document.getElementById(\"searchType\").innerHTML = \"Trakt search\";\n break;\n\n case \"y\":\n document.getElementById(\"searchType\").innerHTML = \"YouTube search\";\n break;\n\n case \"w\":\n document.getElementById(\"searchType\").innerHTML = \"Wikipedia search\";\n break;\n\n case \"p\":\n document.getElementById(\"searchType\").innerHTML = \"Plex search\";\n break;\n\n case \"rt\":\n document.getElementById(\"searchType\").innerHTML = \"Rotten Tomatoes search\";\n break;\n\n default:\n document.getElementById(\"searchType\").innerHTML = \"Invalid search\";\n break;\n }\n } else {\n document.getElementById(\"searchType\").innerHTML = \"Google search\";\n }\n}\n\nfunction search(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n\n if (text[0] === '/') {\n if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n window.location = \"https://www.allmusic.com/search/all/\" + subtext;\n break;\n\n case \"d\":\n window.location = \"https://duckduckgo.com/?q=\" + subtext;\n break;\n\n case \"di\":\n window.location = \"https://www.discogs.com/search/?q=\" + subtext;\n break;\n\n case \"i\":\n window.location = \"https://www.imdb.com/find?q=\" + subtext;\n break;\n\n case \"m\":\n window.location = \"https://www.themoviedb.org/search?query=\" + subtext;\n break;\n\n case \"r\":\n window.location = \"https://www.reddit.com/search?q=\" + subtext;\n break;\n\n case \"q\":\n window.location = \"https://www.qwant.com/?q=\" + subtext;\n break;\n\n case \"so\":\n window.location = \"https://soundcloud.com/search?q=\" + subtext;\n break;\n\n case \"s\":\n window.location = \"https://open.spotify.com/search/results/\" + subtext;\n break;\n\n case \"t\":\n window.location = \"https://trakt.tv/search?query=\" + subtext;\n break;\n\n case \"tv\":\n window.location = \"https://www.thetvdb.com/search?query=\" + subtext;\n break;\n\n case \"y\":\n window.location = \"https://www.youtube.com/results?search_query=\" + subtext;\n break;\n\n case \"w\":\n window.location = \"https://en.wikipedia.org/w/index.php?search=\" + subtext;\n break;\n\n case \"p\":\n window.location = \"https://app.plex.tv/desktop/#!/search?query=\" + subtext;\n break;\n\n case \"rt\":\n window.location = \"https://www.rottentomatoes.com/search?search=\" + subtext;\n break;\n }\n } else {\n var option = text.substr(1);\n\n switch (option) {\n case \"d\":\n window.location = \"https://www.duckduckgo.com\";\n break;\n\n case \"y\":\n window.location = \"https://www.youtube.com\";\n break;\n\n case \"r\":\n window.location = \"https://reddit.com\";\n break;\n\n case \"s\":\n window.location = \"https://open.spotify.com\";\n break;\n }\n }\n } else if (validURL(text)) {\n if (containsProtocol(text)) window.location = text;else window.location = \"https://\" + text;\n } else {\n window.location = \"https://www.google.com/search?q=\" + text;\n }\n} // Source: https://stackoverflow.com/questions/5717093/check-if-a-javascript-string-is-a-url\n\n\nfunction validURL(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/)?' + // protocol\n '((([a-z\\\\d]([a-z\\\\d-]*[a-z\\\\d])*)\\\\.)+[a-z]{2,}|' + // domain name\n '((\\\\d{1,3}\\\\.){3}\\\\d{1,3}))' + // OR ip (v4) address\n '(\\\\:\\\\d+)?(\\\\/[-a-z\\\\d%_.~+]*)*' + // port and path\n '(\\\\?[;&a-z\\\\d%_.~+=-]*)?' + // query string\n '(\\\\#[-a-z\\\\d_]*)?$', 'i'); // fragment locator\n\n return !!pattern.test(str);\n}\n\nfunction containsProtocol(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/){1}.*', 'i');\n return !!pattern.test(str);\n}\n\nString.prototype.replaceAll = function (search, replacement) {\n var target = this;\n return target.split(search).join(replacement);\n};\n\nfunction udpateDisplayedItems(e) {\n console.log(e.target.checked);\n}\n\nvar _c, _c2, _c3, _c4, _c5, _c6, _c7, _c8, _c9, _c10, _c11, _c12;\n\n$RefreshReg$(_c, \"Homepage\");\n$RefreshReg$(_c2, \"Search\");\n$RefreshReg$(_c3, \"Header\");\n$RefreshReg$(_c4, \"Applications\");\n$RefreshReg$(_c5, \"App\");\n$RefreshReg$(_c6, \"Bookmarks\");\n$RefreshReg$(_c7, \"LinkGroups\");\n$RefreshReg$(_c8, \"LinkItem\");\n$RefreshReg$(_c9, \"ModalMenu\");\n$RefreshReg$(_c10, \"Provider\");\n$RefreshReg$(_c11, \"ModalInit\");\n$RefreshReg$(_c12, \"Clock\");","map":{"version":3,"sources":["/home/seanedmunds/dev/home-page/src/index.js"],"names":["React","useState","useEffect","ReactDOM","setValueFromLocalStorage","property","value","localStorage","getItem","setValue","document","documentElement","style","setProperty","input","querySelector","replace","Homepage","setTheme","date","greet","Search","handleKeyPress","Header","props","Applications","appList","getApps","items","i","apps","length","push","name","url","icon","NSFW","App","classNameType","hrefUrl","iconName","Bookmarks","bookmarkList","getLinks","bookmarks","category","links","LinkGroups","LinkItem","link","ModalMenu","providers","getProviders","updateTheme","udpateDisplayedItems","Provider","provider","prefix","ModalInit","render","getElementById","currentDate","Date","dateOptions","weekday","year","month","day","toLocaleDateString","fixDigits","k","currentTime","Math","floor","getHours","easterEggChance","random","greetings","require","timeBased","easterEggs","messages","easteregg","concat","message","easterEggText","Clock","setDate","refreshClock","timerId","setInterval","cleanup","clearInterval","hour","minutes","getMinutes","midday","time","applications","getThemes","themes","e","themeName","target","innerHTML","toLowerCase","index","findIndex","item","console","log","setItem","imagebackground","colorbackground","colorserachbackground","colortextpri","colortextacc","colorborder","sindex","cycle","key","keyCode","which","text","replaceAll","option","substr","indexOf","subtext","search","preventDefault","stopPropagation","streamers","streamer","updateLabel","window","location","validURL","containsProtocol","str","pattern","RegExp","test","String","prototype","replacement","split","join","checked"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { useState, useEffect } from 'react';\nimport ReactDOM from 'react-dom';\n//import { unstable_createPortal } from 'react-dom';\nimport './index.css';\n\nconst setValueFromLocalStorage = property => {\n let value = localStorage.getItem(property);\n setValue(property, value);\n};\nconst setValue = (property, value) => {\n if (value) {\n document.documentElement.style.setProperty(`--${property}`, value);\n\n const input = document.querySelector(`#${property}`);\n if (input) {\n value = value.replace('px', '');\n input.value = value;\n }\n }\n};\n\nfunction Homepage() {\n setTheme();\n return (\n \n \n \n
\n \n \n
\n \n \n \n
\n \n \n
\n \n \n
\n \n );\n}\n\nfunction Search() {\n return (\n \n )\n}\n\nfunction Header(props) {\n return (\n \n );\n}\n\nfunction Applications() {\n let appList = getApps();\n var items = [];\n for (var i = 0; i < appList.apps.length; i++) {\n items.push(\n \n );\n }\n return (\n \n Applications
\n \n {items}\n
\n \n );\n}\n\nfunction App(props) {\n let classNameType = props.NSFW + \"-content\";\n let hrefUrl = \"https://\" + props.url;\n let iconName = \"mdi-\" + props.icon;\n return (\n \n );\n}\n\nfunction Bookmarks() {\n let bookmarkList = getLinks();\n var items = [];\n for (var i = 0; i < bookmarkList.bookmarks.length; i++) {\n items.push(\n \n );\n }\n return (\n \n Bookmarks
\n \n {items}\n
\n \n );\n}\n\nfunction LinkGroups(props) {\n var items = [];\n for (var i = 0; i < props.links.length; i++) {\n items.push(\n \n );\n }\n return (\n \n
{props.category}
\n {items}\n \n );\n}\n\nfunction LinkItem(props) {\n return (\n \n );\n}\n\nfunction ModalMenu() {\n var providers = getProviders();\n var items = [];\n for (var i = 0; i < providers.providers.length; i++) {\n items.push(\n \n );\n }\n return (\n \n \n \n\n
Color themes
\n\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n\n\n
Search options
\n
\n \n \n \n | Website | \n Prefix | \n
\n {items}\n \n
\n \n\n \n
\n \n );\n}\n\nfunction Provider(props) {\n return (\n \n | {props.provider.name} | \n {props.provider.prefix} | \n
\n );\n}\n\nfunction ModalInit() {\n return (\n \n );\n}\n\nReactDOM.render(\n ,\n document.getElementById('root')\n);\n\n//Functions below this line are for calculating data for\n//other functions\n\nfunction date() {\n let currentDate = new Date();\n let dateOptions = {\n weekday: \"long\",\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\"\n };\n let date = currentDate.toLocaleDateString(\"en-GB\", dateOptions);\n return date;\n}\nfunction fixDigits(k) {\n if (k < 10) {\n return \"0\" + k;\n }\n else {\n return k;\n }\n}\nfunction greet() {\n let currentTime = new Date();\n let greet = Math.floor(currentTime.getHours() / 6);\n let easterEggChance = Math.floor(Math.random() * 100);\n let greetings = require('./messages.json');\n let timeBased = [];\n let easterEggs = [];\n for (var i = 0; i < greetings.messages.length; i++) {\n if (greetings.messages[i].easteregg === \"FALSE\") {\n timeBased = timeBased.concat(greetings.messages[i]);\n } else {\n easterEggs = easterEggs.concat(greetings.messages[i]);\n }\n }\n if (easterEggChance > 10) {\n return timeBased[greet].message;\n } else {\n let easterEggText = Math.floor(Math.random() * easterEggs.length);\n return easterEggs[easterEggText].message;\n }\n}\nfunction Clock() {\n const [date, setDate] = useState(new Date());\n\n function refreshClock() {\n setDate(new Date());\n }\n useEffect(() => {\n const timerId = setInterval(refreshClock, 1000);\n return function cleanup() {\n clearInterval(timerId);\n };\n }, []);\n\n var hour = date.getHours();\n var minutes = date.getMinutes();\n //var seconds = date.getSeconds();\n var midday = \"AM\";\n midday = (hour >= 12) ? \"PM\" : \"AM\";\n hour = (hour === 0) ? 12 : ((hour > 12) ? (hour - 12) : hour);\n minutes = fixDigits(minutes);\n //seconds = fixDigits(seconds);\n let time = hour + \":\" + minutes + \" \" + midday;\n\n return (\n {time}
\n\n );\n}\nfunction getApps() {\n let applications = require('./apps.json');\n return applications;\n}\nfunction getLinks() {\n let links = require('./links.json');\n return links;\n}\nfunction getProviders() {\n let providers = require('./providers.json');\n return providers;\n}\nfunction getThemes() {\n let themes = require('./themes.json');\n return themes;\n}\n\nfunction updateTheme(e) {\n var themes = getThemes();\n var themeName = e.target.innerHTML.toLowerCase();\n var index = themes.themes.findIndex(function(item, i){\n return item.name === themeName\n });\n console.log(themes.themes[index]);\n localStorage.setItem(\"image-background\", themes.themes[index].imagebackground);\n localStorage.setItem(\"color-background\", themes.themes[index].colorbackground);\n localStorage.setItem(\"color-search-background\", themes.themes[index].colorserachbackground);\n localStorage.setItem(\"color-text-pri\",themes.themes[index].colortextpri);\n localStorage.setItem(\"color-text-acc\", themes.themes[index].colortextacc);\n localStorage.setItem(\"color-border\", themes.themes[index].colorborder);\n \n //document.documentElement.style.setProperty(prop, `var(--${themeName}${prop.substring(10)})`);\n setTheme();\n}\n\nfunction setTheme() {\n setValueFromLocalStorage('image-background');\n setValueFromLocalStorage('color-background');\n setValueFromLocalStorage('color-search-background');\n setValueFromLocalStorage('color-text-pri');\n setValueFromLocalStorage('color-text-acc');\n setValueFromLocalStorage('color-border');\n setValueFromLocalStorage('content-display');\n}\n\nfunction handleKeyPress(e) {\n var sindex = 0;\n var cycle = false;\n var key = e.keyCode || e.which;\n var text = e.target.value.replaceAll(\"+\", \"%2B\");\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n if (key == 13) { // Search functions\n search(text);\n }\n if (key == 9) { // Tab Completion Functions\n e.preventDefault();\n e.stopPropagation();\n if (text[0] === ';') {\n switch (option) {\n case 't':\n var streamers = ['admiralbahroo', 'moonmoon_ow', 'witwix'];\n if (!subtext || cycle) {\n cycle = true;\n if (sindex > streamers.length - 1) sindex = 0;\n document.getElementById(\"keywords\").value = ';t ' + streamers[sindex++];\n return;\n }\n for (var streamer of streamers) {\n if (subtext === streamer.substr(0, subtext.length)) {\n document.getElementById(\"keywords\").value = ';t ' + streamer;\n return;\n }\n }\n break;\n }\n }\n }\n if(key == 32){ //Space to go to search\nupdateLabel(text);\n }\n sindex = 0;\n cycle = false;\n updateLabel(text);\n}\n\nfunction updateLabel(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n if (text[0] === '/') {\n// if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n document.getElementById(\"searchType\").innerHTML = \"Allmusic search\";\n break;\n case \"d\":\n document.getElementById(\"searchType\").innerHTML = \"Duck Duck Go search\";\n break;\n case \"di\":\n document.getElementById(\"searchType\").innerHTML = \"Discogs search\";\n break;\n case \"i\":\n document.getElementById(\"searchType\").innerHTML = \"IMDB search\";\n break;\n case \"m\":\n document.getElementById(\"searchType\").innerHTML = \"TheMovieDB search\";\n break;\n case \"r\":\n document.getElementById(\"searchType\").innerHTML = \"Reddit search\";\n break;\n case \"q\":\n document.getElementById(\"searchType\").innerHTML = \"Qwant search\";\n break;\n case \"so\":\n document.getElementById(\"searchType\").innerHTML = \"Soundcloud search\";\n break;\n case \"s\":\n document.getElementById(\"searchType\").innerHTML = \"Spotify search\";\n break;\n case \"tv\":\n document.getElementById(\"searchType\").innerHTML = \"TheTVDB search\";\n break;\n case \"t\":\n document.getElementById(\"searchType\").innerHTML = \"Trakt search\";\n break;\n case \"y\":\n document.getElementById(\"searchType\").innerHTML = \"YouTube search\";\n break;\n case \"w\":\n document.getElementById(\"searchType\").innerHTML = \"Wikipedia search\";\n break;\n case \"p\":\n document.getElementById(\"searchType\").innerHTML = \"Plex search\";\n break;\n case \"rt\":\n document.getElementById(\"searchType\").innerHTML = \"Rotten Tomatoes search\";\n break;\n default:\n document.getElementById(\"searchType\").innerHTML = \"Invalid search\";\n break;\n }\n}else {\n document.getElementById(\"searchType\").innerHTML = \"Google search\";\n }\n}\n\nfunction search(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n if (text[0] === '/') {\n if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n window.location = \"https://www.allmusic.com/search/all/\" + subtext;\n break;\n case \"d\":\n window.location = \"https://duckduckgo.com/?q=\" + subtext;\n break;\n case \"di\":\n window.location = \"https://www.discogs.com/search/?q=\" + subtext;\n break;\n case \"i\":\n window.location = \"https://www.imdb.com/find?q=\" + subtext;\n break;\n case \"m\":\n window.location = \"https://www.themoviedb.org/search?query=\" + subtext;\n break;\n case \"r\":\n window.location = \"https://www.reddit.com/search?q=\" + subtext;\n break;\n case \"q\":\n window.location = \"https://www.qwant.com/?q=\" + subtext;\n break;\n case \"so\":\n window.location = \"https://soundcloud.com/search?q=\" + subtext;\n break;\n case \"s\":\n window.location = \"https://open.spotify.com/search/results/\" + subtext;\n break;\n case \"t\":\n window.location = \"https://trakt.tv/search?query=\" + subtext;\n break;\n case \"tv\":\n window.location = \"https://www.thetvdb.com/search?query=\" + subtext;\n break;\n case \"y\":\n window.location = \"https://www.youtube.com/results?search_query=\" + subtext;\n break;\n case \"w\":\n window.location = \"https://en.wikipedia.org/w/index.php?search=\" + subtext;\n break;\n case \"p\":\n window.location = \"https://app.plex.tv/desktop/#!/search?query=\" + subtext;\n break;\n case \"rt\":\n window.location = \"https://www.rottentomatoes.com/search?search=\" + subtext;\n break;\n }\n } else {\n var option = text.substr(1);\n switch (option) {\n case \"d\":\n window.location = \"https://www.duckduckgo.com\";\n break;\n case \"y\":\n window.location = \"https://www.youtube.com\";\n break;\n case \"r\":\n window.location = \"https://reddit.com\";\n break;\n case \"s\":\n window.location = \"https://open.spotify.com\";\n break;\n }\n }\n } else if (validURL(text)) {\n if (containsProtocol(text))\n window.location = text;\n else\n window.location = \"https://\" + text;\n } else {\n window.location = \"https://www.google.com/search?q=\" + text;\n }\n}\n\n// Source: https://stackoverflow.com/questions/5717093/check-if-a-javascript-string-is-a-url\nfunction validURL(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/)?' + // protocol\n '((([a-z\\\\d]([a-z\\\\d-]*[a-z\\\\d])*)\\\\.)+[a-z]{2,}|' + // domain name\n '((\\\\d{1,3}\\\\.){3}\\\\d{1,3}))' + // OR ip (v4) address\n '(\\\\:\\\\d+)?(\\\\/[-a-z\\\\d%_.~+]*)*' + // port and path\n '(\\\\?[;&a-z\\\\d%_.~+=-]*)?' + // query string\n '(\\\\#[-a-z\\\\d_]*)?$', 'i'); // fragment locator\n return !!pattern.test(str);\n}\n\nfunction containsProtocol(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/){1}.*', 'i');\n return !!pattern.test(str);\n}\n\nString.prototype.replaceAll = function(search, replacement) {\n var target = this;\n return target.split(search).join(replacement);\n};\n\nfunction udpateDisplayedItems(e) {\n console.log(e.target.checked);\n}"]},"metadata":{},"sourceType":"module"}
\ No newline at end of file
diff --git a/node_modules/.cache/babel-loader/cefb01ff7b27f1c38e35b27744972fd0.json b/node_modules/.cache/babel-loader/cefb01ff7b27f1c38e35b27744972fd0.json
new file mode 100644
index 00000000..0013ee52
--- /dev/null
+++ b/node_modules/.cache/babel-loader/cefb01ff7b27f1c38e35b27744972fd0.json
@@ -0,0 +1 @@
+{"ast":null,"code":"var _jsxFileName = \"/home/seanedmunds/dev/home-page/src/index.js\",\n _s = $RefreshSig$();\n\nimport React from 'react';\nimport { useState, useEffect } from 'react';\nimport ReactDOM from 'react-dom'; //import { unstable_createPortal } from 'react-dom';\n\nimport './index.css';\nimport { jsxDEV as _jsxDEV } from \"react/jsx-dev-runtime\";\n\nconst setValueFromLocalStorage = property => {\n let value = localStorage.getItem(property);\n setValue(property, value);\n};\n\nconst setValue = (property, value) => {\n if (value) {\n document.documentElement.style.setProperty(`--${property}`, value);\n const input = document.querySelector(`#${property}`);\n\n if (input) {\n value = value.replace('px', '');\n input.value = value;\n }\n }\n};\n\nfunction Homepage() {\n setTheme();\n return /*#__PURE__*/_jsxDEV(\"main\", {\n id: \"container\",\n className: \"fade\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Search, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 28,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 27,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Header, {\n date: date(),\n greet: greet()\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 31,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 30,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Applications, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 37,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 36,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Bookmarks, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 40,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 39,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(ModalMenu, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 43,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 42,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(ModalInit, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 46,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 45,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 26,\n columnNumber: 5\n }, this);\n}\n\n_c = Homepage;\n\nfunction Search() {\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"search\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"abackground\",\n children: [/*#__PURE__*/_jsxDEV(\"input\", {\n name: \"keywords\",\n type: \"text\",\n className: \"keyword\",\n id: \"keywords\",\n size: \"50\",\n spellCheck: \"true\",\n placeholder: \"\"\n /*onFocus={this.placeholder = \"\"} onBlur={this.placeholder = ''}*/\n ,\n autoComplete: \"off\",\n autoFocus: true,\n onKeyUp: handleKeyPress\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 56,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n id: \"searchType\",\n className: \"Input-label\",\n children: \"Google search\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 57,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 55,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 54,\n columnNumber: 5\n }, this);\n}\n\n_c2 = Search;\n\nfunction Header(props) {\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"header\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n id: \"greeting_block\",\n children: /*#__PURE__*/_jsxDEV(\"h1\", {\n id: \"header_greet\",\n children: props.greet\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 67,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 66,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"date_block\",\n children: [/*#__PURE__*/_jsxDEV(\"h2\", {\n id: \"header_date\",\n children: props.date\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 70,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(Clock, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 71,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 69,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 65,\n columnNumber: 5\n }, this);\n}\n\n_c3 = Header;\n\nfunction Applications() {\n let appList = getApps();\n var items = [];\n\n for (var i = 0; i < appList.apps.length; i++) {\n var safe = appList.apps[i].NSFW;\n var NSFWEnabled = localStorage.getItem(\"contenttype\");\n\n if (safe === \"SAFE\") {\n items.push( /*#__PURE__*/_jsxDEV(App, {\n name: appList.apps[i].name,\n url: appList.apps[i].url,\n icon: appList.apps[i].icon,\n NSFW: appList.apps[i].NSFW\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 85,\n columnNumber: 9\n }, this));\n } else if (safe === \"NSFW\" && NSFWEnabled) {\n items.push( /*#__PURE__*/_jsxDEV(App, {\n name: appList.apps[i].name,\n url: appList.apps[i].url,\n icon: appList.apps[i].icon,\n NSFW: appList.apps[i].NSFW\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 95,\n columnNumber: 9\n }, this));\n } else {}\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"apps\",\n children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n children: \"Applications\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 110,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"apps_loop\",\n children: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 111,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 109,\n columnNumber: 5\n }, this);\n}\n\n_c4 = Applications;\n\nfunction App(props) {\n let classNameType = props.NSFW + \"-content\";\n let hrefUrl = \"https://\" + props.url;\n let iconName = \"mdi-\" + props.icon;\n return /*#__PURE__*/_jsxDEV(\"div\", {\n className: classNameType,\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: hrefUrl,\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_item\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_icon\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify icon\",\n \"data-icon\": iconName\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 128,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 127,\n columnNumber: 13\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_text\",\n children: [/*#__PURE__*/_jsxDEV(\"span\", {\n id: \"app-name\",\n children: props.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 131,\n columnNumber: 15\n }, this), /*#__PURE__*/_jsxDEV(\"span\", {\n id: \"app-address\",\n children: props.url\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 132,\n columnNumber: 15\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 130,\n columnNumber: 13\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 126,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 125,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 124,\n columnNumber: 7\n }, this);\n}\n\n_c5 = App;\n\nfunction Bookmarks() {\n let bookmarkList = getLinks();\n var items = [];\n\n for (var i = 0; i < bookmarkList.bookmarks.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(LinkGroups, {\n category: bookmarkList.bookmarks[i].category,\n links: bookmarkList.bookmarks[i].links\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 145,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"links\",\n children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n children: \"Bookmarks\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 154,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"links_loop\",\n children: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 155,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 153,\n columnNumber: 5\n }, this);\n}\n\n_c6 = Bookmarks;\n\nfunction LinkGroups(props) {\n var items = [];\n\n for (var i = 0; i < props.links.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(LinkItem, {\n link: props.links[i]\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 166,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"links_item\",\n children: [/*#__PURE__*/_jsxDEV(\"h4\", {\n children: props.category\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 174,\n columnNumber: 7\n }, this), items]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 173,\n columnNumber: 5\n }, this);\n}\n\n_c7 = LinkGroups;\n\nfunction LinkItem(props) {\n return /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: props.link.url,\n className: \"theme_color-border theme_text-select\",\n children: props.link.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 183,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 182,\n columnNumber: 5\n }, this);\n}\n\n_c8 = LinkItem;\n\nfunction ModalMenu() {\n var providers = getProviders();\n var items = [];\n\n for (var i = 0; i < providers.providers.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(Provider, {\n provider: providers.providers[i]\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 193,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"modal\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n children: [/*#__PURE__*/_jsxDEV(\"header\", {\n id: \"modal-header\",\n children: [/*#__PURE__*/_jsxDEV(\"h1\", {\n children: \"Options\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 203,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n href: \"#\",\n title: \"Close\",\n className: \"modal-close\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-close\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 205,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 204,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 202,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"h2\", {\n children: \"Color themes\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 209,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"modal-theme\",\n children: [/*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"blackboard\",\n className: \"theme-button theme-blackboard\",\n onClick: updateTheme,\n children: \"Blackboard\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 212,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"gazette\",\n className: \"theme-button theme-gazette\",\n onClick: updateTheme,\n children: \"Gazette\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 213,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"espresso\",\n className: \"theme-button theme-espresso\",\n onClick: updateTheme,\n children: \"Espresso\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 214,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cab\",\n className: \"theme-button theme-cab\",\n onClick: updateTheme,\n children: \"Cab\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 215,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cloud\",\n className: \"theme-button theme-cloud\",\n onClick: updateTheme,\n children: \"Cloud\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 216,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"lime\",\n className: \"theme-button theme-lime\",\n onClick: updateTheme,\n children: \"Lime\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 217,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"passion\",\n className: \"theme-button theme-passion\",\n onClick: updateTheme,\n children: \"Passion\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 218,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"blues\",\n className: \"theme-button theme-blues\",\n onClick: updateTheme,\n children: \"Blues\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 219,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"chalk\",\n className: \"theme-button theme-chalk\",\n onClick: updateTheme,\n children: \"Chalk\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 220,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"tron\",\n className: \"theme-button theme-tron\",\n onClick: updateTheme,\n children: \"Tron\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 221,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"paper\",\n className: \"theme-button theme-paper\",\n onClick: updateTheme,\n children: \"Paper\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 222,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cyberpunk\",\n className: \"theme-button theme-cyberpunk\",\n onClick: updateTheme,\n children: \"Cyberpunk\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 223,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"quadra\",\n className: \"theme-button theme-panam\",\n onClick: updateTheme,\n children: \"Quadra\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 224,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"panam\",\n className: \"theme-button theme-panam\",\n onClick: updateTheme,\n children: \"Panam\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 225,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"touch\",\n className: \"theme-button theme-touch\",\n onClick: updateTheme,\n children: \"Touch\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 226,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"peek\",\n className: \"theme-button theme-peek\",\n onClick: updateTheme,\n children: \"Peek\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 227,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 211,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"h2\", {\n children: \"Search options\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 231,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"providers\",\n children: /*#__PURE__*/_jsxDEV(\"table\", {\n children: /*#__PURE__*/_jsxDEV(\"tbody\", {\n children: [/*#__PURE__*/_jsxDEV(\"tr\", {\n children: [/*#__PURE__*/_jsxDEV(\"th\", {\n children: \"Website\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 236,\n columnNumber: 19\n }, this), /*#__PURE__*/_jsxDEV(\"th\", {\n children: \"Prefix\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 237,\n columnNumber: 19\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 235,\n columnNumber: 17\n }, this), items]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 234,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 233,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 232,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"header\", {\n id: \"modal-footer\",\n children: [/*#__PURE__*/_jsxDEV(\"a\", {\n href: \"https://github.com/jeroenpardon/\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-github-box\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 245,\n columnNumber: 54\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 245,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n href: \"https://materialdesignicons.com/\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-material-design\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 246,\n columnNumber: 54\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 246,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"sneaky\",\n children: [/*#__PURE__*/_jsxDEV(\"input\", {\n type: \"checkbox\",\n id: \"contenttype\",\n onChange: udpateDisplayedItems\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 247,\n columnNumber: 35\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n for: \"contenttype\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-domino-mask\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 248,\n columnNumber: 36\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 248,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 247,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 244,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 201,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 200,\n columnNumber: 5\n }, this);\n}\n\n_c9 = ModalMenu;\n\nfunction Provider(props) {\n return /*#__PURE__*/_jsxDEV(\"tr\", {\n children: [/*#__PURE__*/_jsxDEV(\"td\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: props.provider.url,\n children: props.provider.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 258,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 258,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"td\", {\n children: props.provider.prefix\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 259,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 257,\n columnNumber: 5\n }, this);\n}\n\n_c10 = Provider;\n\nfunction ModalInit() {\n setDisplayedItems();\n return /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"modal_init\",\n children: [/*#__PURE__*/_jsxDEV(\"a\", {\n className: \"btn\",\n href: \"#modal\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify icon\",\n \"data-icon\": \"mdi-xbox-controller-menu\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 269,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 268,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"script\", {\n children: \"document.getElementById('contenttype').checked = checked;\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 271,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 267,\n columnNumber: 5\n }, this);\n}\n\n_c11 = ModalInit;\nReactDOM.render( /*#__PURE__*/_jsxDEV(Homepage, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 279,\n columnNumber: 3\n}, this), document.getElementById('root')); //Functions below this line are for calculating data for\n//other functions\n\nfunction date() {\n let currentDate = new Date();\n let dateOptions = {\n weekday: \"long\",\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\"\n };\n let date = currentDate.toLocaleDateString(\"en-GB\", dateOptions);\n return date;\n}\n\nfunction fixDigits(k) {\n if (k < 10) {\n return \"0\" + k;\n } else {\n return k;\n }\n}\n\nfunction greet() {\n let currentTime = new Date();\n let greet = Math.floor(currentTime.getHours() / 6);\n let easterEggChance = Math.floor(Math.random() * 100);\n\n let greetings = require('./messages.json');\n\n let timeBased = [];\n let easterEggs = [];\n\n for (var i = 0; i < greetings.messages.length; i++) {\n if (greetings.messages[i].easteregg === \"FALSE\") {\n timeBased = timeBased.concat(greetings.messages[i]);\n } else {\n easterEggs = easterEggs.concat(greetings.messages[i]);\n }\n }\n\n if (easterEggChance > 10) {\n return timeBased[greet].message;\n } else {\n let easterEggText = Math.floor(Math.random() * easterEggs.length);\n return easterEggs[easterEggText].message;\n }\n}\n\nfunction Clock() {\n _s();\n\n const [date, setDate] = useState(new Date());\n\n function refreshClock() {\n setDate(new Date());\n }\n\n useEffect(() => {\n const timerId = setInterval(refreshClock, 1000);\n return function cleanup() {\n clearInterval(timerId);\n };\n }, []);\n var hour = date.getHours();\n var minutes = date.getMinutes(); //var seconds = date.getSeconds();\n\n var midday = \"AM\";\n midday = hour >= 12 ? \"PM\" : \"AM\";\n hour = hour === 0 ? 12 : hour > 12 ? hour - 12 : hour;\n minutes = fixDigits(minutes); //seconds = fixDigits(seconds);\n\n let time = hour + \":\" + minutes + \" \" + midday;\n return /*#__PURE__*/_jsxDEV(\"h2\", {\n id: \"clock\",\n children: time\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 350,\n columnNumber: 5\n }, this);\n}\n\n_s(Clock, \"Gqi45WOZhU2c0BLYX0HoJeiR0fk=\");\n\n_c12 = Clock;\n\nfunction getApps() {\n let applications = require('./apps.json');\n\n return applications;\n}\n\nfunction getLinks() {\n let links = require('./links.json');\n\n return links;\n}\n\nfunction getProviders() {\n let providers = require('./providers.json');\n\n return providers;\n}\n\nfunction getThemes() {\n let themes = require('./themes.json');\n\n return themes;\n}\n\nfunction updateTheme(e) {\n var themes = getThemes();\n var themeName = e.target.innerHTML.toLowerCase();\n var index = themes.themes.findIndex(function (item, i) {\n return item.name === themeName;\n });\n localStorage.setItem(\"image-background\", themes.themes[index].imagebackground);\n localStorage.setItem(\"color-background\", themes.themes[index].colorbackground);\n localStorage.setItem(\"color-search-background\", themes.themes[index].colorserachbackground);\n localStorage.setItem(\"color-text-pri\", themes.themes[index].colortextpri);\n localStorage.setItem(\"color-text-acc\", themes.themes[index].colortextacc);\n localStorage.setItem(\"color-border\", themes.themes[index].colorborder); //document.documentElement.style.setProperty(prop, `var(--${themeName}${prop.substring(10)})`);\n\n setTheme();\n}\n\nfunction setTheme() {\n setValueFromLocalStorage('image-background');\n setValueFromLocalStorage('color-background');\n setValueFromLocalStorage('color-search-background');\n setValueFromLocalStorage('color-text-pri');\n setValueFromLocalStorage('color-text-acc');\n setValueFromLocalStorage('color-border');\n setValueFromLocalStorage('content-display');\n}\n\nfunction handleKeyPress(e) {\n var sindex = 0;\n var cycle = false;\n var key = e.keyCode || e.which;\n var text = e.target.value.replaceAll(\"+\", \"%2B\");\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n\n if (key == 13) {\n // Search functions\n search(text);\n }\n\n if (key == 9) {\n // Tab Completion Functions\n e.preventDefault();\n e.stopPropagation();\n\n if (text[0] === ';') {\n switch (option) {\n case 't':\n var streamers = ['admiralbahroo', 'moonmoon_ow', 'witwix'];\n\n if (!subtext || cycle) {\n cycle = true;\n if (sindex > streamers.length - 1) sindex = 0;\n document.getElementById(\"keywords\").value = ';t ' + streamers[sindex++];\n return;\n }\n\n for (var streamer of streamers) {\n if (subtext === streamer.substr(0, subtext.length)) {\n document.getElementById(\"keywords\").value = ';t ' + streamer;\n return;\n }\n }\n\n break;\n }\n }\n }\n\n if (key == 32) {\n //Space to go to search\n updateLabel(text);\n }\n\n sindex = 0;\n cycle = false;\n updateLabel(text);\n}\n\nfunction updateLabel(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n\n if (text[0] === '/') {\n // if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n document.getElementById(\"searchType\").innerHTML = \"Allmusic search\";\n break;\n\n case \"d\":\n document.getElementById(\"searchType\").innerHTML = \"Duck Duck Go search\";\n break;\n\n case \"di\":\n document.getElementById(\"searchType\").innerHTML = \"Discogs search\";\n break;\n\n case \"i\":\n document.getElementById(\"searchType\").innerHTML = \"IMDB search\";\n break;\n\n case \"m\":\n document.getElementById(\"searchType\").innerHTML = \"TheMovieDB search\";\n break;\n\n case \"r\":\n document.getElementById(\"searchType\").innerHTML = \"Reddit search\";\n break;\n\n case \"q\":\n document.getElementById(\"searchType\").innerHTML = \"Qwant search\";\n break;\n\n case \"so\":\n document.getElementById(\"searchType\").innerHTML = \"Soundcloud search\";\n break;\n\n case \"s\":\n document.getElementById(\"searchType\").innerHTML = \"Spotify search\";\n break;\n\n case \"tv\":\n document.getElementById(\"searchType\").innerHTML = \"TheTVDB search\";\n break;\n\n case \"t\":\n document.getElementById(\"searchType\").innerHTML = \"Trakt search\";\n break;\n\n case \"y\":\n document.getElementById(\"searchType\").innerHTML = \"YouTube search\";\n break;\n\n case \"w\":\n document.getElementById(\"searchType\").innerHTML = \"Wikipedia search\";\n break;\n\n case \"p\":\n document.getElementById(\"searchType\").innerHTML = \"Plex search\";\n break;\n\n case \"rt\":\n document.getElementById(\"searchType\").innerHTML = \"Rotten Tomatoes search\";\n break;\n\n default:\n document.getElementById(\"searchType\").innerHTML = \"Invalid search\";\n break;\n }\n } else {\n document.getElementById(\"searchType\").innerHTML = \"Google search\";\n }\n}\n\nfunction search(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n\n if (text[0] === '/') {\n if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n window.location = \"https://www.allmusic.com/search/all/\" + subtext;\n break;\n\n case \"d\":\n window.location = \"https://duckduckgo.com/?q=\" + subtext;\n break;\n\n case \"di\":\n window.location = \"https://www.discogs.com/search/?q=\" + subtext;\n break;\n\n case \"i\":\n window.location = \"https://www.imdb.com/find?q=\" + subtext;\n break;\n\n case \"m\":\n window.location = \"https://www.themoviedb.org/search?query=\" + subtext;\n break;\n\n case \"r\":\n window.location = \"https://www.reddit.com/search?q=\" + subtext;\n break;\n\n case \"q\":\n window.location = \"https://www.qwant.com/?q=\" + subtext;\n break;\n\n case \"so\":\n window.location = \"https://soundcloud.com/search?q=\" + subtext;\n break;\n\n case \"s\":\n window.location = \"https://open.spotify.com/search/results/\" + subtext;\n break;\n\n case \"t\":\n window.location = \"https://trakt.tv/search?query=\" + subtext;\n break;\n\n case \"tv\":\n window.location = \"https://www.thetvdb.com/search?query=\" + subtext;\n break;\n\n case \"y\":\n window.location = \"https://www.youtube.com/results?search_query=\" + subtext;\n break;\n\n case \"w\":\n window.location = \"https://en.wikipedia.org/w/index.php?search=\" + subtext;\n break;\n\n case \"p\":\n window.location = \"https://app.plex.tv/desktop/#!/search?query=\" + subtext;\n break;\n\n case \"rt\":\n window.location = \"https://www.rottentomatoes.com/search?search=\" + subtext;\n break;\n }\n } else {\n var option = text.substr(1);\n\n switch (option) {\n case \"d\":\n window.location = \"https://www.duckduckgo.com\";\n break;\n\n case \"y\":\n window.location = \"https://www.youtube.com\";\n break;\n\n case \"r\":\n window.location = \"https://reddit.com\";\n break;\n\n case \"s\":\n window.location = \"https://open.spotify.com\";\n break;\n }\n }\n } else if (validURL(text)) {\n if (containsProtocol(text)) window.location = text;else window.location = \"https://\" + text;\n } else {\n window.location = \"https://www.google.com/search?q=\" + text;\n }\n} // Source: https://stackoverflow.com/questions/5717093/check-if-a-javascript-string-is-a-url\n\n\nfunction validURL(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/)?' + // protocol\n '((([a-z\\\\d]([a-z\\\\d-]*[a-z\\\\d])*)\\\\.)+[a-z]{2,}|' + // domain name\n '((\\\\d{1,3}\\\\.){3}\\\\d{1,3}))' + // OR ip (v4) address\n '(\\\\:\\\\d+)?(\\\\/[-a-z\\\\d%_.~+]*)*' + // port and path\n '(\\\\?[;&a-z\\\\d%_.~+=-]*)?' + // query string\n '(\\\\#[-a-z\\\\d_]*)?$', 'i'); // fragment locator\n\n return !!pattern.test(str);\n}\n\nfunction containsProtocol(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/){1}.*', 'i');\n return !!pattern.test(str);\n}\n\nString.prototype.replaceAll = function (search, replacement) {\n var target = this;\n return target.split(search).join(replacement);\n};\n\nfunction udpateDisplayedItems(e) {\n localStorage.setItem('contenttype', e.target.checked);\n\n if (e.target.checked) {\n localStorage.setItem('content-display', 'none');\n } else {\n localStorage.setItem('content-display', 'block');\n }\n\n setDisplayedItems();\n}\n\nfunction setDisplayedItems() {\n setValueFromLocalStorage('contenttype');\n setValueFromLocalStorage('content-display');\n var checked = localStorage.getItem(\"contenttype\");\n console.log(checked);\n}\n\nvar _c, _c2, _c3, _c4, _c5, _c6, _c7, _c8, _c9, _c10, _c11, _c12;\n\n$RefreshReg$(_c, \"Homepage\");\n$RefreshReg$(_c2, \"Search\");\n$RefreshReg$(_c3, \"Header\");\n$RefreshReg$(_c4, \"Applications\");\n$RefreshReg$(_c5, \"App\");\n$RefreshReg$(_c6, \"Bookmarks\");\n$RefreshReg$(_c7, \"LinkGroups\");\n$RefreshReg$(_c8, \"LinkItem\");\n$RefreshReg$(_c9, \"ModalMenu\");\n$RefreshReg$(_c10, \"Provider\");\n$RefreshReg$(_c11, \"ModalInit\");\n$RefreshReg$(_c12, \"Clock\");","map":{"version":3,"sources":["/home/seanedmunds/dev/home-page/src/index.js"],"names":["React","useState","useEffect","ReactDOM","setValueFromLocalStorage","property","value","localStorage","getItem","setValue","document","documentElement","style","setProperty","input","querySelector","replace","Homepage","setTheme","date","greet","Search","handleKeyPress","Header","props","Applications","appList","getApps","items","i","apps","length","safe","NSFW","NSFWEnabled","push","name","url","icon","App","classNameType","hrefUrl","iconName","Bookmarks","bookmarkList","getLinks","bookmarks","category","links","LinkGroups","LinkItem","link","ModalMenu","providers","getProviders","updateTheme","udpateDisplayedItems","Provider","provider","prefix","ModalInit","setDisplayedItems","render","getElementById","currentDate","Date","dateOptions","weekday","year","month","day","toLocaleDateString","fixDigits","k","currentTime","Math","floor","getHours","easterEggChance","random","greetings","require","timeBased","easterEggs","messages","easteregg","concat","message","easterEggText","Clock","setDate","refreshClock","timerId","setInterval","cleanup","clearInterval","hour","minutes","getMinutes","midday","time","applications","getThemes","themes","e","themeName","target","innerHTML","toLowerCase","index","findIndex","item","setItem","imagebackground","colorbackground","colorserachbackground","colortextpri","colortextacc","colorborder","sindex","cycle","key","keyCode","which","text","replaceAll","option","substr","indexOf","subtext","search","preventDefault","stopPropagation","streamers","streamer","updateLabel","window","location","validURL","containsProtocol","str","pattern","RegExp","test","String","prototype","replacement","split","join","checked","console","log"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { useState, useEffect } from 'react';\nimport ReactDOM from 'react-dom';\n//import { unstable_createPortal } from 'react-dom';\nimport './index.css';\n\nconst setValueFromLocalStorage = property => {\n let value = localStorage.getItem(property);\n setValue(property, value);\n};\nconst setValue = (property, value) => {\n if (value) {\n document.documentElement.style.setProperty(`--${property}`, value);\n\n const input = document.querySelector(`#${property}`);\n if (input) {\n value = value.replace('px', '');\n input.value = value;\n }\n }\n};\n\nfunction Homepage() {\n setTheme();\n return (\n \n \n \n
\n \n \n
\n \n \n \n
\n \n \n
\n \n \n
\n \n );\n}\n\nfunction Search() {\n return (\n \n )\n}\n\nfunction Header(props) {\n return (\n \n );\n}\n\nfunction Applications() {\n let appList = getApps();\n var items = [];\n for (var i = 0; i < appList.apps.length; i++) {\n var safe = appList.apps[i].NSFW;\n var NSFWEnabled = localStorage.getItem(\"contenttype\");\n if (safe === \"SAFE\") {\n items.push(\n \n );\n } else if (safe === \"NSFW\" && NSFWEnabled) {\n items.push(\n \n );\n } else {\n \n }\n \n }\n return (\n \n Applications
\n \n {items}\n
\n \n );\n}\n\nfunction App(props) {\n \n let classNameType = props.NSFW + \"-content\";\n let hrefUrl = \"https://\" + props.url;\n let iconName = \"mdi-\" + props.icon;\n return (\n \n );\n}\n\nfunction Bookmarks() {\n let bookmarkList = getLinks();\n var items = [];\n for (var i = 0; i < bookmarkList.bookmarks.length; i++) {\n items.push(\n \n );\n }\n return (\n \n Bookmarks
\n \n {items}\n
\n \n );\n}\n\nfunction LinkGroups(props) {\n var items = [];\n for (var i = 0; i < props.links.length; i++) {\n items.push(\n \n );\n }\n return (\n \n
{props.category}
\n {items}\n \n );\n}\n\nfunction LinkItem(props) {\n return (\n \n );\n}\n\nfunction ModalMenu() {\n var providers = getProviders();\n var items = [];\n for (var i = 0; i < providers.providers.length; i++) {\n items.push(\n \n );\n }\n return (\n \n \n \n\n
Color themes
\n\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n\n\n
Search options
\n
\n \n \n \n | Website | \n Prefix | \n
\n {items}\n \n
\n \n\n \n
\n \n );\n}\n\nfunction Provider(props) {\n return (\n \n | {props.provider.name} | \n {props.provider.prefix} | \n
\n );\n}\n\nfunction ModalInit() {\n setDisplayedItems();\n return (\n \n );\n}\n\nReactDOM.render(\n ,\n document.getElementById('root')\n);\n\n//Functions below this line are for calculating data for\n//other functions\n\nfunction date() {\n let currentDate = new Date();\n let dateOptions = {\n weekday: \"long\",\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\"\n };\n let date = currentDate.toLocaleDateString(\"en-GB\", dateOptions);\n return date;\n}\nfunction fixDigits(k) {\n if (k < 10) {\n return \"0\" + k;\n }\n else {\n return k;\n }\n}\nfunction greet() {\n let currentTime = new Date();\n let greet = Math.floor(currentTime.getHours() / 6);\n let easterEggChance = Math.floor(Math.random() * 100);\n let greetings = require('./messages.json');\n let timeBased = [];\n let easterEggs = [];\n for (var i = 0; i < greetings.messages.length; i++) {\n if (greetings.messages[i].easteregg === \"FALSE\") {\n timeBased = timeBased.concat(greetings.messages[i]);\n } else {\n easterEggs = easterEggs.concat(greetings.messages[i]);\n }\n }\n if (easterEggChance > 10) {\n return timeBased[greet].message;\n } else {\n let easterEggText = Math.floor(Math.random() * easterEggs.length);\n return easterEggs[easterEggText].message;\n }\n}\nfunction Clock() {\n const [date, setDate] = useState(new Date());\n\n function refreshClock() {\n setDate(new Date());\n }\n useEffect(() => {\n const timerId = setInterval(refreshClock, 1000);\n return function cleanup() {\n clearInterval(timerId);\n };\n }, []);\n\n var hour = date.getHours();\n var minutes = date.getMinutes();\n //var seconds = date.getSeconds();\n var midday = \"AM\";\n midday = (hour >= 12) ? \"PM\" : \"AM\";\n hour = (hour === 0) ? 12 : ((hour > 12) ? (hour - 12) : hour);\n minutes = fixDigits(minutes);\n //seconds = fixDigits(seconds);\n let time = hour + \":\" + minutes + \" \" + midday;\n\n return (\n {time}
\n\n );\n}\nfunction getApps() {\n let applications = require('./apps.json');\n return applications;\n}\nfunction getLinks() {\n let links = require('./links.json');\n return links;\n}\nfunction getProviders() {\n let providers = require('./providers.json');\n return providers;\n}\nfunction getThemes() {\n let themes = require('./themes.json');\n return themes;\n}\n\nfunction updateTheme(e) {\n var themes = getThemes();\n var themeName = e.target.innerHTML.toLowerCase();\n var index = themes.themes.findIndex(function(item, i){\n return item.name === themeName\n });\n localStorage.setItem(\"image-background\", themes.themes[index].imagebackground);\n localStorage.setItem(\"color-background\", themes.themes[index].colorbackground);\n localStorage.setItem(\"color-search-background\", themes.themes[index].colorserachbackground);\n localStorage.setItem(\"color-text-pri\",themes.themes[index].colortextpri);\n localStorage.setItem(\"color-text-acc\", themes.themes[index].colortextacc);\n localStorage.setItem(\"color-border\", themes.themes[index].colorborder);\n \n //document.documentElement.style.setProperty(prop, `var(--${themeName}${prop.substring(10)})`);\n setTheme();\n}\n\nfunction setTheme() {\n setValueFromLocalStorage('image-background');\n setValueFromLocalStorage('color-background');\n setValueFromLocalStorage('color-search-background');\n setValueFromLocalStorage('color-text-pri');\n setValueFromLocalStorage('color-text-acc');\n setValueFromLocalStorage('color-border');\n setValueFromLocalStorage('content-display');\n}\n\nfunction handleKeyPress(e) {\n var sindex = 0;\n var cycle = false;\n var key = e.keyCode || e.which;\n var text = e.target.value.replaceAll(\"+\", \"%2B\");\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n if (key == 13) { // Search functions\n search(text);\n }\n if (key == 9) { // Tab Completion Functions\n e.preventDefault();\n e.stopPropagation();\n if (text[0] === ';') {\n switch (option) {\n case 't':\n var streamers = ['admiralbahroo', 'moonmoon_ow', 'witwix'];\n if (!subtext || cycle) {\n cycle = true;\n if (sindex > streamers.length - 1) sindex = 0;\n document.getElementById(\"keywords\").value = ';t ' + streamers[sindex++];\n return;\n }\n for (var streamer of streamers) {\n if (subtext === streamer.substr(0, subtext.length)) {\n document.getElementById(\"keywords\").value = ';t ' + streamer;\n return;\n }\n }\n break;\n }\n }\n }\n if(key == 32){ //Space to go to search\nupdateLabel(text);\n }\n sindex = 0;\n cycle = false;\n updateLabel(text);\n}\n\nfunction updateLabel(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n if (text[0] === '/') {\n// if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n document.getElementById(\"searchType\").innerHTML = \"Allmusic search\";\n break;\n case \"d\":\n document.getElementById(\"searchType\").innerHTML = \"Duck Duck Go search\";\n break;\n case \"di\":\n document.getElementById(\"searchType\").innerHTML = \"Discogs search\";\n break;\n case \"i\":\n document.getElementById(\"searchType\").innerHTML = \"IMDB search\";\n break;\n case \"m\":\n document.getElementById(\"searchType\").innerHTML = \"TheMovieDB search\";\n break;\n case \"r\":\n document.getElementById(\"searchType\").innerHTML = \"Reddit search\";\n break;\n case \"q\":\n document.getElementById(\"searchType\").innerHTML = \"Qwant search\";\n break;\n case \"so\":\n document.getElementById(\"searchType\").innerHTML = \"Soundcloud search\";\n break;\n case \"s\":\n document.getElementById(\"searchType\").innerHTML = \"Spotify search\";\n break;\n case \"tv\":\n document.getElementById(\"searchType\").innerHTML = \"TheTVDB search\";\n break;\n case \"t\":\n document.getElementById(\"searchType\").innerHTML = \"Trakt search\";\n break;\n case \"y\":\n document.getElementById(\"searchType\").innerHTML = \"YouTube search\";\n break;\n case \"w\":\n document.getElementById(\"searchType\").innerHTML = \"Wikipedia search\";\n break;\n case \"p\":\n document.getElementById(\"searchType\").innerHTML = \"Plex search\";\n break;\n case \"rt\":\n document.getElementById(\"searchType\").innerHTML = \"Rotten Tomatoes search\";\n break;\n default:\n document.getElementById(\"searchType\").innerHTML = \"Invalid search\";\n break;\n }\n}else {\n document.getElementById(\"searchType\").innerHTML = \"Google search\";\n }\n}\n\nfunction search(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n if (text[0] === '/') {\n if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n window.location = \"https://www.allmusic.com/search/all/\" + subtext;\n break;\n case \"d\":\n window.location = \"https://duckduckgo.com/?q=\" + subtext;\n break;\n case \"di\":\n window.location = \"https://www.discogs.com/search/?q=\" + subtext;\n break;\n case \"i\":\n window.location = \"https://www.imdb.com/find?q=\" + subtext;\n break;\n case \"m\":\n window.location = \"https://www.themoviedb.org/search?query=\" + subtext;\n break;\n case \"r\":\n window.location = \"https://www.reddit.com/search?q=\" + subtext;\n break;\n case \"q\":\n window.location = \"https://www.qwant.com/?q=\" + subtext;\n break;\n case \"so\":\n window.location = \"https://soundcloud.com/search?q=\" + subtext;\n break;\n case \"s\":\n window.location = \"https://open.spotify.com/search/results/\" + subtext;\n break;\n case \"t\":\n window.location = \"https://trakt.tv/search?query=\" + subtext;\n break;\n case \"tv\":\n window.location = \"https://www.thetvdb.com/search?query=\" + subtext;\n break;\n case \"y\":\n window.location = \"https://www.youtube.com/results?search_query=\" + subtext;\n break;\n case \"w\":\n window.location = \"https://en.wikipedia.org/w/index.php?search=\" + subtext;\n break;\n case \"p\":\n window.location = \"https://app.plex.tv/desktop/#!/search?query=\" + subtext;\n break;\n case \"rt\":\n window.location = \"https://www.rottentomatoes.com/search?search=\" + subtext;\n break;\n }\n } else {\n var option = text.substr(1);\n switch (option) {\n case \"d\":\n window.location = \"https://www.duckduckgo.com\";\n break;\n case \"y\":\n window.location = \"https://www.youtube.com\";\n break;\n case \"r\":\n window.location = \"https://reddit.com\";\n break;\n case \"s\":\n window.location = \"https://open.spotify.com\";\n break;\n }\n }\n } else if (validURL(text)) {\n if (containsProtocol(text))\n window.location = text;\n else\n window.location = \"https://\" + text;\n } else {\n window.location = \"https://www.google.com/search?q=\" + text;\n }\n}\n\n// Source: https://stackoverflow.com/questions/5717093/check-if-a-javascript-string-is-a-url\nfunction validURL(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/)?' + // protocol\n '((([a-z\\\\d]([a-z\\\\d-]*[a-z\\\\d])*)\\\\.)+[a-z]{2,}|' + // domain name\n '((\\\\d{1,3}\\\\.){3}\\\\d{1,3}))' + // OR ip (v4) address\n '(\\\\:\\\\d+)?(\\\\/[-a-z\\\\d%_.~+]*)*' + // port and path\n '(\\\\?[;&a-z\\\\d%_.~+=-]*)?' + // query string\n '(\\\\#[-a-z\\\\d_]*)?$', 'i'); // fragment locator\n return !!pattern.test(str);\n}\n\nfunction containsProtocol(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/){1}.*', 'i');\n return !!pattern.test(str);\n}\n\nString.prototype.replaceAll = function(search, replacement) {\n var target = this;\n return target.split(search).join(replacement);\n};\n\nfunction udpateDisplayedItems(e) {\n localStorage.setItem('contenttype', e.target.checked);\n if (e.target.checked) {\n localStorage.setItem('content-display', 'none');\n } else {\n localStorage.setItem('content-display', 'block');\n }\n setDisplayedItems();\n}\nfunction setDisplayedItems() {\n setValueFromLocalStorage('contenttype');\n setValueFromLocalStorage('content-display');\n var checked = localStorage.getItem(\"contenttype\");\n console.log(checked);\n}"]},"metadata":{},"sourceType":"module"}
\ No newline at end of file
diff --git a/node_modules/.cache/babel-loader/cf142c2e80dfbcdf8838a04352e45e46.json b/node_modules/.cache/babel-loader/cf142c2e80dfbcdf8838a04352e45e46.json
new file mode 100644
index 00000000..c209a48c
--- /dev/null
+++ b/node_modules/.cache/babel-loader/cf142c2e80dfbcdf8838a04352e45e46.json
@@ -0,0 +1 @@
+{"ast":null,"code":"var _jsxFileName = \"/home/seanedmunds/dev/home-page/src/index.js\",\n _s = $RefreshSig$();\n\nimport React from 'react';\nimport { useState, useEffect } from 'react';\nimport ReactDOM from 'react-dom'; //import { unstable_createPortal } from 'react-dom';\n\nimport './index.css';\nimport { jsxDEV as _jsxDEV } from \"react/jsx-dev-runtime\";\n\nconst setValueFromLocalStorage = property => {\n let value = localStorage.getItem(property);\n setValue(property, value);\n};\n\nconst setValue = (property, value) => {\n if (value) {\n document.documentElement.style.setProperty(`--${property}`, value);\n const input = document.querySelector(`#${property}`);\n\n if (input) {\n value = value.replace('px', '');\n input.value = value;\n }\n }\n};\n\nfunction Homepage() {\n setTheme();\n var boxChecked = localStorage.getItem(\"contenttype\");\n return /*#__PURE__*/_jsxDEV(\"main\", {\n id: \"container\",\n className: \"fade\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Search, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 29,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 28,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Header, {\n date: date(),\n greet: greet()\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 32,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 31,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Applications, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 38,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 37,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Bookmarks, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 41,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 40,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(ModalMenu, {\n checked: boxChecked\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 44,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 43,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(ModalInit, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 49,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 48,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 27,\n columnNumber: 5\n }, this);\n}\n\n_c = Homepage;\n\nfunction Search() {\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"search\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"abackground\",\n children: [/*#__PURE__*/_jsxDEV(\"input\", {\n name: \"keywords\",\n type: \"text\",\n className: \"keyword\",\n id: \"keywords\",\n size: \"50\",\n spellCheck: \"true\",\n placeholder: \"\"\n /*onFocus={this.placeholder = \"\"} onBlur={this.placeholder = ''}*/\n ,\n autoComplete: \"off\",\n autoFocus: true,\n onKeyUp: handleKeyPress\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 59,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n id: \"searchType\",\n className: \"Input-label\",\n children: \"Google search\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 60,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 58,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 57,\n columnNumber: 5\n }, this);\n}\n\n_c2 = Search;\n\nfunction Header(props) {\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"header\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n id: \"greeting_block\",\n children: /*#__PURE__*/_jsxDEV(\"h1\", {\n id: \"header_greet\",\n children: props.greet\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 70,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 69,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"date_block\",\n children: [/*#__PURE__*/_jsxDEV(\"h2\", {\n id: \"header_date\",\n children: props.date\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 73,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(Clock, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 74,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 72,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 68,\n columnNumber: 5\n }, this);\n}\n\n_c3 = Header;\n\nfunction Applications() {\n let appList = getApps();\n var items = [];\n\n for (var i = 0; i < appList.apps.length; i++) {\n var safe = appList.apps[i].NSFW;\n var NSFWEnabled = localStorage.getItem(\"contenttype\");\n\n if (safe === \"SAFE\") {\n items.push( /*#__PURE__*/_jsxDEV(App, {\n name: appList.apps[i].name,\n url: appList.apps[i].url,\n icon: appList.apps[i].icon,\n NSFW: appList.apps[i].NSFW\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 88,\n columnNumber: 9\n }, this));\n } else if (safe === \"NSFW\" && NSFWEnabled) {\n items.push( /*#__PURE__*/_jsxDEV(App, {\n name: appList.apps[i].name,\n url: appList.apps[i].url,\n icon: appList.apps[i].icon,\n NSFW: appList.apps[i].NSFW\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 98,\n columnNumber: 9\n }, this));\n } else {}\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"apps\",\n children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n children: \"Applications\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 113,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"apps_loop\",\n children: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 114,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 112,\n columnNumber: 5\n }, this);\n}\n\n_c4 = Applications;\n\nfunction App(props) {\n let classNameType = props.NSFW + \"-content\";\n let hrefUrl = \"https://\" + props.url;\n let iconName = \"mdi-\" + props.icon;\n return /*#__PURE__*/_jsxDEV(\"div\", {\n className: classNameType,\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: hrefUrl,\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_item\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_icon\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify icon\",\n \"data-icon\": iconName\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 131,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 130,\n columnNumber: 13\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_text\",\n children: [/*#__PURE__*/_jsxDEV(\"span\", {\n id: \"app-name\",\n children: props.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 134,\n columnNumber: 15\n }, this), /*#__PURE__*/_jsxDEV(\"span\", {\n id: \"app-address\",\n children: props.url\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 135,\n columnNumber: 15\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 133,\n columnNumber: 13\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 129,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 128,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 127,\n columnNumber: 7\n }, this);\n}\n\n_c5 = App;\n\nfunction Bookmarks() {\n let bookmarkList = getLinks();\n var items = [];\n\n for (var i = 0; i < bookmarkList.bookmarks.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(LinkGroups, {\n category: bookmarkList.bookmarks[i].category,\n links: bookmarkList.bookmarks[i].links\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 148,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"links\",\n children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n children: \"Bookmarks\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 157,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"links_loop\",\n children: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 158,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 156,\n columnNumber: 5\n }, this);\n}\n\n_c6 = Bookmarks;\n\nfunction LinkGroups(props) {\n var items = [];\n\n for (var i = 0; i < props.links.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(LinkItem, {\n link: props.links[i]\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 169,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"links_item\",\n children: [/*#__PURE__*/_jsxDEV(\"h4\", {\n children: props.category\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 177,\n columnNumber: 7\n }, this), items]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 176,\n columnNumber: 5\n }, this);\n}\n\n_c7 = LinkGroups;\n\nfunction LinkItem(props) {\n return /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: props.link.url,\n className: \"theme_color-border theme_text-select\",\n children: props.link.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 186,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 185,\n columnNumber: 5\n }, this);\n}\n\n_c8 = LinkItem;\n\nfunction ModalMenu(props) {\n var providers = getProviders();\n var items = [];\n console.log(props);\n\n for (var i = 0; i < providers.providers.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(Provider, {\n provider: providers.providers[i]\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 197,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"modal\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n children: [/*#__PURE__*/_jsxDEV(\"header\", {\n id: \"modal-header\",\n children: [/*#__PURE__*/_jsxDEV(\"h1\", {\n children: \"Options\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 207,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n href: \"#\",\n title: \"Close\",\n className: \"modal-close\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-close\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 209,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 208,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 206,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"h2\", {\n children: \"Color themes\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 213,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"modal-theme\",\n children: [/*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"blackboard\",\n className: \"theme-button theme-blackboard\",\n onClick: updateTheme,\n children: \"Blackboard\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 216,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"gazette\",\n className: \"theme-button theme-gazette\",\n onClick: updateTheme,\n children: \"Gazette\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 217,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"espresso\",\n className: \"theme-button theme-espresso\",\n onClick: updateTheme,\n children: \"Espresso\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 218,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cab\",\n className: \"theme-button theme-cab\",\n onClick: updateTheme,\n children: \"Cab\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 219,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cloud\",\n className: \"theme-button theme-cloud\",\n onClick: updateTheme,\n children: \"Cloud\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 220,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"lime\",\n className: \"theme-button theme-lime\",\n onClick: updateTheme,\n children: \"Lime\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 221,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"passion\",\n className: \"theme-button theme-passion\",\n onClick: updateTheme,\n children: \"Passion\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 222,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"blues\",\n className: \"theme-button theme-blues\",\n onClick: updateTheme,\n children: \"Blues\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 223,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"chalk\",\n className: \"theme-button theme-chalk\",\n onClick: updateTheme,\n children: \"Chalk\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 224,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"tron\",\n className: \"theme-button theme-tron\",\n onClick: updateTheme,\n children: \"Tron\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 225,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"paper\",\n className: \"theme-button theme-paper\",\n onClick: updateTheme,\n children: \"Paper\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 226,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cyberpunk\",\n className: \"theme-button theme-cyberpunk\",\n onClick: updateTheme,\n children: \"Cyberpunk\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 227,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"quadra\",\n className: \"theme-button theme-panam\",\n onClick: updateTheme,\n children: \"Quadra\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 228,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"panam\",\n className: \"theme-button theme-panam\",\n onClick: updateTheme,\n children: \"Panam\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 229,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"touch\",\n className: \"theme-button theme-touch\",\n onClick: updateTheme,\n children: \"Touch\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 230,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"peek\",\n className: \"theme-button theme-peek\",\n onClick: updateTheme,\n children: \"Peek\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 231,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 215,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"h2\", {\n children: \"Search options\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 235,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"providers\",\n children: /*#__PURE__*/_jsxDEV(\"table\", {\n children: /*#__PURE__*/_jsxDEV(\"tbody\", {\n children: [/*#__PURE__*/_jsxDEV(\"tr\", {\n children: [/*#__PURE__*/_jsxDEV(\"th\", {\n children: \"Website\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 240,\n columnNumber: 19\n }, this), /*#__PURE__*/_jsxDEV(\"th\", {\n children: \"Prefix\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 241,\n columnNumber: 19\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 239,\n columnNumber: 17\n }, this), items]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 238,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 237,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 236,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"header\", {\n id: \"modal-footer\",\n children: [/*#__PURE__*/_jsxDEV(\"a\", {\n href: \"https://github.com/jeroenpardon/\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-github-box\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 249,\n columnNumber: 54\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 249,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n href: \"https://materialdesignicons.com/\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-material-design\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 250,\n columnNumber: 54\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 250,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"sneaky\",\n children: [/*#__PURE__*/_jsxDEV(\"input\", {\n type: \"checkbox\",\n id: \"contenttype\",\n checked: props.checked,\n onChange: udpateDisplayedItems\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 251,\n columnNumber: 35\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n for: \"contenttype\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-domino-mask\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 252,\n columnNumber: 36\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 252,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 251,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 248,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 205,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 204,\n columnNumber: 5\n }, this);\n}\n\n_c9 = ModalMenu;\n\nfunction Provider(props) {\n return /*#__PURE__*/_jsxDEV(\"tr\", {\n children: [/*#__PURE__*/_jsxDEV(\"td\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: props.provider.url,\n children: props.provider.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 262,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 262,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"td\", {\n children: props.provider.prefix\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 263,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 261,\n columnNumber: 5\n }, this);\n}\n\n_c10 = Provider;\n\nfunction ModalInit() {\n setDisplayedItems();\n return /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"modal_init\",\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n className: \"btn\",\n href: \"#modal\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify icon\",\n \"data-icon\": \"mdi-xbox-controller-menu\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 273,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 272,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 271,\n columnNumber: 5\n }, this);\n}\n\n_c11 = ModalInit;\nReactDOM.render( /*#__PURE__*/_jsxDEV(Homepage, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 280,\n columnNumber: 3\n}, this), document.getElementById('root')); //Functions below this line are for calculating data for\n//other functions\n\nfunction date() {\n let currentDate = new Date();\n let dateOptions = {\n weekday: \"long\",\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\"\n };\n let date = currentDate.toLocaleDateString(\"en-GB\", dateOptions);\n return date;\n}\n\nfunction fixDigits(k) {\n if (k < 10) {\n return \"0\" + k;\n } else {\n return k;\n }\n}\n\nfunction greet() {\n let currentTime = new Date();\n let greet = Math.floor(currentTime.getHours() / 6);\n let easterEggChance = Math.floor(Math.random() * 100);\n\n let greetings = require('./messages.json');\n\n let timeBased = [];\n let easterEggs = [];\n\n for (var i = 0; i < greetings.messages.length; i++) {\n if (greetings.messages[i].easteregg === \"FALSE\") {\n timeBased = timeBased.concat(greetings.messages[i]);\n } else {\n easterEggs = easterEggs.concat(greetings.messages[i]);\n }\n }\n\n if (easterEggChance > 10) {\n return timeBased[greet].message;\n } else {\n let easterEggText = Math.floor(Math.random() * easterEggs.length);\n return easterEggs[easterEggText].message;\n }\n}\n\nfunction Clock() {\n _s();\n\n const [date, setDate] = useState(new Date());\n\n function refreshClock() {\n setDate(new Date());\n }\n\n useEffect(() => {\n const timerId = setInterval(refreshClock, 1000);\n return function cleanup() {\n clearInterval(timerId);\n };\n }, []);\n var hour = date.getHours();\n var minutes = date.getMinutes(); //var seconds = date.getSeconds();\n\n var midday = \"AM\";\n midday = hour >= 12 ? \"PM\" : \"AM\";\n hour = hour === 0 ? 12 : hour > 12 ? hour - 12 : hour;\n minutes = fixDigits(minutes); //seconds = fixDigits(seconds);\n\n let time = hour + \":\" + minutes + \" \" + midday;\n return /*#__PURE__*/_jsxDEV(\"h2\", {\n id: \"clock\",\n children: time\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 351,\n columnNumber: 5\n }, this);\n}\n\n_s(Clock, \"Gqi45WOZhU2c0BLYX0HoJeiR0fk=\");\n\n_c12 = Clock;\n\nfunction getApps() {\n let applications = require('./apps.json');\n\n return applications;\n}\n\nfunction getLinks() {\n let links = require('./links.json');\n\n return links;\n}\n\nfunction getProviders() {\n let providers = require('./providers.json');\n\n return providers;\n}\n\nfunction getThemes() {\n let themes = require('./themes.json');\n\n return themes;\n}\n\nfunction updateTheme(e) {\n var themes = getThemes();\n var themeName = e.target.innerHTML.toLowerCase();\n var index = themes.themes.findIndex(function (item, i) {\n return item.name === themeName;\n });\n localStorage.setItem(\"image-background\", themes.themes[index].imagebackground);\n localStorage.setItem(\"color-background\", themes.themes[index].colorbackground);\n localStorage.setItem(\"color-search-background\", themes.themes[index].colorserachbackground);\n localStorage.setItem(\"color-text-pri\", themes.themes[index].colortextpri);\n localStorage.setItem(\"color-text-acc\", themes.themes[index].colortextacc);\n localStorage.setItem(\"color-border\", themes.themes[index].colorborder); //document.documentElement.style.setProperty(prop, `var(--${themeName}${prop.substring(10)})`);\n\n setTheme();\n}\n\nfunction setTheme() {\n setValueFromLocalStorage('image-background');\n setValueFromLocalStorage('color-background');\n setValueFromLocalStorage('color-search-background');\n setValueFromLocalStorage('color-text-pri');\n setValueFromLocalStorage('color-text-acc');\n setValueFromLocalStorage('color-border');\n setValueFromLocalStorage('content-display');\n}\n\nfunction handleKeyPress(e) {\n var sindex = 0;\n var cycle = false;\n var key = e.keyCode || e.which;\n var text = e.target.value.replaceAll(\"+\", \"%2B\");\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n\n if (key == 13) {\n // Search functions\n search(text);\n }\n\n if (key == 9) {\n // Tab Completion Functions\n e.preventDefault();\n e.stopPropagation();\n\n if (text[0] === ';') {\n switch (option) {\n case 't':\n var streamers = ['admiralbahroo', 'moonmoon_ow', 'witwix'];\n\n if (!subtext || cycle) {\n cycle = true;\n if (sindex > streamers.length - 1) sindex = 0;\n document.getElementById(\"keywords\").value = ';t ' + streamers[sindex++];\n return;\n }\n\n for (var streamer of streamers) {\n if (subtext === streamer.substr(0, subtext.length)) {\n document.getElementById(\"keywords\").value = ';t ' + streamer;\n return;\n }\n }\n\n break;\n }\n }\n }\n\n if (key == 32) {\n //Space to go to search\n updateLabel(text);\n }\n\n sindex = 0;\n cycle = false;\n updateLabel(text);\n}\n\nfunction updateLabel(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n\n if (text[0] === '/') {\n // if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n document.getElementById(\"searchType\").innerHTML = \"Allmusic search\";\n break;\n\n case \"d\":\n document.getElementById(\"searchType\").innerHTML = \"Duck Duck Go search\";\n break;\n\n case \"di\":\n document.getElementById(\"searchType\").innerHTML = \"Discogs search\";\n break;\n\n case \"i\":\n document.getElementById(\"searchType\").innerHTML = \"IMDB search\";\n break;\n\n case \"m\":\n document.getElementById(\"searchType\").innerHTML = \"TheMovieDB search\";\n break;\n\n case \"r\":\n document.getElementById(\"searchType\").innerHTML = \"Reddit search\";\n break;\n\n case \"q\":\n document.getElementById(\"searchType\").innerHTML = \"Qwant search\";\n break;\n\n case \"so\":\n document.getElementById(\"searchType\").innerHTML = \"Soundcloud search\";\n break;\n\n case \"s\":\n document.getElementById(\"searchType\").innerHTML = \"Spotify search\";\n break;\n\n case \"tv\":\n document.getElementById(\"searchType\").innerHTML = \"TheTVDB search\";\n break;\n\n case \"t\":\n document.getElementById(\"searchType\").innerHTML = \"Trakt search\";\n break;\n\n case \"y\":\n document.getElementById(\"searchType\").innerHTML = \"YouTube search\";\n break;\n\n case \"w\":\n document.getElementById(\"searchType\").innerHTML = \"Wikipedia search\";\n break;\n\n case \"p\":\n document.getElementById(\"searchType\").innerHTML = \"Plex search\";\n break;\n\n case \"rt\":\n document.getElementById(\"searchType\").innerHTML = \"Rotten Tomatoes search\";\n break;\n\n default:\n document.getElementById(\"searchType\").innerHTML = \"Invalid search\";\n break;\n }\n } else {\n document.getElementById(\"searchType\").innerHTML = \"Google search\";\n }\n}\n\nfunction search(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n\n if (text[0] === '/') {\n if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n window.location = \"https://www.allmusic.com/search/all/\" + subtext;\n break;\n\n case \"d\":\n window.location = \"https://duckduckgo.com/?q=\" + subtext;\n break;\n\n case \"di\":\n window.location = \"https://www.discogs.com/search/?q=\" + subtext;\n break;\n\n case \"i\":\n window.location = \"https://www.imdb.com/find?q=\" + subtext;\n break;\n\n case \"m\":\n window.location = \"https://www.themoviedb.org/search?query=\" + subtext;\n break;\n\n case \"r\":\n window.location = \"https://www.reddit.com/search?q=\" + subtext;\n break;\n\n case \"q\":\n window.location = \"https://www.qwant.com/?q=\" + subtext;\n break;\n\n case \"so\":\n window.location = \"https://soundcloud.com/search?q=\" + subtext;\n break;\n\n case \"s\":\n window.location = \"https://open.spotify.com/search/results/\" + subtext;\n break;\n\n case \"t\":\n window.location = \"https://trakt.tv/search?query=\" + subtext;\n break;\n\n case \"tv\":\n window.location = \"https://www.thetvdb.com/search?query=\" + subtext;\n break;\n\n case \"y\":\n window.location = \"https://www.youtube.com/results?search_query=\" + subtext;\n break;\n\n case \"w\":\n window.location = \"https://en.wikipedia.org/w/index.php?search=\" + subtext;\n break;\n\n case \"p\":\n window.location = \"https://app.plex.tv/desktop/#!/search?query=\" + subtext;\n break;\n\n case \"rt\":\n window.location = \"https://www.rottentomatoes.com/search?search=\" + subtext;\n break;\n }\n } else {\n var option = text.substr(1);\n\n switch (option) {\n case \"d\":\n window.location = \"https://www.duckduckgo.com\";\n break;\n\n case \"y\":\n window.location = \"https://www.youtube.com\";\n break;\n\n case \"r\":\n window.location = \"https://reddit.com\";\n break;\n\n case \"s\":\n window.location = \"https://open.spotify.com\";\n break;\n }\n }\n } else if (validURL(text)) {\n if (containsProtocol(text)) window.location = text;else window.location = \"https://\" + text;\n } else {\n window.location = \"https://www.google.com/search?q=\" + text;\n }\n}\n\nfunction validURL(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/)?' + // protocol\n '((([a-z\\\\d]([a-z\\\\d-]*[a-z\\\\d])*)\\\\.)+[a-z]{2,}|' + // domain name\n '((\\\\d{1,3}\\\\.){3}\\\\d{1,3}))' + // OR ip (v4) address\n '(\\\\:\\\\d+)?(\\\\/[-a-z\\\\d%_.~+]*)*' + // port and path\n '(\\\\?[;&a-z\\\\d%_.~+=-]*)?' + // query string\n '(\\\\#[-a-z\\\\d_]*)?$', 'i'); // fragment locator\n\n return !!pattern.test(str);\n}\n\nfunction containsProtocol(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/){1}.*', 'i');\n return !!pattern.test(str);\n}\n\nString.prototype.replaceAll = function (search, replacement) {\n var target = this;\n return target.split(search).join(replacement);\n};\n\nfunction udpateDisplayedItems(e) {\n console.log(e);\n localStorage.setItem('contenttype', e.target.checked);\n\n if (e.target.checked) {\n localStorage.setItem('content-display', 'none');\n } else {\n localStorage.setItem('content-display', 'block');\n }\n\n setDisplayedItems();\n}\n\nfunction setDisplayedItems() {\n setValueFromLocalStorage('contenttype');\n setValueFromLocalStorage('content-display');\n}\n\nvar _c, _c2, _c3, _c4, _c5, _c6, _c7, _c8, _c9, _c10, _c11, _c12;\n\n$RefreshReg$(_c, \"Homepage\");\n$RefreshReg$(_c2, \"Search\");\n$RefreshReg$(_c3, \"Header\");\n$RefreshReg$(_c4, \"Applications\");\n$RefreshReg$(_c5, \"App\");\n$RefreshReg$(_c6, \"Bookmarks\");\n$RefreshReg$(_c7, \"LinkGroups\");\n$RefreshReg$(_c8, \"LinkItem\");\n$RefreshReg$(_c9, \"ModalMenu\");\n$RefreshReg$(_c10, \"Provider\");\n$RefreshReg$(_c11, \"ModalInit\");\n$RefreshReg$(_c12, \"Clock\");","map":{"version":3,"sources":["/home/seanedmunds/dev/home-page/src/index.js"],"names":["React","useState","useEffect","ReactDOM","setValueFromLocalStorage","property","value","localStorage","getItem","setValue","document","documentElement","style","setProperty","input","querySelector","replace","Homepage","setTheme","boxChecked","date","greet","Search","handleKeyPress","Header","props","Applications","appList","getApps","items","i","apps","length","safe","NSFW","NSFWEnabled","push","name","url","icon","App","classNameType","hrefUrl","iconName","Bookmarks","bookmarkList","getLinks","bookmarks","category","links","LinkGroups","LinkItem","link","ModalMenu","providers","getProviders","console","log","updateTheme","checked","udpateDisplayedItems","Provider","provider","prefix","ModalInit","setDisplayedItems","render","getElementById","currentDate","Date","dateOptions","weekday","year","month","day","toLocaleDateString","fixDigits","k","currentTime","Math","floor","getHours","easterEggChance","random","greetings","require","timeBased","easterEggs","messages","easteregg","concat","message","easterEggText","Clock","setDate","refreshClock","timerId","setInterval","cleanup","clearInterval","hour","minutes","getMinutes","midday","time","applications","getThemes","themes","e","themeName","target","innerHTML","toLowerCase","index","findIndex","item","setItem","imagebackground","colorbackground","colorserachbackground","colortextpri","colortextacc","colorborder","sindex","cycle","key","keyCode","which","text","replaceAll","option","substr","indexOf","subtext","search","preventDefault","stopPropagation","streamers","streamer","updateLabel","window","location","validURL","containsProtocol","str","pattern","RegExp","test","String","prototype","replacement","split","join"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { useState, useEffect } from 'react';\nimport ReactDOM from 'react-dom';\n//import { unstable_createPortal } from 'react-dom';\nimport './index.css';\n\nconst setValueFromLocalStorage = property => {\n let value = localStorage.getItem(property);\n setValue(property, value);\n};\nconst setValue = (property, value) => {\n if (value) {\n document.documentElement.style.setProperty(`--${property}`, value);\n\n const input = document.querySelector(`#${property}`);\n if (input) {\n value = value.replace('px', '');\n input.value = value;\n }\n }\n};\n\nfunction Homepage() {\n setTheme();\n var boxChecked = localStorage.getItem(\"contenttype\");\n return (\n \n \n \n
\n \n \n
\n \n \n \n
\n \n \n
\n \n \n
\n \n );\n}\n\nfunction Search() {\n return (\n \n )\n}\n\nfunction Header(props) {\n return (\n \n );\n}\n\nfunction Applications() {\n let appList = getApps();\n var items = [];\n for (var i = 0; i < appList.apps.length; i++) {\n var safe = appList.apps[i].NSFW;\n var NSFWEnabled = localStorage.getItem(\"contenttype\");\n if (safe === \"SAFE\") {\n items.push(\n \n );\n } else if (safe === \"NSFW\" && NSFWEnabled) {\n items.push(\n \n );\n } else {\n \n }\n \n }\n return (\n \n Applications
\n \n {items}\n
\n \n );\n}\n\nfunction App(props) {\n \n let classNameType = props.NSFW + \"-content\";\n let hrefUrl = \"https://\" + props.url;\n let iconName = \"mdi-\" + props.icon;\n return (\n \n );\n}\n\nfunction Bookmarks() {\n let bookmarkList = getLinks();\n var items = [];\n for (var i = 0; i < bookmarkList.bookmarks.length; i++) {\n items.push(\n \n );\n }\n return (\n \n Bookmarks
\n \n {items}\n
\n \n );\n}\n\nfunction LinkGroups(props) {\n var items = [];\n for (var i = 0; i < props.links.length; i++) {\n items.push(\n \n );\n }\n return (\n \n
{props.category}
\n {items}\n \n );\n}\n\nfunction LinkItem(props) {\n return (\n \n );\n}\n\nfunction ModalMenu(props) {\n var providers = getProviders();\n var items = [];\n console.log(props);\n for (var i = 0; i < providers.providers.length; i++) {\n items.push(\n \n );\n }\n return (\n \n \n \n\n
Color themes
\n\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n\n\n
Search options
\n
\n \n \n \n | Website | \n Prefix | \n
\n {items}\n \n
\n \n\n \n
\n \n );\n}\n\nfunction Provider(props) {\n return (\n \n | {props.provider.name} | \n {props.provider.prefix} | \n
\n );\n}\n\nfunction ModalInit() {\n setDisplayedItems();\n return (\n \n );\n}\n\nReactDOM.render(\n ,\n document.getElementById('root')\n);\n\n//Functions below this line are for calculating data for\n//other functions\n\nfunction date() {\n let currentDate = new Date();\n let dateOptions = {\n weekday: \"long\",\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\"\n };\n let date = currentDate.toLocaleDateString(\"en-GB\", dateOptions);\n return date;\n}\nfunction fixDigits(k) {\n if (k < 10) {\n return \"0\" + k;\n }\n else {\n return k;\n }\n}\nfunction greet() {\n let currentTime = new Date();\n let greet = Math.floor(currentTime.getHours() / 6);\n let easterEggChance = Math.floor(Math.random() * 100);\n let greetings = require('./messages.json');\n let timeBased = [];\n let easterEggs = [];\n for (var i = 0; i < greetings.messages.length; i++) {\n if (greetings.messages[i].easteregg === \"FALSE\") {\n timeBased = timeBased.concat(greetings.messages[i]);\n } else {\n easterEggs = easterEggs.concat(greetings.messages[i]);\n }\n }\n if (easterEggChance > 10) {\n return timeBased[greet].message;\n } else {\n let easterEggText = Math.floor(Math.random() * easterEggs.length);\n return easterEggs[easterEggText].message;\n }\n}\nfunction Clock() {\n const [date, setDate] = useState(new Date());\n\n function refreshClock() {\n setDate(new Date());\n }\n useEffect(() => {\n const timerId = setInterval(refreshClock, 1000);\n return function cleanup() {\n clearInterval(timerId);\n };\n }, []);\n\n var hour = date.getHours();\n var minutes = date.getMinutes();\n //var seconds = date.getSeconds();\n var midday = \"AM\";\n midday = (hour >= 12) ? \"PM\" : \"AM\";\n hour = (hour === 0) ? 12 : ((hour > 12) ? (hour - 12) : hour);\n minutes = fixDigits(minutes);\n //seconds = fixDigits(seconds);\n let time = hour + \":\" + minutes + \" \" + midday;\n\n return (\n {time}
\n\n );\n}\nfunction getApps() {\n let applications = require('./apps.json');\n return applications;\n}\nfunction getLinks() {\n let links = require('./links.json');\n return links;\n}\nfunction getProviders() {\n let providers = require('./providers.json');\n return providers;\n}\nfunction getThemes() {\n let themes = require('./themes.json');\n return themes;\n}\nfunction updateTheme(e) {\n var themes = getThemes();\n var themeName = e.target.innerHTML.toLowerCase();\n var index = themes.themes.findIndex(function(item, i){\n return item.name === themeName\n });\n localStorage.setItem(\"image-background\", themes.themes[index].imagebackground);\n localStorage.setItem(\"color-background\", themes.themes[index].colorbackground);\n localStorage.setItem(\"color-search-background\", themes.themes[index].colorserachbackground);\n localStorage.setItem(\"color-text-pri\",themes.themes[index].colortextpri);\n localStorage.setItem(\"color-text-acc\", themes.themes[index].colortextacc);\n localStorage.setItem(\"color-border\", themes.themes[index].colorborder);\n \n //document.documentElement.style.setProperty(prop, `var(--${themeName}${prop.substring(10)})`);\n setTheme();\n}\nfunction setTheme() {\n setValueFromLocalStorage('image-background');\n setValueFromLocalStorage('color-background');\n setValueFromLocalStorage('color-search-background');\n setValueFromLocalStorage('color-text-pri');\n setValueFromLocalStorage('color-text-acc');\n setValueFromLocalStorage('color-border');\n setValueFromLocalStorage('content-display');\n}\nfunction handleKeyPress(e) {\n var sindex = 0;\n var cycle = false;\n var key = e.keyCode || e.which;\n var text = e.target.value.replaceAll(\"+\", \"%2B\");\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n if (key == 13) { // Search functions\n search(text);\n }\n if (key == 9) { // Tab Completion Functions\n e.preventDefault();\n e.stopPropagation();\n if (text[0] === ';') {\n switch (option) {\n case 't':\n var streamers = ['admiralbahroo', 'moonmoon_ow', 'witwix'];\n if (!subtext || cycle) {\n cycle = true;\n if (sindex > streamers.length - 1) sindex = 0;\n document.getElementById(\"keywords\").value = ';t ' + streamers[sindex++];\n return;\n }\n for (var streamer of streamers) {\n if (subtext === streamer.substr(0, subtext.length)) {\n document.getElementById(\"keywords\").value = ';t ' + streamer;\n return;\n }\n }\n break;\n }\n }\n }\n if(key == 32){ //Space to go to search\nupdateLabel(text);\n }\n sindex = 0;\n cycle = false;\n updateLabel(text);\n}\nfunction updateLabel(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n if (text[0] === '/') {\n// if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n document.getElementById(\"searchType\").innerHTML = \"Allmusic search\";\n break;\n case \"d\":\n document.getElementById(\"searchType\").innerHTML = \"Duck Duck Go search\";\n break;\n case \"di\":\n document.getElementById(\"searchType\").innerHTML = \"Discogs search\";\n break;\n case \"i\":\n document.getElementById(\"searchType\").innerHTML = \"IMDB search\";\n break;\n case \"m\":\n document.getElementById(\"searchType\").innerHTML = \"TheMovieDB search\";\n break;\n case \"r\":\n document.getElementById(\"searchType\").innerHTML = \"Reddit search\";\n break;\n case \"q\":\n document.getElementById(\"searchType\").innerHTML = \"Qwant search\";\n break;\n case \"so\":\n document.getElementById(\"searchType\").innerHTML = \"Soundcloud search\";\n break;\n case \"s\":\n document.getElementById(\"searchType\").innerHTML = \"Spotify search\";\n break;\n case \"tv\":\n document.getElementById(\"searchType\").innerHTML = \"TheTVDB search\";\n break;\n case \"t\":\n document.getElementById(\"searchType\").innerHTML = \"Trakt search\";\n break;\n case \"y\":\n document.getElementById(\"searchType\").innerHTML = \"YouTube search\";\n break;\n case \"w\":\n document.getElementById(\"searchType\").innerHTML = \"Wikipedia search\";\n break;\n case \"p\":\n document.getElementById(\"searchType\").innerHTML = \"Plex search\";\n break;\n case \"rt\":\n document.getElementById(\"searchType\").innerHTML = \"Rotten Tomatoes search\";\n break;\n default:\n document.getElementById(\"searchType\").innerHTML = \"Invalid search\";\n break;\n }\n}else {\n document.getElementById(\"searchType\").innerHTML = \"Google search\";\n }\n}\nfunction search(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n if (text[0] === '/') {\n if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n window.location = \"https://www.allmusic.com/search/all/\" + subtext;\n break;\n case \"d\":\n window.location = \"https://duckduckgo.com/?q=\" + subtext;\n break;\n case \"di\":\n window.location = \"https://www.discogs.com/search/?q=\" + subtext;\n break;\n case \"i\":\n window.location = \"https://www.imdb.com/find?q=\" + subtext;\n break;\n case \"m\":\n window.location = \"https://www.themoviedb.org/search?query=\" + subtext;\n break;\n case \"r\":\n window.location = \"https://www.reddit.com/search?q=\" + subtext;\n break;\n case \"q\":\n window.location = \"https://www.qwant.com/?q=\" + subtext;\n break;\n case \"so\":\n window.location = \"https://soundcloud.com/search?q=\" + subtext;\n break;\n case \"s\":\n window.location = \"https://open.spotify.com/search/results/\" + subtext;\n break;\n case \"t\":\n window.location = \"https://trakt.tv/search?query=\" + subtext;\n break;\n case \"tv\":\n window.location = \"https://www.thetvdb.com/search?query=\" + subtext;\n break;\n case \"y\":\n window.location = \"https://www.youtube.com/results?search_query=\" + subtext;\n break;\n case \"w\":\n window.location = \"https://en.wikipedia.org/w/index.php?search=\" + subtext;\n break;\n case \"p\":\n window.location = \"https://app.plex.tv/desktop/#!/search?query=\" + subtext;\n break;\n case \"rt\":\n window.location = \"https://www.rottentomatoes.com/search?search=\" + subtext;\n break;\n }\n } else {\n var option = text.substr(1);\n switch (option) {\n case \"d\":\n window.location = \"https://www.duckduckgo.com\";\n break;\n case \"y\":\n window.location = \"https://www.youtube.com\";\n break;\n case \"r\":\n window.location = \"https://reddit.com\";\n break;\n case \"s\":\n window.location = \"https://open.spotify.com\";\n break;\n }\n }\n } else if (validURL(text)) {\n if (containsProtocol(text))\n window.location = text;\n else\n window.location = \"https://\" + text;\n } else {\n window.location = \"https://www.google.com/search?q=\" + text;\n }\n}\nfunction validURL(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/)?' + // protocol\n '((([a-z\\\\d]([a-z\\\\d-]*[a-z\\\\d])*)\\\\.)+[a-z]{2,}|' + // domain name\n '((\\\\d{1,3}\\\\.){3}\\\\d{1,3}))' + // OR ip (v4) address\n '(\\\\:\\\\d+)?(\\\\/[-a-z\\\\d%_.~+]*)*' + // port and path\n '(\\\\?[;&a-z\\\\d%_.~+=-]*)?' + // query string\n '(\\\\#[-a-z\\\\d_]*)?$', 'i'); // fragment locator\n return !!pattern.test(str);\n}\nfunction containsProtocol(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/){1}.*', 'i');\n return !!pattern.test(str);\n}\nString.prototype.replaceAll = function(search, replacement) {\n var target = this;\n return target.split(search).join(replacement);\n};\nfunction udpateDisplayedItems(e) {\n console.log(e);\n localStorage.setItem('contenttype', e.target.checked);\n if (e.target.checked) {\n localStorage.setItem('content-display', 'none');\n } else {\n localStorage.setItem('content-display', 'block');\n }\n setDisplayedItems();\n}\nfunction setDisplayedItems() {\n setValueFromLocalStorage('contenttype');\n setValueFromLocalStorage('content-display');\n}"]},"metadata":{},"sourceType":"module"}
\ No newline at end of file
diff --git a/node_modules/.cache/babel-loader/d055adcd51a636d814f4a4af00f0bd5d.json b/node_modules/.cache/babel-loader/d055adcd51a636d814f4a4af00f0bd5d.json
new file mode 100644
index 00000000..751ccd67
--- /dev/null
+++ b/node_modules/.cache/babel-loader/d055adcd51a636d814f4a4af00f0bd5d.json
@@ -0,0 +1 @@
+{"ast":null,"code":"var _jsxFileName = \"/home/seanedmunds/dev/home-page/src/index.js\",\n _s = $RefreshSig$();\n\nimport React from 'react';\nimport { useState, useEffect } from 'react';\nimport ReactDOM from 'react-dom'; //import { unstable_createPortal } from 'react-dom';\n\nimport './index.css';\nimport { jsxDEV as _jsxDEV } from \"react/jsx-dev-runtime\";\n\nfunction Homepage() {\n return /*#__PURE__*/_jsxDEV(\"main\", {\n id: \"container\",\n className: \"fade\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Search, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 11,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 10,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Header, {\n date: date(),\n greet: greet()\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 14,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 13,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Applications, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 20,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 19,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Bookmarks, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 23,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 22,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(ModalMenu, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 26,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 25,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(ModalInit, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 29,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 28,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 9,\n columnNumber: 5\n }, this);\n}\n\n_c = Homepage;\n\nfunction Search() {\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"search\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"abackground\",\n children: [/*#__PURE__*/_jsxDEV(\"input\", {\n name: \"keywords\",\n value: \"test\",\n type: \"text\",\n className: \"keyword\",\n id: \"keywords\",\n size: \"50\",\n spellCheck: \"true\",\n placeholder: \"\"\n /*onFocus={this.placeholder = \"\"} onBlur={this.placeholder = ''}*/\n ,\n autoComplete: \"off\",\n autoFocus: \"true\",\n onKeyUp: handleKeyPress(Event)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 39,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n id: \"searchType\",\n className: \"Input-label\",\n children: \"Google search\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 40,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 38,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 37,\n columnNumber: 5\n }, this);\n}\n\n_c2 = Search;\n\nfunction Header(props) {\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"header\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n id: \"greeting_block\",\n children: /*#__PURE__*/_jsxDEV(\"h1\", {\n id: \"header_greet\",\n children: props.greet\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 50,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 49,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"date_block\",\n children: [/*#__PURE__*/_jsxDEV(\"h2\", {\n id: \"header_date\",\n children: props.date\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 53,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(Clock, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 54,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 52,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 48,\n columnNumber: 5\n }, this);\n}\n\n_c3 = Header;\n\nfunction Applications() {\n let appList = getApps();\n var items = [];\n\n for (var i = 0; i < appList.apps.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(App, {\n name: appList.apps[i].name,\n url: appList.apps[i].url,\n icon: appList.apps[i].icon,\n NSFW: appList.apps[i].NSFW\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 65,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"apps\",\n children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n children: \"Applications\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 76,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"apps_loop\",\n children: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 77,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 75,\n columnNumber: 5\n }, this);\n}\n\n_c4 = Applications;\n\nfunction App(props) {\n let classNameType = props.NSFW + \"-content\";\n let hrefUrl = \"https://\" + props.url;\n let iconName = \"mdi-\" + props.icon;\n return /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: hrefUrl,\n className: classNameType,\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_item\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_icon\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify icon\",\n \"data-icon\": iconName\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 93,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 92,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_text\",\n children: [/*#__PURE__*/_jsxDEV(\"span\", {\n id: \"app-name\",\n children: props.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 96,\n columnNumber: 13\n }, this), /*#__PURE__*/_jsxDEV(\"span\", {\n id: \"app-address\",\n children: props.url\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 97,\n columnNumber: 13\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 95,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 91,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 90,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 89,\n columnNumber: 5\n }, this);\n}\n\n_c5 = App;\n\nfunction Bookmarks() {\n let bookmarkList = getLinks();\n var items = [];\n\n for (var i = 0; i < bookmarkList.bookmarks.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(LinkGroups, {\n category: bookmarkList.bookmarks[i].category,\n links: bookmarkList.bookmarks[i].links\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 110,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"links\",\n children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n children: \"Bookmarks\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 119,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"links_loop\",\n children: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 120,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 118,\n columnNumber: 5\n }, this);\n}\n\n_c6 = Bookmarks;\n\nfunction LinkGroups(props) {\n var items = [];\n\n for (var i = 0; i < props.links.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(LinkItem, {\n link: props.links[i]\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 131,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"links_item\",\n children: [/*#__PURE__*/_jsxDEV(\"h4\", {\n children: props.category\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 139,\n columnNumber: 7\n }, this), items]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 138,\n columnNumber: 5\n }, this);\n}\n\n_c7 = LinkGroups;\n\nfunction LinkItem(props) {\n return /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: props.link.url,\n className: \"theme_color-border theme_text-select\",\n children: props.link.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 148,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 147,\n columnNumber: 5\n }, this);\n}\n\n_c8 = LinkItem;\n\nfunction ModalMenu() {\n var providers = getProviders();\n var items = [];\n\n for (var i = 0; i < providers.providers.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(Provider, {\n provider: providers.providers[i]\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 158,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"modal\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n children: [/*#__PURE__*/_jsxDEV(\"header\", {\n id: \"modal-header\",\n children: [/*#__PURE__*/_jsxDEV(\"h1\", {\n children: \"Options\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 168,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n href: \"#\",\n title: \"Close\",\n className: \"modal-close\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-close\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 170,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 169,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 167,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"h2\", {\n children: \"Color themes\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 174,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"modal-theme\",\n children: [/*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"blackboard\",\n className: \"theme-button theme-blackboard\",\n children: \"Blackboard\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 177,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"gazette\",\n className: \"theme-button theme-gazette\",\n children: \"Gazette\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 178,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"espresso\",\n className: \"theme-button theme-espresso\",\n children: \"Espresso\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 179,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cab\",\n className: \"theme-button theme-cab\",\n children: \"Cab\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 180,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cloud\",\n className: \"theme-button theme-cloud\",\n children: \"Cloud\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 181,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"lime\",\n className: \"theme-button theme-lime\",\n children: \"Lime\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 182,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"passion\",\n className: \"theme-button theme-passion\",\n children: \"Passion\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 183,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"blues\",\n className: \"theme-button theme-blues\",\n children: \"Blues\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 184,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"chalk\",\n className: \"theme-button theme-chalk\",\n children: \"Chalk\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 185,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"tron\",\n className: \"theme-button theme-tron\",\n children: \"Tron\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 186,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"paper\",\n className: \"theme-button theme-paper\",\n children: \"Paper\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 187,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cyberpunk\",\n className: \"theme-button theme-cyberpunk\",\n children: \"Cyberpunk\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 188,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"quadra\",\n className: \"theme-button theme-panam\",\n children: \"Quadra\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 189,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"panam\",\n className: \"theme-button theme-panam\",\n children: \"Panam\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 190,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"touch\",\n className: \"theme-button theme-touch\",\n children: \"Touch\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 191,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"peek\",\n className: \"theme-button theme-peek\",\n children: \"Peek\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 192,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 176,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"h2\", {\n children: \"Search options\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 196,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"providers\",\n children: /*#__PURE__*/_jsxDEV(\"table\", {\n children: /*#__PURE__*/_jsxDEV(\"tbody\", {\n children: [/*#__PURE__*/_jsxDEV(\"tr\", {\n children: [/*#__PURE__*/_jsxDEV(\"th\", {\n children: \"Website\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 201,\n columnNumber: 19\n }, this), /*#__PURE__*/_jsxDEV(\"th\", {\n children: \"Prefix\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 202,\n columnNumber: 19\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 200,\n columnNumber: 17\n }, this), items]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 199,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 198,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 197,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"header\", {\n id: \"modal-footer\",\n children: [/*#__PURE__*/_jsxDEV(\"a\", {\n href: \"https://github.com/jeroenpardon/\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-github-box\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 210,\n columnNumber: 54\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 210,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n href: \"https://materialdesignicons.com/\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-material-design\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 211,\n columnNumber: 54\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 211,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"sneaky\",\n children: [/*#__PURE__*/_jsxDEV(\"input\", {\n type: \"checkbox\",\n id: \"contenttype\",\n onChange: \"nsfw(this)\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 212,\n columnNumber: 35\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n for: \"contenttype\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-domino-mask\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 213,\n columnNumber: 36\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 213,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 212,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 209,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 166,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 165,\n columnNumber: 5\n }, this);\n}\n\n_c9 = ModalMenu;\n\nfunction Provider(props) {\n return /*#__PURE__*/_jsxDEV(\"tr\", {\n children: [/*#__PURE__*/_jsxDEV(\"td\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: props.provider.url,\n children: props.provider.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 223,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 223,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"td\", {\n children: props.provider.prefix\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 224,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 222,\n columnNumber: 5\n }, this);\n}\n\n_c10 = Provider;\n\nfunction ModalInit() {\n return /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"modal_init\",\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n className: \"btn\",\n href: \"#modal\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify icon\",\n \"data-icon\": \"mdi-xbox-controller-menu\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 233,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 232,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 231,\n columnNumber: 5\n }, this);\n}\n\n_c11 = ModalInit;\nReactDOM.render( /*#__PURE__*/_jsxDEV(Homepage, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 240,\n columnNumber: 3\n}, this), document.getElementById('root')); //Functions below this line are for calculating data for\n//other functions\n\nfunction date() {\n let currentDate = new Date();\n let dateOptions = {\n weekday: \"long\",\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\"\n };\n let date = currentDate.toLocaleDateString(\"en-GB\", dateOptions);\n return date;\n}\n\nfunction fixDigits(k) {\n if (k < 10) {\n return \"0\" + k;\n } else {\n return k;\n }\n}\n\nfunction greet() {\n let currentTime = new Date();\n let greet = Math.floor(currentTime.getHours() / 6);\n let easterEggChance = Math.floor(Math.random() * 100);\n\n let greetings = require('./messages.json');\n\n let timeBased = [];\n let easterEggs = [];\n\n for (var i = 0; i < greetings.messages.length; i++) {\n if (greetings.messages[i].easteregg === \"FALSE\") {\n timeBased = timeBased.concat(greetings.messages[i]);\n } else {\n easterEggs = easterEggs.concat(greetings.messages[i]);\n }\n }\n\n if (easterEggChance > 10) {\n return timeBased[greet].message;\n } else {\n let easterEggText = Math.floor(Math.random() * easterEggs.length);\n return easterEggs[easterEggText].message;\n }\n}\n\nfunction Clock() {\n _s();\n\n const [date, setDate] = useState(new Date());\n\n function refreshClock() {\n setDate(new Date());\n }\n\n useEffect(() => {\n const timerId = setInterval(refreshClock, 1000);\n return function cleanup() {\n clearInterval(timerId);\n };\n }, []);\n var hour = date.getHours();\n var minutes = date.getMinutes(); //var seconds = date.getSeconds();\n\n var midday = \"AM\";\n midday = hour >= 12 ? \"PM\" : \"AM\";\n hour = hour === 0 ? 12 : hour > 12 ? hour - 12 : hour;\n minutes = fixDigits(minutes); //seconds = fixDigits(seconds);\n\n let time = hour + \":\" + minutes + \" \" + midday;\n return /*#__PURE__*/_jsxDEV(\"h2\", {\n id: \"clock\",\n children: time\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 311,\n columnNumber: 5\n }, this);\n}\n\n_s(Clock, \"Gqi45WOZhU2c0BLYX0HoJeiR0fk=\");\n\n_c12 = Clock;\n\nfunction getApps() {\n let applications = require('./apps.json');\n\n return applications;\n}\n\nfunction getLinks() {\n let links = require('./links.json');\n\n return links;\n}\n\nfunction getProviders() {\n let providers = require('./providers.json');\n\n return providers;\n}\n\nfunction handleKeyPress(e) {\n var sindex = 0;\n var cycle = false;\n var key = e.keyCode || e.which;\n console.log(key);\n var text = e.value.replaceAll(\"+\", \"%2B\");\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n\n if (key == 13) {\n // Search functions\n search(text);\n }\n\n if (key == 9) {\n // Tab Completion Functions\n e.preventDefault();\n e.stopPropagation();\n\n if (text[0] === ';') {\n switch (option) {\n case 't':\n var streamers = ['admiralbahroo', 'moonmoon_ow', 'witwix'];\n\n if (!subtext || cycle) {\n cycle = true;\n if (sindex > streamers.length - 1) sindex = 0;\n document.getElementById(\"keywords\").value = ';t ' + streamers[sindex++];\n return;\n }\n\n for (var streamer of streamers) {\n if (subtext === streamer.substr(0, subtext.length)) {\n document.getElementById(\"keywords\").value = ';t ' + streamer;\n return;\n }\n }\n\n break;\n }\n }\n }\n\n if (key == 32) {\n //Space to go to search\n updateLabel(text);\n }\n\n sindex = 0;\n cycle = false;\n updateLabel(text);\n}\n\nfunction updateLabel(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n\n if (text[0] === '/') {\n // if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n document.getElementById(\"searchType\").innerHTML = \"Allmusic search\";\n break;\n\n case \"d\":\n document.getElementById(\"searchType\").innerHTML = \"Duck Duck Go search\";\n break;\n\n case \"di\":\n document.getElementById(\"searchType\").innerHTML = \"Discogs search\";\n break;\n\n case \"i\":\n document.getElementById(\"searchType\").innerHTML = \"IMDB search\";\n break;\n\n case \"m\":\n document.getElementById(\"searchType\").innerHTML = \"TheMovieDB search\";\n break;\n\n case \"r\":\n document.getElementById(\"searchType\").innerHTML = \"Reddit search\";\n break;\n\n case \"q\":\n document.getElementById(\"searchType\").innerHTML = \"Qwant search\";\n break;\n\n case \"so\":\n document.getElementById(\"searchType\").innerHTML = \"Soundcloud search\";\n break;\n\n case \"s\":\n document.getElementById(\"searchType\").innerHTML = \"Spotify search\";\n break;\n\n case \"tv\":\n document.getElementById(\"searchType\").innerHTML = \"TheTVDB search\";\n break;\n\n case \"t\":\n document.getElementById(\"searchType\").innerHTML = \"Trakt search\";\n break;\n\n case \"y\":\n document.getElementById(\"searchType\").innerHTML = \"YouTube search\";\n break;\n\n case \"w\":\n document.getElementById(\"searchType\").innerHTML = \"Wikipedia search\";\n break;\n\n case \"p\":\n document.getElementById(\"searchType\").innerHTML = \"Plex search\";\n break;\n\n case \"rt\":\n document.getElementById(\"searchType\").innerHTML = \"Rotten Tomatoes search\";\n break;\n\n default:\n document.getElementById(\"searchType\").innerHTML = \"Invalid search\";\n break;\n }\n } else {\n document.getElementById(\"searchType\").innerHTML = \"Google search\";\n }\n}\n\nfunction search(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n\n if (text[0] === '/') {\n if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n window.location = \"https://www.allmusic.com/search/all/\" + subtext;\n break;\n\n case \"d\":\n window.location = \"https://duckduckgo.com/?q=\" + subtext;\n break;\n\n case \"di\":\n window.location = \"https://www.discogs.com/search/?q=\" + subtext;\n break;\n\n case \"i\":\n window.location = \"https://www.imdb.com/find?q=\" + subtext;\n break;\n\n case \"m\":\n window.location = \"https://www.themoviedb.org/search?query=\" + subtext;\n break;\n\n case \"r\":\n window.location = \"https://www.reddit.com/search?q=\" + subtext;\n break;\n\n case \"q\":\n window.location = \"https://www.qwant.com/?q=\" + subtext;\n break;\n\n case \"so\":\n window.location = \"https://soundcloud.com/search?q=\" + subtext;\n break;\n\n case \"s\":\n window.location = \"https://open.spotify.com/search/results/\" + subtext;\n break;\n\n case \"t\":\n window.location = \"https://trakt.tv/search?query=\" + subtext;\n break;\n\n case \"tv\":\n window.location = \"https://www.thetvdb.com/search?query=\" + subtext;\n break;\n\n case \"y\":\n window.location = \"https://www.youtube.com/results?search_query=\" + subtext;\n break;\n\n case \"w\":\n window.location = \"https://en.wikipedia.org/w/index.php?search=\" + subtext;\n break;\n\n case \"p\":\n window.location = \"https://app.plex.tv/desktop/#!/search?query=\" + subtext;\n break;\n\n case \"rt\":\n window.location = \"https://www.rottentomatoes.com/search?search=\" + subtext;\n break;\n }\n } else {\n var option = text.substr(1);\n\n switch (option) {\n case \"d\":\n window.location = \"https://www.duckduckgo.com\";\n break;\n\n case \"y\":\n window.location = \"https://www.youtube.com\";\n break;\n\n case \"r\":\n window.location = \"https://reddit.com\";\n break;\n\n case \"s\":\n window.location = \"https://open.spotify.com\";\n break;\n }\n }\n } else if (validURL(text)) {\n if (containsProtocol(text)) window.location = text;else window.location = \"https://\" + text;\n } else {\n window.location = \"https://www.google.com/search?q=\" + text;\n }\n} // Source: https://stackoverflow.com/questions/5717093/check-if-a-javascript-string-is-a-url\n\n\nfunction validURL(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/)?' + // protocol\n '((([a-z\\\\d]([a-z\\\\d-]*[a-z\\\\d])*)\\\\.)+[a-z]{2,}|' + // domain name\n '((\\\\d{1,3}\\\\.){3}\\\\d{1,3}))' + // OR ip (v4) address\n '(\\\\:\\\\d+)?(\\\\/[-a-z\\\\d%_.~+]*)*' + // port and path\n '(\\\\?[;&a-z\\\\d%_.~+=-]*)?' + // query string\n '(\\\\#[-a-z\\\\d_]*)?$', 'i'); // fragment locator\n\n return !!pattern.test(str);\n}\n\nfunction containsProtocol(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/){1}.*', 'i');\n return !!pattern.test(str);\n}\n\nString.prototype.replaceAll = function (search, replacement) {\n var target = this;\n return target.split(search).join(replacement);\n};\n\nvar _c, _c2, _c3, _c4, _c5, _c6, _c7, _c8, _c9, _c10, _c11, _c12;\n\n$RefreshReg$(_c, \"Homepage\");\n$RefreshReg$(_c2, \"Search\");\n$RefreshReg$(_c3, \"Header\");\n$RefreshReg$(_c4, \"Applications\");\n$RefreshReg$(_c5, \"App\");\n$RefreshReg$(_c6, \"Bookmarks\");\n$RefreshReg$(_c7, \"LinkGroups\");\n$RefreshReg$(_c8, \"LinkItem\");\n$RefreshReg$(_c9, \"ModalMenu\");\n$RefreshReg$(_c10, \"Provider\");\n$RefreshReg$(_c11, \"ModalInit\");\n$RefreshReg$(_c12, \"Clock\");","map":{"version":3,"sources":["/home/seanedmunds/dev/home-page/src/index.js"],"names":["React","useState","useEffect","ReactDOM","Homepage","date","greet","Search","handleKeyPress","Event","Header","props","Applications","appList","getApps","items","i","apps","length","push","name","url","icon","NSFW","App","classNameType","hrefUrl","iconName","Bookmarks","bookmarkList","getLinks","bookmarks","category","links","LinkGroups","LinkItem","link","ModalMenu","providers","getProviders","Provider","provider","prefix","ModalInit","render","document","getElementById","currentDate","Date","dateOptions","weekday","year","month","day","toLocaleDateString","fixDigits","k","currentTime","Math","floor","getHours","easterEggChance","random","greetings","require","timeBased","easterEggs","messages","easteregg","concat","message","easterEggText","Clock","setDate","refreshClock","timerId","setInterval","cleanup","clearInterval","hour","minutes","getMinutes","midday","time","applications","e","sindex","cycle","key","keyCode","which","console","log","text","value","replaceAll","option","substr","indexOf","subtext","search","preventDefault","stopPropagation","streamers","streamer","updateLabel","innerHTML","window","location","validURL","containsProtocol","str","pattern","RegExp","test","String","prototype","replacement","target","split","join"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { useState, useEffect } from 'react';\nimport ReactDOM from 'react-dom';\n//import { unstable_createPortal } from 'react-dom';\nimport './index.css';\n\nfunction Homepage() {\n return (\n \n \n \n
\n \n \n
\n \n \n \n
\n \n \n
\n \n \n
\n \n );\n}\n\nfunction Search() {\n return (\n \n )\n}\n\nfunction Header(props) {\n return (\n \n );\n}\n\nfunction Applications() {\n let appList = getApps();\n var items = [];\n for (var i = 0; i < appList.apps.length; i++) {\n items.push(\n \n );\n }\n return (\n \n Applications
\n \n {items}\n
\n \n );\n}\n\nfunction App(props) {\n let classNameType = props.NSFW + \"-content\";\n let hrefUrl = \"https://\" + props.url;\n let iconName = \"mdi-\" + props.icon;\n return (\n \n );\n}\n\nfunction Bookmarks() {\n let bookmarkList = getLinks();\n var items = [];\n for (var i = 0; i < bookmarkList.bookmarks.length; i++) {\n items.push(\n \n );\n }\n return (\n \n Bookmarks
\n \n {items}\n
\n \n );\n}\n\nfunction LinkGroups(props) {\n var items = [];\n for (var i = 0; i < props.links.length; i++) {\n items.push(\n \n );\n }\n return (\n \n
{props.category}
\n {items}\n \n );\n}\n\nfunction LinkItem(props) {\n return (\n \n );\n}\n\nfunction ModalMenu() {\n var providers = getProviders();\n var items = [];\n for (var i = 0; i < providers.providers.length; i++) {\n items.push(\n \n );\n }\n return (\n \n \n \n\n
Color themes
\n\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n\n\n
Search options
\n
\n \n \n \n | Website | \n Prefix | \n
\n {items}\n \n
\n \n\n \n
\n \n );\n}\n\nfunction Provider(props) {\n return (\n \n | {props.provider.name} | \n {props.provider.prefix} | \n
\n );\n}\n\nfunction ModalInit() {\n return (\n \n );\n}\n\nReactDOM.render(\n ,\n document.getElementById('root')\n);\n\n//Functions below this line are for calculating data for\n//other functions\n\nfunction date() {\n let currentDate = new Date();\n let dateOptions = {\n weekday: \"long\",\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\"\n };\n let date = currentDate.toLocaleDateString(\"en-GB\", dateOptions);\n return date;\n}\nfunction fixDigits(k) {\n if (k < 10) {\n return \"0\" + k;\n }\n else {\n return k;\n }\n}\nfunction greet() {\n let currentTime = new Date();\n let greet = Math.floor(currentTime.getHours() / 6);\n let easterEggChance = Math.floor(Math.random() * 100);\n let greetings = require('./messages.json');\n let timeBased = [];\n let easterEggs = [];\n for (var i = 0; i < greetings.messages.length; i++) {\n if (greetings.messages[i].easteregg === \"FALSE\") {\n timeBased = timeBased.concat(greetings.messages[i]);\n } else {\n easterEggs = easterEggs.concat(greetings.messages[i]);\n }\n }\n if (easterEggChance > 10) {\n return timeBased[greet].message;\n } else {\n let easterEggText = Math.floor(Math.random() * easterEggs.length);\n return easterEggs[easterEggText].message;\n }\n}\nfunction Clock() {\n const [date, setDate] = useState(new Date());\n\n function refreshClock() {\n setDate(new Date());\n }\n useEffect(() => {\n const timerId = setInterval(refreshClock, 1000);\n return function cleanup() {\n clearInterval(timerId);\n };\n }, []);\n\n var hour = date.getHours();\n var minutes = date.getMinutes();\n //var seconds = date.getSeconds();\n var midday = \"AM\";\n midday = (hour >= 12) ? \"PM\" : \"AM\";\n hour = (hour === 0) ? 12 : ((hour > 12) ? (hour - 12) : hour);\n minutes = fixDigits(minutes);\n //seconds = fixDigits(seconds);\n let time = hour + \":\" + minutes + \" \" + midday;\n\n return (\n {time}
\n\n );\n}\nfunction getApps() {\n let applications = require('./apps.json');\n return applications;\n}\nfunction getLinks() {\n let links = require('./links.json');\n return links;\n}\nfunction getProviders() {\n let providers = require('./providers.json');\n return providers;\n}\n\nfunction handleKeyPress(e) {\n var sindex = 0;\n var cycle = false;\n var key = e.keyCode || e.which;\n console.log(key);\n var text = e.value.replaceAll(\"+\", \"%2B\");\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n if (key == 13) { // Search functions\n search(text);\n }\n if (key == 9) { // Tab Completion Functions\n e.preventDefault();\n e.stopPropagation();\n if (text[0] === ';') {\n switch (option) {\n case 't':\n var streamers = ['admiralbahroo', 'moonmoon_ow', 'witwix'];\n if (!subtext || cycle) {\n cycle = true;\n if (sindex > streamers.length - 1) sindex = 0;\n document.getElementById(\"keywords\").value = ';t ' + streamers[sindex++];\n return;\n }\n for (var streamer of streamers) {\n if (subtext === streamer.substr(0, subtext.length)) {\n document.getElementById(\"keywords\").value = ';t ' + streamer;\n return;\n }\n }\n break;\n }\n }\n }\n if(key == 32){ //Space to go to search\nupdateLabel(text);\n }\n sindex = 0;\n cycle = false;\n updateLabel(text);\n}\n\nfunction updateLabel(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n if (text[0] === '/') {\n// if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n document.getElementById(\"searchType\").innerHTML = \"Allmusic search\";\n break;\n case \"d\":\n document.getElementById(\"searchType\").innerHTML = \"Duck Duck Go search\";\n break;\n case \"di\":\n document.getElementById(\"searchType\").innerHTML = \"Discogs search\";\n break;\n case \"i\":\n document.getElementById(\"searchType\").innerHTML = \"IMDB search\";\n break;\n case \"m\":\n document.getElementById(\"searchType\").innerHTML = \"TheMovieDB search\";\n break;\n case \"r\":\n document.getElementById(\"searchType\").innerHTML = \"Reddit search\";\n break;\n case \"q\":\n document.getElementById(\"searchType\").innerHTML = \"Qwant search\";\n break;\n case \"so\":\n document.getElementById(\"searchType\").innerHTML = \"Soundcloud search\";\n break;\n case \"s\":\n document.getElementById(\"searchType\").innerHTML = \"Spotify search\";\n break;\n case \"tv\":\n document.getElementById(\"searchType\").innerHTML = \"TheTVDB search\";\n break;\n case \"t\":\n document.getElementById(\"searchType\").innerHTML = \"Trakt search\";\n break;\n case \"y\":\n document.getElementById(\"searchType\").innerHTML = \"YouTube search\";\n break;\n case \"w\":\n document.getElementById(\"searchType\").innerHTML = \"Wikipedia search\";\n break;\n case \"p\":\n document.getElementById(\"searchType\").innerHTML = \"Plex search\";\n break;\n case \"rt\":\n document.getElementById(\"searchType\").innerHTML = \"Rotten Tomatoes search\";\n break;\n default:\n document.getElementById(\"searchType\").innerHTML = \"Invalid search\";\n break;\n }\n}else {\n document.getElementById(\"searchType\").innerHTML = \"Google search\";\n }\n}\n\nfunction search(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n if (text[0] === '/') {\n if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n window.location = \"https://www.allmusic.com/search/all/\" + subtext;\n break;\n case \"d\":\n window.location = \"https://duckduckgo.com/?q=\" + subtext;\n break;\n case \"di\":\n window.location = \"https://www.discogs.com/search/?q=\" + subtext;\n break;\n case \"i\":\n window.location = \"https://www.imdb.com/find?q=\" + subtext;\n break;\n case \"m\":\n window.location = \"https://www.themoviedb.org/search?query=\" + subtext;\n break;\n case \"r\":\n window.location = \"https://www.reddit.com/search?q=\" + subtext;\n break;\n case \"q\":\n window.location = \"https://www.qwant.com/?q=\" + subtext;\n break;\n case \"so\":\n window.location = \"https://soundcloud.com/search?q=\" + subtext;\n break;\n case \"s\":\n window.location = \"https://open.spotify.com/search/results/\" + subtext;\n break;\n case \"t\":\n window.location = \"https://trakt.tv/search?query=\" + subtext;\n break;\n case \"tv\":\n window.location = \"https://www.thetvdb.com/search?query=\" + subtext;\n break;\n case \"y\":\n window.location = \"https://www.youtube.com/results?search_query=\" + subtext;\n break;\n case \"w\":\n window.location = \"https://en.wikipedia.org/w/index.php?search=\" + subtext;\n break;\n case \"p\":\n window.location = \"https://app.plex.tv/desktop/#!/search?query=\" + subtext;\n break;\n case \"rt\":\n window.location = \"https://www.rottentomatoes.com/search?search=\" + subtext;\n break;\n }\n } else {\n var option = text.substr(1);\n switch (option) {\n case \"d\":\n window.location = \"https://www.duckduckgo.com\";\n break;\n case \"y\":\n window.location = \"https://www.youtube.com\";\n break;\n case \"r\":\n window.location = \"https://reddit.com\";\n break;\n case \"s\":\n window.location = \"https://open.spotify.com\";\n break;\n }\n }\n } else if (validURL(text)) {\n if (containsProtocol(text))\n window.location = text;\n else\n window.location = \"https://\" + text;\n } else {\n window.location = \"https://www.google.com/search?q=\" + text;\n }\n}\n\n// Source: https://stackoverflow.com/questions/5717093/check-if-a-javascript-string-is-a-url\nfunction validURL(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/)?' + // protocol\n '((([a-z\\\\d]([a-z\\\\d-]*[a-z\\\\d])*)\\\\.)+[a-z]{2,}|' + // domain name\n '((\\\\d{1,3}\\\\.){3}\\\\d{1,3}))' + // OR ip (v4) address\n '(\\\\:\\\\d+)?(\\\\/[-a-z\\\\d%_.~+]*)*' + // port and path\n '(\\\\?[;&a-z\\\\d%_.~+=-]*)?' + // query string\n '(\\\\#[-a-z\\\\d_]*)?$', 'i'); // fragment locator\n return !!pattern.test(str);\n}\n\nfunction containsProtocol(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/){1}.*', 'i');\n return !!pattern.test(str);\n}\n\nString.prototype.replaceAll = function(search, replacement) {\n var target = this;\n return target.split(search).join(replacement);\n};"]},"metadata":{},"sourceType":"module"}
\ No newline at end of file
diff --git a/node_modules/.cache/babel-loader/d16e082206b902fd59554137f7080b88.json b/node_modules/.cache/babel-loader/d16e082206b902fd59554137f7080b88.json
new file mode 100644
index 00000000..08b632c9
--- /dev/null
+++ b/node_modules/.cache/babel-loader/d16e082206b902fd59554137f7080b88.json
@@ -0,0 +1 @@
+{"ast":null,"code":"var _jsxFileName = \"/home/seanedmunds/dev/home-page/src/index.js\",\n _s = $RefreshSig$();\n\nimport React from 'react';\nimport { useState, useEffect } from 'react';\nimport ReactDOM from 'react-dom';\nimport './index.css';\nimport { jsxDEV as _jsxDEV } from \"react/jsx-dev-runtime\";\n\nconst setValueFromLocalStorage = property => {\n let value = localStorage.getItem(property);\n setValue(property, value);\n};\n\nconst setValue = (property, value) => {\n if (value) {\n document.documentElement.style.setProperty(`--${property}`, value);\n const input = document.querySelector(`#${property}`);\n\n if (input) {\n value = value.replace('px', '');\n input.value = value;\n }\n }\n};\n\nfunction Homepage() {\n setTheme();\n return /*#__PURE__*/_jsxDEV(\"main\", {\n id: \"container\",\n className: \"fade\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Search, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 28,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 27,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Header, {\n date: date(),\n greet: greet()\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 31,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 30,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Applications, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 37,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 36,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Bookmarks, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 40,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 39,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(ModalMenu, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 43,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 42,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(ModalInit, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 46,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 45,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 26,\n columnNumber: 5\n }, this);\n}\n\n_c = Homepage;\n\nfunction Search() {\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"search\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"abackground\",\n children: [/*#__PURE__*/_jsxDEV(\"input\", {\n name: \"keywords\",\n type: \"text\",\n className: \"keyword\",\n id: \"keywords\",\n size: \"50\",\n spellCheck: \"true\",\n placeholder: \"\"\n /*onFocus={this.placeholder = \"\"} onBlur={this.placeholder = ''}*/\n ,\n autoComplete: \"off\",\n autoFocus: true,\n onKeyUp: handleKeyPress\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 56,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n id: \"searchType\",\n className: \"Input-label\",\n children: \"Google search\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 57,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 55,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 54,\n columnNumber: 5\n }, this);\n}\n\n_c2 = Search;\n\nfunction Header(props) {\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"header\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n id: \"greeting_block\",\n children: /*#__PURE__*/_jsxDEV(\"h1\", {\n id: \"header_greet\",\n children: props.greet\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 67,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 66,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"date_block\",\n children: [/*#__PURE__*/_jsxDEV(\"h2\", {\n id: \"header_date\",\n children: props.date\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 70,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(Clock, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 71,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 69,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 65,\n columnNumber: 5\n }, this);\n}\n\n_c3 = Header;\n\nfunction Applications() {\n let appList = getApps();\n var items = [];\n\n for (var i = 0; i < appList.apps.length; i++) {\n var safe = appList.apps[i].NSFW;\n var NSFWEnabled = localStorage.getItem(\"contenttype\");\n\n if (safe === \"SAFE\") {\n items.push( /*#__PURE__*/_jsxDEV(App, {\n name: appList.apps[i].name,\n url: appList.apps[i].url,\n icon: appList.apps[i].icon,\n NSFW: appList.apps[i].NSFW\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 85,\n columnNumber: 9\n }, this));\n } else if (safe === \"NSFW\" && NSFWEnabled) {\n items.push( /*#__PURE__*/_jsxDEV(App, {\n name: appList.apps[i].name,\n url: appList.apps[i].url,\n icon: appList.apps[i].icon,\n NSFW: appList.apps[i].NSFW\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 95,\n columnNumber: 9\n }, this));\n } else {}\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"apps\",\n children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n children: \"Applications\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 110,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"apps_loop\",\n children: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 111,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 109,\n columnNumber: 5\n }, this);\n}\n\n_c4 = Applications;\n\nfunction App(props) {\n let classNameType = props.NSFW + \"-content\";\n let hrefUrl = \"https://\" + props.url;\n let iconName = \"mdi-\" + props.icon;\n return /*#__PURE__*/_jsxDEV(\"div\", {\n className: classNameType,\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: hrefUrl,\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_item\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_icon\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify icon\",\n \"data-icon\": iconName\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 128,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 127,\n columnNumber: 13\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_text\",\n children: [/*#__PURE__*/_jsxDEV(\"span\", {\n id: \"app-name\",\n children: props.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 131,\n columnNumber: 15\n }, this), /*#__PURE__*/_jsxDEV(\"span\", {\n id: \"app-address\",\n children: props.url\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 132,\n columnNumber: 15\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 130,\n columnNumber: 13\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 126,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 125,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 124,\n columnNumber: 7\n }, this);\n}\n\n_c5 = App;\n\nfunction Bookmarks() {\n let bookmarkList = getLinks();\n var items = [];\n\n for (var i = 0; i < bookmarkList.bookmarks.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(LinkGroups, {\n category: bookmarkList.bookmarks[i].category,\n links: bookmarkList.bookmarks[i].links\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 145,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"links\",\n children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n children: \"Bookmarks\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 154,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"links_loop\",\n children: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 155,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 153,\n columnNumber: 5\n }, this);\n}\n\n_c6 = Bookmarks;\n\nfunction LinkGroups(props) {\n var items = [];\n\n for (var i = 0; i < props.links.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(LinkItem, {\n link: props.links[i]\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 166,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"links_item\",\n children: [/*#__PURE__*/_jsxDEV(\"h4\", {\n children: props.category\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 174,\n columnNumber: 7\n }, this), items]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 173,\n columnNumber: 5\n }, this);\n}\n\n_c7 = LinkGroups;\n\nfunction LinkItem(props) {\n return /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: props.link.url,\n className: \"theme_color-border theme_text-select\",\n children: props.link.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 183,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 182,\n columnNumber: 5\n }, this);\n}\n\n_c8 = LinkItem;\n\nfunction ModalMenu() {\n var providers = getProviders();\n var items = [];\n\n for (var i = 0; i < providers.providers.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(Provider, {\n provider: providers.providers[i]\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 193,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"modal\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n children: [/*#__PURE__*/_jsxDEV(\"header\", {\n id: \"modal-header\",\n children: [/*#__PURE__*/_jsxDEV(\"h1\", {\n children: \"Options\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 203,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n href: \"#\",\n title: \"Close\",\n className: \"modal-close\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-close\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 205,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 204,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 202,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"h2\", {\n children: \"Color themes\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 209,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"modal-theme\",\n children: [/*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"blackboard\",\n className: \"theme-button theme-blackboard\",\n onClick: updateTheme,\n children: \"Blackboard\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 212,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"gazette\",\n className: \"theme-button theme-gazette\",\n onClick: updateTheme,\n children: \"Gazette\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 213,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"espresso\",\n className: \"theme-button theme-espresso\",\n onClick: updateTheme,\n children: \"Espresso\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 214,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cab\",\n className: \"theme-button theme-cab\",\n onClick: updateTheme,\n children: \"Cab\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 215,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cloud\",\n className: \"theme-button theme-cloud\",\n onClick: updateTheme,\n children: \"Cloud\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 216,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"lime\",\n className: \"theme-button theme-lime\",\n onClick: updateTheme,\n children: \"Lime\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 217,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"passion\",\n className: \"theme-button theme-passion\",\n onClick: updateTheme,\n children: \"Passion\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 218,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"blues\",\n className: \"theme-button theme-blues\",\n onClick: updateTheme,\n children: \"Blues\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 219,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"chalk\",\n className: \"theme-button theme-chalk\",\n onClick: updateTheme,\n children: \"Chalk\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 220,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"tron\",\n className: \"theme-button theme-tron\",\n onClick: updateTheme,\n children: \"Tron\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 221,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"paper\",\n className: \"theme-button theme-paper\",\n onClick: updateTheme,\n children: \"Paper\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 222,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cyberpunk\",\n className: \"theme-button theme-cyberpunk\",\n onClick: updateTheme,\n children: \"Cyberpunk\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 223,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"quadra\",\n className: \"theme-button theme-panam\",\n onClick: updateTheme,\n children: \"Quadra\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 224,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"panam\",\n className: \"theme-button theme-panam\",\n onClick: updateTheme,\n children: \"Panam\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 225,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"touch\",\n className: \"theme-button theme-touch\",\n onClick: updateTheme,\n children: \"Touch\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 226,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"peek\",\n className: \"theme-button theme-peek\",\n onClick: updateTheme,\n children: \"Peek\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 227,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 211,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"h2\", {\n children: \"Search options\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 231,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"providers\",\n children: /*#__PURE__*/_jsxDEV(\"table\", {\n children: /*#__PURE__*/_jsxDEV(\"tbody\", {\n children: [/*#__PURE__*/_jsxDEV(\"tr\", {\n children: [/*#__PURE__*/_jsxDEV(\"th\", {\n children: \"Website\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 236,\n columnNumber: 19\n }, this), /*#__PURE__*/_jsxDEV(\"th\", {\n children: \"Prefix\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 237,\n columnNumber: 19\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 235,\n columnNumber: 17\n }, this), items]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 234,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 233,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 232,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"header\", {\n id: \"modal-footer\",\n children: [/*#__PURE__*/_jsxDEV(\"a\", {\n href: \"https://github.com/jeroenpardon/\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-github-box\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 245,\n columnNumber: 54\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 245,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n href: \"https://materialdesignicons.com/\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-material-design\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 246,\n columnNumber: 54\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 246,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"sneaky\",\n children: [/*#__PURE__*/_jsxDEV(\"input\", {\n type: \"checkbox\",\n id: \"contenttype\",\n checked: setBoxCheckedFromLocalStorage('contenttype'),\n onChange: udpateDisplayedItems\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 247,\n columnNumber: 35\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n for: \"contenttype\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-domino-mask\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 248,\n columnNumber: 36\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 248,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 247,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 244,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 201,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 200,\n columnNumber: 5\n }, this);\n}\n\n_c9 = ModalMenu;\n\nfunction Provider(props) {\n return /*#__PURE__*/_jsxDEV(\"tr\", {\n children: [/*#__PURE__*/_jsxDEV(\"td\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: props.provider.url,\n children: props.provider.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 258,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 258,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"td\", {\n children: props.provider.prefix\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 259,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 257,\n columnNumber: 5\n }, this);\n}\n\n_c10 = Provider;\n\nfunction ModalInit() {\n setDisplayedItems();\n return /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"modal_init\",\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n className: \"btn\",\n href: \"#modal\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify icon\",\n \"data-icon\": \"mdi-xbox-controller-menu\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 269,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 268,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 267,\n columnNumber: 5\n }, this);\n}\n\n_c11 = ModalInit;\nReactDOM.render( /*#__PURE__*/_jsxDEV(Homepage, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 276,\n columnNumber: 3\n}, this), document.getElementById('root')); //Functions below this line are for calculating data for\n//other functions\n\nfunction date() {\n let currentDate = new Date();\n let dateOptions = {\n weekday: \"long\",\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\"\n };\n let date = currentDate.toLocaleDateString(\"en-GB\", dateOptions);\n return date;\n}\n\nfunction fixDigits(k) {\n if (k < 10) {\n return \"0\" + k;\n } else {\n return k;\n }\n}\n\nfunction greet() {\n let currentTime = new Date();\n let greet = Math.floor(currentTime.getHours() / 6);\n let easterEggChance = Math.floor(Math.random() * 100);\n\n let greetings = require('./messages.json');\n\n let timeBased = [];\n let easterEggs = [];\n\n for (var i = 0; i < greetings.messages.length; i++) {\n if (greetings.messages[i].easteregg === \"FALSE\") {\n timeBased = timeBased.concat(greetings.messages[i]);\n } else {\n easterEggs = easterEggs.concat(greetings.messages[i]);\n }\n }\n\n if (easterEggChance > 10) {\n return timeBased[greet].message;\n } else {\n let easterEggText = Math.floor(Math.random() * easterEggs.length);\n return easterEggs[easterEggText].message;\n }\n}\n\nfunction Clock() {\n _s();\n\n const [date, setDate] = useState(new Date());\n\n function refreshClock() {\n setDate(new Date());\n }\n\n useEffect(() => {\n const timerId = setInterval(refreshClock, 1000);\n return function cleanup() {\n clearInterval(timerId);\n };\n }, []);\n var hour = date.getHours();\n var minutes = date.getMinutes(); //var seconds = date.getSeconds();\n\n var midday = \"AM\";\n midday = hour >= 12 ? \"PM\" : \"AM\";\n hour = hour === 0 ? 12 : hour > 12 ? hour - 12 : hour;\n minutes = fixDigits(minutes); //seconds = fixDigits(seconds);\n\n let time = hour + \":\" + minutes + \" \" + midday;\n return /*#__PURE__*/_jsxDEV(\"h2\", {\n id: \"clock\",\n children: time\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 347,\n columnNumber: 5\n }, this);\n}\n\n_s(Clock, \"Gqi45WOZhU2c0BLYX0HoJeiR0fk=\");\n\n_c12 = Clock;\n\nfunction getApps() {\n let applications = require('./apps.json');\n\n return applications;\n}\n\nfunction getLinks() {\n let links = require('./links.json');\n\n return links;\n}\n\nfunction getProviders() {\n let providers = require('./providers.json');\n\n return providers;\n}\n\nfunction getThemes() {\n let themes = require('./themes.json');\n\n return themes;\n}\n\nfunction updateTheme(e) {\n var themes = getThemes();\n var themeName = e.target.innerHTML.toLowerCase();\n var index = themes.themes.findIndex(function (item, i) {\n return item.name === themeName;\n });\n localStorage.setItem(\"image-background\", themes.themes[index].imagebackground);\n localStorage.setItem(\"color-background\", themes.themes[index].colorbackground);\n localStorage.setItem(\"color-search-background\", themes.themes[index].colorserachbackground);\n localStorage.setItem(\"color-text-pri\", themes.themes[index].colortextpri);\n localStorage.setItem(\"color-text-acc\", themes.themes[index].colortextacc);\n localStorage.setItem(\"color-border\", themes.themes[index].colorborder); //document.documentElement.style.setProperty(prop, `var(--${themeName}${prop.substring(10)})`);\n\n setTheme();\n}\n\nfunction setTheme() {\n setValueFromLocalStorage('image-background');\n setValueFromLocalStorage('color-background');\n setValueFromLocalStorage('color-search-background');\n setValueFromLocalStorage('color-text-pri');\n setValueFromLocalStorage('color-text-acc');\n setValueFromLocalStorage('color-border');\n setValueFromLocalStorage('content-display');\n}\n\nfunction handleKeyPress(e) {\n var sindex = 0;\n var cycle = false;\n var key = e.keyCode || e.which;\n var text = e.target.value.replaceAll(\"+\", \"%2B\");\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n\n if (key == 13) {\n // Search functions\n search(text);\n }\n\n if (key == 9) {\n // Tab Completion Functions\n e.preventDefault();\n e.stopPropagation();\n\n if (text[0] === ';') {\n switch (option) {\n case 't':\n var streamers = ['admiralbahroo', 'moonmoon_ow', 'witwix'];\n\n if (!subtext || cycle) {\n cycle = true;\n if (sindex > streamers.length - 1) sindex = 0;\n document.getElementById(\"keywords\").value = ';t ' + streamers[sindex++];\n return;\n }\n\n for (var streamer of streamers) {\n if (subtext === streamer.substr(0, subtext.length)) {\n document.getElementById(\"keywords\").value = ';t ' + streamer;\n return;\n }\n }\n\n break;\n }\n }\n }\n\n if (key == 32) {\n //Space to go to search\n updateLabel(text);\n }\n\n sindex = 0;\n cycle = false;\n updateLabel(text);\n}\n\nfunction updateLabel(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n\n if (text[0] === '/') {\n // if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n document.getElementById(\"searchType\").innerHTML = \"Allmusic search\";\n break;\n\n case \"d\":\n document.getElementById(\"searchType\").innerHTML = \"Duck Duck Go search\";\n break;\n\n case \"di\":\n document.getElementById(\"searchType\").innerHTML = \"Discogs search\";\n break;\n\n case \"i\":\n document.getElementById(\"searchType\").innerHTML = \"IMDB search\";\n break;\n\n case \"m\":\n document.getElementById(\"searchType\").innerHTML = \"TheMovieDB search\";\n break;\n\n case \"r\":\n document.getElementById(\"searchType\").innerHTML = \"Reddit search\";\n break;\n\n case \"q\":\n document.getElementById(\"searchType\").innerHTML = \"Qwant search\";\n break;\n\n case \"so\":\n document.getElementById(\"searchType\").innerHTML = \"Soundcloud search\";\n break;\n\n case \"s\":\n document.getElementById(\"searchType\").innerHTML = \"Spotify search\";\n break;\n\n case \"tv\":\n document.getElementById(\"searchType\").innerHTML = \"TheTVDB search\";\n break;\n\n case \"t\":\n document.getElementById(\"searchType\").innerHTML = \"Trakt search\";\n break;\n\n case \"y\":\n document.getElementById(\"searchType\").innerHTML = \"YouTube search\";\n break;\n\n case \"w\":\n document.getElementById(\"searchType\").innerHTML = \"Wikipedia search\";\n break;\n\n case \"p\":\n document.getElementById(\"searchType\").innerHTML = \"Plex search\";\n break;\n\n case \"rt\":\n document.getElementById(\"searchType\").innerHTML = \"Rotten Tomatoes search\";\n break;\n\n default:\n document.getElementById(\"searchType\").innerHTML = \"Invalid search\";\n break;\n }\n } else {\n document.getElementById(\"searchType\").innerHTML = \"Google search\";\n }\n}\n\nfunction search(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n\n if (text[0] === '/') {\n if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n window.location = \"https://www.allmusic.com/search/all/\" + subtext;\n break;\n\n case \"d\":\n window.location = \"https://duckduckgo.com/?q=\" + subtext;\n break;\n\n case \"di\":\n window.location = \"https://www.discogs.com/search/?q=\" + subtext;\n break;\n\n case \"i\":\n window.location = \"https://www.imdb.com/find?q=\" + subtext;\n break;\n\n case \"m\":\n window.location = \"https://www.themoviedb.org/search?query=\" + subtext;\n break;\n\n case \"r\":\n window.location = \"https://www.reddit.com/search?q=\" + subtext;\n break;\n\n case \"q\":\n window.location = \"https://www.qwant.com/?q=\" + subtext;\n break;\n\n case \"so\":\n window.location = \"https://soundcloud.com/search?q=\" + subtext;\n break;\n\n case \"s\":\n window.location = \"https://open.spotify.com/search/results/\" + subtext;\n break;\n\n case \"t\":\n window.location = \"https://trakt.tv/search?query=\" + subtext;\n break;\n\n case \"tv\":\n window.location = \"https://www.thetvdb.com/search?query=\" + subtext;\n break;\n\n case \"y\":\n window.location = \"https://www.youtube.com/results?search_query=\" + subtext;\n break;\n\n case \"w\":\n window.location = \"https://en.wikipedia.org/w/index.php?search=\" + subtext;\n break;\n\n case \"p\":\n window.location = \"https://app.plex.tv/desktop/#!/search?query=\" + subtext;\n break;\n\n case \"rt\":\n window.location = \"https://www.rottentomatoes.com/search?search=\" + subtext;\n break;\n }\n } else {\n var option = text.substr(1);\n\n switch (option) {\n case \"d\":\n window.location = \"https://www.duckduckgo.com\";\n break;\n\n case \"y\":\n window.location = \"https://www.youtube.com\";\n break;\n\n case \"r\":\n window.location = \"https://reddit.com\";\n break;\n\n case \"s\":\n window.location = \"https://open.spotify.com\";\n break;\n }\n }\n } else if (validURL(text)) {\n if (containsProtocol(text)) window.location = text;else window.location = \"https://\" + text;\n } else {\n window.location = \"https://www.google.com/search?q=\" + text;\n }\n}\n\nfunction validURL(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/)?' + // protocol\n '((([a-z\\\\d]([a-z\\\\d-]*[a-z\\\\d])*)\\\\.)+[a-z]{2,}|' + // domain name\n '((\\\\d{1,3}\\\\.){3}\\\\d{1,3}))' + // OR ip (v4) address\n '(\\\\:\\\\d+)?(\\\\/[-a-z\\\\d%_.~+]*)*' + // port and path\n '(\\\\?[;&a-z\\\\d%_.~+=-]*)?' + // query string\n '(\\\\#[-a-z\\\\d_]*)?$', 'i'); // fragment locator\n\n return !!pattern.test(str);\n}\n\nfunction containsProtocol(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/){1}.*', 'i');\n return !!pattern.test(str);\n}\n\nString.prototype.replaceAll = function (search, replacement) {\n var target = this;\n return target.split(search).join(replacement);\n};\n\nfunction udpateDisplayedItems(e) {\n console.log(e);\n localStorage.setItem('contenttype', e.target.checked);\n\n if (e.target.checked) {\n localStorage.setItem('content-display', 'none');\n } else {\n localStorage.setItem('content-display', 'block');\n }\n\n setDisplayedItems();\n}\n\nfunction setDisplayedItems() {\n setValueFromLocalStorage('contenttype');\n setValueFromLocalStorage('content-display');\n}\n\nvar _c, _c2, _c3, _c4, _c5, _c6, _c7, _c8, _c9, _c10, _c11, _c12;\n\n$RefreshReg$(_c, \"Homepage\");\n$RefreshReg$(_c2, \"Search\");\n$RefreshReg$(_c3, \"Header\");\n$RefreshReg$(_c4, \"Applications\");\n$RefreshReg$(_c5, \"App\");\n$RefreshReg$(_c6, \"Bookmarks\");\n$RefreshReg$(_c7, \"LinkGroups\");\n$RefreshReg$(_c8, \"LinkItem\");\n$RefreshReg$(_c9, \"ModalMenu\");\n$RefreshReg$(_c10, \"Provider\");\n$RefreshReg$(_c11, \"ModalInit\");\n$RefreshReg$(_c12, \"Clock\");","map":{"version":3,"sources":["/home/seanedmunds/dev/home-page/src/index.js"],"names":["React","useState","useEffect","ReactDOM","setValueFromLocalStorage","property","value","localStorage","getItem","setValue","document","documentElement","style","setProperty","input","querySelector","replace","Homepage","setTheme","date","greet","Search","handleKeyPress","Header","props","Applications","appList","getApps","items","i","apps","length","safe","NSFW","NSFWEnabled","push","name","url","icon","App","classNameType","hrefUrl","iconName","Bookmarks","bookmarkList","getLinks","bookmarks","category","links","LinkGroups","LinkItem","link","ModalMenu","providers","getProviders","updateTheme","setBoxCheckedFromLocalStorage","udpateDisplayedItems","Provider","provider","prefix","ModalInit","setDisplayedItems","render","getElementById","currentDate","Date","dateOptions","weekday","year","month","day","toLocaleDateString","fixDigits","k","currentTime","Math","floor","getHours","easterEggChance","random","greetings","require","timeBased","easterEggs","messages","easteregg","concat","message","easterEggText","Clock","setDate","refreshClock","timerId","setInterval","cleanup","clearInterval","hour","minutes","getMinutes","midday","time","applications","getThemes","themes","e","themeName","target","innerHTML","toLowerCase","index","findIndex","item","setItem","imagebackground","colorbackground","colorserachbackground","colortextpri","colortextacc","colorborder","sindex","cycle","key","keyCode","which","text","replaceAll","option","substr","indexOf","subtext","search","preventDefault","stopPropagation","streamers","streamer","updateLabel","window","location","validURL","containsProtocol","str","pattern","RegExp","test","String","prototype","replacement","split","join","console","log","checked"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { useState, useEffect } from 'react';\nimport ReactDOM from 'react-dom';\nimport './index.css';\n\nconst setValueFromLocalStorage = property => {\n let value = localStorage.getItem(property);\n setValue(property, value);\n};\nconst setValue = (property, value) => {\n if (value) {\n document.documentElement.style.setProperty(`--${property}`, value);\n\n const input = document.querySelector(`#${property}`);\n if (input) {\n value = value.replace('px', '');\n input.value = value;\n }\n }\n};\n\nfunction Homepage() {\n setTheme();\n \n return (\n \n \n \n
\n \n \n
\n \n \n \n
\n \n \n
\n \n \n
\n \n );\n}\n\nfunction Search() {\n return (\n \n )\n}\n\nfunction Header(props) {\n return (\n \n );\n}\n\nfunction Applications() {\n let appList = getApps();\n var items = [];\n for (var i = 0; i < appList.apps.length; i++) {\n var safe = appList.apps[i].NSFW;\n var NSFWEnabled = localStorage.getItem(\"contenttype\");\n if (safe === \"SAFE\") {\n items.push(\n \n );\n } else if (safe === \"NSFW\" && NSFWEnabled) {\n items.push(\n \n );\n } else {\n \n }\n \n }\n return (\n \n Applications
\n \n {items}\n
\n \n );\n}\n\nfunction App(props) {\n \n let classNameType = props.NSFW + \"-content\";\n let hrefUrl = \"https://\" + props.url;\n let iconName = \"mdi-\" + props.icon;\n return (\n \n );\n}\n\nfunction Bookmarks() {\n let bookmarkList = getLinks();\n var items = [];\n for (var i = 0; i < bookmarkList.bookmarks.length; i++) {\n items.push(\n \n );\n }\n return (\n \n Bookmarks
\n \n {items}\n
\n \n );\n}\n\nfunction LinkGroups(props) {\n var items = [];\n for (var i = 0; i < props.links.length; i++) {\n items.push(\n \n );\n }\n return (\n \n
{props.category}
\n {items}\n \n );\n}\n\nfunction LinkItem(props) {\n return (\n \n );\n}\n\nfunction ModalMenu() {\n var providers = getProviders();\n var items = [];\n for (var i = 0; i < providers.providers.length; i++) {\n items.push(\n \n );\n }\n return (\n \n \n \n\n
Color themes
\n\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n\n\n
Search options
\n
\n \n \n \n | Website | \n Prefix | \n
\n {items}\n \n
\n \n\n \n
\n \n );\n}\n\nfunction Provider(props) {\n return (\n \n | {props.provider.name} | \n {props.provider.prefix} | \n
\n );\n}\n\nfunction ModalInit() {\n setDisplayedItems();\n return (\n \n );\n}\n\nReactDOM.render(\n ,\n document.getElementById('root')\n);\n\n//Functions below this line are for calculating data for\n//other functions\n\nfunction date() {\n let currentDate = new Date();\n let dateOptions = {\n weekday: \"long\",\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\"\n };\n let date = currentDate.toLocaleDateString(\"en-GB\", dateOptions);\n return date;\n}\nfunction fixDigits(k) {\n if (k < 10) {\n return \"0\" + k;\n }\n else {\n return k;\n }\n}\nfunction greet() {\n let currentTime = new Date();\n let greet = Math.floor(currentTime.getHours() / 6);\n let easterEggChance = Math.floor(Math.random() * 100);\n let greetings = require('./messages.json');\n let timeBased = [];\n let easterEggs = [];\n for (var i = 0; i < greetings.messages.length; i++) {\n if (greetings.messages[i].easteregg === \"FALSE\") {\n timeBased = timeBased.concat(greetings.messages[i]);\n } else {\n easterEggs = easterEggs.concat(greetings.messages[i]);\n }\n }\n if (easterEggChance > 10) {\n return timeBased[greet].message;\n } else {\n let easterEggText = Math.floor(Math.random() * easterEggs.length);\n return easterEggs[easterEggText].message;\n }\n}\nfunction Clock() {\n const [date, setDate] = useState(new Date());\n\n function refreshClock() {\n setDate(new Date());\n }\n useEffect(() => {\n const timerId = setInterval(refreshClock, 1000);\n return function cleanup() {\n clearInterval(timerId);\n };\n }, []);\n\n var hour = date.getHours();\n var minutes = date.getMinutes();\n //var seconds = date.getSeconds();\n var midday = \"AM\";\n midday = (hour >= 12) ? \"PM\" : \"AM\";\n hour = (hour === 0) ? 12 : ((hour > 12) ? (hour - 12) : hour);\n minutes = fixDigits(minutes);\n //seconds = fixDigits(seconds);\n let time = hour + \":\" + minutes + \" \" + midday;\n\n return (\n {time}
\n\n );\n}\nfunction getApps() {\n let applications = require('./apps.json');\n return applications;\n}\nfunction getLinks() {\n let links = require('./links.json');\n return links;\n}\nfunction getProviders() {\n let providers = require('./providers.json');\n return providers;\n}\nfunction getThemes() {\n let themes = require('./themes.json');\n return themes;\n}\nfunction updateTheme(e) {\n var themes = getThemes();\n var themeName = e.target.innerHTML.toLowerCase();\n var index = themes.themes.findIndex(function(item, i){\n return item.name === themeName\n });\n localStorage.setItem(\"image-background\", themes.themes[index].imagebackground);\n localStorage.setItem(\"color-background\", themes.themes[index].colorbackground);\n localStorage.setItem(\"color-search-background\", themes.themes[index].colorserachbackground);\n localStorage.setItem(\"color-text-pri\",themes.themes[index].colortextpri);\n localStorage.setItem(\"color-text-acc\", themes.themes[index].colortextacc);\n localStorage.setItem(\"color-border\", themes.themes[index].colorborder);\n \n //document.documentElement.style.setProperty(prop, `var(--${themeName}${prop.substring(10)})`);\n setTheme();\n}\nfunction setTheme() {\n setValueFromLocalStorage('image-background');\n setValueFromLocalStorage('color-background');\n setValueFromLocalStorage('color-search-background');\n setValueFromLocalStorage('color-text-pri');\n setValueFromLocalStorage('color-text-acc');\n setValueFromLocalStorage('color-border');\n setValueFromLocalStorage('content-display');\n}\nfunction handleKeyPress(e) {\n var sindex = 0;\n var cycle = false;\n var key = e.keyCode || e.which;\n var text = e.target.value.replaceAll(\"+\", \"%2B\");\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n if (key == 13) { // Search functions\n search(text);\n }\n if (key == 9) { // Tab Completion Functions\n e.preventDefault();\n e.stopPropagation();\n if (text[0] === ';') {\n switch (option) {\n case 't':\n var streamers = ['admiralbahroo', 'moonmoon_ow', 'witwix'];\n if (!subtext || cycle) {\n cycle = true;\n if (sindex > streamers.length - 1) sindex = 0;\n document.getElementById(\"keywords\").value = ';t ' + streamers[sindex++];\n return;\n }\n for (var streamer of streamers) {\n if (subtext === streamer.substr(0, subtext.length)) {\n document.getElementById(\"keywords\").value = ';t ' + streamer;\n return;\n }\n }\n break;\n }\n }\n }\n if(key == 32){ //Space to go to search\nupdateLabel(text);\n }\n sindex = 0;\n cycle = false;\n updateLabel(text);\n}\nfunction updateLabel(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n if (text[0] === '/') {\n// if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n document.getElementById(\"searchType\").innerHTML = \"Allmusic search\";\n break;\n case \"d\":\n document.getElementById(\"searchType\").innerHTML = \"Duck Duck Go search\";\n break;\n case \"di\":\n document.getElementById(\"searchType\").innerHTML = \"Discogs search\";\n break;\n case \"i\":\n document.getElementById(\"searchType\").innerHTML = \"IMDB search\";\n break;\n case \"m\":\n document.getElementById(\"searchType\").innerHTML = \"TheMovieDB search\";\n break;\n case \"r\":\n document.getElementById(\"searchType\").innerHTML = \"Reddit search\";\n break;\n case \"q\":\n document.getElementById(\"searchType\").innerHTML = \"Qwant search\";\n break;\n case \"so\":\n document.getElementById(\"searchType\").innerHTML = \"Soundcloud search\";\n break;\n case \"s\":\n document.getElementById(\"searchType\").innerHTML = \"Spotify search\";\n break;\n case \"tv\":\n document.getElementById(\"searchType\").innerHTML = \"TheTVDB search\";\n break;\n case \"t\":\n document.getElementById(\"searchType\").innerHTML = \"Trakt search\";\n break;\n case \"y\":\n document.getElementById(\"searchType\").innerHTML = \"YouTube search\";\n break;\n case \"w\":\n document.getElementById(\"searchType\").innerHTML = \"Wikipedia search\";\n break;\n case \"p\":\n document.getElementById(\"searchType\").innerHTML = \"Plex search\";\n break;\n case \"rt\":\n document.getElementById(\"searchType\").innerHTML = \"Rotten Tomatoes search\";\n break;\n default:\n document.getElementById(\"searchType\").innerHTML = \"Invalid search\";\n break;\n }\n}else {\n document.getElementById(\"searchType\").innerHTML = \"Google search\";\n }\n}\nfunction search(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n if (text[0] === '/') {\n if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n window.location = \"https://www.allmusic.com/search/all/\" + subtext;\n break;\n case \"d\":\n window.location = \"https://duckduckgo.com/?q=\" + subtext;\n break;\n case \"di\":\n window.location = \"https://www.discogs.com/search/?q=\" + subtext;\n break;\n case \"i\":\n window.location = \"https://www.imdb.com/find?q=\" + subtext;\n break;\n case \"m\":\n window.location = \"https://www.themoviedb.org/search?query=\" + subtext;\n break;\n case \"r\":\n window.location = \"https://www.reddit.com/search?q=\" + subtext;\n break;\n case \"q\":\n window.location = \"https://www.qwant.com/?q=\" + subtext;\n break;\n case \"so\":\n window.location = \"https://soundcloud.com/search?q=\" + subtext;\n break;\n case \"s\":\n window.location = \"https://open.spotify.com/search/results/\" + subtext;\n break;\n case \"t\":\n window.location = \"https://trakt.tv/search?query=\" + subtext;\n break;\n case \"tv\":\n window.location = \"https://www.thetvdb.com/search?query=\" + subtext;\n break;\n case \"y\":\n window.location = \"https://www.youtube.com/results?search_query=\" + subtext;\n break;\n case \"w\":\n window.location = \"https://en.wikipedia.org/w/index.php?search=\" + subtext;\n break;\n case \"p\":\n window.location = \"https://app.plex.tv/desktop/#!/search?query=\" + subtext;\n break;\n case \"rt\":\n window.location = \"https://www.rottentomatoes.com/search?search=\" + subtext;\n break;\n }\n } else {\n var option = text.substr(1);\n switch (option) {\n case \"d\":\n window.location = \"https://www.duckduckgo.com\";\n break;\n case \"y\":\n window.location = \"https://www.youtube.com\";\n break;\n case \"r\":\n window.location = \"https://reddit.com\";\n break;\n case \"s\":\n window.location = \"https://open.spotify.com\";\n break;\n }\n }\n } else if (validURL(text)) {\n if (containsProtocol(text))\n window.location = text;\n else\n window.location = \"https://\" + text;\n } else {\n window.location = \"https://www.google.com/search?q=\" + text;\n }\n}\nfunction validURL(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/)?' + // protocol\n '((([a-z\\\\d]([a-z\\\\d-]*[a-z\\\\d])*)\\\\.)+[a-z]{2,}|' + // domain name\n '((\\\\d{1,3}\\\\.){3}\\\\d{1,3}))' + // OR ip (v4) address\n '(\\\\:\\\\d+)?(\\\\/[-a-z\\\\d%_.~+]*)*' + // port and path\n '(\\\\?[;&a-z\\\\d%_.~+=-]*)?' + // query string\n '(\\\\#[-a-z\\\\d_]*)?$', 'i'); // fragment locator\n return !!pattern.test(str);\n}\nfunction containsProtocol(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/){1}.*', 'i');\n return !!pattern.test(str);\n}\nString.prototype.replaceAll = function(search, replacement) {\n var target = this;\n return target.split(search).join(replacement);\n};\nfunction udpateDisplayedItems(e) {\n console.log(e);\n localStorage.setItem('contenttype', e.target.checked);\n if (e.target.checked) {\n localStorage.setItem('content-display', 'none');\n } else {\n localStorage.setItem('content-display', 'block');\n }\n setDisplayedItems();\n}\nfunction setDisplayedItems() {\n setValueFromLocalStorage('contenttype');\n setValueFromLocalStorage('content-display');\n}"]},"metadata":{},"sourceType":"module"}
\ No newline at end of file
diff --git a/node_modules/.cache/babel-loader/d172e0c183420ae9eed2fafc148d0769.json b/node_modules/.cache/babel-loader/d172e0c183420ae9eed2fafc148d0769.json
new file mode 100644
index 00000000..0fc389cb
--- /dev/null
+++ b/node_modules/.cache/babel-loader/d172e0c183420ae9eed2fafc148d0769.json
@@ -0,0 +1 @@
+{"ast":null,"code":"var _jsxFileName = \"/home/seanedmunds/dev/home-page/src/index.js\",\n _s = $RefreshSig$();\n\nimport React from 'react';\nimport { useState, useEffect } from 'react';\nimport ReactDOM from 'react-dom';\nimport './index.css';\nimport { jsxDEV as _jsxDEV } from \"react/jsx-dev-runtime\";\n\nconst setValueFromLocalStorage = property => {\n let value = localStorage.getItem(property);\n setValue(property, value);\n};\n\nconst setValue = (property, value) => {\n if (value) {\n document.documentElement.style.setProperty(`--${property}`, value);\n const input = document.querySelector(`#${property}`);\n\n if (input) {\n value = value.replace('px', '');\n input.value = value;\n }\n }\n};\n\nfunction Homepage() {\n setTheme();\n return /*#__PURE__*/_jsxDEV(\"main\", {\n id: \"container\",\n className: \"fade\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Search, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 28,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 27,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Header, {\n date: date(),\n greet: greet()\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 31,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 30,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Applications, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 37,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 36,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Bookmarks, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 40,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 39,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(ModalMenu, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 43,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 42,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(ModalInit, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 46,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 45,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 26,\n columnNumber: 5\n }, this);\n}\n\n_c = Homepage;\n\nfunction Search() {\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"search\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"abackground\",\n children: [/*#__PURE__*/_jsxDEV(\"input\", {\n name: \"keywords\",\n type: \"text\",\n className: \"keyword\",\n id: \"keywords\",\n size: \"50\",\n spellCheck: \"true\",\n placeholder: \"\",\n autoComplete: \"off\"\n /*autoFocus={true}*/\n ,\n onKeyUp: handleKeyPress\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 56,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n id: \"searchType\",\n className: \"Input-label\",\n children: \"Google search\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 57,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 55,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 54,\n columnNumber: 5\n }, this);\n}\n\n_c2 = Search;\n\nfunction Header(props) {\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"header\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n id: \"greeting_block\",\n children: /*#__PURE__*/_jsxDEV(\"h1\", {\n id: \"header_greet\",\n children: props.greet\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 67,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 66,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"date_block\",\n children: [/*#__PURE__*/_jsxDEV(\"h2\", {\n id: \"header_date\",\n children: props.date\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 70,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(Clock, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 71,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 69,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 65,\n columnNumber: 5\n }, this);\n}\n\n_c3 = Header;\n\nfunction Applications() {\n let appList = getApps();\n var items = [];\n\n for (var i = 0; i < appList.apps.length; i++) {\n var safe = appList.apps[i].NSFW;\n var NSFWEnabled = localStorage.getItem(\"contenttype\");\n\n if (safe === \"SAFE\") {\n items.push( /*#__PURE__*/_jsxDEV(App, {\n name: appList.apps[i].name,\n url: appList.apps[i].url,\n icon: appList.apps[i].icon,\n NSFW: appList.apps[i].NSFW\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 85,\n columnNumber: 9\n }, this));\n } else if (safe === \"NSFW\" && NSFWEnabled) {\n items.push( /*#__PURE__*/_jsxDEV(App, {\n name: appList.apps[i].name,\n url: appList.apps[i].url,\n icon: appList.apps[i].icon,\n NSFW: appList.apps[i].NSFW\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 95,\n columnNumber: 9\n }, this));\n } else {}\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"apps\",\n children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n children: \"Applications\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 110,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"apps_loop\",\n children: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 111,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 109,\n columnNumber: 5\n }, this);\n}\n\n_c4 = Applications;\n\nfunction App(props) {\n let classNameType = props.NSFW + \"-content\";\n let hrefUrl = \"https://\" + props.url;\n let iconName = \"mdi-\" + props.icon;\n return /*#__PURE__*/_jsxDEV(\"div\", {\n className: classNameType,\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: hrefUrl,\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_item\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_icon\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify icon\",\n \"data-icon\": iconName\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 128,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 127,\n columnNumber: 13\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_text\",\n children: [/*#__PURE__*/_jsxDEV(\"span\", {\n id: \"app-name\",\n children: props.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 131,\n columnNumber: 15\n }, this), /*#__PURE__*/_jsxDEV(\"span\", {\n id: \"app-address\",\n children: props.url\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 132,\n columnNumber: 15\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 130,\n columnNumber: 13\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 126,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 125,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 124,\n columnNumber: 7\n }, this);\n}\n\n_c5 = App;\n\nfunction Bookmarks() {\n let bookmarkList = getLinks();\n var items = [];\n\n for (var i = 0; i < bookmarkList.bookmarks.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(LinkGroups, {\n category: bookmarkList.bookmarks[i].category,\n links: bookmarkList.bookmarks[i].links\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 145,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"links\",\n children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n children: \"Bookmarks\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 154,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"links_loop\",\n children: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 155,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 153,\n columnNumber: 5\n }, this);\n}\n\n_c6 = Bookmarks;\n\nfunction LinkGroups(props) {\n var items = [];\n\n for (var i = 0; i < props.links.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(LinkItem, {\n link: props.links[i]\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 166,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"links_item\",\n children: [/*#__PURE__*/_jsxDEV(\"h4\", {\n children: props.category\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 174,\n columnNumber: 7\n }, this), items]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 173,\n columnNumber: 5\n }, this);\n}\n\n_c7 = LinkGroups;\n\nfunction LinkItem(props) {\n return /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: props.link.url,\n className: \"theme_color-border theme_text-select\",\n children: props.link.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 183,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 182,\n columnNumber: 5\n }, this);\n}\n\n_c8 = LinkItem;\n\nfunction ModalMenu() {\n var providers = getProviders();\n var items = [];\n var isChecked = localStorage.getItem(\"contenttype\");\n console.log(localStorage.getItem(\"contenttype\"));\n\n for (var i = 0; i < providers.providers.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(Provider, {\n provider: providers.providers[i]\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 195,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"modal\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n children: [/*#__PURE__*/_jsxDEV(\"header\", {\n id: \"modal-header\",\n children: [/*#__PURE__*/_jsxDEV(\"h1\", {\n children: \"Options\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 205,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n href: \"#\",\n title: \"Close\",\n className: \"modal-close\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-close\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 207,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 206,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 204,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"h2\", {\n children: \"Color themes\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 211,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"modal-theme\",\n children: [/*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"blackboard\",\n className: \"theme-button theme-blackboard\",\n onClick: updateTheme,\n children: \"Blackboard\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 214,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"gazette\",\n className: \"theme-button theme-gazette\",\n onClick: updateTheme,\n children: \"Gazette\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 215,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"espresso\",\n className: \"theme-button theme-espresso\",\n onClick: updateTheme,\n children: \"Espresso\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 216,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cab\",\n className: \"theme-button theme-cab\",\n onClick: updateTheme,\n children: \"Cab\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 217,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cloud\",\n className: \"theme-button theme-cloud\",\n onClick: updateTheme,\n children: \"Cloud\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 218,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"lime\",\n className: \"theme-button theme-lime\",\n onClick: updateTheme,\n children: \"Lime\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 219,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"passion\",\n className: \"theme-button theme-passion\",\n onClick: updateTheme,\n children: \"Passion\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 220,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"blues\",\n className: \"theme-button theme-blues\",\n onClick: updateTheme,\n children: \"Blues\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 221,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"chalk\",\n className: \"theme-button theme-chalk\",\n onClick: updateTheme,\n children: \"Chalk\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 222,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"tron\",\n className: \"theme-button theme-tron\",\n onClick: updateTheme,\n children: \"Tron\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 223,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"paper\",\n className: \"theme-button theme-paper\",\n onClick: updateTheme,\n children: \"Paper\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 224,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cyberpunk\",\n className: \"theme-button theme-cyberpunk\",\n onClick: updateTheme,\n children: \"Cyberpunk\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 225,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"quadra\",\n className: \"theme-button theme-panam\",\n onClick: updateTheme,\n children: \"Quadra\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 226,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"panam\",\n className: \"theme-button theme-panam\",\n onClick: updateTheme,\n children: \"Panam\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 227,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"touch\",\n className: \"theme-button theme-touch\",\n onClick: updateTheme,\n children: \"Touch\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 228,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"peek\",\n className: \"theme-button theme-peek\",\n onClick: updateTheme,\n children: \"Peek\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 229,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 213,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"h2\", {\n children: \"Search options\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 233,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"providers\",\n children: /*#__PURE__*/_jsxDEV(\"table\", {\n children: /*#__PURE__*/_jsxDEV(\"tbody\", {\n children: [/*#__PURE__*/_jsxDEV(\"tr\", {\n children: [/*#__PURE__*/_jsxDEV(\"th\", {\n children: \"Website\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 238,\n columnNumber: 19\n }, this), /*#__PURE__*/_jsxDEV(\"th\", {\n children: \"Prefix\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 239,\n columnNumber: 19\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 237,\n columnNumber: 17\n }, this), items]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 236,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 235,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 234,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"header\", {\n id: \"modal-footer\",\n children: [/*#__PURE__*/_jsxDEV(\"a\", {\n href: \"https://github.com/jeroenpardon/\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-github-box\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 247,\n columnNumber: 54\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 247,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n href: \"https://materialdesignicons.com/\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-material-design\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 248,\n columnNumber: 54\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 248,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(HideButton, {\n checked: isChecked\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 249,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 246,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 203,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 202,\n columnNumber: 5\n }, this);\n}\n\n_c9 = ModalMenu;\n\nfunction HideButton(props) {\n console.log(props.checked);\n\n if (props.checked === \"true\") {\n console.log(\"icon should be grey\");\n return /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"sneaky\",\n children: [/*#__PURE__*/_jsxDEV(\"input\", {\n type: \"checkbox\",\n id: \"contenttype\",\n onChange: udpateDisplayedItems,\n defaultChecked: true\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 263,\n columnNumber: 31\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n for: \"contenttype\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-domino-mask\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 264,\n columnNumber: 32\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 264,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 263,\n columnNumber: 7\n }, this);\n } else {\n console.log(\"icon should be white\");\n return /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"sneaky\",\n children: [/*#__PURE__*/_jsxDEV(\"input\", {\n type: \"checkbox\",\n id: \"contenttype\",\n onChange: udpateDisplayedItems,\n defaultChecked: false\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 269,\n columnNumber: 31\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n for: \"contenttype\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-domino-mask\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 270,\n columnNumber: 32\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 270,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 269,\n columnNumber: 7\n }, this);\n }\n}\n\n_c10 = HideButton;\n\nfunction Provider(props) {\n return /*#__PURE__*/_jsxDEV(\"tr\", {\n children: [/*#__PURE__*/_jsxDEV(\"td\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: props.provider.url,\n children: props.provider.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 278,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 278,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"td\", {\n children: props.provider.prefix\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 279,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 277,\n columnNumber: 5\n }, this);\n}\n\n_c11 = Provider;\n\nfunction ModalInit() {\n setDisplayedItems();\n return /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"modal_init\",\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n className: \"btn\",\n href: \"#modal\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify icon\",\n \"data-icon\": \"mdi-xbox-controller-menu\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 289,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 288,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 287,\n columnNumber: 5\n }, this);\n}\n\n_c12 = ModalInit;\nReactDOM.render( /*#__PURE__*/_jsxDEV(Homepage, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 296,\n columnNumber: 3\n}, this), document.getElementById('root')); //Functions below this line are for calculating data for\n//other functions\n\nfunction date() {\n let currentDate = new Date();\n let dateOptions = {\n weekday: \"long\",\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\"\n };\n let date = currentDate.toLocaleDateString(\"en-GB\", dateOptions);\n return date;\n}\n\nfunction fixDigits(k) {\n if (k < 10) {\n return \"0\" + k;\n } else {\n return k;\n }\n}\n\nfunction greet() {\n let currentTime = new Date();\n let greet = Math.floor(currentTime.getHours() / 6);\n let easterEggChance = Math.floor(Math.random() * 100);\n\n let greetings = require('./messages.json');\n\n let timeBased = [];\n let easterEggs = [];\n\n for (var i = 0; i < greetings.messages.length; i++) {\n if (greetings.messages[i].easteregg === \"FALSE\") {\n timeBased = timeBased.concat(greetings.messages[i]);\n } else {\n easterEggs = easterEggs.concat(greetings.messages[i]);\n }\n }\n\n if (easterEggChance > 10) {\n return timeBased[greet].message;\n } else {\n let easterEggText = Math.floor(Math.random() * easterEggs.length);\n return easterEggs[easterEggText].message;\n }\n}\n\nfunction Clock() {\n _s();\n\n const [date, setDate] = useState(new Date());\n\n function refreshClock() {\n setDate(new Date());\n }\n\n useEffect(() => {\n const timerId = setInterval(refreshClock, 1000);\n return function cleanup() {\n clearInterval(timerId);\n };\n }, []);\n var hour = date.getHours();\n var minutes = date.getMinutes(); //var seconds = date.getSeconds();\n\n var midday = \"AM\";\n midday = hour >= 12 ? \"PM\" : \"AM\";\n hour = hour === 0 ? 12 : hour > 12 ? hour - 12 : hour;\n minutes = fixDigits(minutes); //seconds = fixDigits(seconds);\n\n let time = hour + \":\" + minutes + \" \" + midday;\n return /*#__PURE__*/_jsxDEV(\"h2\", {\n id: \"clock\",\n children: time\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 367,\n columnNumber: 5\n }, this);\n}\n\n_s(Clock, \"Gqi45WOZhU2c0BLYX0HoJeiR0fk=\");\n\n_c13 = Clock;\n\nfunction getApps() {\n let applications = require('./apps.json');\n\n return applications;\n}\n\nfunction getLinks() {\n let links = require('./links.json');\n\n return links;\n}\n\nfunction getProviders() {\n let providers = require('./providers.json');\n\n return providers;\n}\n\nfunction getThemes() {\n let themes = require('./themes.json');\n\n return themes;\n}\n\nfunction updateTheme(e) {\n var themes = getThemes();\n var themeName = e.target.innerHTML.toLowerCase();\n var index = themes.themes.findIndex(function (item, i) {\n return item.name === themeName;\n });\n localStorage.setItem(\"image-background\", themes.themes[index].imagebackground);\n localStorage.setItem(\"color-background\", themes.themes[index].colorbackground);\n localStorage.setItem(\"color-search-background\", themes.themes[index].colorserachbackground);\n localStorage.setItem(\"color-text-pri\", themes.themes[index].colortextpri);\n localStorage.setItem(\"color-text-acc\", themes.themes[index].colortextacc);\n localStorage.setItem(\"color-border\", themes.themes[index].colorborder); //document.documentElement.style.setProperty(prop, `var(--${themeName}${prop.substring(10)})`);\n\n setTheme();\n}\n\nfunction setTheme() {\n setValueFromLocalStorage('image-background');\n setValueFromLocalStorage('color-background');\n setValueFromLocalStorage('color-search-background');\n setValueFromLocalStorage('color-text-pri');\n setValueFromLocalStorage('color-text-acc');\n setValueFromLocalStorage('color-border');\n setValueFromLocalStorage('content-display');\n}\n\nfunction handleKeyPress(e) {\n var sindex = 0;\n var cycle = false;\n var key = e.keyCode || e.which;\n var text = e.target.value.replaceAll(\"+\", \"%2B\");\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n\n if (key === 13) {\n // Search functions\n search(text);\n }\n\n if (key === 9) {\n // Tab Completion Functions\n e.preventDefault();\n e.stopPropagation();\n\n if (text[0] === ';') {\n switch (option) {\n case 't':\n var streamers = ['admiralbahroo', 'moonmoon_ow', 'witwix'];\n\n if (!subtext || cycle) {\n cycle = true;\n if (sindex > streamers.length - 1) sindex = 0;\n document.getElementById(\"keywords\").value = ';t ' + streamers[sindex++];\n return;\n }\n\n for (var streamer of streamers) {\n if (subtext === streamer.substr(0, subtext.length)) {\n document.getElementById(\"keywords\").value = ';t ' + streamer;\n return;\n }\n }\n\n break;\n\n default:\n break;\n }\n }\n }\n\n if (key === 32) {\n //Space to go to search\n updateLabel(text);\n }\n\n sindex = 0;\n cycle = false;\n updateLabel(text);\n}\n\nfunction updateLabel(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n\n if (text[0] === '/') {\n // if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n document.getElementById(\"searchType\").innerHTML = \"Allmusic search\";\n break;\n\n case \"d\":\n document.getElementById(\"searchType\").innerHTML = \"Duck Duck Go search\";\n break;\n\n case \"di\":\n document.getElementById(\"searchType\").innerHTML = \"Discogs search\";\n break;\n\n case \"i\":\n document.getElementById(\"searchType\").innerHTML = \"IMDB search\";\n break;\n\n case \"m\":\n document.getElementById(\"searchType\").innerHTML = \"TheMovieDB search\";\n break;\n\n case \"r\":\n document.getElementById(\"searchType\").innerHTML = \"Reddit search\";\n break;\n\n case \"q\":\n document.getElementById(\"searchType\").innerHTML = \"Qwant search\";\n break;\n\n case \"so\":\n document.getElementById(\"searchType\").innerHTML = \"Soundcloud search\";\n break;\n\n case \"s\":\n document.getElementById(\"searchType\").innerHTML = \"Spotify search\";\n break;\n\n case \"tv\":\n document.getElementById(\"searchType\").innerHTML = \"TheTVDB search\";\n break;\n\n case \"t\":\n document.getElementById(\"searchType\").innerHTML = \"Trakt search\";\n break;\n\n case \"y\":\n document.getElementById(\"searchType\").innerHTML = \"YouTube search\";\n break;\n\n case \"w\":\n document.getElementById(\"searchType\").innerHTML = \"Wikipedia search\";\n break;\n\n case \"p\":\n document.getElementById(\"searchType\").innerHTML = \"Plex search\";\n break;\n\n case \"rt\":\n document.getElementById(\"searchType\").innerHTML = \"Rotten Tomatoes search\";\n break;\n\n default:\n document.getElementById(\"searchType\").innerHTML = \"Invalid search\";\n break;\n }\n } else {\n document.getElementById(\"searchType\").innerHTML = \"Google search\";\n }\n}\n\nfunction search(text) {\n if (text[0] === '/') {\n if (text.indexOf(' ') > -1) {\n let option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n\n switch (option) {\n case \"am\":\n window.location = \"https://www.allmusic.com/search/all/\" + subtext;\n break;\n\n case \"d\":\n window.location = \"https://duckduckgo.com/?q=\" + subtext;\n break;\n\n case \"di\":\n window.location = \"https://www.discogs.com/search/?q=\" + subtext;\n break;\n\n case \"i\":\n window.location = \"https://www.imdb.com/find?q=\" + subtext;\n break;\n\n case \"m\":\n window.location = \"https://www.themoviedb.org/search?query=\" + subtext;\n break;\n\n case \"r\":\n window.location = \"https://www.reddit.com/search?q=\" + subtext;\n break;\n\n case \"q\":\n window.location = \"https://www.qwant.com/?q=\" + subtext;\n break;\n\n case \"so\":\n window.location = \"https://soundcloud.com/search?q=\" + subtext;\n break;\n\n case \"s\":\n window.location = \"https://open.spotify.com/search/results/\" + subtext;\n break;\n\n case \"t\":\n window.location = \"https://trakt.tv/search?query=\" + subtext;\n break;\n\n case \"tv\":\n window.location = \"https://www.thetvdb.com/search?query=\" + subtext;\n break;\n\n case \"y\":\n window.location = \"https://www.youtube.com/results?search_query=\" + subtext;\n break;\n\n case \"w\":\n window.location = \"https://en.wikipedia.org/w/index.php?search=\" + subtext;\n break;\n\n case \"p\":\n window.location = \"https://app.plex.tv/desktop/#!/search?query=\" + subtext;\n break;\n\n case \"rt\":\n window.location = \"https://www.rottentomatoes.com/search?search=\" + subtext;\n break;\n\n default:\n break;\n }\n } else {\n let option = text.substr(1);\n\n switch (option) {\n case \"d\":\n window.location = \"https://www.duckduckgo.com\";\n break;\n\n case \"y\":\n window.location = \"https://www.youtube.com\";\n break;\n\n case \"r\":\n window.location = \"https://reddit.com\";\n break;\n\n case \"s\":\n window.location = \"https://open.spotify.com\";\n break;\n\n default:\n break;\n }\n }\n } else if (validURL(text)) {\n if (containsProtocol(text)) window.location = text;else window.location = \"https://\" + text;\n } else {\n window.location = \"https://www.google.com/search?q=\" + text;\n }\n}\n\nfunction validURL(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/)?' + // protocol\n '((([a-z\\\\d]([a-z\\\\d-]*[a-z\\\\d])*)\\\\.)+[a-z]{2,}|' + // domain name\n '((\\\\d{1,3}\\\\.){3}\\\\d{1,3}))' + // OR ip (v4) address\n '(\\\\:\\\\d+)?(\\\\/[-a-z\\\\d%_.~+]*)*' + // port and path\n '(\\\\?[;&a-z\\\\d%_.~+=-]*)?' + // query string\n '(\\\\#[-a-z\\\\d_]*)?$', 'i'); // fragment locator\n\n return !!pattern.test(str);\n}\n\nfunction containsProtocol(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/){1}.*', 'i');\n return !!pattern.test(str);\n}\n\nString.prototype.replaceAll = function (search, replacement) {\n var target = this;\n return target.split(search).join(replacement);\n};\n\nfunction udpateDisplayedItems(e) {\n localStorage.setItem('contenttype', e.target.checked);\n\n if (e.target.checked) {\n localStorage.setItem('content-display', 'none');\n } else {\n localStorage.setItem('content-display', 'block');\n }\n\n setDisplayedItems();\n}\n\nfunction setDisplayedItems() {\n setValueFromLocalStorage('contenttype');\n setValueFromLocalStorage('content-display');\n}\n\nvar _c, _c2, _c3, _c4, _c5, _c6, _c7, _c8, _c9, _c10, _c11, _c12, _c13;\n\n$RefreshReg$(_c, \"Homepage\");\n$RefreshReg$(_c2, \"Search\");\n$RefreshReg$(_c3, \"Header\");\n$RefreshReg$(_c4, \"Applications\");\n$RefreshReg$(_c5, \"App\");\n$RefreshReg$(_c6, \"Bookmarks\");\n$RefreshReg$(_c7, \"LinkGroups\");\n$RefreshReg$(_c8, \"LinkItem\");\n$RefreshReg$(_c9, \"ModalMenu\");\n$RefreshReg$(_c10, \"HideButton\");\n$RefreshReg$(_c11, \"Provider\");\n$RefreshReg$(_c12, \"ModalInit\");\n$RefreshReg$(_c13, \"Clock\");","map":{"version":3,"sources":["/home/seanedmunds/dev/home-page/src/index.js"],"names":["React","useState","useEffect","ReactDOM","setValueFromLocalStorage","property","value","localStorage","getItem","setValue","document","documentElement","style","setProperty","input","querySelector","replace","Homepage","setTheme","date","greet","Search","handleKeyPress","Header","props","Applications","appList","getApps","items","i","apps","length","safe","NSFW","NSFWEnabled","push","name","url","icon","App","classNameType","hrefUrl","iconName","Bookmarks","bookmarkList","getLinks","bookmarks","category","links","LinkGroups","LinkItem","link","ModalMenu","providers","getProviders","isChecked","console","log","updateTheme","HideButton","checked","udpateDisplayedItems","Provider","provider","prefix","ModalInit","setDisplayedItems","render","getElementById","currentDate","Date","dateOptions","weekday","year","month","day","toLocaleDateString","fixDigits","k","currentTime","Math","floor","getHours","easterEggChance","random","greetings","require","timeBased","easterEggs","messages","easteregg","concat","message","easterEggText","Clock","setDate","refreshClock","timerId","setInterval","cleanup","clearInterval","hour","minutes","getMinutes","midday","time","applications","getThemes","themes","e","themeName","target","innerHTML","toLowerCase","index","findIndex","item","setItem","imagebackground","colorbackground","colorserachbackground","colortextpri","colortextacc","colorborder","sindex","cycle","key","keyCode","which","text","replaceAll","option","substr","indexOf","subtext","search","preventDefault","stopPropagation","streamers","streamer","updateLabel","window","location","validURL","containsProtocol","str","pattern","RegExp","test","String","prototype","replacement","split","join"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { useState, useEffect } from 'react';\nimport ReactDOM from 'react-dom';\nimport './index.css';\n\nconst setValueFromLocalStorage = property => {\n let value = localStorage.getItem(property);\n setValue(property, value);\n};\nconst setValue = (property, value) => {\n if (value) {\n document.documentElement.style.setProperty(`--${property}`, value);\n\n const input = document.querySelector(`#${property}`);\n if (input) {\n value = value.replace('px', '');\n input.value = value;\n }\n }\n};\n\nfunction Homepage() {\n setTheme();\n \n return (\n \n \n \n
\n \n \n
\n \n \n \n
\n \n \n
\n \n \n
\n \n );\n}\n\nfunction Search() {\n return (\n \n )\n}\n\nfunction Header(props) {\n return (\n \n );\n}\n\nfunction Applications() {\n let appList = getApps();\n var items = [];\n for (var i = 0; i < appList.apps.length; i++) {\n var safe = appList.apps[i].NSFW;\n var NSFWEnabled = localStorage.getItem(\"contenttype\");\n if (safe === \"SAFE\") {\n items.push(\n \n );\n } else if (safe === \"NSFW\" && NSFWEnabled) {\n items.push(\n \n );\n } else {\n \n }\n \n }\n return (\n \n Applications
\n \n {items}\n
\n \n );\n}\n\nfunction App(props) {\n \n let classNameType = props.NSFW + \"-content\";\n let hrefUrl = \"https://\" + props.url;\n let iconName = \"mdi-\" + props.icon;\n return (\n \n );\n}\n\nfunction Bookmarks() {\n let bookmarkList = getLinks();\n var items = [];\n for (var i = 0; i < bookmarkList.bookmarks.length; i++) {\n items.push(\n \n );\n }\n return (\n \n Bookmarks
\n \n {items}\n
\n \n );\n}\n\nfunction LinkGroups(props) {\n var items = [];\n for (var i = 0; i < props.links.length; i++) {\n items.push(\n \n );\n }\n return (\n \n
{props.category}
\n {items}\n \n );\n}\n\nfunction LinkItem(props) {\n return (\n \n );\n}\n\nfunction ModalMenu() {\n var providers = getProviders();\n var items = [];\n var isChecked = localStorage.getItem(\"contenttype\");\n console.log(localStorage.getItem(\"contenttype\"));\n for (var i = 0; i < providers.providers.length; i++) {\n items.push(\n \n );\n }\n return (\n \n \n \n\n
Color themes
\n\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n\n\n
Search options
\n
\n \n \n \n | Website | \n Prefix | \n
\n {items}\n \n
\n \n\n \n
\n \n );\n}\n\nfunction HideButton(props) {\n console.log(props.checked);\n if(props.checked === \"true\") {\n console.log(\"icon should be grey\");\n return (\n \n
\n );\n } else {\n console.log(\"icon should be white\");\n return (\n \n
\n );\n }\n}\n\nfunction Provider(props) {\n return (\n \n | {props.provider.name} | \n {props.provider.prefix} | \n
\n );\n}\n\nfunction ModalInit() {\n setDisplayedItems();\n return (\n \n );\n}\n\nReactDOM.render(\n ,\n document.getElementById('root')\n);\n\n//Functions below this line are for calculating data for\n//other functions\n\nfunction date() {\n let currentDate = new Date();\n let dateOptions = {\n weekday: \"long\",\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\"\n };\n let date = currentDate.toLocaleDateString(\"en-GB\", dateOptions);\n return date;\n}\nfunction fixDigits(k) {\n if (k < 10) {\n return \"0\" + k;\n }\n else {\n return k;\n }\n}\nfunction greet() {\n let currentTime = new Date();\n let greet = Math.floor(currentTime.getHours() / 6);\n let easterEggChance = Math.floor(Math.random() * 100);\n let greetings = require('./messages.json');\n let timeBased = [];\n let easterEggs = [];\n for (var i = 0; i < greetings.messages.length; i++) {\n if (greetings.messages[i].easteregg === \"FALSE\") {\n timeBased = timeBased.concat(greetings.messages[i]);\n } else {\n easterEggs = easterEggs.concat(greetings.messages[i]);\n }\n }\n if (easterEggChance > 10) {\n return timeBased[greet].message;\n } else {\n let easterEggText = Math.floor(Math.random() * easterEggs.length);\n return easterEggs[easterEggText].message;\n }\n}\nfunction Clock() {\n const [date, setDate] = useState(new Date());\n\n function refreshClock() {\n setDate(new Date());\n }\n useEffect(() => {\n const timerId = setInterval(refreshClock, 1000);\n return function cleanup() {\n clearInterval(timerId);\n };\n }, []);\n\n var hour = date.getHours();\n var minutes = date.getMinutes();\n //var seconds = date.getSeconds();\n var midday = \"AM\";\n midday = (hour >= 12) ? \"PM\" : \"AM\";\n hour = (hour === 0) ? 12 : ((hour > 12) ? (hour - 12) : hour);\n minutes = fixDigits(minutes);\n //seconds = fixDigits(seconds);\n let time = hour + \":\" + minutes + \" \" + midday;\n\n return (\n {time}
\n\n );\n}\nfunction getApps() {\n let applications = require('./apps.json');\n return applications;\n}\nfunction getLinks() {\n let links = require('./links.json');\n return links;\n}\nfunction getProviders() {\n let providers = require('./providers.json');\n return providers;\n}\nfunction getThemes() {\n let themes = require('./themes.json');\n return themes;\n}\nfunction updateTheme(e) {\n var themes = getThemes();\n var themeName = e.target.innerHTML.toLowerCase();\n var index = themes.themes.findIndex(function(item, i){\n return item.name === themeName;\n });\n localStorage.setItem(\"image-background\", themes.themes[index].imagebackground);\n localStorage.setItem(\"color-background\", themes.themes[index].colorbackground);\n localStorage.setItem(\"color-search-background\", themes.themes[index].colorserachbackground);\n localStorage.setItem(\"color-text-pri\",themes.themes[index].colortextpri);\n localStorage.setItem(\"color-text-acc\", themes.themes[index].colortextacc);\n localStorage.setItem(\"color-border\", themes.themes[index].colorborder);\n \n //document.documentElement.style.setProperty(prop, `var(--${themeName}${prop.substring(10)})`);\n setTheme();\n}\nfunction setTheme() {\n setValueFromLocalStorage('image-background');\n setValueFromLocalStorage('color-background');\n setValueFromLocalStorage('color-search-background');\n setValueFromLocalStorage('color-text-pri');\n setValueFromLocalStorage('color-text-acc');\n setValueFromLocalStorage('color-border');\n setValueFromLocalStorage('content-display');\n}\nfunction handleKeyPress(e) {\n var sindex = 0;\n var cycle = false;\n var key = e.keyCode || e.which;\n var text = e.target.value.replaceAll(\"+\", \"%2B\");\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n if (key === 13) { // Search functions\n search(text);\n }\n if (key === 9) { // Tab Completion Functions\n e.preventDefault();\n e.stopPropagation();\n if (text[0] === ';') {\n switch (option) {\n case 't':\n var streamers = ['admiralbahroo', 'moonmoon_ow', 'witwix'];\n if (!subtext || cycle) {\n cycle = true;\n if (sindex > streamers.length - 1) sindex = 0;\n document.getElementById(\"keywords\").value = ';t ' + streamers[sindex++];\n return;\n }\n for (var streamer of streamers) {\n if (subtext === streamer.substr(0, subtext.length)) {\n document.getElementById(\"keywords\").value = ';t ' + streamer;\n return;\n }\n }\n break;\n default :\n break;\n }\n }\n }\n if(key === 32){ //Space to go to search\n updateLabel(text);\n }\n sindex = 0;\n cycle = false;\n updateLabel(text);\n}\nfunction updateLabel(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n if (text[0] === '/') {\n// if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n document.getElementById(\"searchType\").innerHTML = \"Allmusic search\";\n break;\n case \"d\":\n document.getElementById(\"searchType\").innerHTML = \"Duck Duck Go search\";\n break;\n case \"di\":\n document.getElementById(\"searchType\").innerHTML = \"Discogs search\";\n break;\n case \"i\":\n document.getElementById(\"searchType\").innerHTML = \"IMDB search\";\n break;\n case \"m\":\n document.getElementById(\"searchType\").innerHTML = \"TheMovieDB search\";\n break;\n case \"r\":\n document.getElementById(\"searchType\").innerHTML = \"Reddit search\";\n break;\n case \"q\":\n document.getElementById(\"searchType\").innerHTML = \"Qwant search\";\n break;\n case \"so\":\n document.getElementById(\"searchType\").innerHTML = \"Soundcloud search\";\n break;\n case \"s\":\n document.getElementById(\"searchType\").innerHTML = \"Spotify search\";\n break;\n case \"tv\":\n document.getElementById(\"searchType\").innerHTML = \"TheTVDB search\";\n break;\n case \"t\":\n document.getElementById(\"searchType\").innerHTML = \"Trakt search\";\n break;\n case \"y\":\n document.getElementById(\"searchType\").innerHTML = \"YouTube search\";\n break;\n case \"w\":\n document.getElementById(\"searchType\").innerHTML = \"Wikipedia search\";\n break;\n case \"p\":\n document.getElementById(\"searchType\").innerHTML = \"Plex search\";\n break;\n case \"rt\":\n document.getElementById(\"searchType\").innerHTML = \"Rotten Tomatoes search\";\n break;\n default:\n document.getElementById(\"searchType\").innerHTML = \"Invalid search\";\n break;\n }\n}else {\n document.getElementById(\"searchType\").innerHTML = \"Google search\";\n }\n}\nfunction search(text) {\n if (text[0] === '/') {\n if (text.indexOf(' ') > -1) {\n let option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n switch (option) {\n case \"am\":\n window.location = \"https://www.allmusic.com/search/all/\" + subtext;\n break;\n case \"d\":\n window.location = \"https://duckduckgo.com/?q=\" + subtext;\n break;\n case \"di\":\n window.location = \"https://www.discogs.com/search/?q=\" + subtext;\n break;\n case \"i\":\n window.location = \"https://www.imdb.com/find?q=\" + subtext;\n break;\n case \"m\":\n window.location = \"https://www.themoviedb.org/search?query=\" + subtext;\n break;\n case \"r\":\n window.location = \"https://www.reddit.com/search?q=\" + subtext;\n break;\n case \"q\":\n window.location = \"https://www.qwant.com/?q=\" + subtext;\n break;\n case \"so\":\n window.location = \"https://soundcloud.com/search?q=\" + subtext;\n break;\n case \"s\":\n window.location = \"https://open.spotify.com/search/results/\" + subtext;\n break;\n case \"t\":\n window.location = \"https://trakt.tv/search?query=\" + subtext;\n break;\n case \"tv\":\n window.location = \"https://www.thetvdb.com/search?query=\" + subtext;\n break;\n case \"y\":\n window.location = \"https://www.youtube.com/results?search_query=\" + subtext;\n break;\n case \"w\":\n window.location = \"https://en.wikipedia.org/w/index.php?search=\" + subtext;\n break;\n case \"p\":\n window.location = \"https://app.plex.tv/desktop/#!/search?query=\" + subtext;\n break;\n case \"rt\":\n window.location = \"https://www.rottentomatoes.com/search?search=\" + subtext;\n break;\n default :\n break;\n }\n } else {\n let option = text.substr(1);\n switch (option) {\n case \"d\":\n window.location = \"https://www.duckduckgo.com\";\n break;\n case \"y\":\n window.location = \"https://www.youtube.com\";\n break;\n case \"r\":\n window.location = \"https://reddit.com\";\n break;\n case \"s\":\n window.location = \"https://open.spotify.com\";\n break;\n default :\n break;\n }\n }\n } else if (validURL(text)) {\n if (containsProtocol(text))\n window.location = text;\n else\n window.location = \"https://\" + text;\n } else {\n window.location = \"https://www.google.com/search?q=\" + text;\n }\n}\nfunction validURL(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/)?' + // protocol\n '((([a-z\\\\d]([a-z\\\\d-]*[a-z\\\\d])*)\\\\.)+[a-z]{2,}|' + // domain name\n '((\\\\d{1,3}\\\\.){3}\\\\d{1,3}))' + // OR ip (v4) address\n '(\\\\:\\\\d+)?(\\\\/[-a-z\\\\d%_.~+]*)*' + // port and path\n '(\\\\?[;&a-z\\\\d%_.~+=-]*)?' + // query string\n '(\\\\#[-a-z\\\\d_]*)?$', 'i'); // fragment locator\n return !!pattern.test(str);\n}\nfunction containsProtocol(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/){1}.*', 'i');\n return !!pattern.test(str);\n}\nString.prototype.replaceAll = function(search, replacement) {\n var target = this;\n return target.split(search).join(replacement);\n};\nfunction udpateDisplayedItems(e) {\n localStorage.setItem('contenttype', e.target.checked);\n if (e.target.checked) {\n localStorage.setItem('content-display', 'none');\n } else {\n localStorage.setItem('content-display', 'block');\n }\n setDisplayedItems();\n}\nfunction setDisplayedItems() {\n setValueFromLocalStorage('contenttype');\n setValueFromLocalStorage('content-display');\n}"]},"metadata":{},"sourceType":"module"}
\ No newline at end of file
diff --git a/node_modules/.cache/babel-loader/d48804d26bc17a7db937462e32ac883c.json b/node_modules/.cache/babel-loader/d48804d26bc17a7db937462e32ac883c.json
new file mode 100644
index 00000000..f3ee4364
--- /dev/null
+++ b/node_modules/.cache/babel-loader/d48804d26bc17a7db937462e32ac883c.json
@@ -0,0 +1 @@
+{"ast":null,"code":"var _jsxFileName = \"/home/seanedmunds/dev/home-page/src/index.js\",\n _s = $RefreshSig$();\n\nimport React from 'react';\nimport { useState, useEffect } from 'react';\nimport ReactDOM from 'react-dom';\nimport './index.css';\nimport { jsxDEV as _jsxDEV } from \"react/jsx-dev-runtime\";\n\nconst setValueFromLocalStorage = property => {\n let value = localStorage.getItem(property);\n setValue(property, value);\n};\n\nconst setValue = (property, value) => {\n if (value) {\n document.documentElement.style.setProperty(`--${property}`, value);\n const input = document.querySelector(`#${property}`);\n\n if (input) {\n value = value.replace('px', '');\n input.value = value;\n }\n }\n};\n\nfunction Homepage() {\n setTheme();\n return /*#__PURE__*/_jsxDEV(\"main\", {\n id: \"container\",\n className: \"fade\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Search, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 28,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 27,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Header, {\n date: date(),\n greet: greet()\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 31,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 30,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Applications, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 37,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 36,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Bookmarks, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 40,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 39,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(ModalMenu, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 43,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 42,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(ModalInit, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 46,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 45,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 26,\n columnNumber: 5\n }, this);\n}\n\n_c = Homepage;\n\nfunction Search() {\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"search\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"abackground\",\n children: [/*#__PURE__*/_jsxDEV(\"input\", {\n name: \"keywords\",\n type: \"text\",\n className: \"keyword\",\n id: \"keywords\",\n size: \"50\",\n spellCheck: \"true\",\n placeholder: \"\"\n /*onFocus={this.placeholder = \"\"} onBlur={this.placeholder = ''}*/\n ,\n autoComplete: \"off\",\n autoFocus: true,\n onKeyUp: handleKeyPress\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 56,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n id: \"searchType\",\n className: \"Input-label\",\n children: \"Google search\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 57,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 55,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 54,\n columnNumber: 5\n }, this);\n}\n\n_c2 = Search;\n\nfunction Header(props) {\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"header\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n id: \"greeting_block\",\n children: /*#__PURE__*/_jsxDEV(\"h1\", {\n id: \"header_greet\",\n children: props.greet\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 67,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 66,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"date_block\",\n children: [/*#__PURE__*/_jsxDEV(\"h2\", {\n id: \"header_date\",\n children: props.date\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 70,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(Clock, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 71,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 69,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 65,\n columnNumber: 5\n }, this);\n}\n\n_c3 = Header;\n\nfunction Applications() {\n let appList = getApps();\n var items = [];\n\n for (var i = 0; i < appList.apps.length; i++) {\n var safe = appList.apps[i].NSFW;\n var NSFWEnabled = localStorage.getItem(\"contenttype\");\n\n if (safe === \"SAFE\") {\n items.push( /*#__PURE__*/_jsxDEV(App, {\n name: appList.apps[i].name,\n url: appList.apps[i].url,\n icon: appList.apps[i].icon,\n NSFW: appList.apps[i].NSFW\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 85,\n columnNumber: 9\n }, this));\n } else if (safe === \"NSFW\" && NSFWEnabled) {\n items.push( /*#__PURE__*/_jsxDEV(App, {\n name: appList.apps[i].name,\n url: appList.apps[i].url,\n icon: appList.apps[i].icon,\n NSFW: appList.apps[i].NSFW\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 95,\n columnNumber: 9\n }, this));\n } else {}\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"apps\",\n children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n children: \"Applications\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 110,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"apps_loop\",\n children: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 111,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 109,\n columnNumber: 5\n }, this);\n}\n\n_c4 = Applications;\n\nfunction App(props) {\n let classNameType = props.NSFW + \"-content\";\n let hrefUrl = \"https://\" + props.url;\n let iconName = \"mdi-\" + props.icon;\n return /*#__PURE__*/_jsxDEV(\"div\", {\n className: classNameType,\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: hrefUrl,\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_item\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_icon\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify icon\",\n \"data-icon\": iconName\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 128,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 127,\n columnNumber: 13\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_text\",\n children: [/*#__PURE__*/_jsxDEV(\"span\", {\n id: \"app-name\",\n children: props.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 131,\n columnNumber: 15\n }, this), /*#__PURE__*/_jsxDEV(\"span\", {\n id: \"app-address\",\n children: props.url\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 132,\n columnNumber: 15\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 130,\n columnNumber: 13\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 126,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 125,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 124,\n columnNumber: 7\n }, this);\n}\n\n_c5 = App;\n\nfunction Bookmarks() {\n let bookmarkList = getLinks();\n var items = [];\n\n for (var i = 0; i < bookmarkList.bookmarks.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(LinkGroups, {\n category: bookmarkList.bookmarks[i].category,\n links: bookmarkList.bookmarks[i].links\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 145,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"links\",\n children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n children: \"Bookmarks\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 154,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"links_loop\",\n children: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 155,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 153,\n columnNumber: 5\n }, this);\n}\n\n_c6 = Bookmarks;\n\nfunction LinkGroups(props) {\n var items = [];\n\n for (var i = 0; i < props.links.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(LinkItem, {\n link: props.links[i]\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 166,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"links_item\",\n children: [/*#__PURE__*/_jsxDEV(\"h4\", {\n children: props.category\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 174,\n columnNumber: 7\n }, this), items]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 173,\n columnNumber: 5\n }, this);\n}\n\n_c7 = LinkGroups;\n\nfunction LinkItem(props) {\n return /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: props.link.url,\n className: \"theme_color-border theme_text-select\",\n children: props.link.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 183,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 182,\n columnNumber: 5\n }, this);\n}\n\n_c8 = LinkItem;\n\nfunction ModalMenu() {\n var providers = getProviders();\n var items = [];\n\n for (var i = 0; i < providers.providers.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(Provider, {\n provider: providers.providers[i]\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 193,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"modal\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n children: [/*#__PURE__*/_jsxDEV(\"header\", {\n id: \"modal-header\",\n children: [/*#__PURE__*/_jsxDEV(\"h1\", {\n children: \"Options\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 203,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n href: \"#\",\n title: \"Close\",\n className: \"modal-close\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-close\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 205,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 204,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 202,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"h2\", {\n children: \"Color themes\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 209,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"modal-theme\",\n children: [/*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"blackboard\",\n className: \"theme-button theme-blackboard\",\n onClick: updateTheme,\n children: \"Blackboard\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 212,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"gazette\",\n className: \"theme-button theme-gazette\",\n onClick: updateTheme,\n children: \"Gazette\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 213,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"espresso\",\n className: \"theme-button theme-espresso\",\n onClick: updateTheme,\n children: \"Espresso\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 214,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cab\",\n className: \"theme-button theme-cab\",\n onClick: updateTheme,\n children: \"Cab\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 215,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cloud\",\n className: \"theme-button theme-cloud\",\n onClick: updateTheme,\n children: \"Cloud\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 216,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"lime\",\n className: \"theme-button theme-lime\",\n onClick: updateTheme,\n children: \"Lime\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 217,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"passion\",\n className: \"theme-button theme-passion\",\n onClick: updateTheme,\n children: \"Passion\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 218,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"blues\",\n className: \"theme-button theme-blues\",\n onClick: updateTheme,\n children: \"Blues\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 219,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"chalk\",\n className: \"theme-button theme-chalk\",\n onClick: updateTheme,\n children: \"Chalk\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 220,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"tron\",\n className: \"theme-button theme-tron\",\n onClick: updateTheme,\n children: \"Tron\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 221,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"paper\",\n className: \"theme-button theme-paper\",\n onClick: updateTheme,\n children: \"Paper\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 222,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cyberpunk\",\n className: \"theme-button theme-cyberpunk\",\n onClick: updateTheme,\n children: \"Cyberpunk\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 223,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"quadra\",\n className: \"theme-button theme-panam\",\n onClick: updateTheme,\n children: \"Quadra\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 224,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"panam\",\n className: \"theme-button theme-panam\",\n onClick: updateTheme,\n children: \"Panam\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 225,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"touch\",\n className: \"theme-button theme-touch\",\n onClick: updateTheme,\n children: \"Touch\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 226,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"peek\",\n className: \"theme-button theme-peek\",\n onClick: updateTheme,\n children: \"Peek\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 227,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 211,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"h2\", {\n children: \"Search options\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 231,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"providers\",\n children: /*#__PURE__*/_jsxDEV(\"table\", {\n children: /*#__PURE__*/_jsxDEV(\"tbody\", {\n children: [/*#__PURE__*/_jsxDEV(\"tr\", {\n children: [/*#__PURE__*/_jsxDEV(\"th\", {\n children: \"Website\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 236,\n columnNumber: 19\n }, this), /*#__PURE__*/_jsxDEV(\"th\", {\n children: \"Prefix\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 237,\n columnNumber: 19\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 235,\n columnNumber: 17\n }, this), items]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 234,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 233,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 232,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"header\", {\n id: \"modal-footer\",\n children: [/*#__PURE__*/_jsxDEV(\"a\", {\n href: \"https://github.com/jeroenpardon/\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-github-box\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 245,\n columnNumber: 54\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 245,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n href: \"https://materialdesignicons.com/\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-material-design\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 246,\n columnNumber: 54\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 246,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(HideButton, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 247,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 244,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 201,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 200,\n columnNumber: 5\n }, this);\n}\n\n_c9 = ModalMenu;\n\nfunction HideButton() {\n return /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"sneaky\",\n children: [/*#__PURE__*/_jsxDEV(\"input\", {\n type: \"checkbox\",\n id: \"contenttype\",\n onClick: udpateDisplayedItems\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 257,\n columnNumber: 29\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n for: \"contenttype\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-domino-mask\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 258,\n columnNumber: 30\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 258,\n columnNumber: 5\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 257,\n columnNumber: 5\n }, this);\n}\n\n_c10 = HideButton;\n\nfunction Provider(props) {\n return /*#__PURE__*/_jsxDEV(\"tr\", {\n children: [/*#__PURE__*/_jsxDEV(\"td\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: props.provider.url,\n children: props.provider.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 265,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 265,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"td\", {\n children: props.provider.prefix\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 266,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 264,\n columnNumber: 5\n }, this);\n}\n\n_c11 = Provider;\n\nfunction ModalInit() {\n setDisplayedItems();\n return /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"modal_init\",\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n className: \"btn\",\n href: \"#modal\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify icon\",\n \"data-icon\": \"mdi-xbox-controller-menu\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 276,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 275,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 274,\n columnNumber: 5\n }, this);\n}\n\n_c12 = ModalInit;\nReactDOM.render( /*#__PURE__*/_jsxDEV(Homepage, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 283,\n columnNumber: 3\n}, this), document.getElementById('root')); //Functions below this line are for calculating data for\n//other functions\n\nfunction date() {\n let currentDate = new Date();\n let dateOptions = {\n weekday: \"long\",\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\"\n };\n let date = currentDate.toLocaleDateString(\"en-GB\", dateOptions);\n return date;\n}\n\nfunction fixDigits(k) {\n if (k < 10) {\n return \"0\" + k;\n } else {\n return k;\n }\n}\n\nfunction greet() {\n let currentTime = new Date();\n let greet = Math.floor(currentTime.getHours() / 6);\n let easterEggChance = Math.floor(Math.random() * 100);\n\n let greetings = require('./messages.json');\n\n let timeBased = [];\n let easterEggs = [];\n\n for (var i = 0; i < greetings.messages.length; i++) {\n if (greetings.messages[i].easteregg === \"FALSE\") {\n timeBased = timeBased.concat(greetings.messages[i]);\n } else {\n easterEggs = easterEggs.concat(greetings.messages[i]);\n }\n }\n\n if (easterEggChance > 10) {\n return timeBased[greet].message;\n } else {\n let easterEggText = Math.floor(Math.random() * easterEggs.length);\n return easterEggs[easterEggText].message;\n }\n}\n\nfunction Clock() {\n _s();\n\n const [date, setDate] = useState(new Date());\n\n function refreshClock() {\n setDate(new Date());\n }\n\n useEffect(() => {\n const timerId = setInterval(refreshClock, 1000);\n return function cleanup() {\n clearInterval(timerId);\n };\n }, []);\n var hour = date.getHours();\n var minutes = date.getMinutes(); //var seconds = date.getSeconds();\n\n var midday = \"AM\";\n midday = hour >= 12 ? \"PM\" : \"AM\";\n hour = hour === 0 ? 12 : hour > 12 ? hour - 12 : hour;\n minutes = fixDigits(minutes); //seconds = fixDigits(seconds);\n\n let time = hour + \":\" + minutes + \" \" + midday;\n return /*#__PURE__*/_jsxDEV(\"h2\", {\n id: \"clock\",\n children: time\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 354,\n columnNumber: 5\n }, this);\n}\n\n_s(Clock, \"Gqi45WOZhU2c0BLYX0HoJeiR0fk=\");\n\n_c13 = Clock;\n\nfunction getApps() {\n let applications = require('./apps.json');\n\n return applications;\n}\n\nfunction getLinks() {\n let links = require('./links.json');\n\n return links;\n}\n\nfunction getProviders() {\n let providers = require('./providers.json');\n\n return providers;\n}\n\nfunction getThemes() {\n let themes = require('./themes.json');\n\n return themes;\n}\n\nfunction updateTheme(e) {\n var themes = getThemes();\n var themeName = e.target.innerHTML.toLowerCase();\n var index = themes.themes.findIndex(function (item, i) {\n return item.name === themeName;\n });\n localStorage.setItem(\"image-background\", themes.themes[index].imagebackground);\n localStorage.setItem(\"color-background\", themes.themes[index].colorbackground);\n localStorage.setItem(\"color-search-background\", themes.themes[index].colorserachbackground);\n localStorage.setItem(\"color-text-pri\", themes.themes[index].colortextpri);\n localStorage.setItem(\"color-text-acc\", themes.themes[index].colortextacc);\n localStorage.setItem(\"color-border\", themes.themes[index].colorborder); //document.documentElement.style.setProperty(prop, `var(--${themeName}${prop.substring(10)})`);\n\n setTheme();\n}\n\nfunction setTheme() {\n setValueFromLocalStorage('image-background');\n setValueFromLocalStorage('color-background');\n setValueFromLocalStorage('color-search-background');\n setValueFromLocalStorage('color-text-pri');\n setValueFromLocalStorage('color-text-acc');\n setValueFromLocalStorage('color-border');\n setValueFromLocalStorage('content-display');\n}\n\nfunction handleKeyPress(e) {\n var sindex = 0;\n var cycle = false;\n var key = e.keyCode || e.which;\n var text = e.target.value.replaceAll(\"+\", \"%2B\");\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n\n if (key == 13) {\n // Search functions\n search(text);\n }\n\n if (key == 9) {\n // Tab Completion Functions\n e.preventDefault();\n e.stopPropagation();\n\n if (text[0] === ';') {\n switch (option) {\n case 't':\n var streamers = ['admiralbahroo', 'moonmoon_ow', 'witwix'];\n\n if (!subtext || cycle) {\n cycle = true;\n if (sindex > streamers.length - 1) sindex = 0;\n document.getElementById(\"keywords\").value = ';t ' + streamers[sindex++];\n return;\n }\n\n for (var streamer of streamers) {\n if (subtext === streamer.substr(0, subtext.length)) {\n document.getElementById(\"keywords\").value = ';t ' + streamer;\n return;\n }\n }\n\n break;\n }\n }\n }\n\n if (key == 32) {\n //Space to go to search\n updateLabel(text);\n }\n\n sindex = 0;\n cycle = false;\n updateLabel(text);\n}\n\nfunction updateLabel(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n\n if (text[0] === '/') {\n // if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n document.getElementById(\"searchType\").innerHTML = \"Allmusic search\";\n break;\n\n case \"d\":\n document.getElementById(\"searchType\").innerHTML = \"Duck Duck Go search\";\n break;\n\n case \"di\":\n document.getElementById(\"searchType\").innerHTML = \"Discogs search\";\n break;\n\n case \"i\":\n document.getElementById(\"searchType\").innerHTML = \"IMDB search\";\n break;\n\n case \"m\":\n document.getElementById(\"searchType\").innerHTML = \"TheMovieDB search\";\n break;\n\n case \"r\":\n document.getElementById(\"searchType\").innerHTML = \"Reddit search\";\n break;\n\n case \"q\":\n document.getElementById(\"searchType\").innerHTML = \"Qwant search\";\n break;\n\n case \"so\":\n document.getElementById(\"searchType\").innerHTML = \"Soundcloud search\";\n break;\n\n case \"s\":\n document.getElementById(\"searchType\").innerHTML = \"Spotify search\";\n break;\n\n case \"tv\":\n document.getElementById(\"searchType\").innerHTML = \"TheTVDB search\";\n break;\n\n case \"t\":\n document.getElementById(\"searchType\").innerHTML = \"Trakt search\";\n break;\n\n case \"y\":\n document.getElementById(\"searchType\").innerHTML = \"YouTube search\";\n break;\n\n case \"w\":\n document.getElementById(\"searchType\").innerHTML = \"Wikipedia search\";\n break;\n\n case \"p\":\n document.getElementById(\"searchType\").innerHTML = \"Plex search\";\n break;\n\n case \"rt\":\n document.getElementById(\"searchType\").innerHTML = \"Rotten Tomatoes search\";\n break;\n\n default:\n document.getElementById(\"searchType\").innerHTML = \"Invalid search\";\n break;\n }\n } else {\n document.getElementById(\"searchType\").innerHTML = \"Google search\";\n }\n}\n\nfunction search(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n\n if (text[0] === '/') {\n if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n window.location = \"https://www.allmusic.com/search/all/\" + subtext;\n break;\n\n case \"d\":\n window.location = \"https://duckduckgo.com/?q=\" + subtext;\n break;\n\n case \"di\":\n window.location = \"https://www.discogs.com/search/?q=\" + subtext;\n break;\n\n case \"i\":\n window.location = \"https://www.imdb.com/find?q=\" + subtext;\n break;\n\n case \"m\":\n window.location = \"https://www.themoviedb.org/search?query=\" + subtext;\n break;\n\n case \"r\":\n window.location = \"https://www.reddit.com/search?q=\" + subtext;\n break;\n\n case \"q\":\n window.location = \"https://www.qwant.com/?q=\" + subtext;\n break;\n\n case \"so\":\n window.location = \"https://soundcloud.com/search?q=\" + subtext;\n break;\n\n case \"s\":\n window.location = \"https://open.spotify.com/search/results/\" + subtext;\n break;\n\n case \"t\":\n window.location = \"https://trakt.tv/search?query=\" + subtext;\n break;\n\n case \"tv\":\n window.location = \"https://www.thetvdb.com/search?query=\" + subtext;\n break;\n\n case \"y\":\n window.location = \"https://www.youtube.com/results?search_query=\" + subtext;\n break;\n\n case \"w\":\n window.location = \"https://en.wikipedia.org/w/index.php?search=\" + subtext;\n break;\n\n case \"p\":\n window.location = \"https://app.plex.tv/desktop/#!/search?query=\" + subtext;\n break;\n\n case \"rt\":\n window.location = \"https://www.rottentomatoes.com/search?search=\" + subtext;\n break;\n }\n } else {\n var option = text.substr(1);\n\n switch (option) {\n case \"d\":\n window.location = \"https://www.duckduckgo.com\";\n break;\n\n case \"y\":\n window.location = \"https://www.youtube.com\";\n break;\n\n case \"r\":\n window.location = \"https://reddit.com\";\n break;\n\n case \"s\":\n window.location = \"https://open.spotify.com\";\n break;\n }\n }\n } else if (validURL(text)) {\n if (containsProtocol(text)) window.location = text;else window.location = \"https://\" + text;\n } else {\n window.location = \"https://www.google.com/search?q=\" + text;\n }\n}\n\nfunction validURL(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/)?' + // protocol\n '((([a-z\\\\d]([a-z\\\\d-]*[a-z\\\\d])*)\\\\.)+[a-z]{2,}|' + // domain name\n '((\\\\d{1,3}\\\\.){3}\\\\d{1,3}))' + // OR ip (v4) address\n '(\\\\:\\\\d+)?(\\\\/[-a-z\\\\d%_.~+]*)*' + // port and path\n '(\\\\?[;&a-z\\\\d%_.~+=-]*)?' + // query string\n '(\\\\#[-a-z\\\\d_]*)?$', 'i'); // fragment locator\n\n return !!pattern.test(str);\n}\n\nfunction containsProtocol(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/){1}.*', 'i');\n return !!pattern.test(str);\n}\n\nString.prototype.replaceAll = function (search, replacement) {\n var target = this;\n return target.split(search).join(replacement);\n};\n\nfunction udpateDisplayedItems(e) {\n localStorage.setItem('contenttype', e.target.checked);\n\n if (e.target.checked) {\n localStorage.setItem('content-display', 'none');\n } else {\n localStorage.setItem('content-display', 'block');\n }\n\n setDisplayedItems();\n}\n\nfunction setDisplayedItems() {\n setValueFromLocalStorage('contenttype');\n setValueFromLocalStorage('content-display');\n}\n\nvar _c, _c2, _c3, _c4, _c5, _c6, _c7, _c8, _c9, _c10, _c11, _c12, _c13;\n\n$RefreshReg$(_c, \"Homepage\");\n$RefreshReg$(_c2, \"Search\");\n$RefreshReg$(_c3, \"Header\");\n$RefreshReg$(_c4, \"Applications\");\n$RefreshReg$(_c5, \"App\");\n$RefreshReg$(_c6, \"Bookmarks\");\n$RefreshReg$(_c7, \"LinkGroups\");\n$RefreshReg$(_c8, \"LinkItem\");\n$RefreshReg$(_c9, \"ModalMenu\");\n$RefreshReg$(_c10, \"HideButton\");\n$RefreshReg$(_c11, \"Provider\");\n$RefreshReg$(_c12, \"ModalInit\");\n$RefreshReg$(_c13, \"Clock\");","map":{"version":3,"sources":["/home/seanedmunds/dev/home-page/src/index.js"],"names":["React","useState","useEffect","ReactDOM","setValueFromLocalStorage","property","value","localStorage","getItem","setValue","document","documentElement","style","setProperty","input","querySelector","replace","Homepage","setTheme","date","greet","Search","handleKeyPress","Header","props","Applications","appList","getApps","items","i","apps","length","safe","NSFW","NSFWEnabled","push","name","url","icon","App","classNameType","hrefUrl","iconName","Bookmarks","bookmarkList","getLinks","bookmarks","category","links","LinkGroups","LinkItem","link","ModalMenu","providers","getProviders","updateTheme","HideButton","udpateDisplayedItems","Provider","provider","prefix","ModalInit","setDisplayedItems","render","getElementById","currentDate","Date","dateOptions","weekday","year","month","day","toLocaleDateString","fixDigits","k","currentTime","Math","floor","getHours","easterEggChance","random","greetings","require","timeBased","easterEggs","messages","easteregg","concat","message","easterEggText","Clock","setDate","refreshClock","timerId","setInterval","cleanup","clearInterval","hour","minutes","getMinutes","midday","time","applications","getThemes","themes","e","themeName","target","innerHTML","toLowerCase","index","findIndex","item","setItem","imagebackground","colorbackground","colorserachbackground","colortextpri","colortextacc","colorborder","sindex","cycle","key","keyCode","which","text","replaceAll","option","substr","indexOf","subtext","search","preventDefault","stopPropagation","streamers","streamer","updateLabel","window","location","validURL","containsProtocol","str","pattern","RegExp","test","String","prototype","replacement","split","join","checked"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { useState, useEffect } from 'react';\nimport ReactDOM from 'react-dom';\nimport './index.css';\n\nconst setValueFromLocalStorage = property => {\n let value = localStorage.getItem(property);\n setValue(property, value);\n};\nconst setValue = (property, value) => {\n if (value) {\n document.documentElement.style.setProperty(`--${property}`, value);\n\n const input = document.querySelector(`#${property}`);\n if (input) {\n value = value.replace('px', '');\n input.value = value;\n }\n }\n};\n\nfunction Homepage() {\n setTheme();\n \n return (\n \n \n \n
\n \n \n
\n \n \n \n
\n \n \n
\n \n \n
\n \n );\n}\n\nfunction Search() {\n return (\n \n )\n}\n\nfunction Header(props) {\n return (\n \n );\n}\n\nfunction Applications() {\n let appList = getApps();\n var items = [];\n for (var i = 0; i < appList.apps.length; i++) {\n var safe = appList.apps[i].NSFW;\n var NSFWEnabled = localStorage.getItem(\"contenttype\");\n if (safe === \"SAFE\") {\n items.push(\n \n );\n } else if (safe === \"NSFW\" && NSFWEnabled) {\n items.push(\n \n );\n } else {\n \n }\n \n }\n return (\n \n Applications
\n \n {items}\n
\n \n );\n}\n\nfunction App(props) {\n \n let classNameType = props.NSFW + \"-content\";\n let hrefUrl = \"https://\" + props.url;\n let iconName = \"mdi-\" + props.icon;\n return (\n \n );\n}\n\nfunction Bookmarks() {\n let bookmarkList = getLinks();\n var items = [];\n for (var i = 0; i < bookmarkList.bookmarks.length; i++) {\n items.push(\n \n );\n }\n return (\n \n Bookmarks
\n \n {items}\n
\n \n );\n}\n\nfunction LinkGroups(props) {\n var items = [];\n for (var i = 0; i < props.links.length; i++) {\n items.push(\n \n );\n }\n return (\n \n
{props.category}
\n {items}\n \n );\n}\n\nfunction LinkItem(props) {\n return (\n \n );\n}\n\nfunction ModalMenu() {\n var providers = getProviders();\n var items = [];\n for (var i = 0; i < providers.providers.length; i++) {\n items.push(\n \n );\n }\n return (\n \n \n \n\n
Color themes
\n\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n\n\n
Search options
\n
\n \n \n \n | Website | \n Prefix | \n
\n {items}\n \n
\n \n\n \n
\n \n );\n}\n\nfunction HideButton() {\n \n return (\n \n
\n );\n}\n\nfunction Provider(props) {\n return (\n \n | {props.provider.name} | \n {props.provider.prefix} | \n
\n );\n}\n\nfunction ModalInit() {\n setDisplayedItems();\n return (\n \n );\n}\n\nReactDOM.render(\n ,\n document.getElementById('root')\n);\n\n//Functions below this line are for calculating data for\n//other functions\n\nfunction date() {\n let currentDate = new Date();\n let dateOptions = {\n weekday: \"long\",\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\"\n };\n let date = currentDate.toLocaleDateString(\"en-GB\", dateOptions);\n return date;\n}\nfunction fixDigits(k) {\n if (k < 10) {\n return \"0\" + k;\n }\n else {\n return k;\n }\n}\nfunction greet() {\n let currentTime = new Date();\n let greet = Math.floor(currentTime.getHours() / 6);\n let easterEggChance = Math.floor(Math.random() * 100);\n let greetings = require('./messages.json');\n let timeBased = [];\n let easterEggs = [];\n for (var i = 0; i < greetings.messages.length; i++) {\n if (greetings.messages[i].easteregg === \"FALSE\") {\n timeBased = timeBased.concat(greetings.messages[i]);\n } else {\n easterEggs = easterEggs.concat(greetings.messages[i]);\n }\n }\n if (easterEggChance > 10) {\n return timeBased[greet].message;\n } else {\n let easterEggText = Math.floor(Math.random() * easterEggs.length);\n return easterEggs[easterEggText].message;\n }\n}\nfunction Clock() {\n const [date, setDate] = useState(new Date());\n\n function refreshClock() {\n setDate(new Date());\n }\n useEffect(() => {\n const timerId = setInterval(refreshClock, 1000);\n return function cleanup() {\n clearInterval(timerId);\n };\n }, []);\n\n var hour = date.getHours();\n var minutes = date.getMinutes();\n //var seconds = date.getSeconds();\n var midday = \"AM\";\n midday = (hour >= 12) ? \"PM\" : \"AM\";\n hour = (hour === 0) ? 12 : ((hour > 12) ? (hour - 12) : hour);\n minutes = fixDigits(minutes);\n //seconds = fixDigits(seconds);\n let time = hour + \":\" + minutes + \" \" + midday;\n\n return (\n {time}
\n\n );\n}\nfunction getApps() {\n let applications = require('./apps.json');\n return applications;\n}\nfunction getLinks() {\n let links = require('./links.json');\n return links;\n}\nfunction getProviders() {\n let providers = require('./providers.json');\n return providers;\n}\nfunction getThemes() {\n let themes = require('./themes.json');\n return themes;\n}\nfunction updateTheme(e) {\n var themes = getThemes();\n var themeName = e.target.innerHTML.toLowerCase();\n var index = themes.themes.findIndex(function(item, i){\n return item.name === themeName\n });\n localStorage.setItem(\"image-background\", themes.themes[index].imagebackground);\n localStorage.setItem(\"color-background\", themes.themes[index].colorbackground);\n localStorage.setItem(\"color-search-background\", themes.themes[index].colorserachbackground);\n localStorage.setItem(\"color-text-pri\",themes.themes[index].colortextpri);\n localStorage.setItem(\"color-text-acc\", themes.themes[index].colortextacc);\n localStorage.setItem(\"color-border\", themes.themes[index].colorborder);\n \n //document.documentElement.style.setProperty(prop, `var(--${themeName}${prop.substring(10)})`);\n setTheme();\n}\nfunction setTheme() {\n setValueFromLocalStorage('image-background');\n setValueFromLocalStorage('color-background');\n setValueFromLocalStorage('color-search-background');\n setValueFromLocalStorage('color-text-pri');\n setValueFromLocalStorage('color-text-acc');\n setValueFromLocalStorage('color-border');\n setValueFromLocalStorage('content-display');\n}\nfunction handleKeyPress(e) {\n var sindex = 0;\n var cycle = false;\n var key = e.keyCode || e.which;\n var text = e.target.value.replaceAll(\"+\", \"%2B\");\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n if (key == 13) { // Search functions\n search(text);\n }\n if (key == 9) { // Tab Completion Functions\n e.preventDefault();\n e.stopPropagation();\n if (text[0] === ';') {\n switch (option) {\n case 't':\n var streamers = ['admiralbahroo', 'moonmoon_ow', 'witwix'];\n if (!subtext || cycle) {\n cycle = true;\n if (sindex > streamers.length - 1) sindex = 0;\n document.getElementById(\"keywords\").value = ';t ' + streamers[sindex++];\n return;\n }\n for (var streamer of streamers) {\n if (subtext === streamer.substr(0, subtext.length)) {\n document.getElementById(\"keywords\").value = ';t ' + streamer;\n return;\n }\n }\n break;\n }\n }\n }\n if(key == 32){ //Space to go to search\nupdateLabel(text);\n }\n sindex = 0;\n cycle = false;\n updateLabel(text);\n}\nfunction updateLabel(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n if (text[0] === '/') {\n// if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n document.getElementById(\"searchType\").innerHTML = \"Allmusic search\";\n break;\n case \"d\":\n document.getElementById(\"searchType\").innerHTML = \"Duck Duck Go search\";\n break;\n case \"di\":\n document.getElementById(\"searchType\").innerHTML = \"Discogs search\";\n break;\n case \"i\":\n document.getElementById(\"searchType\").innerHTML = \"IMDB search\";\n break;\n case \"m\":\n document.getElementById(\"searchType\").innerHTML = \"TheMovieDB search\";\n break;\n case \"r\":\n document.getElementById(\"searchType\").innerHTML = \"Reddit search\";\n break;\n case \"q\":\n document.getElementById(\"searchType\").innerHTML = \"Qwant search\";\n break;\n case \"so\":\n document.getElementById(\"searchType\").innerHTML = \"Soundcloud search\";\n break;\n case \"s\":\n document.getElementById(\"searchType\").innerHTML = \"Spotify search\";\n break;\n case \"tv\":\n document.getElementById(\"searchType\").innerHTML = \"TheTVDB search\";\n break;\n case \"t\":\n document.getElementById(\"searchType\").innerHTML = \"Trakt search\";\n break;\n case \"y\":\n document.getElementById(\"searchType\").innerHTML = \"YouTube search\";\n break;\n case \"w\":\n document.getElementById(\"searchType\").innerHTML = \"Wikipedia search\";\n break;\n case \"p\":\n document.getElementById(\"searchType\").innerHTML = \"Plex search\";\n break;\n case \"rt\":\n document.getElementById(\"searchType\").innerHTML = \"Rotten Tomatoes search\";\n break;\n default:\n document.getElementById(\"searchType\").innerHTML = \"Invalid search\";\n break;\n }\n}else {\n document.getElementById(\"searchType\").innerHTML = \"Google search\";\n }\n}\nfunction search(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n if (text[0] === '/') {\n if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n window.location = \"https://www.allmusic.com/search/all/\" + subtext;\n break;\n case \"d\":\n window.location = \"https://duckduckgo.com/?q=\" + subtext;\n break;\n case \"di\":\n window.location = \"https://www.discogs.com/search/?q=\" + subtext;\n break;\n case \"i\":\n window.location = \"https://www.imdb.com/find?q=\" + subtext;\n break;\n case \"m\":\n window.location = \"https://www.themoviedb.org/search?query=\" + subtext;\n break;\n case \"r\":\n window.location = \"https://www.reddit.com/search?q=\" + subtext;\n break;\n case \"q\":\n window.location = \"https://www.qwant.com/?q=\" + subtext;\n break;\n case \"so\":\n window.location = \"https://soundcloud.com/search?q=\" + subtext;\n break;\n case \"s\":\n window.location = \"https://open.spotify.com/search/results/\" + subtext;\n break;\n case \"t\":\n window.location = \"https://trakt.tv/search?query=\" + subtext;\n break;\n case \"tv\":\n window.location = \"https://www.thetvdb.com/search?query=\" + subtext;\n break;\n case \"y\":\n window.location = \"https://www.youtube.com/results?search_query=\" + subtext;\n break;\n case \"w\":\n window.location = \"https://en.wikipedia.org/w/index.php?search=\" + subtext;\n break;\n case \"p\":\n window.location = \"https://app.plex.tv/desktop/#!/search?query=\" + subtext;\n break;\n case \"rt\":\n window.location = \"https://www.rottentomatoes.com/search?search=\" + subtext;\n break;\n }\n } else {\n var option = text.substr(1);\n switch (option) {\n case \"d\":\n window.location = \"https://www.duckduckgo.com\";\n break;\n case \"y\":\n window.location = \"https://www.youtube.com\";\n break;\n case \"r\":\n window.location = \"https://reddit.com\";\n break;\n case \"s\":\n window.location = \"https://open.spotify.com\";\n break;\n }\n }\n } else if (validURL(text)) {\n if (containsProtocol(text))\n window.location = text;\n else\n window.location = \"https://\" + text;\n } else {\n window.location = \"https://www.google.com/search?q=\" + text;\n }\n}\nfunction validURL(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/)?' + // protocol\n '((([a-z\\\\d]([a-z\\\\d-]*[a-z\\\\d])*)\\\\.)+[a-z]{2,}|' + // domain name\n '((\\\\d{1,3}\\\\.){3}\\\\d{1,3}))' + // OR ip (v4) address\n '(\\\\:\\\\d+)?(\\\\/[-a-z\\\\d%_.~+]*)*' + // port and path\n '(\\\\?[;&a-z\\\\d%_.~+=-]*)?' + // query string\n '(\\\\#[-a-z\\\\d_]*)?$', 'i'); // fragment locator\n return !!pattern.test(str);\n}\nfunction containsProtocol(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/){1}.*', 'i');\n return !!pattern.test(str);\n}\nString.prototype.replaceAll = function(search, replacement) {\n var target = this;\n return target.split(search).join(replacement);\n};\nfunction udpateDisplayedItems(e) {\n localStorage.setItem('contenttype', e.target.checked);\n if (e.target.checked) {\n localStorage.setItem('content-display', 'none');\n } else {\n localStorage.setItem('content-display', 'block');\n }\n setDisplayedItems();\n}\nfunction setDisplayedItems() {\n setValueFromLocalStorage('contenttype');\n setValueFromLocalStorage('content-display');\n}"]},"metadata":{},"sourceType":"module"}
\ No newline at end of file
diff --git a/node_modules/.cache/babel-loader/d6cc982d0f1372a841544815748d5330.json b/node_modules/.cache/babel-loader/d6cc982d0f1372a841544815748d5330.json
new file mode 100644
index 00000000..cd86cd5f
--- /dev/null
+++ b/node_modules/.cache/babel-loader/d6cc982d0f1372a841544815748d5330.json
@@ -0,0 +1 @@
+{"ast":null,"code":"/** @license React v17.0.2\n * react.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';\n\nvar l = require(\"object-assign\"),\n n = 60103,\n p = 60106;\n\nexports.Fragment = 60107;\nexports.StrictMode = 60108;\nexports.Profiler = 60114;\nvar q = 60109,\n r = 60110,\n t = 60112;\nexports.Suspense = 60113;\nvar u = 60115,\n v = 60116;\n\nif (\"function\" === typeof Symbol && Symbol.for) {\n var w = Symbol.for;\n n = w(\"react.element\");\n p = w(\"react.portal\");\n exports.Fragment = w(\"react.fragment\");\n exports.StrictMode = w(\"react.strict_mode\");\n exports.Profiler = w(\"react.profiler\");\n q = w(\"react.provider\");\n r = w(\"react.context\");\n t = w(\"react.forward_ref\");\n exports.Suspense = w(\"react.suspense\");\n u = w(\"react.memo\");\n v = w(\"react.lazy\");\n}\n\nvar x = \"function\" === typeof Symbol && Symbol.iterator;\n\nfunction y(a) {\n if (null === a || \"object\" !== typeof a) return null;\n a = x && a[x] || a[\"@@iterator\"];\n return \"function\" === typeof a ? a : null;\n}\n\nfunction z(a) {\n for (var b = \"https://reactjs.org/docs/error-decoder.html?invariant=\" + a, c = 1; c < arguments.length; c++) {\n b += \"&args[]=\" + encodeURIComponent(arguments[c]);\n }\n\n return \"Minified React error #\" + a + \"; visit \" + b + \" for the full message or use the non-minified dev environment for full errors and additional helpful warnings.\";\n}\n\nvar A = {\n isMounted: function isMounted() {\n return !1;\n },\n enqueueForceUpdate: function enqueueForceUpdate() {},\n enqueueReplaceState: function enqueueReplaceState() {},\n enqueueSetState: function enqueueSetState() {}\n},\n B = {};\n\nfunction C(a, b, c) {\n this.props = a;\n this.context = b;\n this.refs = B;\n this.updater = c || A;\n}\n\nC.prototype.isReactComponent = {};\n\nC.prototype.setState = function (a, b) {\n if (\"object\" !== typeof a && \"function\" !== typeof a && null != a) throw Error(z(85));\n this.updater.enqueueSetState(this, a, b, \"setState\");\n};\n\nC.prototype.forceUpdate = function (a) {\n this.updater.enqueueForceUpdate(this, a, \"forceUpdate\");\n};\n\nfunction D() {}\n\nD.prototype = C.prototype;\n\nfunction E(a, b, c) {\n this.props = a;\n this.context = b;\n this.refs = B;\n this.updater = c || A;\n}\n\nvar F = E.prototype = new D();\nF.constructor = E;\nl(F, C.prototype);\nF.isPureReactComponent = !0;\nvar G = {\n current: null\n},\n H = Object.prototype.hasOwnProperty,\n I = {\n key: !0,\n ref: !0,\n __self: !0,\n __source: !0\n};\n\nfunction J(a, b, c) {\n var e,\n d = {},\n k = null,\n h = null;\n if (null != b) for (e in void 0 !== b.ref && (h = b.ref), void 0 !== b.key && (k = \"\" + b.key), b) {\n H.call(b, e) && !I.hasOwnProperty(e) && (d[e] = b[e]);\n }\n var g = arguments.length - 2;\n if (1 === g) d.children = c;else if (1 < g) {\n for (var f = Array(g), m = 0; m < g; m++) {\n f[m] = arguments[m + 2];\n }\n\n d.children = f;\n }\n if (a && a.defaultProps) for (e in g = a.defaultProps, g) {\n void 0 === d[e] && (d[e] = g[e]);\n }\n return {\n $$typeof: n,\n type: a,\n key: k,\n ref: h,\n props: d,\n _owner: G.current\n };\n}\n\nfunction K(a, b) {\n return {\n $$typeof: n,\n type: a.type,\n key: b,\n ref: a.ref,\n props: a.props,\n _owner: a._owner\n };\n}\n\nfunction L(a) {\n return \"object\" === typeof a && null !== a && a.$$typeof === n;\n}\n\nfunction escape(a) {\n var b = {\n \"=\": \"=0\",\n \":\": \"=2\"\n };\n return \"$\" + a.replace(/[=:]/g, function (a) {\n return b[a];\n });\n}\n\nvar M = /\\/+/g;\n\nfunction N(a, b) {\n return \"object\" === typeof a && null !== a && null != a.key ? escape(\"\" + a.key) : b.toString(36);\n}\n\nfunction O(a, b, c, e, d) {\n var k = typeof a;\n if (\"undefined\" === k || \"boolean\" === k) a = null;\n var h = !1;\n if (null === a) h = !0;else switch (k) {\n case \"string\":\n case \"number\":\n h = !0;\n break;\n\n case \"object\":\n switch (a.$$typeof) {\n case n:\n case p:\n h = !0;\n }\n\n }\n if (h) return h = a, d = d(h), a = \"\" === e ? \".\" + N(h, 0) : e, Array.isArray(d) ? (c = \"\", null != a && (c = a.replace(M, \"$&/\") + \"/\"), O(d, b, c, \"\", function (a) {\n return a;\n })) : null != d && (L(d) && (d = K(d, c + (!d.key || h && h.key === d.key ? \"\" : (\"\" + d.key).replace(M, \"$&/\") + \"/\") + a)), b.push(d)), 1;\n h = 0;\n e = \"\" === e ? \".\" : e + \":\";\n if (Array.isArray(a)) for (var g = 0; g < a.length; g++) {\n k = a[g];\n var f = e + N(k, g);\n h += O(k, b, c, f, d);\n } else if (f = y(a), \"function\" === typeof f) for (a = f.call(a), g = 0; !(k = a.next()).done;) {\n k = k.value, f = e + N(k, g++), h += O(k, b, c, f, d);\n } else if (\"object\" === k) throw b = \"\" + a, Error(z(31, \"[object Object]\" === b ? \"object with keys {\" + Object.keys(a).join(\", \") + \"}\" : b));\n return h;\n}\n\nfunction P(a, b, c) {\n if (null == a) return a;\n var e = [],\n d = 0;\n O(a, e, \"\", \"\", function (a) {\n return b.call(c, a, d++);\n });\n return e;\n}\n\nfunction Q(a) {\n if (-1 === a._status) {\n var b = a._result;\n b = b();\n a._status = 0;\n a._result = b;\n b.then(function (b) {\n 0 === a._status && (b = b.default, a._status = 1, a._result = b);\n }, function (b) {\n 0 === a._status && (a._status = 2, a._result = b);\n });\n }\n\n if (1 === a._status) return a._result;\n throw a._result;\n}\n\nvar R = {\n current: null\n};\n\nfunction S() {\n var a = R.current;\n if (null === a) throw Error(z(321));\n return a;\n}\n\nvar T = {\n ReactCurrentDispatcher: R,\n ReactCurrentBatchConfig: {\n transition: 0\n },\n ReactCurrentOwner: G,\n IsSomeRendererActing: {\n current: !1\n },\n assign: l\n};\nexports.Children = {\n map: P,\n forEach: function forEach(a, b, c) {\n P(a, function () {\n b.apply(this, arguments);\n }, c);\n },\n count: function count(a) {\n var b = 0;\n P(a, function () {\n b++;\n });\n return b;\n },\n toArray: function toArray(a) {\n return P(a, function (a) {\n return a;\n }) || [];\n },\n only: function only(a) {\n if (!L(a)) throw Error(z(143));\n return a;\n }\n};\nexports.Component = C;\nexports.PureComponent = E;\nexports.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED = T;\n\nexports.cloneElement = function (a, b, c) {\n if (null === a || void 0 === a) throw Error(z(267, a));\n var e = l({}, a.props),\n d = a.key,\n k = a.ref,\n h = a._owner;\n\n if (null != b) {\n void 0 !== b.ref && (k = b.ref, h = G.current);\n void 0 !== b.key && (d = \"\" + b.key);\n if (a.type && a.type.defaultProps) var g = a.type.defaultProps;\n\n for (f in b) {\n H.call(b, f) && !I.hasOwnProperty(f) && (e[f] = void 0 === b[f] && void 0 !== g ? g[f] : b[f]);\n }\n }\n\n var f = arguments.length - 2;\n if (1 === f) e.children = c;else if (1 < f) {\n g = Array(f);\n\n for (var m = 0; m < f; m++) {\n g[m] = arguments[m + 2];\n }\n\n e.children = g;\n }\n return {\n $$typeof: n,\n type: a.type,\n key: d,\n ref: k,\n props: e,\n _owner: h\n };\n};\n\nexports.createContext = function (a, b) {\n void 0 === b && (b = null);\n a = {\n $$typeof: r,\n _calculateChangedBits: b,\n _currentValue: a,\n _currentValue2: a,\n _threadCount: 0,\n Provider: null,\n Consumer: null\n };\n a.Provider = {\n $$typeof: q,\n _context: a\n };\n return a.Consumer = a;\n};\n\nexports.createElement = J;\n\nexports.createFactory = function (a) {\n var b = J.bind(null, a);\n b.type = a;\n return b;\n};\n\nexports.createRef = function () {\n return {\n current: null\n };\n};\n\nexports.forwardRef = function (a) {\n return {\n $$typeof: t,\n render: a\n };\n};\n\nexports.isValidElement = L;\n\nexports.lazy = function (a) {\n return {\n $$typeof: v,\n _payload: {\n _status: -1,\n _result: a\n },\n _init: Q\n };\n};\n\nexports.memo = function (a, b) {\n return {\n $$typeof: u,\n type: a,\n compare: void 0 === b ? null : b\n };\n};\n\nexports.useCallback = function (a, b) {\n return S().useCallback(a, b);\n};\n\nexports.useContext = function (a, b) {\n return S().useContext(a, b);\n};\n\nexports.useDebugValue = function () {};\n\nexports.useEffect = function (a, b) {\n return S().useEffect(a, b);\n};\n\nexports.useImperativeHandle = function (a, b, c) {\n return S().useImperativeHandle(a, b, c);\n};\n\nexports.useLayoutEffect = function (a, b) {\n return S().useLayoutEffect(a, b);\n};\n\nexports.useMemo = function (a, b) {\n return S().useMemo(a, b);\n};\n\nexports.useReducer = function (a, b, c) {\n return S().useReducer(a, b, c);\n};\n\nexports.useRef = function (a) {\n return S().useRef(a);\n};\n\nexports.useState = function (a) {\n return S().useState(a);\n};\n\nexports.version = \"17.0.2\";","map":{"version":3,"sources":["/home/seanedmunds/dev/home-page/node_modules/react/cjs/react.production.min.js"],"names":["l","require","n","p","exports","Fragment","StrictMode","Profiler","q","r","t","Suspense","u","v","Symbol","for","w","x","iterator","y","a","z","b","c","arguments","length","encodeURIComponent","A","isMounted","enqueueForceUpdate","enqueueReplaceState","enqueueSetState","B","C","props","context","refs","updater","prototype","isReactComponent","setState","Error","forceUpdate","D","E","F","constructor","isPureReactComponent","G","current","H","Object","hasOwnProperty","I","key","ref","__self","__source","J","e","d","k","h","call","g","children","f","Array","m","defaultProps","$$typeof","type","_owner","K","L","escape","replace","M","N","toString","O","isArray","push","next","done","value","keys","join","P","Q","_status","_result","then","default","R","S","T","ReactCurrentDispatcher","ReactCurrentBatchConfig","transition","ReactCurrentOwner","IsSomeRendererActing","assign","Children","map","forEach","apply","count","toArray","only","Component","PureComponent","__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED","cloneElement","createContext","_calculateChangedBits","_currentValue","_currentValue2","_threadCount","Provider","Consumer","_context","createElement","createFactory","bind","createRef","forwardRef","render","isValidElement","lazy","_payload","_init","memo","compare","useCallback","useContext","useDebugValue","useEffect","useImperativeHandle","useLayoutEffect","useMemo","useReducer","useRef","useState","version"],"mappings":"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","sourcesContent":["/** @license React v17.0.2\n * react.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var l=require(\"object-assign\"),n=60103,p=60106;exports.Fragment=60107;exports.StrictMode=60108;exports.Profiler=60114;var q=60109,r=60110,t=60112;exports.Suspense=60113;var u=60115,v=60116;\nif(\"function\"===typeof Symbol&&Symbol.for){var w=Symbol.for;n=w(\"react.element\");p=w(\"react.portal\");exports.Fragment=w(\"react.fragment\");exports.StrictMode=w(\"react.strict_mode\");exports.Profiler=w(\"react.profiler\");q=w(\"react.provider\");r=w(\"react.context\");t=w(\"react.forward_ref\");exports.Suspense=w(\"react.suspense\");u=w(\"react.memo\");v=w(\"react.lazy\")}var x=\"function\"===typeof Symbol&&Symbol.iterator;\nfunction y(a){if(null===a||\"object\"!==typeof a)return null;a=x&&a[x]||a[\"@@iterator\"];return\"function\"===typeof a?a:null}function z(a){for(var b=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+a,c=1;c {\n let value = localStorage.getItem(property);\n setValue(property, value);\n};\n\nconst setValue = (property, value) => {\n if (value) {\n document.documentElement.style.setProperty(`--${property}`, value);\n const input = document.querySelector(`#${property}`);\n\n if (input) {\n value = value.replace('px', '');\n input.value = value;\n }\n }\n};\n\nfunction Homepage() {\n setTheme();\n return /*#__PURE__*/_jsxDEV(\"main\", {\n id: \"container\",\n className: \"fade\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Search, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 28,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 27,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Header, {\n date: date(),\n greet: greet()\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 31,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 30,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Applications, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 37,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 36,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Bookmarks, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 40,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 39,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(ModalMenu, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 43,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 42,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(ModalInit, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 46,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 45,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 26,\n columnNumber: 5\n }, this);\n}\n\n_c = Homepage;\n\nfunction Search() {\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"search\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"abackground\",\n children: [/*#__PURE__*/_jsxDEV(\"input\", {\n name: \"keywords\",\n type: \"text\",\n className: \"keyword\",\n id: \"keywords\",\n size: \"50\",\n spellCheck: \"true\",\n placeholder: \"\"\n /*onFocus={this.placeholder = \"\"} onBlur={this.placeholder = ''}*/\n ,\n autoComplete: \"off\",\n autoFocus: true,\n onKeyUp: handleKeyPress\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 56,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n id: \"searchType\",\n className: \"Input-label\",\n children: \"Google search\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 57,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 55,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 54,\n columnNumber: 5\n }, this);\n}\n\n_c2 = Search;\n\nfunction Header(props) {\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"header\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n id: \"greeting_block\",\n children: /*#__PURE__*/_jsxDEV(\"h1\", {\n id: \"header_greet\",\n children: props.greet\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 67,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 66,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"date_block\",\n children: [/*#__PURE__*/_jsxDEV(\"h2\", {\n id: \"header_date\",\n children: props.date\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 70,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(Clock, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 71,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 69,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 65,\n columnNumber: 5\n }, this);\n}\n\n_c3 = Header;\n\nfunction Applications() {\n let appList = getApps();\n var items = [];\n\n for (var i = 0; i < appList.apps.length; i++) {\n var safe = appList.apps[i].NSFW;\n var NSFWEnabled = localStorage.getItem(\"contenttype\");\n\n if (safe === \"SAFE\") {\n items.push( /*#__PURE__*/_jsxDEV(App, {\n name: appList.apps[i].name,\n url: appList.apps[i].url,\n icon: appList.apps[i].icon,\n NSFW: appList.apps[i].NSFW\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 85,\n columnNumber: 9\n }, this));\n } else if (safe === \"NSFW\" && NSFWEnabled) {\n items.push( /*#__PURE__*/_jsxDEV(App, {\n name: appList.apps[i].name,\n url: appList.apps[i].url,\n icon: appList.apps[i].icon,\n NSFW: appList.apps[i].NSFW\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 95,\n columnNumber: 9\n }, this));\n } else {}\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"apps\",\n children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n children: \"Applications\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 110,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"apps_loop\",\n children: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 111,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 109,\n columnNumber: 5\n }, this);\n}\n\n_c4 = Applications;\n\nfunction App(props) {\n let classNameType = props.NSFW + \"-content\";\n let hrefUrl = \"https://\" + props.url;\n let iconName = \"mdi-\" + props.icon;\n return /*#__PURE__*/_jsxDEV(\"div\", {\n className: classNameType,\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: hrefUrl,\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_item\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_icon\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify icon\",\n \"data-icon\": iconName\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 128,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 127,\n columnNumber: 13\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_text\",\n children: [/*#__PURE__*/_jsxDEV(\"span\", {\n id: \"app-name\",\n children: props.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 131,\n columnNumber: 15\n }, this), /*#__PURE__*/_jsxDEV(\"span\", {\n id: \"app-address\",\n children: props.url\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 132,\n columnNumber: 15\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 130,\n columnNumber: 13\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 126,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 125,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 124,\n columnNumber: 7\n }, this);\n}\n\n_c5 = App;\n\nfunction Bookmarks() {\n let bookmarkList = getLinks();\n var items = [];\n\n for (var i = 0; i < bookmarkList.bookmarks.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(LinkGroups, {\n category: bookmarkList.bookmarks[i].category,\n links: bookmarkList.bookmarks[i].links\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 145,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"links\",\n children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n children: \"Bookmarks\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 154,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"links_loop\",\n children: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 155,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 153,\n columnNumber: 5\n }, this);\n}\n\n_c6 = Bookmarks;\n\nfunction LinkGroups(props) {\n var items = [];\n\n for (var i = 0; i < props.links.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(LinkItem, {\n link: props.links[i]\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 166,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"links_item\",\n children: [/*#__PURE__*/_jsxDEV(\"h4\", {\n children: props.category\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 174,\n columnNumber: 7\n }, this), items]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 173,\n columnNumber: 5\n }, this);\n}\n\n_c7 = LinkGroups;\n\nfunction LinkItem(props) {\n return /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: props.link.url,\n className: \"theme_color-border theme_text-select\",\n children: props.link.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 183,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 182,\n columnNumber: 5\n }, this);\n}\n\n_c8 = LinkItem;\n\nfunction ModalMenu() {\n var providers = getProviders();\n var items = [];\n var isChecked = localStorage.getItem(\"contenttype\");\n\n for (var i = 0; i < providers.providers.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(Provider, {\n provider: providers.providers[i]\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 194,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"modal\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n children: [/*#__PURE__*/_jsxDEV(\"header\", {\n id: \"modal-header\",\n children: [/*#__PURE__*/_jsxDEV(\"h1\", {\n children: \"Options\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 204,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n href: \"#\",\n title: \"Close\",\n className: \"modal-close\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-close\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 206,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 205,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 203,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"h2\", {\n children: \"Color themes\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 210,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"modal-theme\",\n children: [/*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"blackboard\",\n className: \"theme-button theme-blackboard\",\n onClick: updateTheme,\n children: \"Blackboard\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 213,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"gazette\",\n className: \"theme-button theme-gazette\",\n onClick: updateTheme,\n children: \"Gazette\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 214,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"espresso\",\n className: \"theme-button theme-espresso\",\n onClick: updateTheme,\n children: \"Espresso\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 215,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cab\",\n className: \"theme-button theme-cab\",\n onClick: updateTheme,\n children: \"Cab\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 216,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cloud\",\n className: \"theme-button theme-cloud\",\n onClick: updateTheme,\n children: \"Cloud\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 217,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"lime\",\n className: \"theme-button theme-lime\",\n onClick: updateTheme,\n children: \"Lime\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 218,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"passion\",\n className: \"theme-button theme-passion\",\n onClick: updateTheme,\n children: \"Passion\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 219,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"blues\",\n className: \"theme-button theme-blues\",\n onClick: updateTheme,\n children: \"Blues\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 220,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"chalk\",\n className: \"theme-button theme-chalk\",\n onClick: updateTheme,\n children: \"Chalk\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 221,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"tron\",\n className: \"theme-button theme-tron\",\n onClick: updateTheme,\n children: \"Tron\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 222,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"paper\",\n className: \"theme-button theme-paper\",\n onClick: updateTheme,\n children: \"Paper\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 223,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cyberpunk\",\n className: \"theme-button theme-cyberpunk\",\n onClick: updateTheme,\n children: \"Cyberpunk\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 224,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"quadra\",\n className: \"theme-button theme-panam\",\n onClick: updateTheme,\n children: \"Quadra\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 225,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"panam\",\n className: \"theme-button theme-panam\",\n onClick: updateTheme,\n children: \"Panam\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 226,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"touch\",\n className: \"theme-button theme-touch\",\n onClick: updateTheme,\n children: \"Touch\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 227,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"peek\",\n className: \"theme-button theme-peek\",\n onClick: updateTheme,\n children: \"Peek\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 228,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 212,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"h2\", {\n children: \"Search options\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 232,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"providers\",\n children: /*#__PURE__*/_jsxDEV(\"table\", {\n children: /*#__PURE__*/_jsxDEV(\"tbody\", {\n children: [/*#__PURE__*/_jsxDEV(\"tr\", {\n children: [/*#__PURE__*/_jsxDEV(\"th\", {\n children: \"Website\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 237,\n columnNumber: 19\n }, this), /*#__PURE__*/_jsxDEV(\"th\", {\n children: \"Prefix\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 238,\n columnNumber: 19\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 236,\n columnNumber: 17\n }, this), items]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 235,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 234,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 233,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"header\", {\n id: \"modal-footer\",\n children: [/*#__PURE__*/_jsxDEV(\"a\", {\n href: \"https://github.com/jeroenpardon/\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-github-box\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 246,\n columnNumber: 54\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 246,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n href: \"https://materialdesignicons.com/\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-material-design\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 247,\n columnNumber: 54\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 247,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(HideButton, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 248,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 245,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 202,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 201,\n columnNumber: 5\n }, this);\n}\n\n_c9 = ModalMenu;\n\nfunction HideButton() {\n return /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"sneaky\",\n children: [/*#__PURE__*/_jsxDEV(\"input\", {\n type: \"checkbox\",\n id: \"contenttype\",\n onClick: udpateDisplayedItems\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 258,\n columnNumber: 29\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n for: \"contenttype\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-domino-mask\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 259,\n columnNumber: 30\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 259,\n columnNumber: 5\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 258,\n columnNumber: 5\n }, this);\n}\n\n_c10 = HideButton;\n\nfunction Provider(props) {\n return /*#__PURE__*/_jsxDEV(\"tr\", {\n children: [/*#__PURE__*/_jsxDEV(\"td\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: props.provider.url,\n children: props.provider.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 266,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 266,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"td\", {\n children: props.provider.prefix\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 267,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 265,\n columnNumber: 5\n }, this);\n}\n\n_c11 = Provider;\n\nfunction ModalInit() {\n setDisplayedItems();\n return /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"modal_init\",\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n className: \"btn\",\n href: \"#modal\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify icon\",\n \"data-icon\": \"mdi-xbox-controller-menu\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 277,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 276,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 275,\n columnNumber: 5\n }, this);\n}\n\n_c12 = ModalInit;\nReactDOM.render( /*#__PURE__*/_jsxDEV(Homepage, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 284,\n columnNumber: 3\n}, this), document.getElementById('root')); //Functions below this line are for calculating data for\n//other functions\n\nfunction date() {\n let currentDate = new Date();\n let dateOptions = {\n weekday: \"long\",\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\"\n };\n let date = currentDate.toLocaleDateString(\"en-GB\", dateOptions);\n return date;\n}\n\nfunction fixDigits(k) {\n if (k < 10) {\n return \"0\" + k;\n } else {\n return k;\n }\n}\n\nfunction greet() {\n let currentTime = new Date();\n let greet = Math.floor(currentTime.getHours() / 6);\n let easterEggChance = Math.floor(Math.random() * 100);\n\n let greetings = require('./messages.json');\n\n let timeBased = [];\n let easterEggs = [];\n\n for (var i = 0; i < greetings.messages.length; i++) {\n if (greetings.messages[i].easteregg === \"FALSE\") {\n timeBased = timeBased.concat(greetings.messages[i]);\n } else {\n easterEggs = easterEggs.concat(greetings.messages[i]);\n }\n }\n\n if (easterEggChance > 10) {\n return timeBased[greet].message;\n } else {\n let easterEggText = Math.floor(Math.random() * easterEggs.length);\n return easterEggs[easterEggText].message;\n }\n}\n\nfunction Clock() {\n _s();\n\n const [date, setDate] = useState(new Date());\n\n function refreshClock() {\n setDate(new Date());\n }\n\n useEffect(() => {\n const timerId = setInterval(refreshClock, 1000);\n return function cleanup() {\n clearInterval(timerId);\n };\n }, []);\n var hour = date.getHours();\n var minutes = date.getMinutes(); //var seconds = date.getSeconds();\n\n var midday = \"AM\";\n midday = hour >= 12 ? \"PM\" : \"AM\";\n hour = hour === 0 ? 12 : hour > 12 ? hour - 12 : hour;\n minutes = fixDigits(minutes); //seconds = fixDigits(seconds);\n\n let time = hour + \":\" + minutes + \" \" + midday;\n return /*#__PURE__*/_jsxDEV(\"h2\", {\n id: \"clock\",\n children: time\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 355,\n columnNumber: 5\n }, this);\n}\n\n_s(Clock, \"Gqi45WOZhU2c0BLYX0HoJeiR0fk=\");\n\n_c13 = Clock;\n\nfunction getApps() {\n let applications = require('./apps.json');\n\n return applications;\n}\n\nfunction getLinks() {\n let links = require('./links.json');\n\n return links;\n}\n\nfunction getProviders() {\n let providers = require('./providers.json');\n\n return providers;\n}\n\nfunction getThemes() {\n let themes = require('./themes.json');\n\n return themes;\n}\n\nfunction updateTheme(e) {\n var themes = getThemes();\n var themeName = e.target.innerHTML.toLowerCase();\n var index = themes.themes.findIndex(function (item, i) {\n return item.name === themeName;\n });\n localStorage.setItem(\"image-background\", themes.themes[index].imagebackground);\n localStorage.setItem(\"color-background\", themes.themes[index].colorbackground);\n localStorage.setItem(\"color-search-background\", themes.themes[index].colorserachbackground);\n localStorage.setItem(\"color-text-pri\", themes.themes[index].colortextpri);\n localStorage.setItem(\"color-text-acc\", themes.themes[index].colortextacc);\n localStorage.setItem(\"color-border\", themes.themes[index].colorborder); //document.documentElement.style.setProperty(prop, `var(--${themeName}${prop.substring(10)})`);\n\n setTheme();\n}\n\nfunction setTheme() {\n setValueFromLocalStorage('image-background');\n setValueFromLocalStorage('color-background');\n setValueFromLocalStorage('color-search-background');\n setValueFromLocalStorage('color-text-pri');\n setValueFromLocalStorage('color-text-acc');\n setValueFromLocalStorage('color-border');\n setValueFromLocalStorage('content-display');\n}\n\nfunction handleKeyPress(e) {\n var sindex = 0;\n var cycle = false;\n var key = e.keyCode || e.which;\n var text = e.target.value.replaceAll(\"+\", \"%2B\");\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n\n if (key == 13) {\n // Search functions\n search(text);\n }\n\n if (key == 9) {\n // Tab Completion Functions\n e.preventDefault();\n e.stopPropagation();\n\n if (text[0] === ';') {\n switch (option) {\n case 't':\n var streamers = ['admiralbahroo', 'moonmoon_ow', 'witwix'];\n\n if (!subtext || cycle) {\n cycle = true;\n if (sindex > streamers.length - 1) sindex = 0;\n document.getElementById(\"keywords\").value = ';t ' + streamers[sindex++];\n return;\n }\n\n for (var streamer of streamers) {\n if (subtext === streamer.substr(0, subtext.length)) {\n document.getElementById(\"keywords\").value = ';t ' + streamer;\n return;\n }\n }\n\n break;\n }\n }\n }\n\n if (key == 32) {\n //Space to go to search\n updateLabel(text);\n }\n\n sindex = 0;\n cycle = false;\n updateLabel(text);\n}\n\nfunction updateLabel(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n\n if (text[0] === '/') {\n // if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n document.getElementById(\"searchType\").innerHTML = \"Allmusic search\";\n break;\n\n case \"d\":\n document.getElementById(\"searchType\").innerHTML = \"Duck Duck Go search\";\n break;\n\n case \"di\":\n document.getElementById(\"searchType\").innerHTML = \"Discogs search\";\n break;\n\n case \"i\":\n document.getElementById(\"searchType\").innerHTML = \"IMDB search\";\n break;\n\n case \"m\":\n document.getElementById(\"searchType\").innerHTML = \"TheMovieDB search\";\n break;\n\n case \"r\":\n document.getElementById(\"searchType\").innerHTML = \"Reddit search\";\n break;\n\n case \"q\":\n document.getElementById(\"searchType\").innerHTML = \"Qwant search\";\n break;\n\n case \"so\":\n document.getElementById(\"searchType\").innerHTML = \"Soundcloud search\";\n break;\n\n case \"s\":\n document.getElementById(\"searchType\").innerHTML = \"Spotify search\";\n break;\n\n case \"tv\":\n document.getElementById(\"searchType\").innerHTML = \"TheTVDB search\";\n break;\n\n case \"t\":\n document.getElementById(\"searchType\").innerHTML = \"Trakt search\";\n break;\n\n case \"y\":\n document.getElementById(\"searchType\").innerHTML = \"YouTube search\";\n break;\n\n case \"w\":\n document.getElementById(\"searchType\").innerHTML = \"Wikipedia search\";\n break;\n\n case \"p\":\n document.getElementById(\"searchType\").innerHTML = \"Plex search\";\n break;\n\n case \"rt\":\n document.getElementById(\"searchType\").innerHTML = \"Rotten Tomatoes search\";\n break;\n\n default:\n document.getElementById(\"searchType\").innerHTML = \"Invalid search\";\n break;\n }\n } else {\n document.getElementById(\"searchType\").innerHTML = \"Google search\";\n }\n}\n\nfunction search(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n\n if (text[0] === '/') {\n if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n window.location = \"https://www.allmusic.com/search/all/\" + subtext;\n break;\n\n case \"d\":\n window.location = \"https://duckduckgo.com/?q=\" + subtext;\n break;\n\n case \"di\":\n window.location = \"https://www.discogs.com/search/?q=\" + subtext;\n break;\n\n case \"i\":\n window.location = \"https://www.imdb.com/find?q=\" + subtext;\n break;\n\n case \"m\":\n window.location = \"https://www.themoviedb.org/search?query=\" + subtext;\n break;\n\n case \"r\":\n window.location = \"https://www.reddit.com/search?q=\" + subtext;\n break;\n\n case \"q\":\n window.location = \"https://www.qwant.com/?q=\" + subtext;\n break;\n\n case \"so\":\n window.location = \"https://soundcloud.com/search?q=\" + subtext;\n break;\n\n case \"s\":\n window.location = \"https://open.spotify.com/search/results/\" + subtext;\n break;\n\n case \"t\":\n window.location = \"https://trakt.tv/search?query=\" + subtext;\n break;\n\n case \"tv\":\n window.location = \"https://www.thetvdb.com/search?query=\" + subtext;\n break;\n\n case \"y\":\n window.location = \"https://www.youtube.com/results?search_query=\" + subtext;\n break;\n\n case \"w\":\n window.location = \"https://en.wikipedia.org/w/index.php?search=\" + subtext;\n break;\n\n case \"p\":\n window.location = \"https://app.plex.tv/desktop/#!/search?query=\" + subtext;\n break;\n\n case \"rt\":\n window.location = \"https://www.rottentomatoes.com/search?search=\" + subtext;\n break;\n }\n } else {\n var option = text.substr(1);\n\n switch (option) {\n case \"d\":\n window.location = \"https://www.duckduckgo.com\";\n break;\n\n case \"y\":\n window.location = \"https://www.youtube.com\";\n break;\n\n case \"r\":\n window.location = \"https://reddit.com\";\n break;\n\n case \"s\":\n window.location = \"https://open.spotify.com\";\n break;\n }\n }\n } else if (validURL(text)) {\n if (containsProtocol(text)) window.location = text;else window.location = \"https://\" + text;\n } else {\n window.location = \"https://www.google.com/search?q=\" + text;\n }\n}\n\nfunction validURL(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/)?' + // protocol\n '((([a-z\\\\d]([a-z\\\\d-]*[a-z\\\\d])*)\\\\.)+[a-z]{2,}|' + // domain name\n '((\\\\d{1,3}\\\\.){3}\\\\d{1,3}))' + // OR ip (v4) address\n '(\\\\:\\\\d+)?(\\\\/[-a-z\\\\d%_.~+]*)*' + // port and path\n '(\\\\?[;&a-z\\\\d%_.~+=-]*)?' + // query string\n '(\\\\#[-a-z\\\\d_]*)?$', 'i'); // fragment locator\n\n return !!pattern.test(str);\n}\n\nfunction containsProtocol(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/){1}.*', 'i');\n return !!pattern.test(str);\n}\n\nString.prototype.replaceAll = function (search, replacement) {\n var target = this;\n return target.split(search).join(replacement);\n};\n\nfunction udpateDisplayedItems(e) {\n localStorage.setItem('contenttype', e.target.checked);\n\n if (e.target.checked) {\n localStorage.setItem('content-display', 'none');\n } else {\n localStorage.setItem('content-display', 'block');\n }\n\n setDisplayedItems();\n}\n\nfunction setDisplayedItems() {\n setValueFromLocalStorage('contenttype');\n setValueFromLocalStorage('content-display');\n}\n\nvar _c, _c2, _c3, _c4, _c5, _c6, _c7, _c8, _c9, _c10, _c11, _c12, _c13;\n\n$RefreshReg$(_c, \"Homepage\");\n$RefreshReg$(_c2, \"Search\");\n$RefreshReg$(_c3, \"Header\");\n$RefreshReg$(_c4, \"Applications\");\n$RefreshReg$(_c5, \"App\");\n$RefreshReg$(_c6, \"Bookmarks\");\n$RefreshReg$(_c7, \"LinkGroups\");\n$RefreshReg$(_c8, \"LinkItem\");\n$RefreshReg$(_c9, \"ModalMenu\");\n$RefreshReg$(_c10, \"HideButton\");\n$RefreshReg$(_c11, \"Provider\");\n$RefreshReg$(_c12, \"ModalInit\");\n$RefreshReg$(_c13, \"Clock\");","map":{"version":3,"sources":["/home/seanedmunds/dev/home-page/src/index.js"],"names":["React","useState","useEffect","ReactDOM","setValueFromLocalStorage","property","value","localStorage","getItem","setValue","document","documentElement","style","setProperty","input","querySelector","replace","Homepage","setTheme","date","greet","Search","handleKeyPress","Header","props","Applications","appList","getApps","items","i","apps","length","safe","NSFW","NSFWEnabled","push","name","url","icon","App","classNameType","hrefUrl","iconName","Bookmarks","bookmarkList","getLinks","bookmarks","category","links","LinkGroups","LinkItem","link","ModalMenu","providers","getProviders","isChecked","updateTheme","HideButton","udpateDisplayedItems","Provider","provider","prefix","ModalInit","setDisplayedItems","render","getElementById","currentDate","Date","dateOptions","weekday","year","month","day","toLocaleDateString","fixDigits","k","currentTime","Math","floor","getHours","easterEggChance","random","greetings","require","timeBased","easterEggs","messages","easteregg","concat","message","easterEggText","Clock","setDate","refreshClock","timerId","setInterval","cleanup","clearInterval","hour","minutes","getMinutes","midday","time","applications","getThemes","themes","e","themeName","target","innerHTML","toLowerCase","index","findIndex","item","setItem","imagebackground","colorbackground","colorserachbackground","colortextpri","colortextacc","colorborder","sindex","cycle","key","keyCode","which","text","replaceAll","option","substr","indexOf","subtext","search","preventDefault","stopPropagation","streamers","streamer","updateLabel","window","location","validURL","containsProtocol","str","pattern","RegExp","test","String","prototype","replacement","split","join","checked"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { useState, useEffect } from 'react';\nimport ReactDOM from 'react-dom';\nimport './index.css';\n\nconst setValueFromLocalStorage = property => {\n let value = localStorage.getItem(property);\n setValue(property, value);\n};\nconst setValue = (property, value) => {\n if (value) {\n document.documentElement.style.setProperty(`--${property}`, value);\n\n const input = document.querySelector(`#${property}`);\n if (input) {\n value = value.replace('px', '');\n input.value = value;\n }\n }\n};\n\nfunction Homepage() {\n setTheme();\n \n return (\n \n \n \n
\n \n \n
\n \n \n \n
\n \n \n
\n \n \n
\n \n );\n}\n\nfunction Search() {\n return (\n \n )\n}\n\nfunction Header(props) {\n return (\n \n );\n}\n\nfunction Applications() {\n let appList = getApps();\n var items = [];\n for (var i = 0; i < appList.apps.length; i++) {\n var safe = appList.apps[i].NSFW;\n var NSFWEnabled = localStorage.getItem(\"contenttype\");\n if (safe === \"SAFE\") {\n items.push(\n \n );\n } else if (safe === \"NSFW\" && NSFWEnabled) {\n items.push(\n \n );\n } else {\n \n }\n \n }\n return (\n \n Applications
\n \n {items}\n
\n \n );\n}\n\nfunction App(props) {\n \n let classNameType = props.NSFW + \"-content\";\n let hrefUrl = \"https://\" + props.url;\n let iconName = \"mdi-\" + props.icon;\n return (\n \n );\n}\n\nfunction Bookmarks() {\n let bookmarkList = getLinks();\n var items = [];\n for (var i = 0; i < bookmarkList.bookmarks.length; i++) {\n items.push(\n \n );\n }\n return (\n \n Bookmarks
\n \n {items}\n
\n \n );\n}\n\nfunction LinkGroups(props) {\n var items = [];\n for (var i = 0; i < props.links.length; i++) {\n items.push(\n \n );\n }\n return (\n \n
{props.category}
\n {items}\n \n );\n}\n\nfunction LinkItem(props) {\n return (\n \n );\n}\n\nfunction ModalMenu() {\n var providers = getProviders();\n var items = [];\n var isChecked = localStorage.getItem(\"contenttype\");\n for (var i = 0; i < providers.providers.length; i++) {\n items.push(\n \n );\n }\n return (\n \n \n \n\n
Color themes
\n\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n\n\n
Search options
\n
\n \n \n \n | Website | \n Prefix | \n
\n {items}\n \n
\n \n\n \n
\n \n );\n}\n\nfunction HideButton() {\n \n return (\n \n
\n );\n}\n\nfunction Provider(props) {\n return (\n \n | {props.provider.name} | \n {props.provider.prefix} | \n
\n );\n}\n\nfunction ModalInit() {\n setDisplayedItems();\n return (\n \n );\n}\n\nReactDOM.render(\n ,\n document.getElementById('root')\n);\n\n//Functions below this line are for calculating data for\n//other functions\n\nfunction date() {\n let currentDate = new Date();\n let dateOptions = {\n weekday: \"long\",\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\"\n };\n let date = currentDate.toLocaleDateString(\"en-GB\", dateOptions);\n return date;\n}\nfunction fixDigits(k) {\n if (k < 10) {\n return \"0\" + k;\n }\n else {\n return k;\n }\n}\nfunction greet() {\n let currentTime = new Date();\n let greet = Math.floor(currentTime.getHours() / 6);\n let easterEggChance = Math.floor(Math.random() * 100);\n let greetings = require('./messages.json');\n let timeBased = [];\n let easterEggs = [];\n for (var i = 0; i < greetings.messages.length; i++) {\n if (greetings.messages[i].easteregg === \"FALSE\") {\n timeBased = timeBased.concat(greetings.messages[i]);\n } else {\n easterEggs = easterEggs.concat(greetings.messages[i]);\n }\n }\n if (easterEggChance > 10) {\n return timeBased[greet].message;\n } else {\n let easterEggText = Math.floor(Math.random() * easterEggs.length);\n return easterEggs[easterEggText].message;\n }\n}\nfunction Clock() {\n const [date, setDate] = useState(new Date());\n\n function refreshClock() {\n setDate(new Date());\n }\n useEffect(() => {\n const timerId = setInterval(refreshClock, 1000);\n return function cleanup() {\n clearInterval(timerId);\n };\n }, []);\n\n var hour = date.getHours();\n var minutes = date.getMinutes();\n //var seconds = date.getSeconds();\n var midday = \"AM\";\n midday = (hour >= 12) ? \"PM\" : \"AM\";\n hour = (hour === 0) ? 12 : ((hour > 12) ? (hour - 12) : hour);\n minutes = fixDigits(minutes);\n //seconds = fixDigits(seconds);\n let time = hour + \":\" + minutes + \" \" + midday;\n\n return (\n {time}
\n\n );\n}\nfunction getApps() {\n let applications = require('./apps.json');\n return applications;\n}\nfunction getLinks() {\n let links = require('./links.json');\n return links;\n}\nfunction getProviders() {\n let providers = require('./providers.json');\n return providers;\n}\nfunction getThemes() {\n let themes = require('./themes.json');\n return themes;\n}\nfunction updateTheme(e) {\n var themes = getThemes();\n var themeName = e.target.innerHTML.toLowerCase();\n var index = themes.themes.findIndex(function(item, i){\n return item.name === themeName\n });\n localStorage.setItem(\"image-background\", themes.themes[index].imagebackground);\n localStorage.setItem(\"color-background\", themes.themes[index].colorbackground);\n localStorage.setItem(\"color-search-background\", themes.themes[index].colorserachbackground);\n localStorage.setItem(\"color-text-pri\",themes.themes[index].colortextpri);\n localStorage.setItem(\"color-text-acc\", themes.themes[index].colortextacc);\n localStorage.setItem(\"color-border\", themes.themes[index].colorborder);\n \n //document.documentElement.style.setProperty(prop, `var(--${themeName}${prop.substring(10)})`);\n setTheme();\n}\nfunction setTheme() {\n setValueFromLocalStorage('image-background');\n setValueFromLocalStorage('color-background');\n setValueFromLocalStorage('color-search-background');\n setValueFromLocalStorage('color-text-pri');\n setValueFromLocalStorage('color-text-acc');\n setValueFromLocalStorage('color-border');\n setValueFromLocalStorage('content-display');\n}\nfunction handleKeyPress(e) {\n var sindex = 0;\n var cycle = false;\n var key = e.keyCode || e.which;\n var text = e.target.value.replaceAll(\"+\", \"%2B\");\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n if (key == 13) { // Search functions\n search(text);\n }\n if (key == 9) { // Tab Completion Functions\n e.preventDefault();\n e.stopPropagation();\n if (text[0] === ';') {\n switch (option) {\n case 't':\n var streamers = ['admiralbahroo', 'moonmoon_ow', 'witwix'];\n if (!subtext || cycle) {\n cycle = true;\n if (sindex > streamers.length - 1) sindex = 0;\n document.getElementById(\"keywords\").value = ';t ' + streamers[sindex++];\n return;\n }\n for (var streamer of streamers) {\n if (subtext === streamer.substr(0, subtext.length)) {\n document.getElementById(\"keywords\").value = ';t ' + streamer;\n return;\n }\n }\n break;\n }\n }\n }\n if(key == 32){ //Space to go to search\nupdateLabel(text);\n }\n sindex = 0;\n cycle = false;\n updateLabel(text);\n}\nfunction updateLabel(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n if (text[0] === '/') {\n// if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n document.getElementById(\"searchType\").innerHTML = \"Allmusic search\";\n break;\n case \"d\":\n document.getElementById(\"searchType\").innerHTML = \"Duck Duck Go search\";\n break;\n case \"di\":\n document.getElementById(\"searchType\").innerHTML = \"Discogs search\";\n break;\n case \"i\":\n document.getElementById(\"searchType\").innerHTML = \"IMDB search\";\n break;\n case \"m\":\n document.getElementById(\"searchType\").innerHTML = \"TheMovieDB search\";\n break;\n case \"r\":\n document.getElementById(\"searchType\").innerHTML = \"Reddit search\";\n break;\n case \"q\":\n document.getElementById(\"searchType\").innerHTML = \"Qwant search\";\n break;\n case \"so\":\n document.getElementById(\"searchType\").innerHTML = \"Soundcloud search\";\n break;\n case \"s\":\n document.getElementById(\"searchType\").innerHTML = \"Spotify search\";\n break;\n case \"tv\":\n document.getElementById(\"searchType\").innerHTML = \"TheTVDB search\";\n break;\n case \"t\":\n document.getElementById(\"searchType\").innerHTML = \"Trakt search\";\n break;\n case \"y\":\n document.getElementById(\"searchType\").innerHTML = \"YouTube search\";\n break;\n case \"w\":\n document.getElementById(\"searchType\").innerHTML = \"Wikipedia search\";\n break;\n case \"p\":\n document.getElementById(\"searchType\").innerHTML = \"Plex search\";\n break;\n case \"rt\":\n document.getElementById(\"searchType\").innerHTML = \"Rotten Tomatoes search\";\n break;\n default:\n document.getElementById(\"searchType\").innerHTML = \"Invalid search\";\n break;\n }\n}else {\n document.getElementById(\"searchType\").innerHTML = \"Google search\";\n }\n}\nfunction search(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n if (text[0] === '/') {\n if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n window.location = \"https://www.allmusic.com/search/all/\" + subtext;\n break;\n case \"d\":\n window.location = \"https://duckduckgo.com/?q=\" + subtext;\n break;\n case \"di\":\n window.location = \"https://www.discogs.com/search/?q=\" + subtext;\n break;\n case \"i\":\n window.location = \"https://www.imdb.com/find?q=\" + subtext;\n break;\n case \"m\":\n window.location = \"https://www.themoviedb.org/search?query=\" + subtext;\n break;\n case \"r\":\n window.location = \"https://www.reddit.com/search?q=\" + subtext;\n break;\n case \"q\":\n window.location = \"https://www.qwant.com/?q=\" + subtext;\n break;\n case \"so\":\n window.location = \"https://soundcloud.com/search?q=\" + subtext;\n break;\n case \"s\":\n window.location = \"https://open.spotify.com/search/results/\" + subtext;\n break;\n case \"t\":\n window.location = \"https://trakt.tv/search?query=\" + subtext;\n break;\n case \"tv\":\n window.location = \"https://www.thetvdb.com/search?query=\" + subtext;\n break;\n case \"y\":\n window.location = \"https://www.youtube.com/results?search_query=\" + subtext;\n break;\n case \"w\":\n window.location = \"https://en.wikipedia.org/w/index.php?search=\" + subtext;\n break;\n case \"p\":\n window.location = \"https://app.plex.tv/desktop/#!/search?query=\" + subtext;\n break;\n case \"rt\":\n window.location = \"https://www.rottentomatoes.com/search?search=\" + subtext;\n break;\n }\n } else {\n var option = text.substr(1);\n switch (option) {\n case \"d\":\n window.location = \"https://www.duckduckgo.com\";\n break;\n case \"y\":\n window.location = \"https://www.youtube.com\";\n break;\n case \"r\":\n window.location = \"https://reddit.com\";\n break;\n case \"s\":\n window.location = \"https://open.spotify.com\";\n break;\n }\n }\n } else if (validURL(text)) {\n if (containsProtocol(text))\n window.location = text;\n else\n window.location = \"https://\" + text;\n } else {\n window.location = \"https://www.google.com/search?q=\" + text;\n }\n}\nfunction validURL(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/)?' + // protocol\n '((([a-z\\\\d]([a-z\\\\d-]*[a-z\\\\d])*)\\\\.)+[a-z]{2,}|' + // domain name\n '((\\\\d{1,3}\\\\.){3}\\\\d{1,3}))' + // OR ip (v4) address\n '(\\\\:\\\\d+)?(\\\\/[-a-z\\\\d%_.~+]*)*' + // port and path\n '(\\\\?[;&a-z\\\\d%_.~+=-]*)?' + // query string\n '(\\\\#[-a-z\\\\d_]*)?$', 'i'); // fragment locator\n return !!pattern.test(str);\n}\nfunction containsProtocol(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/){1}.*', 'i');\n return !!pattern.test(str);\n}\nString.prototype.replaceAll = function(search, replacement) {\n var target = this;\n return target.split(search).join(replacement);\n};\nfunction udpateDisplayedItems(e) {\n localStorage.setItem('contenttype', e.target.checked);\n if (e.target.checked) {\n localStorage.setItem('content-display', 'none');\n } else {\n localStorage.setItem('content-display', 'block');\n }\n setDisplayedItems();\n}\nfunction setDisplayedItems() {\n setValueFromLocalStorage('contenttype');\n setValueFromLocalStorage('content-display');\n}"]},"metadata":{},"sourceType":"module"}
\ No newline at end of file
diff --git a/node_modules/.cache/babel-loader/d769ed5a8d8383550bbf2e6ac3e0c177.json b/node_modules/.cache/babel-loader/d769ed5a8d8383550bbf2e6ac3e0c177.json
new file mode 100644
index 00000000..fb04fc80
--- /dev/null
+++ b/node_modules/.cache/babel-loader/d769ed5a8d8383550bbf2e6ac3e0c177.json
@@ -0,0 +1 @@
+{"ast":null,"code":"var _jsxFileName = \"/home/seanedmunds/dev/home-page/src/index.js\",\n _s = $RefreshSig$();\n\nimport React from 'react';\nimport { useState, useEffect } from 'react';\nimport ReactDOM from 'react-dom'; //import { unstable_createPortal } from 'react-dom';\n\nimport './index.css';\nimport { jsxDEV as _jsxDEV } from \"react/jsx-dev-runtime\";\n\nfunction Homepage() {\n return /*#__PURE__*/_jsxDEV(\"main\", {\n id: \"container\",\n className: \"fade\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Search, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 11,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 10,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Header, {\n date: date(),\n greet: greet()\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 14,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 13,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Applications, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 20,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 19,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Bookmarks, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 23,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 22,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(ModalMenu, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 26,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 25,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(ModalInit, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 29,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 28,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 9,\n columnNumber: 5\n }, this);\n}\n\n_c = Homepage;\n\nfunction Search() {\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"search\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"abackground\",\n children: [/*#__PURE__*/_jsxDEV(\"input\", {\n name: \"keywords\",\n type: \"text\",\n className: \"keyword\",\n id: \"keywords\",\n size: \"50\",\n spellCheck: \"true\",\n placeholder: \"\"\n /*onFocus={this.placeholder = \"\"} onBlur={this.placeholder = ''}*/\n ,\n autoComplete: \"off\",\n autoFocus: \"true\",\n onKeyUp: handleKeyPress(this.onKeyUpValue.bind(this))\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 39,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n id: \"searchType\",\n className: \"Input-label\",\n children: \"Google search\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 40,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 38,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 37,\n columnNumber: 5\n }, this);\n}\n\n_c2 = Search;\n\nfunction Header(props) {\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"header\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n id: \"greeting_block\",\n children: /*#__PURE__*/_jsxDEV(\"h1\", {\n id: \"header_greet\",\n children: props.greet\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 50,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 49,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"date_block\",\n children: [/*#__PURE__*/_jsxDEV(\"h2\", {\n id: \"header_date\",\n children: props.date\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 53,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(Clock, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 54,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 52,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 48,\n columnNumber: 5\n }, this);\n}\n\n_c3 = Header;\n\nfunction Applications() {\n let appList = getApps();\n var items = [];\n\n for (var i = 0; i < appList.apps.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(App, {\n name: appList.apps[i].name,\n url: appList.apps[i].url,\n icon: appList.apps[i].icon,\n NSFW: appList.apps[i].NSFW\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 65,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"apps\",\n children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n children: \"Applications\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 76,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"apps_loop\",\n children: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 77,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 75,\n columnNumber: 5\n }, this);\n}\n\n_c4 = Applications;\n\nfunction App(props) {\n let classNameType = props.NSFW + \"-content\";\n let hrefUrl = \"https://\" + props.url;\n let iconName = \"mdi-\" + props.icon;\n return /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: hrefUrl,\n className: classNameType,\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_item\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_icon\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify icon\",\n \"data-icon\": iconName\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 93,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 92,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_text\",\n children: [/*#__PURE__*/_jsxDEV(\"span\", {\n id: \"app-name\",\n children: props.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 96,\n columnNumber: 13\n }, this), /*#__PURE__*/_jsxDEV(\"span\", {\n id: \"app-address\",\n children: props.url\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 97,\n columnNumber: 13\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 95,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 91,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 90,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 89,\n columnNumber: 5\n }, this);\n}\n\n_c5 = App;\n\nfunction Bookmarks() {\n let bookmarkList = getLinks();\n var items = [];\n\n for (var i = 0; i < bookmarkList.bookmarks.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(LinkGroups, {\n category: bookmarkList.bookmarks[i].category,\n links: bookmarkList.bookmarks[i].links\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 110,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"links\",\n children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n children: \"Bookmarks\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 119,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"links_loop\",\n children: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 120,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 118,\n columnNumber: 5\n }, this);\n}\n\n_c6 = Bookmarks;\n\nfunction LinkGroups(props) {\n var items = [];\n\n for (var i = 0; i < props.links.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(LinkItem, {\n link: props.links[i]\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 131,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"links_item\",\n children: [/*#__PURE__*/_jsxDEV(\"h4\", {\n children: props.category\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 139,\n columnNumber: 7\n }, this), items]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 138,\n columnNumber: 5\n }, this);\n}\n\n_c7 = LinkGroups;\n\nfunction LinkItem(props) {\n return /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: props.link.url,\n className: \"theme_color-border theme_text-select\",\n children: props.link.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 148,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 147,\n columnNumber: 5\n }, this);\n}\n\n_c8 = LinkItem;\n\nfunction ModalMenu() {\n var providers = getProviders();\n var items = [];\n\n for (var i = 0; i < providers.providers.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(Provider, {\n provider: providers.providers[i]\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 158,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"modal\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n children: [/*#__PURE__*/_jsxDEV(\"header\", {\n id: \"modal-header\",\n children: [/*#__PURE__*/_jsxDEV(\"h1\", {\n children: \"Options\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 168,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n href: \"#\",\n title: \"Close\",\n className: \"modal-close\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-close\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 170,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 169,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 167,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"h2\", {\n children: \"Color themes\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 174,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"modal-theme\",\n children: [/*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"blackboard\",\n className: \"theme-button theme-blackboard\",\n children: \"Blackboard\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 177,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"gazette\",\n className: \"theme-button theme-gazette\",\n children: \"Gazette\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 178,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"espresso\",\n className: \"theme-button theme-espresso\",\n children: \"Espresso\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 179,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cab\",\n className: \"theme-button theme-cab\",\n children: \"Cab\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 180,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cloud\",\n className: \"theme-button theme-cloud\",\n children: \"Cloud\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 181,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"lime\",\n className: \"theme-button theme-lime\",\n children: \"Lime\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 182,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"passion\",\n className: \"theme-button theme-passion\",\n children: \"Passion\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 183,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"blues\",\n className: \"theme-button theme-blues\",\n children: \"Blues\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 184,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"chalk\",\n className: \"theme-button theme-chalk\",\n children: \"Chalk\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 185,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"tron\",\n className: \"theme-button theme-tron\",\n children: \"Tron\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 186,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"paper\",\n className: \"theme-button theme-paper\",\n children: \"Paper\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 187,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cyberpunk\",\n className: \"theme-button theme-cyberpunk\",\n children: \"Cyberpunk\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 188,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"quadra\",\n className: \"theme-button theme-panam\",\n children: \"Quadra\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 189,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"panam\",\n className: \"theme-button theme-panam\",\n children: \"Panam\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 190,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"touch\",\n className: \"theme-button theme-touch\",\n children: \"Touch\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 191,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"peek\",\n className: \"theme-button theme-peek\",\n children: \"Peek\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 192,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 176,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"h2\", {\n children: \"Search options\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 196,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"providers\",\n children: /*#__PURE__*/_jsxDEV(\"table\", {\n children: /*#__PURE__*/_jsxDEV(\"tbody\", {\n children: [/*#__PURE__*/_jsxDEV(\"tr\", {\n children: [/*#__PURE__*/_jsxDEV(\"th\", {\n children: \"Website\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 201,\n columnNumber: 19\n }, this), /*#__PURE__*/_jsxDEV(\"th\", {\n children: \"Prefix\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 202,\n columnNumber: 19\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 200,\n columnNumber: 17\n }, this), items]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 199,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 198,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 197,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"header\", {\n id: \"modal-footer\",\n children: [/*#__PURE__*/_jsxDEV(\"a\", {\n href: \"https://github.com/jeroenpardon/\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-github-box\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 210,\n columnNumber: 54\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 210,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n href: \"https://materialdesignicons.com/\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-material-design\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 211,\n columnNumber: 54\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 211,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"sneaky\",\n children: [/*#__PURE__*/_jsxDEV(\"input\", {\n type: \"checkbox\",\n id: \"contenttype\",\n onChange: \"nsfw(this)\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 212,\n columnNumber: 35\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n for: \"contenttype\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-domino-mask\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 213,\n columnNumber: 36\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 213,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 212,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 209,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 166,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 165,\n columnNumber: 5\n }, this);\n}\n\n_c9 = ModalMenu;\n\nfunction Provider(props) {\n return /*#__PURE__*/_jsxDEV(\"tr\", {\n children: [/*#__PURE__*/_jsxDEV(\"td\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: props.provider.url,\n children: props.provider.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 223,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 223,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"td\", {\n children: props.provider.prefix\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 224,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 222,\n columnNumber: 5\n }, this);\n}\n\n_c10 = Provider;\n\nfunction ModalInit() {\n return /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"modal_init\",\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n className: \"btn\",\n href: \"#modal\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify icon\",\n \"data-icon\": \"mdi-xbox-controller-menu\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 233,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 232,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 231,\n columnNumber: 5\n }, this);\n}\n\n_c11 = ModalInit;\nReactDOM.render( /*#__PURE__*/_jsxDEV(Homepage, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 240,\n columnNumber: 3\n}, this), document.getElementById('root')); //Functions below this line are for calculating data for\n//other functions\n\nfunction date() {\n let currentDate = new Date();\n let dateOptions = {\n weekday: \"long\",\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\"\n };\n let date = currentDate.toLocaleDateString(\"en-GB\", dateOptions);\n return date;\n}\n\nfunction fixDigits(k) {\n if (k < 10) {\n return \"0\" + k;\n } else {\n return k;\n }\n}\n\nfunction greet() {\n let currentTime = new Date();\n let greet = Math.floor(currentTime.getHours() / 6);\n let easterEggChance = Math.floor(Math.random() * 100);\n\n let greetings = require('./messages.json');\n\n let timeBased = [];\n let easterEggs = [];\n\n for (var i = 0; i < greetings.messages.length; i++) {\n if (greetings.messages[i].easteregg === \"FALSE\") {\n timeBased = timeBased.concat(greetings.messages[i]);\n } else {\n easterEggs = easterEggs.concat(greetings.messages[i]);\n }\n }\n\n if (easterEggChance > 10) {\n return timeBased[greet].message;\n } else {\n let easterEggText = Math.floor(Math.random() * easterEggs.length);\n return easterEggs[easterEggText].message;\n }\n}\n\nfunction Clock() {\n _s();\n\n const [date, setDate] = useState(new Date());\n\n function refreshClock() {\n setDate(new Date());\n }\n\n useEffect(() => {\n const timerId = setInterval(refreshClock, 1000);\n return function cleanup() {\n clearInterval(timerId);\n };\n }, []);\n var hour = date.getHours();\n var minutes = date.getMinutes(); //var seconds = date.getSeconds();\n\n var midday = \"AM\";\n midday = hour >= 12 ? \"PM\" : \"AM\";\n hour = hour === 0 ? 12 : hour > 12 ? hour - 12 : hour;\n minutes = fixDigits(minutes); //seconds = fixDigits(seconds);\n\n let time = hour + \":\" + minutes + \" \" + midday;\n return /*#__PURE__*/_jsxDEV(\"h2\", {\n id: \"clock\",\n children: time\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 311,\n columnNumber: 5\n }, this);\n}\n\n_s(Clock, \"Gqi45WOZhU2c0BLYX0HoJeiR0fk=\");\n\n_c12 = Clock;\n\nfunction getApps() {\n let applications = require('./apps.json');\n\n return applications;\n}\n\nfunction getLinks() {\n let links = require('./links.json');\n\n return links;\n}\n\nfunction getProviders() {\n let providers = require('./providers.json');\n\n return providers;\n}\n\nfunction handleKeyPress(e) {\n var sindex = 0;\n var cycle = false;\n var key = e.keyCode || e.which;\n var text = document.getElementById(\"keywords\").value.replaceAll(\"+\", \"%2B\");\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n\n if (key == 13) {\n // Search functions\n search(text);\n }\n\n if (key == 9) {\n // Tab Completion Functions\n e.preventDefault();\n e.stopPropagation();\n\n if (text[0] === ';') {\n switch (option) {\n case 't':\n var streamers = ['admiralbahroo', 'moonmoon_ow', 'witwix'];\n\n if (!subtext || cycle) {\n cycle = true;\n if (sindex > streamers.length - 1) sindex = 0;\n document.getElementById(\"keywords\").value = ';t ' + streamers[sindex++];\n return;\n }\n\n for (var streamer of streamers) {\n if (subtext === streamer.substr(0, subtext.length)) {\n document.getElementById(\"keywords\").value = ';t ' + streamer;\n return;\n }\n }\n\n break;\n }\n }\n }\n\n if (key == 32) {\n //Space to go to search\n updateLabel(text);\n }\n\n sindex = 0;\n cycle = false;\n updateLabel(text);\n}\n\nfunction updateLabel(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n\n if (text[0] === '/') {\n // if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n document.getElementById(\"searchType\").innerHTML = \"Allmusic search\";\n break;\n\n case \"d\":\n document.getElementById(\"searchType\").innerHTML = \"Duck Duck Go search\";\n break;\n\n case \"di\":\n document.getElementById(\"searchType\").innerHTML = \"Discogs search\";\n break;\n\n case \"i\":\n document.getElementById(\"searchType\").innerHTML = \"IMDB search\";\n break;\n\n case \"m\":\n document.getElementById(\"searchType\").innerHTML = \"TheMovieDB search\";\n break;\n\n case \"r\":\n document.getElementById(\"searchType\").innerHTML = \"Reddit search\";\n break;\n\n case \"q\":\n document.getElementById(\"searchType\").innerHTML = \"Qwant search\";\n break;\n\n case \"so\":\n document.getElementById(\"searchType\").innerHTML = \"Soundcloud search\";\n break;\n\n case \"s\":\n document.getElementById(\"searchType\").innerHTML = \"Spotify search\";\n break;\n\n case \"tv\":\n document.getElementById(\"searchType\").innerHTML = \"TheTVDB search\";\n break;\n\n case \"t\":\n document.getElementById(\"searchType\").innerHTML = \"Trakt search\";\n break;\n\n case \"y\":\n document.getElementById(\"searchType\").innerHTML = \"YouTube search\";\n break;\n\n case \"w\":\n document.getElementById(\"searchType\").innerHTML = \"Wikipedia search\";\n break;\n\n case \"p\":\n document.getElementById(\"searchType\").innerHTML = \"Plex search\";\n break;\n\n case \"rt\":\n document.getElementById(\"searchType\").innerHTML = \"Rotten Tomatoes search\";\n break;\n\n default:\n document.getElementById(\"searchType\").innerHTML = \"Invalid search\";\n break;\n }\n } else {\n document.getElementById(\"searchType\").innerHTML = \"Google search\";\n }\n}\n\nfunction search(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n\n if (text[0] === '/') {\n if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n window.location = \"https://www.allmusic.com/search/all/\" + subtext;\n break;\n\n case \"d\":\n window.location = \"https://duckduckgo.com/?q=\" + subtext;\n break;\n\n case \"di\":\n window.location = \"https://www.discogs.com/search/?q=\" + subtext;\n break;\n\n case \"i\":\n window.location = \"https://www.imdb.com/find?q=\" + subtext;\n break;\n\n case \"m\":\n window.location = \"https://www.themoviedb.org/search?query=\" + subtext;\n break;\n\n case \"r\":\n window.location = \"https://www.reddit.com/search?q=\" + subtext;\n break;\n\n case \"q\":\n window.location = \"https://www.qwant.com/?q=\" + subtext;\n break;\n\n case \"so\":\n window.location = \"https://soundcloud.com/search?q=\" + subtext;\n break;\n\n case \"s\":\n window.location = \"https://open.spotify.com/search/results/\" + subtext;\n break;\n\n case \"t\":\n window.location = \"https://trakt.tv/search?query=\" + subtext;\n break;\n\n case \"tv\":\n window.location = \"https://www.thetvdb.com/search?query=\" + subtext;\n break;\n\n case \"y\":\n window.location = \"https://www.youtube.com/results?search_query=\" + subtext;\n break;\n\n case \"w\":\n window.location = \"https://en.wikipedia.org/w/index.php?search=\" + subtext;\n break;\n\n case \"p\":\n window.location = \"https://app.plex.tv/desktop/#!/search?query=\" + subtext;\n break;\n\n case \"rt\":\n window.location = \"https://www.rottentomatoes.com/search?search=\" + subtext;\n break;\n }\n } else {\n var option = text.substr(1);\n\n switch (option) {\n case \"d\":\n window.location = \"https://www.duckduckgo.com\";\n break;\n\n case \"y\":\n window.location = \"https://www.youtube.com\";\n break;\n\n case \"r\":\n window.location = \"https://reddit.com\";\n break;\n\n case \"s\":\n window.location = \"https://open.spotify.com\";\n break;\n }\n }\n } else if (validURL(text)) {\n if (containsProtocol(text)) window.location = text;else window.location = \"https://\" + text;\n } else {\n window.location = \"https://www.google.com/search?q=\" + text;\n }\n} // Source: https://stackoverflow.com/questions/5717093/check-if-a-javascript-string-is-a-url\n\n\nfunction validURL(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/)?' + // protocol\n '((([a-z\\\\d]([a-z\\\\d-]*[a-z\\\\d])*)\\\\.)+[a-z]{2,}|' + // domain name\n '((\\\\d{1,3}\\\\.){3}\\\\d{1,3}))' + // OR ip (v4) address\n '(\\\\:\\\\d+)?(\\\\/[-a-z\\\\d%_.~+]*)*' + // port and path\n '(\\\\?[;&a-z\\\\d%_.~+=-]*)?' + // query string\n '(\\\\#[-a-z\\\\d_]*)?$', 'i'); // fragment locator\n\n return !!pattern.test(str);\n}\n\nfunction containsProtocol(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/){1}.*', 'i');\n return !!pattern.test(str);\n}\n\nString.prototype.replaceAll = function (search, replacement) {\n var target = this;\n return target.split(search).join(replacement);\n};\n\nvar _c, _c2, _c3, _c4, _c5, _c6, _c7, _c8, _c9, _c10, _c11, _c12;\n\n$RefreshReg$(_c, \"Homepage\");\n$RefreshReg$(_c2, \"Search\");\n$RefreshReg$(_c3, \"Header\");\n$RefreshReg$(_c4, \"Applications\");\n$RefreshReg$(_c5, \"App\");\n$RefreshReg$(_c6, \"Bookmarks\");\n$RefreshReg$(_c7, \"LinkGroups\");\n$RefreshReg$(_c8, \"LinkItem\");\n$RefreshReg$(_c9, \"ModalMenu\");\n$RefreshReg$(_c10, \"Provider\");\n$RefreshReg$(_c11, \"ModalInit\");\n$RefreshReg$(_c12, \"Clock\");","map":{"version":3,"sources":["/home/seanedmunds/dev/home-page/src/index.js"],"names":["React","useState","useEffect","ReactDOM","Homepage","date","greet","Search","handleKeyPress","onKeyUpValue","bind","Header","props","Applications","appList","getApps","items","i","apps","length","push","name","url","icon","NSFW","App","classNameType","hrefUrl","iconName","Bookmarks","bookmarkList","getLinks","bookmarks","category","links","LinkGroups","LinkItem","link","ModalMenu","providers","getProviders","Provider","provider","prefix","ModalInit","render","document","getElementById","currentDate","Date","dateOptions","weekday","year","month","day","toLocaleDateString","fixDigits","k","currentTime","Math","floor","getHours","easterEggChance","random","greetings","require","timeBased","easterEggs","messages","easteregg","concat","message","easterEggText","Clock","setDate","refreshClock","timerId","setInterval","cleanup","clearInterval","hour","minutes","getMinutes","midday","time","applications","e","sindex","cycle","key","keyCode","which","text","value","replaceAll","option","substr","indexOf","subtext","search","preventDefault","stopPropagation","streamers","streamer","updateLabel","innerHTML","window","location","validURL","containsProtocol","str","pattern","RegExp","test","String","prototype","replacement","target","split","join"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { useState, useEffect } from 'react';\nimport ReactDOM from 'react-dom';\n//import { unstable_createPortal } from 'react-dom';\nimport './index.css';\n\nfunction Homepage() {\n return (\n \n \n \n
\n \n \n
\n \n \n \n
\n \n \n
\n \n \n
\n \n );\n}\n\nfunction Search() {\n return (\n \n )\n}\n\nfunction Header(props) {\n return (\n \n );\n}\n\nfunction Applications() {\n let appList = getApps();\n var items = [];\n for (var i = 0; i < appList.apps.length; i++) {\n items.push(\n \n );\n }\n return (\n \n Applications
\n \n {items}\n
\n \n );\n}\n\nfunction App(props) {\n let classNameType = props.NSFW + \"-content\";\n let hrefUrl = \"https://\" + props.url;\n let iconName = \"mdi-\" + props.icon;\n return (\n \n );\n}\n\nfunction Bookmarks() {\n let bookmarkList = getLinks();\n var items = [];\n for (var i = 0; i < bookmarkList.bookmarks.length; i++) {\n items.push(\n \n );\n }\n return (\n \n Bookmarks
\n \n {items}\n
\n \n );\n}\n\nfunction LinkGroups(props) {\n var items = [];\n for (var i = 0; i < props.links.length; i++) {\n items.push(\n \n );\n }\n return (\n \n
{props.category}
\n {items}\n \n );\n}\n\nfunction LinkItem(props) {\n return (\n \n );\n}\n\nfunction ModalMenu() {\n var providers = getProviders();\n var items = [];\n for (var i = 0; i < providers.providers.length; i++) {\n items.push(\n \n );\n }\n return (\n \n \n \n\n
Color themes
\n\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n\n\n
Search options
\n
\n \n \n \n | Website | \n Prefix | \n
\n {items}\n \n
\n \n\n \n
\n \n );\n}\n\nfunction Provider(props) {\n return (\n \n | {props.provider.name} | \n {props.provider.prefix} | \n
\n );\n}\n\nfunction ModalInit() {\n return (\n \n );\n}\n\nReactDOM.render(\n ,\n document.getElementById('root')\n);\n\n//Functions below this line are for calculating data for\n//other functions\n\nfunction date() {\n let currentDate = new Date();\n let dateOptions = {\n weekday: \"long\",\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\"\n };\n let date = currentDate.toLocaleDateString(\"en-GB\", dateOptions);\n return date;\n}\nfunction fixDigits(k) {\n if (k < 10) {\n return \"0\" + k;\n }\n else {\n return k;\n }\n}\nfunction greet() {\n let currentTime = new Date();\n let greet = Math.floor(currentTime.getHours() / 6);\n let easterEggChance = Math.floor(Math.random() * 100);\n let greetings = require('./messages.json');\n let timeBased = [];\n let easterEggs = [];\n for (var i = 0; i < greetings.messages.length; i++) {\n if (greetings.messages[i].easteregg === \"FALSE\") {\n timeBased = timeBased.concat(greetings.messages[i]);\n } else {\n easterEggs = easterEggs.concat(greetings.messages[i]);\n }\n }\n if (easterEggChance > 10) {\n return timeBased[greet].message;\n } else {\n let easterEggText = Math.floor(Math.random() * easterEggs.length);\n return easterEggs[easterEggText].message;\n }\n}\nfunction Clock() {\n const [date, setDate] = useState(new Date());\n\n function refreshClock() {\n setDate(new Date());\n }\n useEffect(() => {\n const timerId = setInterval(refreshClock, 1000);\n return function cleanup() {\n clearInterval(timerId);\n };\n }, []);\n\n var hour = date.getHours();\n var minutes = date.getMinutes();\n //var seconds = date.getSeconds();\n var midday = \"AM\";\n midday = (hour >= 12) ? \"PM\" : \"AM\";\n hour = (hour === 0) ? 12 : ((hour > 12) ? (hour - 12) : hour);\n minutes = fixDigits(minutes);\n //seconds = fixDigits(seconds);\n let time = hour + \":\" + minutes + \" \" + midday;\n\n return (\n {time}
\n\n );\n}\nfunction getApps() {\n let applications = require('./apps.json');\n return applications;\n}\nfunction getLinks() {\n let links = require('./links.json');\n return links;\n}\nfunction getProviders() {\n let providers = require('./providers.json');\n return providers;\n}\n\nfunction handleKeyPress(e) {\n var sindex = 0;\n var cycle = false;\n var key = e.keyCode || e.which;\n var text = document.getElementById(\"keywords\").value.replaceAll(\"+\", \"%2B\");\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n if (key == 13) { // Search functions\n search(text);\n }\n if (key == 9) { // Tab Completion Functions\n e.preventDefault();\n e.stopPropagation();\n if (text[0] === ';') {\n switch (option) {\n case 't':\n var streamers = ['admiralbahroo', 'moonmoon_ow', 'witwix'];\n if (!subtext || cycle) {\n cycle = true;\n if (sindex > streamers.length - 1) sindex = 0;\n document.getElementById(\"keywords\").value = ';t ' + streamers[sindex++];\n return;\n }\n for (var streamer of streamers) {\n if (subtext === streamer.substr(0, subtext.length)) {\n document.getElementById(\"keywords\").value = ';t ' + streamer;\n return;\n }\n }\n break;\n }\n }\n }\n if(key == 32){ //Space to go to search\nupdateLabel(text);\n }\n sindex = 0;\n cycle = false;\n updateLabel(text);\n}\n\nfunction updateLabel(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n if (text[0] === '/') {\n// if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n document.getElementById(\"searchType\").innerHTML = \"Allmusic search\";\n break;\n case \"d\":\n document.getElementById(\"searchType\").innerHTML = \"Duck Duck Go search\";\n break;\n case \"di\":\n document.getElementById(\"searchType\").innerHTML = \"Discogs search\";\n break;\n case \"i\":\n document.getElementById(\"searchType\").innerHTML = \"IMDB search\";\n break;\n case \"m\":\n document.getElementById(\"searchType\").innerHTML = \"TheMovieDB search\";\n break;\n case \"r\":\n document.getElementById(\"searchType\").innerHTML = \"Reddit search\";\n break;\n case \"q\":\n document.getElementById(\"searchType\").innerHTML = \"Qwant search\";\n break;\n case \"so\":\n document.getElementById(\"searchType\").innerHTML = \"Soundcloud search\";\n break;\n case \"s\":\n document.getElementById(\"searchType\").innerHTML = \"Spotify search\";\n break;\n case \"tv\":\n document.getElementById(\"searchType\").innerHTML = \"TheTVDB search\";\n break;\n case \"t\":\n document.getElementById(\"searchType\").innerHTML = \"Trakt search\";\n break;\n case \"y\":\n document.getElementById(\"searchType\").innerHTML = \"YouTube search\";\n break;\n case \"w\":\n document.getElementById(\"searchType\").innerHTML = \"Wikipedia search\";\n break;\n case \"p\":\n document.getElementById(\"searchType\").innerHTML = \"Plex search\";\n break;\n case \"rt\":\n document.getElementById(\"searchType\").innerHTML = \"Rotten Tomatoes search\";\n break;\n default:\n document.getElementById(\"searchType\").innerHTML = \"Invalid search\";\n break;\n }\n}else {\n document.getElementById(\"searchType\").innerHTML = \"Google search\";\n }\n}\n\nfunction search(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n if (text[0] === '/') {\n if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n window.location = \"https://www.allmusic.com/search/all/\" + subtext;\n break;\n case \"d\":\n window.location = \"https://duckduckgo.com/?q=\" + subtext;\n break;\n case \"di\":\n window.location = \"https://www.discogs.com/search/?q=\" + subtext;\n break;\n case \"i\":\n window.location = \"https://www.imdb.com/find?q=\" + subtext;\n break;\n case \"m\":\n window.location = \"https://www.themoviedb.org/search?query=\" + subtext;\n break;\n case \"r\":\n window.location = \"https://www.reddit.com/search?q=\" + subtext;\n break;\n case \"q\":\n window.location = \"https://www.qwant.com/?q=\" + subtext;\n break;\n case \"so\":\n window.location = \"https://soundcloud.com/search?q=\" + subtext;\n break;\n case \"s\":\n window.location = \"https://open.spotify.com/search/results/\" + subtext;\n break;\n case \"t\":\n window.location = \"https://trakt.tv/search?query=\" + subtext;\n break;\n case \"tv\":\n window.location = \"https://www.thetvdb.com/search?query=\" + subtext;\n break;\n case \"y\":\n window.location = \"https://www.youtube.com/results?search_query=\" + subtext;\n break;\n case \"w\":\n window.location = \"https://en.wikipedia.org/w/index.php?search=\" + subtext;\n break;\n case \"p\":\n window.location = \"https://app.plex.tv/desktop/#!/search?query=\" + subtext;\n break;\n case \"rt\":\n window.location = \"https://www.rottentomatoes.com/search?search=\" + subtext;\n break;\n }\n } else {\n var option = text.substr(1);\n switch (option) {\n case \"d\":\n window.location = \"https://www.duckduckgo.com\";\n break;\n case \"y\":\n window.location = \"https://www.youtube.com\";\n break;\n case \"r\":\n window.location = \"https://reddit.com\";\n break;\n case \"s\":\n window.location = \"https://open.spotify.com\";\n break;\n }\n }\n } else if (validURL(text)) {\n if (containsProtocol(text))\n window.location = text;\n else\n window.location = \"https://\" + text;\n } else {\n window.location = \"https://www.google.com/search?q=\" + text;\n }\n}\n\n// Source: https://stackoverflow.com/questions/5717093/check-if-a-javascript-string-is-a-url\nfunction validURL(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/)?' + // protocol\n '((([a-z\\\\d]([a-z\\\\d-]*[a-z\\\\d])*)\\\\.)+[a-z]{2,}|' + // domain name\n '((\\\\d{1,3}\\\\.){3}\\\\d{1,3}))' + // OR ip (v4) address\n '(\\\\:\\\\d+)?(\\\\/[-a-z\\\\d%_.~+]*)*' + // port and path\n '(\\\\?[;&a-z\\\\d%_.~+=-]*)?' + // query string\n '(\\\\#[-a-z\\\\d_]*)?$', 'i'); // fragment locator\n return !!pattern.test(str);\n}\n\nfunction containsProtocol(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/){1}.*', 'i');\n return !!pattern.test(str);\n}\n\nString.prototype.replaceAll = function(search, replacement) {\n var target = this;\n return target.split(search).join(replacement);\n};"]},"metadata":{},"sourceType":"module"}
\ No newline at end of file
diff --git a/node_modules/.cache/babel-loader/d7f54578e5ff09ebd3cba9b0078450ed.json b/node_modules/.cache/babel-loader/d7f54578e5ff09ebd3cba9b0078450ed.json
new file mode 100644
index 00000000..4459da07
--- /dev/null
+++ b/node_modules/.cache/babel-loader/d7f54578e5ff09ebd3cba9b0078450ed.json
@@ -0,0 +1 @@
+{"ast":null,"code":"/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n'use strict';\n/* eslint-disable no-unused-vars */\n\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n if (val === null || val === undefined) {\n throw new TypeError('Object.assign cannot be called with null or undefined');\n }\n\n return Object(val);\n}\n\nfunction shouldUseNative() {\n try {\n if (!Object.assign) {\n return false;\n } // Detect buggy property enumeration order in older V8 versions.\n // https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\n\n var test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\n test1[5] = 'de';\n\n if (Object.getOwnPropertyNames(test1)[0] === '5') {\n return false;\n } // https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\n\n var test2 = {};\n\n for (var i = 0; i < 10; i++) {\n test2['_' + String.fromCharCode(i)] = i;\n }\n\n var order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n return test2[n];\n });\n\n if (order2.join('') !== '0123456789') {\n return false;\n } // https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\n\n var test3 = {};\n 'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n test3[letter] = letter;\n });\n\n if (Object.keys(Object.assign({}, test3)).join('') !== 'abcdefghijklmnopqrst') {\n return false;\n }\n\n return true;\n } catch (err) {\n // We don't expect any of the above to throw, but better to be safe.\n return false;\n }\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n var from;\n var to = toObject(target);\n var symbols;\n\n for (var s = 1; s < arguments.length; s++) {\n from = Object(arguments[s]);\n\n for (var key in from) {\n if (hasOwnProperty.call(from, key)) {\n to[key] = from[key];\n }\n }\n\n if (getOwnPropertySymbols) {\n symbols = getOwnPropertySymbols(from);\n\n for (var i = 0; i < symbols.length; i++) {\n if (propIsEnumerable.call(from, symbols[i])) {\n to[symbols[i]] = from[symbols[i]];\n }\n }\n }\n }\n\n return to;\n};","map":{"version":3,"sources":["/home/seanedmunds/dev/home-page/node_modules/object-assign/index.js"],"names":["getOwnPropertySymbols","Object","hasOwnProperty","prototype","propIsEnumerable","propertyIsEnumerable","toObject","val","undefined","TypeError","shouldUseNative","assign","test1","String","getOwnPropertyNames","test2","i","fromCharCode","order2","map","n","join","test3","split","forEach","letter","keys","err","module","exports","target","source","from","to","symbols","s","arguments","length","key","call"],"mappings":"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","sourcesContent":["/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n"]},"metadata":{},"sourceType":"script"}
\ No newline at end of file
diff --git a/node_modules/.cache/babel-loader/d832fa285ee84e776b442e72d61f24e6.json b/node_modules/.cache/babel-loader/d832fa285ee84e776b442e72d61f24e6.json
new file mode 100644
index 00000000..4eeb9c90
--- /dev/null
+++ b/node_modules/.cache/babel-loader/d832fa285ee84e776b442e72d61f24e6.json
@@ -0,0 +1 @@
+{"ast":null,"code":"var _jsxFileName = \"/home/seanedmunds/dev/home-page/src/index.js\",\n _s = $RefreshSig$();\n\nimport React from 'react';\nimport { useState, useEffect } from 'react';\nimport ReactDOM from 'react-dom';\nimport './index.css';\nimport { jsxDEV as _jsxDEV } from \"react/jsx-dev-runtime\";\n\nconst setValueFromLocalStorage = property => {\n let value = localStorage.getItem(property);\n setValue(property, value);\n};\n\nconst setValue = (property, value) => {\n if (value) {\n document.documentElement.style.setProperty(`--${property}`, value);\n const input = document.querySelector(`#${property}`);\n\n if (input) {\n value = value.replace('px', '');\n input.value = value;\n }\n }\n};\n\nfunction Homepage() {\n setTheme();\n return /*#__PURE__*/_jsxDEV(\"main\", {\n id: \"container\",\n className: \"fade\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Search, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 28,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 27,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Header, {\n date: date(),\n greet: greet()\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 31,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 30,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Applications, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 37,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 36,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Bookmarks, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 40,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 39,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(ModalMenu, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 43,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 42,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(ModalInit, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 46,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 45,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 26,\n columnNumber: 5\n }, this);\n}\n\n_c = Homepage;\n\nfunction Search() {\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"search\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"abackground\",\n children: [/*#__PURE__*/_jsxDEV(\"input\", {\n name: \"keywords\",\n type: \"text\",\n className: \"keyword\",\n id: \"keywords\",\n size: \"50\",\n spellCheck: \"true\",\n placeholder: \"\"\n /*onFocus={this.placeholder = \"\"} onBlur={this.placeholder = ''}*/\n ,\n autoComplete: \"off\",\n autoFocus: true,\n onKeyUp: handleKeyPress\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 56,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n id: \"searchType\",\n className: \"Input-label\",\n children: \"Google search\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 57,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 55,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 54,\n columnNumber: 5\n }, this);\n}\n\n_c2 = Search;\n\nfunction Header(props) {\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"header\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n id: \"greeting_block\",\n children: /*#__PURE__*/_jsxDEV(\"h1\", {\n id: \"header_greet\",\n children: props.greet\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 67,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 66,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"date_block\",\n children: [/*#__PURE__*/_jsxDEV(\"h2\", {\n id: \"header_date\",\n children: props.date\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 70,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(Clock, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 71,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 69,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 65,\n columnNumber: 5\n }, this);\n}\n\n_c3 = Header;\n\nfunction Applications() {\n let appList = getApps();\n var items = [];\n\n for (var i = 0; i < appList.apps.length; i++) {\n var safe = appList.apps[i].NSFW;\n var NSFWEnabled = localStorage.getItem(\"contenttype\");\n\n if (safe === \"SAFE\") {\n items.push( /*#__PURE__*/_jsxDEV(App, {\n name: appList.apps[i].name,\n url: appList.apps[i].url,\n icon: appList.apps[i].icon,\n NSFW: appList.apps[i].NSFW\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 85,\n columnNumber: 9\n }, this));\n } else if (safe === \"NSFW\" && NSFWEnabled) {\n items.push( /*#__PURE__*/_jsxDEV(App, {\n name: appList.apps[i].name,\n url: appList.apps[i].url,\n icon: appList.apps[i].icon,\n NSFW: appList.apps[i].NSFW\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 95,\n columnNumber: 9\n }, this));\n } else {}\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"apps\",\n children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n children: \"Applications\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 110,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"apps_loop\",\n children: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 111,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 109,\n columnNumber: 5\n }, this);\n}\n\n_c4 = Applications;\n\nfunction App(props) {\n let classNameType = props.NSFW + \"-content\";\n let hrefUrl = \"https://\" + props.url;\n let iconName = \"mdi-\" + props.icon;\n return /*#__PURE__*/_jsxDEV(\"div\", {\n className: classNameType,\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: hrefUrl,\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_item\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_icon\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify icon\",\n \"data-icon\": iconName\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 128,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 127,\n columnNumber: 13\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_text\",\n children: [/*#__PURE__*/_jsxDEV(\"span\", {\n id: \"app-name\",\n children: props.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 131,\n columnNumber: 15\n }, this), /*#__PURE__*/_jsxDEV(\"span\", {\n id: \"app-address\",\n children: props.url\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 132,\n columnNumber: 15\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 130,\n columnNumber: 13\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 126,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 125,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 124,\n columnNumber: 7\n }, this);\n}\n\n_c5 = App;\n\nfunction Bookmarks() {\n let bookmarkList = getLinks();\n var items = [];\n\n for (var i = 0; i < bookmarkList.bookmarks.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(LinkGroups, {\n category: bookmarkList.bookmarks[i].category,\n links: bookmarkList.bookmarks[i].links\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 145,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"links\",\n children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n children: \"Bookmarks\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 154,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"links_loop\",\n children: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 155,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 153,\n columnNumber: 5\n }, this);\n}\n\n_c6 = Bookmarks;\n\nfunction LinkGroups(props) {\n var items = [];\n\n for (var i = 0; i < props.links.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(LinkItem, {\n link: props.links[i]\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 166,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"links_item\",\n children: [/*#__PURE__*/_jsxDEV(\"h4\", {\n children: props.category\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 174,\n columnNumber: 7\n }, this), items]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 173,\n columnNumber: 5\n }, this);\n}\n\n_c7 = LinkGroups;\n\nfunction LinkItem(props) {\n return /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: props.link.url,\n className: \"theme_color-border theme_text-select\",\n children: props.link.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 183,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 182,\n columnNumber: 5\n }, this);\n}\n\n_c8 = LinkItem;\n\nfunction ModalMenu() {\n var providers = getProviders();\n var items = [];\n var isChecked = localStorage.getItem(\"contenttype\");\n console.log(localStorage.getItem(\"contenttype\"));\n\n for (var i = 0; i < providers.providers.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(Provider, {\n provider: providers.providers[i]\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 195,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"modal\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n children: [/*#__PURE__*/_jsxDEV(\"header\", {\n id: \"modal-header\",\n children: [/*#__PURE__*/_jsxDEV(\"h1\", {\n children: \"Options\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 205,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n href: \"#\",\n title: \"Close\",\n className: \"modal-close\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-close\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 207,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 206,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 204,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"h2\", {\n children: \"Color themes\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 211,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"modal-theme\",\n children: [/*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"blackboard\",\n className: \"theme-button theme-blackboard\",\n onClick: updateTheme,\n children: \"Blackboard\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 214,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"gazette\",\n className: \"theme-button theme-gazette\",\n onClick: updateTheme,\n children: \"Gazette\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 215,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"espresso\",\n className: \"theme-button theme-espresso\",\n onClick: updateTheme,\n children: \"Espresso\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 216,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cab\",\n className: \"theme-button theme-cab\",\n onClick: updateTheme,\n children: \"Cab\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 217,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cloud\",\n className: \"theme-button theme-cloud\",\n onClick: updateTheme,\n children: \"Cloud\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 218,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"lime\",\n className: \"theme-button theme-lime\",\n onClick: updateTheme,\n children: \"Lime\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 219,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"passion\",\n className: \"theme-button theme-passion\",\n onClick: updateTheme,\n children: \"Passion\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 220,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"blues\",\n className: \"theme-button theme-blues\",\n onClick: updateTheme,\n children: \"Blues\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 221,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"chalk\",\n className: \"theme-button theme-chalk\",\n onClick: updateTheme,\n children: \"Chalk\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 222,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"tron\",\n className: \"theme-button theme-tron\",\n onClick: updateTheme,\n children: \"Tron\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 223,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"paper\",\n className: \"theme-button theme-paper\",\n onClick: updateTheme,\n children: \"Paper\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 224,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cyberpunk\",\n className: \"theme-button theme-cyberpunk\",\n onClick: updateTheme,\n children: \"Cyberpunk\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 225,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"quadra\",\n className: \"theme-button theme-panam\",\n onClick: updateTheme,\n children: \"Quadra\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 226,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"panam\",\n className: \"theme-button theme-panam\",\n onClick: updateTheme,\n children: \"Panam\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 227,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"touch\",\n className: \"theme-button theme-touch\",\n onClick: updateTheme,\n children: \"Touch\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 228,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"peek\",\n className: \"theme-button theme-peek\",\n onClick: updateTheme,\n children: \"Peek\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 229,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 213,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"h2\", {\n children: \"Search options\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 233,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"providers\",\n children: /*#__PURE__*/_jsxDEV(\"table\", {\n children: /*#__PURE__*/_jsxDEV(\"tbody\", {\n children: [/*#__PURE__*/_jsxDEV(\"tr\", {\n children: [/*#__PURE__*/_jsxDEV(\"th\", {\n children: \"Website\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 238,\n columnNumber: 19\n }, this), /*#__PURE__*/_jsxDEV(\"th\", {\n children: \"Prefix\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 239,\n columnNumber: 19\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 237,\n columnNumber: 17\n }, this), items]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 236,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 235,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 234,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"header\", {\n id: \"modal-footer\",\n children: [/*#__PURE__*/_jsxDEV(\"a\", {\n href: \"https://github.com/jeroenpardon/\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-github-box\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 247,\n columnNumber: 54\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 247,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n href: \"https://materialdesignicons.com/\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-material-design\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 248,\n columnNumber: 54\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 248,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(HideButton, {\n checked: isChecked\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 249,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 246,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 203,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 202,\n columnNumber: 5\n }, this);\n}\n\n_c9 = ModalMenu;\n\nfunction HideButton(props) {\n console.log(props.checked);\n\n if (props.checked) {\n return /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"sneaky\",\n children: [/*#__PURE__*/_jsxDEV(\"script\", {\n children: \"console.log(\\\"icon should be grey\\\");\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 263,\n columnNumber: 31\n }, this), /*#__PURE__*/_jsxDEV(\"input\", {\n type: \"checkbox\",\n id: \"contenttype\",\n onChange: udpateDisplayedItems,\n defaultChecked: true\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 263,\n columnNumber: 83\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n for: \"contenttype\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-domino-mask\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 264,\n columnNumber: 32\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 264,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 263,\n columnNumber: 7\n }, this);\n } else {\n return /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"sneaky\",\n children: [/*#__PURE__*/_jsxDEV(\"script\", {\n children: \"console.log(\\\"icon should be white\\\");\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 268,\n columnNumber: 31\n }, this), /*#__PURE__*/_jsxDEV(\"input\", {\n type: \"checkbox\",\n id: \"contenttype\",\n onChange: udpateDisplayedItems,\n defaultChecked: false\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 268,\n columnNumber: 84\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n for: \"contenttype\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-domino-mask\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 269,\n columnNumber: 32\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 269,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 268,\n columnNumber: 7\n }, this);\n }\n}\n\n_c10 = HideButton;\n\nfunction Provider(props) {\n return /*#__PURE__*/_jsxDEV(\"tr\", {\n children: [/*#__PURE__*/_jsxDEV(\"td\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: props.provider.url,\n children: props.provider.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 277,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 277,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"td\", {\n children: props.provider.prefix\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 278,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 276,\n columnNumber: 5\n }, this);\n}\n\n_c11 = Provider;\n\nfunction ModalInit() {\n setDisplayedItems();\n return /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"modal_init\",\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n className: \"btn\",\n href: \"#modal\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify icon\",\n \"data-icon\": \"mdi-xbox-controller-menu\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 288,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 287,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 286,\n columnNumber: 5\n }, this);\n}\n\n_c12 = ModalInit;\nReactDOM.render( /*#__PURE__*/_jsxDEV(Homepage, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 295,\n columnNumber: 3\n}, this), document.getElementById('root')); //Functions below this line are for calculating data for\n//other functions\n\nfunction date() {\n let currentDate = new Date();\n let dateOptions = {\n weekday: \"long\",\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\"\n };\n let date = currentDate.toLocaleDateString(\"en-GB\", dateOptions);\n return date;\n}\n\nfunction fixDigits(k) {\n if (k < 10) {\n return \"0\" + k;\n } else {\n return k;\n }\n}\n\nfunction greet() {\n let currentTime = new Date();\n let greet = Math.floor(currentTime.getHours() / 6);\n let easterEggChance = Math.floor(Math.random() * 100);\n\n let greetings = require('./messages.json');\n\n let timeBased = [];\n let easterEggs = [];\n\n for (var i = 0; i < greetings.messages.length; i++) {\n if (greetings.messages[i].easteregg === \"FALSE\") {\n timeBased = timeBased.concat(greetings.messages[i]);\n } else {\n easterEggs = easterEggs.concat(greetings.messages[i]);\n }\n }\n\n if (easterEggChance > 10) {\n return timeBased[greet].message;\n } else {\n let easterEggText = Math.floor(Math.random() * easterEggs.length);\n return easterEggs[easterEggText].message;\n }\n}\n\nfunction Clock() {\n _s();\n\n const [date, setDate] = useState(new Date());\n\n function refreshClock() {\n setDate(new Date());\n }\n\n useEffect(() => {\n const timerId = setInterval(refreshClock, 1000);\n return function cleanup() {\n clearInterval(timerId);\n };\n }, []);\n var hour = date.getHours();\n var minutes = date.getMinutes(); //var seconds = date.getSeconds();\n\n var midday = \"AM\";\n midday = hour >= 12 ? \"PM\" : \"AM\";\n hour = hour === 0 ? 12 : hour > 12 ? hour - 12 : hour;\n minutes = fixDigits(minutes); //seconds = fixDigits(seconds);\n\n let time = hour + \":\" + minutes + \" \" + midday;\n return /*#__PURE__*/_jsxDEV(\"h2\", {\n id: \"clock\",\n children: time\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 366,\n columnNumber: 5\n }, this);\n}\n\n_s(Clock, \"Gqi45WOZhU2c0BLYX0HoJeiR0fk=\");\n\n_c13 = Clock;\n\nfunction getApps() {\n let applications = require('./apps.json');\n\n return applications;\n}\n\nfunction getLinks() {\n let links = require('./links.json');\n\n return links;\n}\n\nfunction getProviders() {\n let providers = require('./providers.json');\n\n return providers;\n}\n\nfunction getThemes() {\n let themes = require('./themes.json');\n\n return themes;\n}\n\nfunction updateTheme(e) {\n var themes = getThemes();\n var themeName = e.target.innerHTML.toLowerCase();\n var index = themes.themes.findIndex(function (item, i) {\n return item.name === themeName;\n });\n localStorage.setItem(\"image-background\", themes.themes[index].imagebackground);\n localStorage.setItem(\"color-background\", themes.themes[index].colorbackground);\n localStorage.setItem(\"color-search-background\", themes.themes[index].colorserachbackground);\n localStorage.setItem(\"color-text-pri\", themes.themes[index].colortextpri);\n localStorage.setItem(\"color-text-acc\", themes.themes[index].colortextacc);\n localStorage.setItem(\"color-border\", themes.themes[index].colorborder); //document.documentElement.style.setProperty(prop, `var(--${themeName}${prop.substring(10)})`);\n\n setTheme();\n}\n\nfunction setTheme() {\n setValueFromLocalStorage('image-background');\n setValueFromLocalStorage('color-background');\n setValueFromLocalStorage('color-search-background');\n setValueFromLocalStorage('color-text-pri');\n setValueFromLocalStorage('color-text-acc');\n setValueFromLocalStorage('color-border');\n setValueFromLocalStorage('content-display');\n}\n\nfunction handleKeyPress(e) {\n var sindex = 0;\n var cycle = false;\n var key = e.keyCode || e.which;\n var text = e.target.value.replaceAll(\"+\", \"%2B\");\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n\n if (key == 13) {\n // Search functions\n search(text);\n }\n\n if (key == 9) {\n // Tab Completion Functions\n e.preventDefault();\n e.stopPropagation();\n\n if (text[0] === ';') {\n switch (option) {\n case 't':\n var streamers = ['admiralbahroo', 'moonmoon_ow', 'witwix'];\n\n if (!subtext || cycle) {\n cycle = true;\n if (sindex > streamers.length - 1) sindex = 0;\n document.getElementById(\"keywords\").value = ';t ' + streamers[sindex++];\n return;\n }\n\n for (var streamer of streamers) {\n if (subtext === streamer.substr(0, subtext.length)) {\n document.getElementById(\"keywords\").value = ';t ' + streamer;\n return;\n }\n }\n\n break;\n }\n }\n }\n\n if (key == 32) {\n //Space to go to search\n updateLabel(text);\n }\n\n sindex = 0;\n cycle = false;\n updateLabel(text);\n}\n\nfunction updateLabel(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n\n if (text[0] === '/') {\n // if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n document.getElementById(\"searchType\").innerHTML = \"Allmusic search\";\n break;\n\n case \"d\":\n document.getElementById(\"searchType\").innerHTML = \"Duck Duck Go search\";\n break;\n\n case \"di\":\n document.getElementById(\"searchType\").innerHTML = \"Discogs search\";\n break;\n\n case \"i\":\n document.getElementById(\"searchType\").innerHTML = \"IMDB search\";\n break;\n\n case \"m\":\n document.getElementById(\"searchType\").innerHTML = \"TheMovieDB search\";\n break;\n\n case \"r\":\n document.getElementById(\"searchType\").innerHTML = \"Reddit search\";\n break;\n\n case \"q\":\n document.getElementById(\"searchType\").innerHTML = \"Qwant search\";\n break;\n\n case \"so\":\n document.getElementById(\"searchType\").innerHTML = \"Soundcloud search\";\n break;\n\n case \"s\":\n document.getElementById(\"searchType\").innerHTML = \"Spotify search\";\n break;\n\n case \"tv\":\n document.getElementById(\"searchType\").innerHTML = \"TheTVDB search\";\n break;\n\n case \"t\":\n document.getElementById(\"searchType\").innerHTML = \"Trakt search\";\n break;\n\n case \"y\":\n document.getElementById(\"searchType\").innerHTML = \"YouTube search\";\n break;\n\n case \"w\":\n document.getElementById(\"searchType\").innerHTML = \"Wikipedia search\";\n break;\n\n case \"p\":\n document.getElementById(\"searchType\").innerHTML = \"Plex search\";\n break;\n\n case \"rt\":\n document.getElementById(\"searchType\").innerHTML = \"Rotten Tomatoes search\";\n break;\n\n default:\n document.getElementById(\"searchType\").innerHTML = \"Invalid search\";\n break;\n }\n } else {\n document.getElementById(\"searchType\").innerHTML = \"Google search\";\n }\n}\n\nfunction search(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n\n if (text[0] === '/') {\n if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n window.location = \"https://www.allmusic.com/search/all/\" + subtext;\n break;\n\n case \"d\":\n window.location = \"https://duckduckgo.com/?q=\" + subtext;\n break;\n\n case \"di\":\n window.location = \"https://www.discogs.com/search/?q=\" + subtext;\n break;\n\n case \"i\":\n window.location = \"https://www.imdb.com/find?q=\" + subtext;\n break;\n\n case \"m\":\n window.location = \"https://www.themoviedb.org/search?query=\" + subtext;\n break;\n\n case \"r\":\n window.location = \"https://www.reddit.com/search?q=\" + subtext;\n break;\n\n case \"q\":\n window.location = \"https://www.qwant.com/?q=\" + subtext;\n break;\n\n case \"so\":\n window.location = \"https://soundcloud.com/search?q=\" + subtext;\n break;\n\n case \"s\":\n window.location = \"https://open.spotify.com/search/results/\" + subtext;\n break;\n\n case \"t\":\n window.location = \"https://trakt.tv/search?query=\" + subtext;\n break;\n\n case \"tv\":\n window.location = \"https://www.thetvdb.com/search?query=\" + subtext;\n break;\n\n case \"y\":\n window.location = \"https://www.youtube.com/results?search_query=\" + subtext;\n break;\n\n case \"w\":\n window.location = \"https://en.wikipedia.org/w/index.php?search=\" + subtext;\n break;\n\n case \"p\":\n window.location = \"https://app.plex.tv/desktop/#!/search?query=\" + subtext;\n break;\n\n case \"rt\":\n window.location = \"https://www.rottentomatoes.com/search?search=\" + subtext;\n break;\n }\n } else {\n var option = text.substr(1);\n\n switch (option) {\n case \"d\":\n window.location = \"https://www.duckduckgo.com\";\n break;\n\n case \"y\":\n window.location = \"https://www.youtube.com\";\n break;\n\n case \"r\":\n window.location = \"https://reddit.com\";\n break;\n\n case \"s\":\n window.location = \"https://open.spotify.com\";\n break;\n }\n }\n } else if (validURL(text)) {\n if (containsProtocol(text)) window.location = text;else window.location = \"https://\" + text;\n } else {\n window.location = \"https://www.google.com/search?q=\" + text;\n }\n}\n\nfunction validURL(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/)?' + // protocol\n '((([a-z\\\\d]([a-z\\\\d-]*[a-z\\\\d])*)\\\\.)+[a-z]{2,}|' + // domain name\n '((\\\\d{1,3}\\\\.){3}\\\\d{1,3}))' + // OR ip (v4) address\n '(\\\\:\\\\d+)?(\\\\/[-a-z\\\\d%_.~+]*)*' + // port and path\n '(\\\\?[;&a-z\\\\d%_.~+=-]*)?' + // query string\n '(\\\\#[-a-z\\\\d_]*)?$', 'i'); // fragment locator\n\n return !!pattern.test(str);\n}\n\nfunction containsProtocol(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/){1}.*', 'i');\n return !!pattern.test(str);\n}\n\nString.prototype.replaceAll = function (search, replacement) {\n var target = this;\n return target.split(search).join(replacement);\n};\n\nfunction udpateDisplayedItems(e) {\n localStorage.setItem('contenttype', e.target.checked);\n\n if (e.target.checked) {\n localStorage.setItem('content-display', 'none');\n } else {\n localStorage.setItem('content-display', 'block');\n }\n\n setDisplayedItems();\n}\n\nfunction setDisplayedItems() {\n setValueFromLocalStorage('contenttype');\n setValueFromLocalStorage('content-display');\n}\n\nvar _c, _c2, _c3, _c4, _c5, _c6, _c7, _c8, _c9, _c10, _c11, _c12, _c13;\n\n$RefreshReg$(_c, \"Homepage\");\n$RefreshReg$(_c2, \"Search\");\n$RefreshReg$(_c3, \"Header\");\n$RefreshReg$(_c4, \"Applications\");\n$RefreshReg$(_c5, \"App\");\n$RefreshReg$(_c6, \"Bookmarks\");\n$RefreshReg$(_c7, \"LinkGroups\");\n$RefreshReg$(_c8, \"LinkItem\");\n$RefreshReg$(_c9, \"ModalMenu\");\n$RefreshReg$(_c10, \"HideButton\");\n$RefreshReg$(_c11, \"Provider\");\n$RefreshReg$(_c12, \"ModalInit\");\n$RefreshReg$(_c13, \"Clock\");","map":{"version":3,"sources":["/home/seanedmunds/dev/home-page/src/index.js"],"names":["React","useState","useEffect","ReactDOM","setValueFromLocalStorage","property","value","localStorage","getItem","setValue","document","documentElement","style","setProperty","input","querySelector","replace","Homepage","setTheme","date","greet","Search","handleKeyPress","Header","props","Applications","appList","getApps","items","i","apps","length","safe","NSFW","NSFWEnabled","push","name","url","icon","App","classNameType","hrefUrl","iconName","Bookmarks","bookmarkList","getLinks","bookmarks","category","links","LinkGroups","LinkItem","link","ModalMenu","providers","getProviders","isChecked","console","log","updateTheme","HideButton","checked","udpateDisplayedItems","Provider","provider","prefix","ModalInit","setDisplayedItems","render","getElementById","currentDate","Date","dateOptions","weekday","year","month","day","toLocaleDateString","fixDigits","k","currentTime","Math","floor","getHours","easterEggChance","random","greetings","require","timeBased","easterEggs","messages","easteregg","concat","message","easterEggText","Clock","setDate","refreshClock","timerId","setInterval","cleanup","clearInterval","hour","minutes","getMinutes","midday","time","applications","getThemes","themes","e","themeName","target","innerHTML","toLowerCase","index","findIndex","item","setItem","imagebackground","colorbackground","colorserachbackground","colortextpri","colortextacc","colorborder","sindex","cycle","key","keyCode","which","text","replaceAll","option","substr","indexOf","subtext","search","preventDefault","stopPropagation","streamers","streamer","updateLabel","window","location","validURL","containsProtocol","str","pattern","RegExp","test","String","prototype","replacement","split","join"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { useState, useEffect } from 'react';\nimport ReactDOM from 'react-dom';\nimport './index.css';\n\nconst setValueFromLocalStorage = property => {\n let value = localStorage.getItem(property);\n setValue(property, value);\n};\nconst setValue = (property, value) => {\n if (value) {\n document.documentElement.style.setProperty(`--${property}`, value);\n\n const input = document.querySelector(`#${property}`);\n if (input) {\n value = value.replace('px', '');\n input.value = value;\n }\n }\n};\n\nfunction Homepage() {\n setTheme();\n \n return (\n \n \n \n
\n \n \n
\n \n \n \n
\n \n \n
\n \n \n
\n \n );\n}\n\nfunction Search() {\n return (\n \n )\n}\n\nfunction Header(props) {\n return (\n \n );\n}\n\nfunction Applications() {\n let appList = getApps();\n var items = [];\n for (var i = 0; i < appList.apps.length; i++) {\n var safe = appList.apps[i].NSFW;\n var NSFWEnabled = localStorage.getItem(\"contenttype\");\n if (safe === \"SAFE\") {\n items.push(\n \n );\n } else if (safe === \"NSFW\" && NSFWEnabled) {\n items.push(\n \n );\n } else {\n \n }\n \n }\n return (\n \n Applications
\n \n {items}\n
\n \n );\n}\n\nfunction App(props) {\n \n let classNameType = props.NSFW + \"-content\";\n let hrefUrl = \"https://\" + props.url;\n let iconName = \"mdi-\" + props.icon;\n return (\n \n );\n}\n\nfunction Bookmarks() {\n let bookmarkList = getLinks();\n var items = [];\n for (var i = 0; i < bookmarkList.bookmarks.length; i++) {\n items.push(\n \n );\n }\n return (\n \n Bookmarks
\n \n {items}\n
\n \n );\n}\n\nfunction LinkGroups(props) {\n var items = [];\n for (var i = 0; i < props.links.length; i++) {\n items.push(\n \n );\n }\n return (\n \n
{props.category}
\n {items}\n \n );\n}\n\nfunction LinkItem(props) {\n return (\n \n );\n}\n\nfunction ModalMenu() {\n var providers = getProviders();\n var items = [];\n var isChecked = localStorage.getItem(\"contenttype\");\n console.log(localStorage.getItem(\"contenttype\"));\n for (var i = 0; i < providers.providers.length; i++) {\n items.push(\n \n );\n }\n return (\n \n \n \n\n
Color themes
\n\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n\n\n
Search options
\n
\n \n \n \n | Website | \n Prefix | \n
\n {items}\n \n
\n \n\n \n
\n \n );\n}\n\nfunction HideButton(props) {\n console.log(props.checked);\n if(props.checked) {\n return (\n \n \n
\n );\n } else {\n return (\n \n
\n );\n }\n}\n\nfunction Provider(props) {\n return (\n \n | {props.provider.name} | \n {props.provider.prefix} | \n
\n );\n}\n\nfunction ModalInit() {\n setDisplayedItems();\n return (\n \n );\n}\n\nReactDOM.render(\n ,\n document.getElementById('root')\n);\n\n//Functions below this line are for calculating data for\n//other functions\n\nfunction date() {\n let currentDate = new Date();\n let dateOptions = {\n weekday: \"long\",\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\"\n };\n let date = currentDate.toLocaleDateString(\"en-GB\", dateOptions);\n return date;\n}\nfunction fixDigits(k) {\n if (k < 10) {\n return \"0\" + k;\n }\n else {\n return k;\n }\n}\nfunction greet() {\n let currentTime = new Date();\n let greet = Math.floor(currentTime.getHours() / 6);\n let easterEggChance = Math.floor(Math.random() * 100);\n let greetings = require('./messages.json');\n let timeBased = [];\n let easterEggs = [];\n for (var i = 0; i < greetings.messages.length; i++) {\n if (greetings.messages[i].easteregg === \"FALSE\") {\n timeBased = timeBased.concat(greetings.messages[i]);\n } else {\n easterEggs = easterEggs.concat(greetings.messages[i]);\n }\n }\n if (easterEggChance > 10) {\n return timeBased[greet].message;\n } else {\n let easterEggText = Math.floor(Math.random() * easterEggs.length);\n return easterEggs[easterEggText].message;\n }\n}\nfunction Clock() {\n const [date, setDate] = useState(new Date());\n\n function refreshClock() {\n setDate(new Date());\n }\n useEffect(() => {\n const timerId = setInterval(refreshClock, 1000);\n return function cleanup() {\n clearInterval(timerId);\n };\n }, []);\n\n var hour = date.getHours();\n var minutes = date.getMinutes();\n //var seconds = date.getSeconds();\n var midday = \"AM\";\n midday = (hour >= 12) ? \"PM\" : \"AM\";\n hour = (hour === 0) ? 12 : ((hour > 12) ? (hour - 12) : hour);\n minutes = fixDigits(minutes);\n //seconds = fixDigits(seconds);\n let time = hour + \":\" + minutes + \" \" + midday;\n\n return (\n {time}
\n\n );\n}\nfunction getApps() {\n let applications = require('./apps.json');\n return applications;\n}\nfunction getLinks() {\n let links = require('./links.json');\n return links;\n}\nfunction getProviders() {\n let providers = require('./providers.json');\n return providers;\n}\nfunction getThemes() {\n let themes = require('./themes.json');\n return themes;\n}\nfunction updateTheme(e) {\n var themes = getThemes();\n var themeName = e.target.innerHTML.toLowerCase();\n var index = themes.themes.findIndex(function(item, i){\n return item.name === themeName;\n });\n localStorage.setItem(\"image-background\", themes.themes[index].imagebackground);\n localStorage.setItem(\"color-background\", themes.themes[index].colorbackground);\n localStorage.setItem(\"color-search-background\", themes.themes[index].colorserachbackground);\n localStorage.setItem(\"color-text-pri\",themes.themes[index].colortextpri);\n localStorage.setItem(\"color-text-acc\", themes.themes[index].colortextacc);\n localStorage.setItem(\"color-border\", themes.themes[index].colorborder);\n \n //document.documentElement.style.setProperty(prop, `var(--${themeName}${prop.substring(10)})`);\n setTheme();\n}\nfunction setTheme() {\n setValueFromLocalStorage('image-background');\n setValueFromLocalStorage('color-background');\n setValueFromLocalStorage('color-search-background');\n setValueFromLocalStorage('color-text-pri');\n setValueFromLocalStorage('color-text-acc');\n setValueFromLocalStorage('color-border');\n setValueFromLocalStorage('content-display');\n}\nfunction handleKeyPress(e) {\n var sindex = 0;\n var cycle = false;\n var key = e.keyCode || e.which;\n var text = e.target.value.replaceAll(\"+\", \"%2B\");\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n if (key == 13) { // Search functions\n search(text);\n }\n if (key == 9) { // Tab Completion Functions\n e.preventDefault();\n e.stopPropagation();\n if (text[0] === ';') {\n switch (option) {\n case 't':\n var streamers = ['admiralbahroo', 'moonmoon_ow', 'witwix'];\n if (!subtext || cycle) {\n cycle = true;\n if (sindex > streamers.length - 1) sindex = 0;\n document.getElementById(\"keywords\").value = ';t ' + streamers[sindex++];\n return;\n }\n for (var streamer of streamers) {\n if (subtext === streamer.substr(0, subtext.length)) {\n document.getElementById(\"keywords\").value = ';t ' + streamer;\n return;\n }\n }\n break;\n }\n }\n }\n if(key == 32){ //Space to go to search\nupdateLabel(text);\n }\n sindex = 0;\n cycle = false;\n updateLabel(text);\n}\nfunction updateLabel(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n if (text[0] === '/') {\n// if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n document.getElementById(\"searchType\").innerHTML = \"Allmusic search\";\n break;\n case \"d\":\n document.getElementById(\"searchType\").innerHTML = \"Duck Duck Go search\";\n break;\n case \"di\":\n document.getElementById(\"searchType\").innerHTML = \"Discogs search\";\n break;\n case \"i\":\n document.getElementById(\"searchType\").innerHTML = \"IMDB search\";\n break;\n case \"m\":\n document.getElementById(\"searchType\").innerHTML = \"TheMovieDB search\";\n break;\n case \"r\":\n document.getElementById(\"searchType\").innerHTML = \"Reddit search\";\n break;\n case \"q\":\n document.getElementById(\"searchType\").innerHTML = \"Qwant search\";\n break;\n case \"so\":\n document.getElementById(\"searchType\").innerHTML = \"Soundcloud search\";\n break;\n case \"s\":\n document.getElementById(\"searchType\").innerHTML = \"Spotify search\";\n break;\n case \"tv\":\n document.getElementById(\"searchType\").innerHTML = \"TheTVDB search\";\n break;\n case \"t\":\n document.getElementById(\"searchType\").innerHTML = \"Trakt search\";\n break;\n case \"y\":\n document.getElementById(\"searchType\").innerHTML = \"YouTube search\";\n break;\n case \"w\":\n document.getElementById(\"searchType\").innerHTML = \"Wikipedia search\";\n break;\n case \"p\":\n document.getElementById(\"searchType\").innerHTML = \"Plex search\";\n break;\n case \"rt\":\n document.getElementById(\"searchType\").innerHTML = \"Rotten Tomatoes search\";\n break;\n default:\n document.getElementById(\"searchType\").innerHTML = \"Invalid search\";\n break;\n }\n}else {\n document.getElementById(\"searchType\").innerHTML = \"Google search\";\n }\n}\nfunction search(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n if (text[0] === '/') {\n if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n window.location = \"https://www.allmusic.com/search/all/\" + subtext;\n break;\n case \"d\":\n window.location = \"https://duckduckgo.com/?q=\" + subtext;\n break;\n case \"di\":\n window.location = \"https://www.discogs.com/search/?q=\" + subtext;\n break;\n case \"i\":\n window.location = \"https://www.imdb.com/find?q=\" + subtext;\n break;\n case \"m\":\n window.location = \"https://www.themoviedb.org/search?query=\" + subtext;\n break;\n case \"r\":\n window.location = \"https://www.reddit.com/search?q=\" + subtext;\n break;\n case \"q\":\n window.location = \"https://www.qwant.com/?q=\" + subtext;\n break;\n case \"so\":\n window.location = \"https://soundcloud.com/search?q=\" + subtext;\n break;\n case \"s\":\n window.location = \"https://open.spotify.com/search/results/\" + subtext;\n break;\n case \"t\":\n window.location = \"https://trakt.tv/search?query=\" + subtext;\n break;\n case \"tv\":\n window.location = \"https://www.thetvdb.com/search?query=\" + subtext;\n break;\n case \"y\":\n window.location = \"https://www.youtube.com/results?search_query=\" + subtext;\n break;\n case \"w\":\n window.location = \"https://en.wikipedia.org/w/index.php?search=\" + subtext;\n break;\n case \"p\":\n window.location = \"https://app.plex.tv/desktop/#!/search?query=\" + subtext;\n break;\n case \"rt\":\n window.location = \"https://www.rottentomatoes.com/search?search=\" + subtext;\n break;\n }\n } else {\n var option = text.substr(1);\n switch (option) {\n case \"d\":\n window.location = \"https://www.duckduckgo.com\";\n break;\n case \"y\":\n window.location = \"https://www.youtube.com\";\n break;\n case \"r\":\n window.location = \"https://reddit.com\";\n break;\n case \"s\":\n window.location = \"https://open.spotify.com\";\n break;\n }\n }\n } else if (validURL(text)) {\n if (containsProtocol(text))\n window.location = text;\n else\n window.location = \"https://\" + text;\n } else {\n window.location = \"https://www.google.com/search?q=\" + text;\n }\n}\nfunction validURL(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/)?' + // protocol\n '((([a-z\\\\d]([a-z\\\\d-]*[a-z\\\\d])*)\\\\.)+[a-z]{2,}|' + // domain name\n '((\\\\d{1,3}\\\\.){3}\\\\d{1,3}))' + // OR ip (v4) address\n '(\\\\:\\\\d+)?(\\\\/[-a-z\\\\d%_.~+]*)*' + // port and path\n '(\\\\?[;&a-z\\\\d%_.~+=-]*)?' + // query string\n '(\\\\#[-a-z\\\\d_]*)?$', 'i'); // fragment locator\n return !!pattern.test(str);\n}\nfunction containsProtocol(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/){1}.*', 'i');\n return !!pattern.test(str);\n}\nString.prototype.replaceAll = function(search, replacement) {\n var target = this;\n return target.split(search).join(replacement);\n};\nfunction udpateDisplayedItems(e) {\n localStorage.setItem('contenttype', e.target.checked);\n if (e.target.checked) {\n localStorage.setItem('content-display', 'none');\n } else {\n localStorage.setItem('content-display', 'block');\n }\n setDisplayedItems();\n}\nfunction setDisplayedItems() {\n setValueFromLocalStorage('contenttype');\n setValueFromLocalStorage('content-display');\n}"]},"metadata":{},"sourceType":"module"}
\ No newline at end of file
diff --git a/node_modules/.cache/babel-loader/dd53d3956297b78c2966ae15e7cab5c0.json b/node_modules/.cache/babel-loader/dd53d3956297b78c2966ae15e7cab5c0.json
new file mode 100644
index 00000000..d1c8b172
--- /dev/null
+++ b/node_modules/.cache/babel-loader/dd53d3956297b78c2966ae15e7cab5c0.json
@@ -0,0 +1 @@
+{"ast":null,"code":"var _jsxFileName = \"/home/seanedmunds/dev/home-page/src/index.js\",\n _s = $RefreshSig$();\n\nimport React from 'react';\nimport { useState, useEffect } from 'react';\nimport ReactDOM from 'react-dom'; //import { unstable_createPortal } from 'react-dom';\n\nimport './index.css';\nimport './search.js';\nimport { jsxDEV as _jsxDEV } from \"react/jsx-dev-runtime\";\n\nfunction Homepage() {\n return /*#__PURE__*/_jsxDEV(\"main\", {\n id: \"container\",\n className: \"fade\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Search, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 12,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 11,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Header, {\n date: date(),\n greet: greet()\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 15,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 14,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Applications, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 21,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 20,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Bookmarks, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 24,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 23,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(ModalMenu, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 27,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 26,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(ModalInit, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 30,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 29,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 10,\n columnNumber: 5\n }, this);\n}\n\n_c = Homepage;\n\nfunction Search() {\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"search\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"abackground\",\n children: [/*#__PURE__*/_jsxDEV(\"input\", {\n name: \"keywords\",\n type: \"text\",\n className: \"keyword\",\n id: \"keywords\",\n size: \"50\",\n placeholder: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 40,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n id: \"searchType\",\n className: \"Input-label\",\n children: \"Google search\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 41,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 39,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 38,\n columnNumber: 5\n }, this);\n}\n\n_c2 = Search;\n\nfunction Header(props) {\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"header\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n id: \"greeting_block\",\n children: /*#__PURE__*/_jsxDEV(\"h1\", {\n id: \"header_greet\",\n children: props.greet\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 51,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 50,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"date_block\",\n children: [/*#__PURE__*/_jsxDEV(\"h2\", {\n id: \"header_date\",\n children: props.date\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 54,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(Clock, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 55,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 53,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 49,\n columnNumber: 5\n }, this);\n}\n\n_c3 = Header;\n\nfunction Applications() {\n let appList = getApps();\n var items = [];\n\n for (var i = 0; i < appList.apps.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(App, {\n name: appList.apps[i].name,\n url: appList.apps[i].url,\n icon: appList.apps[i].icon,\n NSFW: appList.apps[i].NSFW\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 66,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"apps\",\n children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n children: \"Applications\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 77,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"apps_loop\",\n children: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 78,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 76,\n columnNumber: 5\n }, this);\n}\n\n_c4 = Applications;\n\nfunction App(props) {\n let classNameType = props.NSFW + \"-content\";\n let hrefUrl = \"https://\" + props.url;\n let iconName = \"mdi-\" + props.icon;\n return /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: hrefUrl,\n className: classNameType,\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_item\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_icon\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify icon\",\n \"data-icon\": iconName\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 94,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 93,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_text\",\n children: [/*#__PURE__*/_jsxDEV(\"span\", {\n id: \"app-name\",\n children: props.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 97,\n columnNumber: 13\n }, this), /*#__PURE__*/_jsxDEV(\"span\", {\n id: \"app-address\",\n children: props.url\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 98,\n columnNumber: 13\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 96,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 92,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 91,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 90,\n columnNumber: 5\n }, this);\n}\n\n_c5 = App;\n\nfunction Bookmarks() {\n let bookmarkList = getLinks();\n var items = [];\n\n for (var i = 0; i < bookmarkList.bookmarks.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(LinkGroups, {\n category: bookmarkList.bookmarks[i].category,\n links: bookmarkList.bookmarks[i].links\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 111,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"links\",\n children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n children: \"Bookmarks\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 120,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"links_loop\",\n children: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 121,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 119,\n columnNumber: 5\n }, this);\n}\n\n_c6 = Bookmarks;\n\nfunction LinkGroups(props) {\n var items = [];\n\n for (var i = 0; i < props.links.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(LinkItem, {\n link: props.links[i]\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 132,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"links_item\",\n children: [/*#__PURE__*/_jsxDEV(\"h4\", {\n children: props.category\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 140,\n columnNumber: 7\n }, this), items]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 139,\n columnNumber: 5\n }, this);\n}\n\n_c7 = LinkGroups;\n\nfunction LinkItem(props) {\n return /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: props.link.url,\n className: \"theme_color-border theme_text-select\",\n children: props.link.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 149,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 148,\n columnNumber: 5\n }, this);\n}\n\n_c8 = LinkItem;\n\nfunction ModalMenu() {\n var providers = getProviders();\n var items = [];\n\n for (var i = 0; i < providers.providers.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(Provider, {\n provider: providers.providers[i]\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 159,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"modal\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n children: [/*#__PURE__*/_jsxDEV(\"header\", {\n id: \"modal-header\",\n children: [/*#__PURE__*/_jsxDEV(\"h1\", {\n children: \"Options\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 169,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n href: \"#\",\n title: \"Close\",\n className: \"modal-close\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-close\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 171,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 170,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 168,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"h2\", {\n children: \"Color themes\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 175,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"modal-theme\",\n children: [/*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"blackboard\",\n className: \"theme-button theme-blackboard\",\n children: \"Blackboard\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 178,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"gazette\",\n className: \"theme-button theme-gazette\",\n children: \"Gazette\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 179,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"espresso\",\n className: \"theme-button theme-espresso\",\n children: \"Espresso\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 180,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cab\",\n className: \"theme-button theme-cab\",\n children: \"Cab\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 181,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cloud\",\n className: \"theme-button theme-cloud\",\n children: \"Cloud\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 182,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"lime\",\n className: \"theme-button theme-lime\",\n children: \"Lime\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 183,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"passion\",\n className: \"theme-button theme-passion\",\n children: \"Passion\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 184,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"blues\",\n className: \"theme-button theme-blues\",\n children: \"Blues\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 185,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"chalk\",\n className: \"theme-button theme-chalk\",\n children: \"Chalk\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 186,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"tron\",\n className: \"theme-button theme-tron\",\n children: \"Tron\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 187,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"paper\",\n className: \"theme-button theme-paper\",\n children: \"Paper\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 188,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cyberpunk\",\n className: \"theme-button theme-cyberpunk\",\n children: \"Cyberpunk\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 189,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"quadra\",\n className: \"theme-button theme-panam\",\n children: \"Quadra\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 190,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"panam\",\n className: \"theme-button theme-panam\",\n children: \"Panam\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 191,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"touch\",\n className: \"theme-button theme-touch\",\n children: \"Touch\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 192,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"peek\",\n className: \"theme-button theme-peek\",\n children: \"Peek\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 193,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 177,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"h2\", {\n children: \"Search options\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 197,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"providers\",\n children: /*#__PURE__*/_jsxDEV(\"table\", {\n children: /*#__PURE__*/_jsxDEV(\"tbody\", {\n children: [/*#__PURE__*/_jsxDEV(\"tr\", {\n children: [/*#__PURE__*/_jsxDEV(\"th\", {\n children: \"Website\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 202,\n columnNumber: 19\n }, this), /*#__PURE__*/_jsxDEV(\"th\", {\n children: \"Prefix\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 203,\n columnNumber: 19\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 201,\n columnNumber: 17\n }, this), items]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 200,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 199,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 198,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"header\", {\n id: \"modal-footer\",\n children: [/*#__PURE__*/_jsxDEV(\"a\", {\n href: \"https://github.com/jeroenpardon/\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-github-box\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 211,\n columnNumber: 54\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 211,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n href: \"https://materialdesignicons.com/\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-material-design\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 212,\n columnNumber: 54\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 212,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"sneaky\",\n children: [/*#__PURE__*/_jsxDEV(\"input\", {\n type: \"checkbox\",\n id: \"contenttype\",\n onChange: \"nsfw(this)\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 213,\n columnNumber: 35\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n for: \"contenttype\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-domino-mask\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 214,\n columnNumber: 36\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 214,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 213,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 210,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 167,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 166,\n columnNumber: 5\n }, this);\n}\n\n_c9 = ModalMenu;\n\nfunction Provider(props) {\n return /*#__PURE__*/_jsxDEV(\"tr\", {\n children: [/*#__PURE__*/_jsxDEV(\"td\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: props.provider.url,\n children: props.provider.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 224,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 224,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"td\", {\n children: props.provider.prefix\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 225,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 223,\n columnNumber: 5\n }, this);\n}\n\n_c10 = Provider;\n\nfunction ModalInit() {\n return /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"modal_init\",\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n className: \"btn\",\n href: \"#modal\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify icon\",\n \"data-icon\": \"mdi-xbox-controller-menu\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 234,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 233,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 232,\n columnNumber: 5\n }, this);\n}\n\n_c11 = ModalInit;\nReactDOM.render( /*#__PURE__*/_jsxDEV(Homepage, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 241,\n columnNumber: 3\n}, this), document.getElementById('root')); //Functions below this line are for calculating data for\n//other functions\n\nfunction date() {\n let currentDate = new Date();\n let dateOptions = {\n weekday: \"long\",\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\"\n };\n let date = currentDate.toLocaleDateString(\"en-GB\", dateOptions);\n return date;\n}\n\nfunction fixDigits(k) {\n if (k < 10) {\n return \"0\" + k;\n } else {\n return k;\n }\n}\n\nfunction greet() {\n let currentTime = new Date();\n let greet = Math.floor(currentTime.getHours() / 6);\n let easterEggChance = Math.floor(Math.random() * 100);\n\n let greetings = require('./messages.json');\n\n let timeBased = [];\n let easterEggs = [];\n\n for (var i = 0; i < greetings.messages.length; i++) {\n if (greetings.messages[i].easteregg === \"FALSE\") {\n timeBased = timeBased.concat(greetings.messages[i]);\n } else {\n easterEggs = easterEggs.concat(greetings.messages[i]);\n }\n }\n\n if (easterEggChance > 10) {\n return timeBased[greet].message;\n } else {\n let easterEggText = Math.floor(Math.random() * easterEggs.length);\n return easterEggs[easterEggText].message;\n }\n}\n\nfunction Clock() {\n _s();\n\n const [date, setDate] = useState(new Date());\n\n function refreshClock() {\n setDate(new Date());\n }\n\n useEffect(() => {\n const timerId = setInterval(refreshClock, 1000);\n return function cleanup() {\n clearInterval(timerId);\n };\n }, []);\n var hour = date.getHours();\n var minutes = date.getMinutes(); //var seconds = date.getSeconds();\n\n var midday = \"AM\";\n midday = hour >= 12 ? \"PM\" : \"AM\";\n hour = hour === 0 ? 12 : hour > 12 ? hour - 12 : hour;\n minutes = fixDigits(minutes); //seconds = fixDigits(seconds);\n\n let time = hour + \":\" + minutes + \" \" + midday;\n return /*#__PURE__*/_jsxDEV(\"h2\", {\n id: \"clock\",\n children: time\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 312,\n columnNumber: 5\n }, this);\n}\n\n_s(Clock, \"Gqi45WOZhU2c0BLYX0HoJeiR0fk=\");\n\n_c12 = Clock;\n\nfunction getApps() {\n let applications = require('./apps.json');\n\n return applications;\n}\n\nfunction getLinks() {\n let links = require('./links.json');\n\n return links;\n}\n\nfunction getProviders() {\n let providers = require('./providers.json');\n\n return providers;\n}\n\nvar _c, _c2, _c3, _c4, _c5, _c6, _c7, _c8, _c9, _c10, _c11, _c12;\n\n$RefreshReg$(_c, \"Homepage\");\n$RefreshReg$(_c2, \"Search\");\n$RefreshReg$(_c3, \"Header\");\n$RefreshReg$(_c4, \"Applications\");\n$RefreshReg$(_c5, \"App\");\n$RefreshReg$(_c6, \"Bookmarks\");\n$RefreshReg$(_c7, \"LinkGroups\");\n$RefreshReg$(_c8, \"LinkItem\");\n$RefreshReg$(_c9, \"ModalMenu\");\n$RefreshReg$(_c10, \"Provider\");\n$RefreshReg$(_c11, \"ModalInit\");\n$RefreshReg$(_c12, \"Clock\");","map":{"version":3,"sources":["/home/seanedmunds/dev/home-page/src/index.js"],"names":["React","useState","useEffect","ReactDOM","Homepage","date","greet","Search","Header","props","Applications","appList","getApps","items","i","apps","length","push","name","url","icon","NSFW","App","classNameType","hrefUrl","iconName","Bookmarks","bookmarkList","getLinks","bookmarks","category","links","LinkGroups","LinkItem","link","ModalMenu","providers","getProviders","Provider","provider","prefix","ModalInit","render","document","getElementById","currentDate","Date","dateOptions","weekday","year","month","day","toLocaleDateString","fixDigits","k","currentTime","Math","floor","getHours","easterEggChance","random","greetings","require","timeBased","easterEggs","messages","easteregg","concat","message","easterEggText","Clock","setDate","refreshClock","timerId","setInterval","cleanup","clearInterval","hour","minutes","getMinutes","midday","time","applications"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { useState, useEffect } from 'react';\nimport ReactDOM from 'react-dom';\n//import { unstable_createPortal } from 'react-dom';\nimport './index.css';\nimport './search.js'\n\nfunction Homepage() {\n return (\n \n \n \n
\n \n \n
\n \n \n \n
\n \n \n
\n \n \n
\n \n );\n}\n\nfunction Search() {\n return (\n \n )\n}\n\nfunction Header(props) {\n return (\n \n );\n}\n\nfunction Applications() {\n let appList = getApps();\n var items = [];\n for (var i = 0; i < appList.apps.length; i++) {\n items.push(\n \n );\n }\n return (\n \n Applications
\n \n {items}\n
\n \n );\n}\n\nfunction App(props) {\n let classNameType = props.NSFW + \"-content\";\n let hrefUrl = \"https://\" + props.url;\n let iconName = \"mdi-\" + props.icon;\n return (\n \n );\n}\n\nfunction Bookmarks() {\n let bookmarkList = getLinks();\n var items = [];\n for (var i = 0; i < bookmarkList.bookmarks.length; i++) {\n items.push(\n \n );\n }\n return (\n \n Bookmarks
\n \n {items}\n
\n \n );\n}\n\nfunction LinkGroups(props) {\n var items = [];\n for (var i = 0; i < props.links.length; i++) {\n items.push(\n \n );\n }\n return (\n \n
{props.category}
\n {items}\n \n );\n}\n\nfunction LinkItem(props) {\n return (\n \n );\n}\n\nfunction ModalMenu() {\n var providers = getProviders();\n var items = [];\n for (var i = 0; i < providers.providers.length; i++) {\n items.push(\n \n );\n }\n return (\n \n \n \n\n
Color themes
\n\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n\n\n
Search options
\n
\n \n \n \n | Website | \n Prefix | \n
\n {items}\n \n
\n \n\n \n
\n \n );\n}\n\nfunction Provider(props) {\n return (\n \n | {props.provider.name} | \n {props.provider.prefix} | \n
\n );\n}\n\nfunction ModalInit() {\n return (\n \n );\n}\n\nReactDOM.render(\n ,\n document.getElementById('root')\n);\n\n//Functions below this line are for calculating data for\n//other functions\n\nfunction date() {\n let currentDate = new Date();\n let dateOptions = {\n weekday: \"long\",\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\"\n };\n let date = currentDate.toLocaleDateString(\"en-GB\", dateOptions);\n return date;\n}\nfunction fixDigits(k) {\n if (k < 10) {\n return \"0\" + k;\n }\n else {\n return k;\n }\n}\nfunction greet() {\n let currentTime = new Date();\n let greet = Math.floor(currentTime.getHours() / 6);\n let easterEggChance = Math.floor(Math.random() * 100);\n let greetings = require('./messages.json');\n let timeBased = [];\n let easterEggs = [];\n for (var i = 0; i < greetings.messages.length; i++) {\n if (greetings.messages[i].easteregg === \"FALSE\") {\n timeBased = timeBased.concat(greetings.messages[i]);\n } else {\n easterEggs = easterEggs.concat(greetings.messages[i]);\n }\n }\n if (easterEggChance > 10) {\n return timeBased[greet].message;\n } else {\n let easterEggText = Math.floor(Math.random() * easterEggs.length);\n return easterEggs[easterEggText].message;\n }\n}\nfunction Clock() {\n const [date, setDate] = useState(new Date());\n\n function refreshClock() {\n setDate(new Date());\n }\n useEffect(() => {\n const timerId = setInterval(refreshClock, 1000);\n return function cleanup() {\n clearInterval(timerId);\n };\n }, []);\n\n var hour = date.getHours();\n var minutes = date.getMinutes();\n //var seconds = date.getSeconds();\n var midday = \"AM\";\n midday = (hour >= 12) ? \"PM\" : \"AM\";\n hour = (hour === 0) ? 12 : ((hour > 12) ? (hour - 12) : hour);\n minutes = fixDigits(minutes);\n //seconds = fixDigits(seconds);\n let time = hour + \":\" + minutes + \" \" + midday;\n\n return (\n {time}
\n\n );\n}\nfunction getApps() {\n let applications = require('./apps.json');\n return applications;\n}\nfunction getLinks() {\n let links = require('./links.json');\n return links;\n}\nfunction getProviders() {\n let providers = require('./providers.json');\n return providers;\n}"]},"metadata":{},"sourceType":"module"}
\ No newline at end of file
diff --git a/node_modules/.cache/babel-loader/df66c449f0b5bd8dd9cc2380c641a8a7.json b/node_modules/.cache/babel-loader/df66c449f0b5bd8dd9cc2380c641a8a7.json
new file mode 100644
index 00000000..0f2ef583
--- /dev/null
+++ b/node_modules/.cache/babel-loader/df66c449f0b5bd8dd9cc2380c641a8a7.json
@@ -0,0 +1 @@
+{"ast":null,"code":"var _jsxFileName = \"/home/seanedmunds/dev/home-page/src/index.js\",\n _s = $RefreshSig$();\n\nimport React from 'react';\nimport { useState, useEffect } from 'react';\nimport ReactDOM from 'react-dom'; //import { unstable_createPortal } from 'react-dom';\n\nimport './index.css';\nimport { jsxDEV as _jsxDEV } from \"react/jsx-dev-runtime\";\n\nconst setValueFromLocalStorage = property => {\n let value = localStorage.getItem(property);\n setValue(property, value);\n};\n\nconst setValue = (property, value) => {\n if (value) {\n document.documentElement.style.setProperty(`--${property}`, value);\n const input = document.querySelector(`#${property}`);\n\n if (input) {\n value = value.replace('px', '');\n input.value = value;\n }\n }\n};\n\nfunction Homepage() {\n setTheme();\n return /*#__PURE__*/_jsxDEV(\"main\", {\n id: \"container\",\n className: \"fade\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Search, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 28,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 27,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Header, {\n date: date(),\n greet: greet()\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 31,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 30,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Applications, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 37,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 36,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Bookmarks, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 40,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 39,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(ModalMenu, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 43,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 42,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(ModalInit, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 46,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 45,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 26,\n columnNumber: 5\n }, this);\n}\n\n_c = Homepage;\n\nfunction Search() {\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"search\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"abackground\",\n children: [/*#__PURE__*/_jsxDEV(\"input\", {\n name: \"keywords\",\n type: \"text\",\n className: \"keyword\",\n id: \"keywords\",\n size: \"50\",\n spellCheck: \"true\",\n placeholder: \"\"\n /*onFocus={this.placeholder = \"\"} onBlur={this.placeholder = ''}*/\n ,\n autoComplete: \"off\",\n autoFocus: true,\n onKeyUp: handleKeyPress\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 56,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n id: \"searchType\",\n className: \"Input-label\",\n children: \"Google search\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 57,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 55,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 54,\n columnNumber: 5\n }, this);\n}\n\n_c2 = Search;\n\nfunction Header(props) {\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"header\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n id: \"greeting_block\",\n children: /*#__PURE__*/_jsxDEV(\"h1\", {\n id: \"header_greet\",\n children: props.greet\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 67,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 66,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"date_block\",\n children: [/*#__PURE__*/_jsxDEV(\"h2\", {\n id: \"header_date\",\n children: props.date\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 70,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(Clock, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 71,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 69,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 65,\n columnNumber: 5\n }, this);\n}\n\n_c3 = Header;\n\nfunction Applications() {\n let appList = getApps();\n var items = [];\n\n for (var i = 0; i < appList.apps.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(App, {\n name: appList.apps[i].name,\n url: appList.apps[i].url,\n icon: appList.apps[i].icon,\n NSFW: appList.apps[i].NSFW\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 82,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"apps\",\n children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n children: \"Applications\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 93,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"apps_loop\",\n children: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 94,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 92,\n columnNumber: 5\n }, this);\n}\n\n_c4 = Applications;\n\nfunction App(props) {\n let classNameType = props.NSFW + \"-content\";\n let hrefUrl = \"https://\" + props.url;\n let iconName = \"mdi-\" + props.icon;\n return /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: hrefUrl,\n className: classNameType,\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_item\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_icon\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify icon\",\n \"data-icon\": iconName\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 110,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 109,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_text\",\n children: [/*#__PURE__*/_jsxDEV(\"span\", {\n id: \"app-name\",\n children: props.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 113,\n columnNumber: 13\n }, this), /*#__PURE__*/_jsxDEV(\"span\", {\n id: \"app-address\",\n children: props.url\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 114,\n columnNumber: 13\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 112,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 108,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 107,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 106,\n columnNumber: 5\n }, this);\n}\n\n_c5 = App;\n\nfunction Bookmarks() {\n let bookmarkList = getLinks();\n var items = [];\n\n for (var i = 0; i < bookmarkList.bookmarks.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(LinkGroups, {\n category: bookmarkList.bookmarks[i].category,\n links: bookmarkList.bookmarks[i].links\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 127,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"links\",\n children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n children: \"Bookmarks\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 136,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"links_loop\",\n children: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 137,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 135,\n columnNumber: 5\n }, this);\n}\n\n_c6 = Bookmarks;\n\nfunction LinkGroups(props) {\n var items = [];\n\n for (var i = 0; i < props.links.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(LinkItem, {\n link: props.links[i]\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 148,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"links_item\",\n children: [/*#__PURE__*/_jsxDEV(\"h4\", {\n children: props.category\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 156,\n columnNumber: 7\n }, this), items]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 155,\n columnNumber: 5\n }, this);\n}\n\n_c7 = LinkGroups;\n\nfunction LinkItem(props) {\n return /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: props.link.url,\n className: \"theme_color-border theme_text-select\",\n children: props.link.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 165,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 164,\n columnNumber: 5\n }, this);\n}\n\n_c8 = LinkItem;\n\nfunction ModalMenu() {\n var providers = getProviders();\n var items = [];\n\n for (var i = 0; i < providers.providers.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(Provider, {\n provider: providers.providers[i]\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 175,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"modal\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n children: [/*#__PURE__*/_jsxDEV(\"header\", {\n id: \"modal-header\",\n children: [/*#__PURE__*/_jsxDEV(\"h1\", {\n children: \"Options\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 185,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n href: \"#\",\n title: \"Close\",\n className: \"modal-close\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-close\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 187,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 186,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 184,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"h2\", {\n children: \"Color themes\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 191,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"modal-theme\",\n children: [/*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"blackboard\",\n className: \"theme-button theme-blackboard\",\n onClick: updateTheme,\n children: \"Blackboard\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 194,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"gazette\",\n className: \"theme-button theme-gazette\",\n onClick: updateTheme,\n children: \"Gazette\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 195,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"espresso\",\n className: \"theme-button theme-espresso\",\n onClick: updateTheme,\n children: \"Espresso\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 196,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cab\",\n className: \"theme-button theme-cab\",\n onClick: updateTheme,\n children: \"Cab\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 197,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cloud\",\n className: \"theme-button theme-cloud\",\n onClick: updateTheme,\n children: \"Cloud\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 198,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"lime\",\n className: \"theme-button theme-lime\",\n onClick: updateTheme,\n children: \"Lime\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 199,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"passion\",\n className: \"theme-button theme-passion\",\n onClick: updateTheme,\n children: \"Passion\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 200,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"blues\",\n className: \"theme-button theme-blues\",\n onClick: updateTheme,\n children: \"Blues\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 201,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"chalk\",\n className: \"theme-button theme-chalk\",\n onClick: updateTheme,\n children: \"Chalk\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 202,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"tron\",\n className: \"theme-button theme-tron\",\n onClick: updateTheme,\n children: \"Tron\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 203,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"paper\",\n className: \"theme-button theme-paper\",\n onClick: updateTheme,\n children: \"Paper\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 204,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cyberpunk\",\n className: \"theme-button theme-cyberpunk\",\n onClick: updateTheme,\n children: \"Cyberpunk\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 205,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"quadra\",\n className: \"theme-button theme-panam\",\n onClick: updateTheme,\n children: \"Quadra\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 206,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"panam\",\n className: \"theme-button theme-panam\",\n onClick: updateTheme,\n children: \"Panam\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 207,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"touch\",\n className: \"theme-button theme-touch\",\n onClick: updateTheme,\n children: \"Touch\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 208,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"peek\",\n className: \"theme-button theme-peek\",\n onClick: updateTheme,\n children: \"Peek\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 209,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 193,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"h2\", {\n children: \"Search options\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 213,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"providers\",\n children: /*#__PURE__*/_jsxDEV(\"table\", {\n children: /*#__PURE__*/_jsxDEV(\"tbody\", {\n children: [/*#__PURE__*/_jsxDEV(\"tr\", {\n children: [/*#__PURE__*/_jsxDEV(\"th\", {\n children: \"Website\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 218,\n columnNumber: 19\n }, this), /*#__PURE__*/_jsxDEV(\"th\", {\n children: \"Prefix\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 219,\n columnNumber: 19\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 217,\n columnNumber: 17\n }, this), items]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 216,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 215,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 214,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"header\", {\n id: \"modal-footer\",\n children: [/*#__PURE__*/_jsxDEV(\"a\", {\n href: \"https://github.com/jeroenpardon/\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-github-box\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 227,\n columnNumber: 54\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 227,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n href: \"https://materialdesignicons.com/\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-material-design\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 228,\n columnNumber: 54\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 228,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"sneaky\",\n children: [/*#__PURE__*/_jsxDEV(\"input\", {\n type: \"checkbox\",\n id: \"contenttype\",\n onChange: udpateDisplayedItems\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 229,\n columnNumber: 35\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n for: \"contenttype\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-domino-mask\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 230,\n columnNumber: 36\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 230,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 229,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 226,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 183,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 182,\n columnNumber: 5\n }, this);\n}\n\n_c9 = ModalMenu;\n\nfunction Provider(props) {\n return /*#__PURE__*/_jsxDEV(\"tr\", {\n children: [/*#__PURE__*/_jsxDEV(\"td\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: props.provider.url,\n children: props.provider.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 240,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 240,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"td\", {\n children: props.provider.prefix\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 241,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 239,\n columnNumber: 5\n }, this);\n}\n\n_c10 = Provider;\n\nfunction ModalInit() {\n return /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"modal_init\",\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n className: \"btn\",\n href: \"#modal\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify icon\",\n \"data-icon\": \"mdi-xbox-controller-menu\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 250,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 249,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 248,\n columnNumber: 5\n }, this);\n}\n\n_c11 = ModalInit;\nReactDOM.render( /*#__PURE__*/_jsxDEV(Homepage, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 257,\n columnNumber: 3\n}, this), document.getElementById('root')); //Functions below this line are for calculating data for\n//other functions\n\nfunction date() {\n let currentDate = new Date();\n let dateOptions = {\n weekday: \"long\",\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\"\n };\n let date = currentDate.toLocaleDateString(\"en-GB\", dateOptions);\n return date;\n}\n\nfunction fixDigits(k) {\n if (k < 10) {\n return \"0\" + k;\n } else {\n return k;\n }\n}\n\nfunction greet() {\n let currentTime = new Date();\n let greet = Math.floor(currentTime.getHours() / 6);\n let easterEggChance = Math.floor(Math.random() * 100);\n\n let greetings = require('./messages.json');\n\n let timeBased = [];\n let easterEggs = [];\n\n for (var i = 0; i < greetings.messages.length; i++) {\n if (greetings.messages[i].easteregg === \"FALSE\") {\n timeBased = timeBased.concat(greetings.messages[i]);\n } else {\n easterEggs = easterEggs.concat(greetings.messages[i]);\n }\n }\n\n if (easterEggChance > 10) {\n return timeBased[greet].message;\n } else {\n let easterEggText = Math.floor(Math.random() * easterEggs.length);\n return easterEggs[easterEggText].message;\n }\n}\n\nfunction Clock() {\n _s();\n\n const [date, setDate] = useState(new Date());\n\n function refreshClock() {\n setDate(new Date());\n }\n\n useEffect(() => {\n const timerId = setInterval(refreshClock, 1000);\n return function cleanup() {\n clearInterval(timerId);\n };\n }, []);\n var hour = date.getHours();\n var minutes = date.getMinutes(); //var seconds = date.getSeconds();\n\n var midday = \"AM\";\n midday = hour >= 12 ? \"PM\" : \"AM\";\n hour = hour === 0 ? 12 : hour > 12 ? hour - 12 : hour;\n minutes = fixDigits(minutes); //seconds = fixDigits(seconds);\n\n let time = hour + \":\" + minutes + \" \" + midday;\n return /*#__PURE__*/_jsxDEV(\"h2\", {\n id: \"clock\",\n children: time\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 328,\n columnNumber: 5\n }, this);\n}\n\n_s(Clock, \"Gqi45WOZhU2c0BLYX0HoJeiR0fk=\");\n\n_c12 = Clock;\n\nfunction getApps() {\n let applications = require('./apps.json');\n\n return applications;\n}\n\nfunction getLinks() {\n let links = require('./links.json');\n\n return links;\n}\n\nfunction getProviders() {\n let providers = require('./providers.json');\n\n return providers;\n}\n\nfunction getThemes() {\n let themes = require('./themes.json');\n\n return themes;\n}\n\nfunction updateTheme(e) {\n var themes = getThemes();\n var themeName = e.target.innerHTML.toLowerCase();\n var index = themes.themes.findIndex(function (item, i) {\n return item.name === themeName;\n });\n console.log(themes.themes[index]);\n localStorage.setItem(\"image-background\", themes.themes[index].imagebackground);\n localStorage.setItem(\"color-background\", themes.themes[index].colorbackground);\n localStorage.setItem(\"color-search-background\", themes.themes[index].colorserachbackground);\n localStorage.setItem(\"color-text-pri\", themes.themes[index].colortextpri);\n localStorage.setItem(\"color-text-acc\", themes.themes[index].colortextacc);\n localStorage.setItem(\"color-border\", themes.themes[index].colorborder); //document.documentElement.style.setProperty(prop, `var(--${themeName}${prop.substring(10)})`);\n\n setTheme();\n}\n\nfunction setTheme() {\n setValueFromLocalStorage('image-background');\n setValueFromLocalStorage('color-background');\n setValueFromLocalStorage('color-search-background');\n setValueFromLocalStorage('color-text-pri');\n setValueFromLocalStorage('color-text-acc');\n setValueFromLocalStorage('color-border');\n setValueFromLocalStorage('content-display');\n}\n\nfunction handleKeyPress(e) {\n var sindex = 0;\n var cycle = false;\n var key = e.keyCode || e.which;\n var text = e.target.value.replaceAll(\"+\", \"%2B\");\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n\n if (key == 13) {\n // Search functions\n search(text);\n }\n\n if (key == 9) {\n // Tab Completion Functions\n e.preventDefault();\n e.stopPropagation();\n\n if (text[0] === ';') {\n switch (option) {\n case 't':\n var streamers = ['admiralbahroo', 'moonmoon_ow', 'witwix'];\n\n if (!subtext || cycle) {\n cycle = true;\n if (sindex > streamers.length - 1) sindex = 0;\n document.getElementById(\"keywords\").value = ';t ' + streamers[sindex++];\n return;\n }\n\n for (var streamer of streamers) {\n if (subtext === streamer.substr(0, subtext.length)) {\n document.getElementById(\"keywords\").value = ';t ' + streamer;\n return;\n }\n }\n\n break;\n }\n }\n }\n\n if (key == 32) {\n //Space to go to search\n updateLabel(text);\n }\n\n sindex = 0;\n cycle = false;\n updateLabel(text);\n}\n\nfunction updateLabel(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n\n if (text[0] === '/') {\n // if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n document.getElementById(\"searchType\").innerHTML = \"Allmusic search\";\n break;\n\n case \"d\":\n document.getElementById(\"searchType\").innerHTML = \"Duck Duck Go search\";\n break;\n\n case \"di\":\n document.getElementById(\"searchType\").innerHTML = \"Discogs search\";\n break;\n\n case \"i\":\n document.getElementById(\"searchType\").innerHTML = \"IMDB search\";\n break;\n\n case \"m\":\n document.getElementById(\"searchType\").innerHTML = \"TheMovieDB search\";\n break;\n\n case \"r\":\n document.getElementById(\"searchType\").innerHTML = \"Reddit search\";\n break;\n\n case \"q\":\n document.getElementById(\"searchType\").innerHTML = \"Qwant search\";\n break;\n\n case \"so\":\n document.getElementById(\"searchType\").innerHTML = \"Soundcloud search\";\n break;\n\n case \"s\":\n document.getElementById(\"searchType\").innerHTML = \"Spotify search\";\n break;\n\n case \"tv\":\n document.getElementById(\"searchType\").innerHTML = \"TheTVDB search\";\n break;\n\n case \"t\":\n document.getElementById(\"searchType\").innerHTML = \"Trakt search\";\n break;\n\n case \"y\":\n document.getElementById(\"searchType\").innerHTML = \"YouTube search\";\n break;\n\n case \"w\":\n document.getElementById(\"searchType\").innerHTML = \"Wikipedia search\";\n break;\n\n case \"p\":\n document.getElementById(\"searchType\").innerHTML = \"Plex search\";\n break;\n\n case \"rt\":\n document.getElementById(\"searchType\").innerHTML = \"Rotten Tomatoes search\";\n break;\n\n default:\n document.getElementById(\"searchType\").innerHTML = \"Invalid search\";\n break;\n }\n } else {\n document.getElementById(\"searchType\").innerHTML = \"Google search\";\n }\n}\n\nfunction search(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n\n if (text[0] === '/') {\n if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n window.location = \"https://www.allmusic.com/search/all/\" + subtext;\n break;\n\n case \"d\":\n window.location = \"https://duckduckgo.com/?q=\" + subtext;\n break;\n\n case \"di\":\n window.location = \"https://www.discogs.com/search/?q=\" + subtext;\n break;\n\n case \"i\":\n window.location = \"https://www.imdb.com/find?q=\" + subtext;\n break;\n\n case \"m\":\n window.location = \"https://www.themoviedb.org/search?query=\" + subtext;\n break;\n\n case \"r\":\n window.location = \"https://www.reddit.com/search?q=\" + subtext;\n break;\n\n case \"q\":\n window.location = \"https://www.qwant.com/?q=\" + subtext;\n break;\n\n case \"so\":\n window.location = \"https://soundcloud.com/search?q=\" + subtext;\n break;\n\n case \"s\":\n window.location = \"https://open.spotify.com/search/results/\" + subtext;\n break;\n\n case \"t\":\n window.location = \"https://trakt.tv/search?query=\" + subtext;\n break;\n\n case \"tv\":\n window.location = \"https://www.thetvdb.com/search?query=\" + subtext;\n break;\n\n case \"y\":\n window.location = \"https://www.youtube.com/results?search_query=\" + subtext;\n break;\n\n case \"w\":\n window.location = \"https://en.wikipedia.org/w/index.php?search=\" + subtext;\n break;\n\n case \"p\":\n window.location = \"https://app.plex.tv/desktop/#!/search?query=\" + subtext;\n break;\n\n case \"rt\":\n window.location = \"https://www.rottentomatoes.com/search?search=\" + subtext;\n break;\n }\n } else {\n var option = text.substr(1);\n\n switch (option) {\n case \"d\":\n window.location = \"https://www.duckduckgo.com\";\n break;\n\n case \"y\":\n window.location = \"https://www.youtube.com\";\n break;\n\n case \"r\":\n window.location = \"https://reddit.com\";\n break;\n\n case \"s\":\n window.location = \"https://open.spotify.com\";\n break;\n }\n }\n } else if (validURL(text)) {\n if (containsProtocol(text)) window.location = text;else window.location = \"https://\" + text;\n } else {\n window.location = \"https://www.google.com/search?q=\" + text;\n }\n} // Source: https://stackoverflow.com/questions/5717093/check-if-a-javascript-string-is-a-url\n\n\nfunction validURL(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/)?' + // protocol\n '((([a-z\\\\d]([a-z\\\\d-]*[a-z\\\\d])*)\\\\.)+[a-z]{2,}|' + // domain name\n '((\\\\d{1,3}\\\\.){3}\\\\d{1,3}))' + // OR ip (v4) address\n '(\\\\:\\\\d+)?(\\\\/[-a-z\\\\d%_.~+]*)*' + // port and path\n '(\\\\?[;&a-z\\\\d%_.~+=-]*)?' + // query string\n '(\\\\#[-a-z\\\\d_]*)?$', 'i'); // fragment locator\n\n return !!pattern.test(str);\n}\n\nfunction containsProtocol(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/){1}.*', 'i');\n return !!pattern.test(str);\n}\n\nString.prototype.replaceAll = function (search, replacement) {\n var target = this;\n return target.split(search).join(replacement);\n};\n\nfunction udpateDisplayedItems(e) {\n console.log(e.target.checked);\n localStorage.setItem('contenttype', e.target.checked);\n}\n\nvar _c, _c2, _c3, _c4, _c5, _c6, _c7, _c8, _c9, _c10, _c11, _c12;\n\n$RefreshReg$(_c, \"Homepage\");\n$RefreshReg$(_c2, \"Search\");\n$RefreshReg$(_c3, \"Header\");\n$RefreshReg$(_c4, \"Applications\");\n$RefreshReg$(_c5, \"App\");\n$RefreshReg$(_c6, \"Bookmarks\");\n$RefreshReg$(_c7, \"LinkGroups\");\n$RefreshReg$(_c8, \"LinkItem\");\n$RefreshReg$(_c9, \"ModalMenu\");\n$RefreshReg$(_c10, \"Provider\");\n$RefreshReg$(_c11, \"ModalInit\");\n$RefreshReg$(_c12, \"Clock\");","map":{"version":3,"sources":["/home/seanedmunds/dev/home-page/src/index.js"],"names":["React","useState","useEffect","ReactDOM","setValueFromLocalStorage","property","value","localStorage","getItem","setValue","document","documentElement","style","setProperty","input","querySelector","replace","Homepage","setTheme","date","greet","Search","handleKeyPress","Header","props","Applications","appList","getApps","items","i","apps","length","push","name","url","icon","NSFW","App","classNameType","hrefUrl","iconName","Bookmarks","bookmarkList","getLinks","bookmarks","category","links","LinkGroups","LinkItem","link","ModalMenu","providers","getProviders","updateTheme","udpateDisplayedItems","Provider","provider","prefix","ModalInit","render","getElementById","currentDate","Date","dateOptions","weekday","year","month","day","toLocaleDateString","fixDigits","k","currentTime","Math","floor","getHours","easterEggChance","random","greetings","require","timeBased","easterEggs","messages","easteregg","concat","message","easterEggText","Clock","setDate","refreshClock","timerId","setInterval","cleanup","clearInterval","hour","minutes","getMinutes","midday","time","applications","getThemes","themes","e","themeName","target","innerHTML","toLowerCase","index","findIndex","item","console","log","setItem","imagebackground","colorbackground","colorserachbackground","colortextpri","colortextacc","colorborder","sindex","cycle","key","keyCode","which","text","replaceAll","option","substr","indexOf","subtext","search","preventDefault","stopPropagation","streamers","streamer","updateLabel","window","location","validURL","containsProtocol","str","pattern","RegExp","test","String","prototype","replacement","split","join","checked"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { useState, useEffect } from 'react';\nimport ReactDOM from 'react-dom';\n//import { unstable_createPortal } from 'react-dom';\nimport './index.css';\n\nconst setValueFromLocalStorage = property => {\n let value = localStorage.getItem(property);\n setValue(property, value);\n};\nconst setValue = (property, value) => {\n if (value) {\n document.documentElement.style.setProperty(`--${property}`, value);\n\n const input = document.querySelector(`#${property}`);\n if (input) {\n value = value.replace('px', '');\n input.value = value;\n }\n }\n};\n\nfunction Homepage() {\n setTheme();\n return (\n \n \n \n
\n \n \n
\n \n \n \n
\n \n \n
\n \n \n
\n \n );\n}\n\nfunction Search() {\n return (\n \n )\n}\n\nfunction Header(props) {\n return (\n \n );\n}\n\nfunction Applications() {\n let appList = getApps();\n var items = [];\n for (var i = 0; i < appList.apps.length; i++) {\n items.push(\n \n );\n }\n return (\n \n Applications
\n \n {items}\n
\n \n );\n}\n\nfunction App(props) {\n let classNameType = props.NSFW + \"-content\";\n let hrefUrl = \"https://\" + props.url;\n let iconName = \"mdi-\" + props.icon;\n return (\n \n );\n}\n\nfunction Bookmarks() {\n let bookmarkList = getLinks();\n var items = [];\n for (var i = 0; i < bookmarkList.bookmarks.length; i++) {\n items.push(\n \n );\n }\n return (\n \n Bookmarks
\n \n {items}\n
\n \n );\n}\n\nfunction LinkGroups(props) {\n var items = [];\n for (var i = 0; i < props.links.length; i++) {\n items.push(\n \n );\n }\n return (\n \n
{props.category}
\n {items}\n \n );\n}\n\nfunction LinkItem(props) {\n return (\n \n );\n}\n\nfunction ModalMenu() {\n var providers = getProviders();\n var items = [];\n for (var i = 0; i < providers.providers.length; i++) {\n items.push(\n \n );\n }\n return (\n \n \n \n\n
Color themes
\n\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n\n\n
Search options
\n
\n \n \n \n | Website | \n Prefix | \n
\n {items}\n \n
\n \n\n \n
\n \n );\n}\n\nfunction Provider(props) {\n return (\n \n | {props.provider.name} | \n {props.provider.prefix} | \n
\n );\n}\n\nfunction ModalInit() {\n return (\n \n );\n}\n\nReactDOM.render(\n ,\n document.getElementById('root')\n);\n\n//Functions below this line are for calculating data for\n//other functions\n\nfunction date() {\n let currentDate = new Date();\n let dateOptions = {\n weekday: \"long\",\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\"\n };\n let date = currentDate.toLocaleDateString(\"en-GB\", dateOptions);\n return date;\n}\nfunction fixDigits(k) {\n if (k < 10) {\n return \"0\" + k;\n }\n else {\n return k;\n }\n}\nfunction greet() {\n let currentTime = new Date();\n let greet = Math.floor(currentTime.getHours() / 6);\n let easterEggChance = Math.floor(Math.random() * 100);\n let greetings = require('./messages.json');\n let timeBased = [];\n let easterEggs = [];\n for (var i = 0; i < greetings.messages.length; i++) {\n if (greetings.messages[i].easteregg === \"FALSE\") {\n timeBased = timeBased.concat(greetings.messages[i]);\n } else {\n easterEggs = easterEggs.concat(greetings.messages[i]);\n }\n }\n if (easterEggChance > 10) {\n return timeBased[greet].message;\n } else {\n let easterEggText = Math.floor(Math.random() * easterEggs.length);\n return easterEggs[easterEggText].message;\n }\n}\nfunction Clock() {\n const [date, setDate] = useState(new Date());\n\n function refreshClock() {\n setDate(new Date());\n }\n useEffect(() => {\n const timerId = setInterval(refreshClock, 1000);\n return function cleanup() {\n clearInterval(timerId);\n };\n }, []);\n\n var hour = date.getHours();\n var minutes = date.getMinutes();\n //var seconds = date.getSeconds();\n var midday = \"AM\";\n midday = (hour >= 12) ? \"PM\" : \"AM\";\n hour = (hour === 0) ? 12 : ((hour > 12) ? (hour - 12) : hour);\n minutes = fixDigits(minutes);\n //seconds = fixDigits(seconds);\n let time = hour + \":\" + minutes + \" \" + midday;\n\n return (\n {time}
\n\n );\n}\nfunction getApps() {\n let applications = require('./apps.json');\n return applications;\n}\nfunction getLinks() {\n let links = require('./links.json');\n return links;\n}\nfunction getProviders() {\n let providers = require('./providers.json');\n return providers;\n}\nfunction getThemes() {\n let themes = require('./themes.json');\n return themes;\n}\n\nfunction updateTheme(e) {\n var themes = getThemes();\n var themeName = e.target.innerHTML.toLowerCase();\n var index = themes.themes.findIndex(function(item, i){\n return item.name === themeName\n });\n console.log(themes.themes[index]);\n localStorage.setItem(\"image-background\", themes.themes[index].imagebackground);\n localStorage.setItem(\"color-background\", themes.themes[index].colorbackground);\n localStorage.setItem(\"color-search-background\", themes.themes[index].colorserachbackground);\n localStorage.setItem(\"color-text-pri\",themes.themes[index].colortextpri);\n localStorage.setItem(\"color-text-acc\", themes.themes[index].colortextacc);\n localStorage.setItem(\"color-border\", themes.themes[index].colorborder);\n \n //document.documentElement.style.setProperty(prop, `var(--${themeName}${prop.substring(10)})`);\n setTheme();\n}\n\nfunction setTheme() {\n setValueFromLocalStorage('image-background');\n setValueFromLocalStorage('color-background');\n setValueFromLocalStorage('color-search-background');\n setValueFromLocalStorage('color-text-pri');\n setValueFromLocalStorage('color-text-acc');\n setValueFromLocalStorage('color-border');\n setValueFromLocalStorage('content-display');\n}\n\nfunction handleKeyPress(e) {\n var sindex = 0;\n var cycle = false;\n var key = e.keyCode || e.which;\n var text = e.target.value.replaceAll(\"+\", \"%2B\");\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n if (key == 13) { // Search functions\n search(text);\n }\n if (key == 9) { // Tab Completion Functions\n e.preventDefault();\n e.stopPropagation();\n if (text[0] === ';') {\n switch (option) {\n case 't':\n var streamers = ['admiralbahroo', 'moonmoon_ow', 'witwix'];\n if (!subtext || cycle) {\n cycle = true;\n if (sindex > streamers.length - 1) sindex = 0;\n document.getElementById(\"keywords\").value = ';t ' + streamers[sindex++];\n return;\n }\n for (var streamer of streamers) {\n if (subtext === streamer.substr(0, subtext.length)) {\n document.getElementById(\"keywords\").value = ';t ' + streamer;\n return;\n }\n }\n break;\n }\n }\n }\n if(key == 32){ //Space to go to search\nupdateLabel(text);\n }\n sindex = 0;\n cycle = false;\n updateLabel(text);\n}\n\nfunction updateLabel(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n if (text[0] === '/') {\n// if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n document.getElementById(\"searchType\").innerHTML = \"Allmusic search\";\n break;\n case \"d\":\n document.getElementById(\"searchType\").innerHTML = \"Duck Duck Go search\";\n break;\n case \"di\":\n document.getElementById(\"searchType\").innerHTML = \"Discogs search\";\n break;\n case \"i\":\n document.getElementById(\"searchType\").innerHTML = \"IMDB search\";\n break;\n case \"m\":\n document.getElementById(\"searchType\").innerHTML = \"TheMovieDB search\";\n break;\n case \"r\":\n document.getElementById(\"searchType\").innerHTML = \"Reddit search\";\n break;\n case \"q\":\n document.getElementById(\"searchType\").innerHTML = \"Qwant search\";\n break;\n case \"so\":\n document.getElementById(\"searchType\").innerHTML = \"Soundcloud search\";\n break;\n case \"s\":\n document.getElementById(\"searchType\").innerHTML = \"Spotify search\";\n break;\n case \"tv\":\n document.getElementById(\"searchType\").innerHTML = \"TheTVDB search\";\n break;\n case \"t\":\n document.getElementById(\"searchType\").innerHTML = \"Trakt search\";\n break;\n case \"y\":\n document.getElementById(\"searchType\").innerHTML = \"YouTube search\";\n break;\n case \"w\":\n document.getElementById(\"searchType\").innerHTML = \"Wikipedia search\";\n break;\n case \"p\":\n document.getElementById(\"searchType\").innerHTML = \"Plex search\";\n break;\n case \"rt\":\n document.getElementById(\"searchType\").innerHTML = \"Rotten Tomatoes search\";\n break;\n default:\n document.getElementById(\"searchType\").innerHTML = \"Invalid search\";\n break;\n }\n}else {\n document.getElementById(\"searchType\").innerHTML = \"Google search\";\n }\n}\n\nfunction search(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n if (text[0] === '/') {\n if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n window.location = \"https://www.allmusic.com/search/all/\" + subtext;\n break;\n case \"d\":\n window.location = \"https://duckduckgo.com/?q=\" + subtext;\n break;\n case \"di\":\n window.location = \"https://www.discogs.com/search/?q=\" + subtext;\n break;\n case \"i\":\n window.location = \"https://www.imdb.com/find?q=\" + subtext;\n break;\n case \"m\":\n window.location = \"https://www.themoviedb.org/search?query=\" + subtext;\n break;\n case \"r\":\n window.location = \"https://www.reddit.com/search?q=\" + subtext;\n break;\n case \"q\":\n window.location = \"https://www.qwant.com/?q=\" + subtext;\n break;\n case \"so\":\n window.location = \"https://soundcloud.com/search?q=\" + subtext;\n break;\n case \"s\":\n window.location = \"https://open.spotify.com/search/results/\" + subtext;\n break;\n case \"t\":\n window.location = \"https://trakt.tv/search?query=\" + subtext;\n break;\n case \"tv\":\n window.location = \"https://www.thetvdb.com/search?query=\" + subtext;\n break;\n case \"y\":\n window.location = \"https://www.youtube.com/results?search_query=\" + subtext;\n break;\n case \"w\":\n window.location = \"https://en.wikipedia.org/w/index.php?search=\" + subtext;\n break;\n case \"p\":\n window.location = \"https://app.plex.tv/desktop/#!/search?query=\" + subtext;\n break;\n case \"rt\":\n window.location = \"https://www.rottentomatoes.com/search?search=\" + subtext;\n break;\n }\n } else {\n var option = text.substr(1);\n switch (option) {\n case \"d\":\n window.location = \"https://www.duckduckgo.com\";\n break;\n case \"y\":\n window.location = \"https://www.youtube.com\";\n break;\n case \"r\":\n window.location = \"https://reddit.com\";\n break;\n case \"s\":\n window.location = \"https://open.spotify.com\";\n break;\n }\n }\n } else if (validURL(text)) {\n if (containsProtocol(text))\n window.location = text;\n else\n window.location = \"https://\" + text;\n } else {\n window.location = \"https://www.google.com/search?q=\" + text;\n }\n}\n\n// Source: https://stackoverflow.com/questions/5717093/check-if-a-javascript-string-is-a-url\nfunction validURL(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/)?' + // protocol\n '((([a-z\\\\d]([a-z\\\\d-]*[a-z\\\\d])*)\\\\.)+[a-z]{2,}|' + // domain name\n '((\\\\d{1,3}\\\\.){3}\\\\d{1,3}))' + // OR ip (v4) address\n '(\\\\:\\\\d+)?(\\\\/[-a-z\\\\d%_.~+]*)*' + // port and path\n '(\\\\?[;&a-z\\\\d%_.~+=-]*)?' + // query string\n '(\\\\#[-a-z\\\\d_]*)?$', 'i'); // fragment locator\n return !!pattern.test(str);\n}\n\nfunction containsProtocol(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/){1}.*', 'i');\n return !!pattern.test(str);\n}\n\nString.prototype.replaceAll = function(search, replacement) {\n var target = this;\n return target.split(search).join(replacement);\n};\n\nfunction udpateDisplayedItems(e) {\n console.log(e.target.checked);\n \n localStorage.setItem('contenttype', e.target.checked);\n}"]},"metadata":{},"sourceType":"module"}
\ No newline at end of file
diff --git a/node_modules/.cache/babel-loader/dfc5276b7dde07c493a83542f1137cef.json b/node_modules/.cache/babel-loader/dfc5276b7dde07c493a83542f1137cef.json
new file mode 100644
index 00000000..e1529308
--- /dev/null
+++ b/node_modules/.cache/babel-loader/dfc5276b7dde07c493a83542f1137cef.json
@@ -0,0 +1 @@
+{"ast":null,"code":"var _jsxFileName = \"/home/seanedmunds/dev/home-page/src/index.js\",\n _s = $RefreshSig$();\n\nimport React from 'react';\nimport { useState, useEffect } from 'react';\nimport ReactDOM from 'react-dom';\nimport './index.css';\nimport { jsxDEV as _jsxDEV } from \"react/jsx-dev-runtime\";\n\nconst setValueFromLocalStorage = property => {\n let value = localStorage.getItem(property);\n setValue(property, value);\n};\n\nconst setValue = (property, value) => {\n if (value) {\n document.documentElement.style.setProperty(`--${property}`, value);\n const input = document.querySelector(`#${property}`);\n\n if (input) {\n value = value.replace('px', '');\n input.value = value;\n }\n }\n};\n\nfunction Homepage() {\n setTheme();\n return /*#__PURE__*/_jsxDEV(\"main\", {\n id: \"container\",\n className: \"fade\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Search, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 28,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 27,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Header, {\n date: date(),\n greet: greet()\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 31,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 30,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Applications, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 37,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 36,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Bookmarks, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 40,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 39,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(ModalMenu, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 43,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 42,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(ModalInit, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 46,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 45,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 26,\n columnNumber: 5\n }, this);\n}\n\n_c = Homepage;\n\nfunction Search() {\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"search\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"abackground\",\n children: [/*#__PURE__*/_jsxDEV(\"input\", {\n name: \"keywords\",\n type: \"text\",\n className: \"keyword\",\n id: \"keywords\",\n size: \"50\",\n spellCheck: \"true\",\n placeholder: \"\"\n /*onFocus={this.placeholder = \"\"} onBlur={this.placeholder = ''}*/\n ,\n autoComplete: \"off\",\n autoFocus: true,\n onKeyUp: handleKeyPress\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 56,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n id: \"searchType\",\n className: \"Input-label\",\n children: \"Google search\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 57,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 55,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 54,\n columnNumber: 5\n }, this);\n}\n\n_c2 = Search;\n\nfunction Header(props) {\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"header\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n id: \"greeting_block\",\n children: /*#__PURE__*/_jsxDEV(\"h1\", {\n id: \"header_greet\",\n children: props.greet\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 67,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 66,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"date_block\",\n children: [/*#__PURE__*/_jsxDEV(\"h2\", {\n id: \"header_date\",\n children: props.date\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 70,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(Clock, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 71,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 69,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 65,\n columnNumber: 5\n }, this);\n}\n\n_c3 = Header;\n\nfunction Applications() {\n let appList = getApps();\n var items = [];\n\n for (var i = 0; i < appList.apps.length; i++) {\n var safe = appList.apps[i].NSFW;\n var NSFWEnabled = localStorage.getItem(\"contenttype\");\n\n if (safe === \"SAFE\") {\n items.push( /*#__PURE__*/_jsxDEV(App, {\n name: appList.apps[i].name,\n url: appList.apps[i].url,\n icon: appList.apps[i].icon,\n NSFW: appList.apps[i].NSFW\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 85,\n columnNumber: 9\n }, this));\n } else if (safe === \"NSFW\" && NSFWEnabled) {\n items.push( /*#__PURE__*/_jsxDEV(App, {\n name: appList.apps[i].name,\n url: appList.apps[i].url,\n icon: appList.apps[i].icon,\n NSFW: appList.apps[i].NSFW\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 95,\n columnNumber: 9\n }, this));\n } else {}\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"apps\",\n children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n children: \"Applications\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 110,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"apps_loop\",\n children: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 111,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 109,\n columnNumber: 5\n }, this);\n}\n\n_c4 = Applications;\n\nfunction App(props) {\n let classNameType = props.NSFW + \"-content\";\n let hrefUrl = \"https://\" + props.url;\n let iconName = \"mdi-\" + props.icon;\n return /*#__PURE__*/_jsxDEV(\"div\", {\n className: classNameType,\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: hrefUrl,\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_item\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_icon\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify icon\",\n \"data-icon\": iconName\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 128,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 127,\n columnNumber: 13\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_text\",\n children: [/*#__PURE__*/_jsxDEV(\"span\", {\n id: \"app-name\",\n children: props.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 131,\n columnNumber: 15\n }, this), /*#__PURE__*/_jsxDEV(\"span\", {\n id: \"app-address\",\n children: props.url\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 132,\n columnNumber: 15\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 130,\n columnNumber: 13\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 126,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 125,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 124,\n columnNumber: 7\n }, this);\n}\n\n_c5 = App;\n\nfunction Bookmarks() {\n let bookmarkList = getLinks();\n var items = [];\n\n for (var i = 0; i < bookmarkList.bookmarks.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(LinkGroups, {\n category: bookmarkList.bookmarks[i].category,\n links: bookmarkList.bookmarks[i].links\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 145,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"links\",\n children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n children: \"Bookmarks\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 154,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"links_loop\",\n children: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 155,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 153,\n columnNumber: 5\n }, this);\n}\n\n_c6 = Bookmarks;\n\nfunction LinkGroups(props) {\n var items = [];\n\n for (var i = 0; i < props.links.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(LinkItem, {\n link: props.links[i]\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 166,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"links_item\",\n children: [/*#__PURE__*/_jsxDEV(\"h4\", {\n children: props.category\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 174,\n columnNumber: 7\n }, this), items]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 173,\n columnNumber: 5\n }, this);\n}\n\n_c7 = LinkGroups;\n\nfunction LinkItem(props) {\n return /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: props.link.url,\n className: \"theme_color-border theme_text-select\",\n children: props.link.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 183,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 182,\n columnNumber: 5\n }, this);\n}\n\n_c8 = LinkItem;\n\nfunction ModalMenu() {\n var providers = getProviders();\n var items = [];\n\n for (var i = 0; i < providers.providers.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(Provider, {\n provider: providers.providers[i]\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 193,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"modal\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n children: [/*#__PURE__*/_jsxDEV(\"header\", {\n id: \"modal-header\",\n children: [/*#__PURE__*/_jsxDEV(\"h1\", {\n children: \"Options\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 203,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n href: \"#\",\n title: \"Close\",\n className: \"modal-close\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-close\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 205,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 204,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 202,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"h2\", {\n children: \"Color themes\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 209,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"modal-theme\",\n children: [/*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"blackboard\",\n className: \"theme-button theme-blackboard\",\n onClick: updateTheme,\n children: \"Blackboard\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 212,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"gazette\",\n className: \"theme-button theme-gazette\",\n onClick: updateTheme,\n children: \"Gazette\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 213,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"espresso\",\n className: \"theme-button theme-espresso\",\n onClick: updateTheme,\n children: \"Espresso\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 214,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cab\",\n className: \"theme-button theme-cab\",\n onClick: updateTheme,\n children: \"Cab\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 215,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cloud\",\n className: \"theme-button theme-cloud\",\n onClick: updateTheme,\n children: \"Cloud\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 216,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"lime\",\n className: \"theme-button theme-lime\",\n onClick: updateTheme,\n children: \"Lime\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 217,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"passion\",\n className: \"theme-button theme-passion\",\n onClick: updateTheme,\n children: \"Passion\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 218,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"blues\",\n className: \"theme-button theme-blues\",\n onClick: updateTheme,\n children: \"Blues\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 219,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"chalk\",\n className: \"theme-button theme-chalk\",\n onClick: updateTheme,\n children: \"Chalk\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 220,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"tron\",\n className: \"theme-button theme-tron\",\n onClick: updateTheme,\n children: \"Tron\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 221,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"paper\",\n className: \"theme-button theme-paper\",\n onClick: updateTheme,\n children: \"Paper\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 222,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cyberpunk\",\n className: \"theme-button theme-cyberpunk\",\n onClick: updateTheme,\n children: \"Cyberpunk\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 223,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"quadra\",\n className: \"theme-button theme-panam\",\n onClick: updateTheme,\n children: \"Quadra\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 224,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"panam\",\n className: \"theme-button theme-panam\",\n onClick: updateTheme,\n children: \"Panam\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 225,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"touch\",\n className: \"theme-button theme-touch\",\n onClick: updateTheme,\n children: \"Touch\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 226,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"peek\",\n className: \"theme-button theme-peek\",\n onClick: updateTheme,\n children: \"Peek\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 227,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 211,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"h2\", {\n children: \"Search options\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 231,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"providers\",\n children: /*#__PURE__*/_jsxDEV(\"table\", {\n children: /*#__PURE__*/_jsxDEV(\"tbody\", {\n children: [/*#__PURE__*/_jsxDEV(\"tr\", {\n children: [/*#__PURE__*/_jsxDEV(\"th\", {\n children: \"Website\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 236,\n columnNumber: 19\n }, this), /*#__PURE__*/_jsxDEV(\"th\", {\n children: \"Prefix\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 237,\n columnNumber: 19\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 235,\n columnNumber: 17\n }, this), items]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 234,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 233,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 232,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"header\", {\n id: \"modal-footer\",\n children: [/*#__PURE__*/_jsxDEV(\"a\", {\n href: \"https://github.com/jeroenpardon/\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-github-box\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 245,\n columnNumber: 54\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 245,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n href: \"https://materialdesignicons.com/\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-material-design\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 246,\n columnNumber: 54\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 246,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(HideButton, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 247,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 244,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 201,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 200,\n columnNumber: 5\n }, this);\n}\n\n_c9 = ModalMenu;\n\nfunction HideButton() {\n return /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"sneaky\",\n children: [/*#__PURE__*/_jsxDEV(\"input\", {\n type: \"checkbox\",\n id: \"contenttype\",\n onChange: udpateDisplayedItems\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 257,\n columnNumber: 29\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n for: \"contenttype\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-domino-mask\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 258,\n columnNumber: 30\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 258,\n columnNumber: 5\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 257,\n columnNumber: 5\n }, this);\n}\n\n_c10 = HideButton;\n\nfunction Provider(props) {\n return /*#__PURE__*/_jsxDEV(\"tr\", {\n children: [/*#__PURE__*/_jsxDEV(\"td\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: props.provider.url,\n children: props.provider.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 265,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 265,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"td\", {\n children: props.provider.prefix\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 266,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 264,\n columnNumber: 5\n }, this);\n}\n\n_c11 = Provider;\n\nfunction ModalInit() {\n setDisplayedItems();\n return /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"modal_init\",\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n className: \"btn\",\n href: \"#modal\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify icon\",\n \"data-icon\": \"mdi-xbox-controller-menu\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 276,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 275,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 274,\n columnNumber: 5\n }, this);\n}\n\n_c12 = ModalInit;\nReactDOM.render( /*#__PURE__*/_jsxDEV(Homepage, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 283,\n columnNumber: 3\n}, this), document.getElementById('root')); //Functions below this line are for calculating data for\n//other functions\n\nfunction date() {\n let currentDate = new Date();\n let dateOptions = {\n weekday: \"long\",\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\"\n };\n let date = currentDate.toLocaleDateString(\"en-GB\", dateOptions);\n return date;\n}\n\nfunction fixDigits(k) {\n if (k < 10) {\n return \"0\" + k;\n } else {\n return k;\n }\n}\n\nfunction greet() {\n let currentTime = new Date();\n let greet = Math.floor(currentTime.getHours() / 6);\n let easterEggChance = Math.floor(Math.random() * 100);\n\n let greetings = require('./messages.json');\n\n let timeBased = [];\n let easterEggs = [];\n\n for (var i = 0; i < greetings.messages.length; i++) {\n if (greetings.messages[i].easteregg === \"FALSE\") {\n timeBased = timeBased.concat(greetings.messages[i]);\n } else {\n easterEggs = easterEggs.concat(greetings.messages[i]);\n }\n }\n\n if (easterEggChance > 10) {\n return timeBased[greet].message;\n } else {\n let easterEggText = Math.floor(Math.random() * easterEggs.length);\n return easterEggs[easterEggText].message;\n }\n}\n\nfunction Clock() {\n _s();\n\n const [date, setDate] = useState(new Date());\n\n function refreshClock() {\n setDate(new Date());\n }\n\n useEffect(() => {\n const timerId = setInterval(refreshClock, 1000);\n return function cleanup() {\n clearInterval(timerId);\n };\n }, []);\n var hour = date.getHours();\n var minutes = date.getMinutes(); //var seconds = date.getSeconds();\n\n var midday = \"AM\";\n midday = hour >= 12 ? \"PM\" : \"AM\";\n hour = hour === 0 ? 12 : hour > 12 ? hour - 12 : hour;\n minutes = fixDigits(minutes); //seconds = fixDigits(seconds);\n\n let time = hour + \":\" + minutes + \" \" + midday;\n return /*#__PURE__*/_jsxDEV(\"h2\", {\n id: \"clock\",\n children: time\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 354,\n columnNumber: 5\n }, this);\n}\n\n_s(Clock, \"Gqi45WOZhU2c0BLYX0HoJeiR0fk=\");\n\n_c13 = Clock;\n\nfunction getApps() {\n let applications = require('./apps.json');\n\n return applications;\n}\n\nfunction getLinks() {\n let links = require('./links.json');\n\n return links;\n}\n\nfunction getProviders() {\n let providers = require('./providers.json');\n\n return providers;\n}\n\nfunction getThemes() {\n let themes = require('./themes.json');\n\n return themes;\n}\n\nfunction updateTheme(e) {\n var themes = getThemes();\n var themeName = e.target.innerHTML.toLowerCase();\n var index = themes.themes.findIndex(function (item, i) {\n return item.name === themeName;\n });\n localStorage.setItem(\"image-background\", themes.themes[index].imagebackground);\n localStorage.setItem(\"color-background\", themes.themes[index].colorbackground);\n localStorage.setItem(\"color-search-background\", themes.themes[index].colorserachbackground);\n localStorage.setItem(\"color-text-pri\", themes.themes[index].colortextpri);\n localStorage.setItem(\"color-text-acc\", themes.themes[index].colortextacc);\n localStorage.setItem(\"color-border\", themes.themes[index].colorborder); //document.documentElement.style.setProperty(prop, `var(--${themeName}${prop.substring(10)})`);\n\n setTheme();\n}\n\nfunction setTheme() {\n setValueFromLocalStorage('image-background');\n setValueFromLocalStorage('color-background');\n setValueFromLocalStorage('color-search-background');\n setValueFromLocalStorage('color-text-pri');\n setValueFromLocalStorage('color-text-acc');\n setValueFromLocalStorage('color-border');\n setValueFromLocalStorage('content-display');\n}\n\nfunction handleKeyPress(e) {\n var sindex = 0;\n var cycle = false;\n var key = e.keyCode || e.which;\n var text = e.target.value.replaceAll(\"+\", \"%2B\");\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n\n if (key == 13) {\n // Search functions\n search(text);\n }\n\n if (key == 9) {\n // Tab Completion Functions\n e.preventDefault();\n e.stopPropagation();\n\n if (text[0] === ';') {\n switch (option) {\n case 't':\n var streamers = ['admiralbahroo', 'moonmoon_ow', 'witwix'];\n\n if (!subtext || cycle) {\n cycle = true;\n if (sindex > streamers.length - 1) sindex = 0;\n document.getElementById(\"keywords\").value = ';t ' + streamers[sindex++];\n return;\n }\n\n for (var streamer of streamers) {\n if (subtext === streamer.substr(0, subtext.length)) {\n document.getElementById(\"keywords\").value = ';t ' + streamer;\n return;\n }\n }\n\n break;\n }\n }\n }\n\n if (key == 32) {\n //Space to go to search\n updateLabel(text);\n }\n\n sindex = 0;\n cycle = false;\n updateLabel(text);\n}\n\nfunction updateLabel(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n\n if (text[0] === '/') {\n // if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n document.getElementById(\"searchType\").innerHTML = \"Allmusic search\";\n break;\n\n case \"d\":\n document.getElementById(\"searchType\").innerHTML = \"Duck Duck Go search\";\n break;\n\n case \"di\":\n document.getElementById(\"searchType\").innerHTML = \"Discogs search\";\n break;\n\n case \"i\":\n document.getElementById(\"searchType\").innerHTML = \"IMDB search\";\n break;\n\n case \"m\":\n document.getElementById(\"searchType\").innerHTML = \"TheMovieDB search\";\n break;\n\n case \"r\":\n document.getElementById(\"searchType\").innerHTML = \"Reddit search\";\n break;\n\n case \"q\":\n document.getElementById(\"searchType\").innerHTML = \"Qwant search\";\n break;\n\n case \"so\":\n document.getElementById(\"searchType\").innerHTML = \"Soundcloud search\";\n break;\n\n case \"s\":\n document.getElementById(\"searchType\").innerHTML = \"Spotify search\";\n break;\n\n case \"tv\":\n document.getElementById(\"searchType\").innerHTML = \"TheTVDB search\";\n break;\n\n case \"t\":\n document.getElementById(\"searchType\").innerHTML = \"Trakt search\";\n break;\n\n case \"y\":\n document.getElementById(\"searchType\").innerHTML = \"YouTube search\";\n break;\n\n case \"w\":\n document.getElementById(\"searchType\").innerHTML = \"Wikipedia search\";\n break;\n\n case \"p\":\n document.getElementById(\"searchType\").innerHTML = \"Plex search\";\n break;\n\n case \"rt\":\n document.getElementById(\"searchType\").innerHTML = \"Rotten Tomatoes search\";\n break;\n\n default:\n document.getElementById(\"searchType\").innerHTML = \"Invalid search\";\n break;\n }\n } else {\n document.getElementById(\"searchType\").innerHTML = \"Google search\";\n }\n}\n\nfunction search(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n\n if (text[0] === '/') {\n if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n window.location = \"https://www.allmusic.com/search/all/\" + subtext;\n break;\n\n case \"d\":\n window.location = \"https://duckduckgo.com/?q=\" + subtext;\n break;\n\n case \"di\":\n window.location = \"https://www.discogs.com/search/?q=\" + subtext;\n break;\n\n case \"i\":\n window.location = \"https://www.imdb.com/find?q=\" + subtext;\n break;\n\n case \"m\":\n window.location = \"https://www.themoviedb.org/search?query=\" + subtext;\n break;\n\n case \"r\":\n window.location = \"https://www.reddit.com/search?q=\" + subtext;\n break;\n\n case \"q\":\n window.location = \"https://www.qwant.com/?q=\" + subtext;\n break;\n\n case \"so\":\n window.location = \"https://soundcloud.com/search?q=\" + subtext;\n break;\n\n case \"s\":\n window.location = \"https://open.spotify.com/search/results/\" + subtext;\n break;\n\n case \"t\":\n window.location = \"https://trakt.tv/search?query=\" + subtext;\n break;\n\n case \"tv\":\n window.location = \"https://www.thetvdb.com/search?query=\" + subtext;\n break;\n\n case \"y\":\n window.location = \"https://www.youtube.com/results?search_query=\" + subtext;\n break;\n\n case \"w\":\n window.location = \"https://en.wikipedia.org/w/index.php?search=\" + subtext;\n break;\n\n case \"p\":\n window.location = \"https://app.plex.tv/desktop/#!/search?query=\" + subtext;\n break;\n\n case \"rt\":\n window.location = \"https://www.rottentomatoes.com/search?search=\" + subtext;\n break;\n }\n } else {\n var option = text.substr(1);\n\n switch (option) {\n case \"d\":\n window.location = \"https://www.duckduckgo.com\";\n break;\n\n case \"y\":\n window.location = \"https://www.youtube.com\";\n break;\n\n case \"r\":\n window.location = \"https://reddit.com\";\n break;\n\n case \"s\":\n window.location = \"https://open.spotify.com\";\n break;\n }\n }\n } else if (validURL(text)) {\n if (containsProtocol(text)) window.location = text;else window.location = \"https://\" + text;\n } else {\n window.location = \"https://www.google.com/search?q=\" + text;\n }\n}\n\nfunction validURL(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/)?' + // protocol\n '((([a-z\\\\d]([a-z\\\\d-]*[a-z\\\\d])*)\\\\.)+[a-z]{2,}|' + // domain name\n '((\\\\d{1,3}\\\\.){3}\\\\d{1,3}))' + // OR ip (v4) address\n '(\\\\:\\\\d+)?(\\\\/[-a-z\\\\d%_.~+]*)*' + // port and path\n '(\\\\?[;&a-z\\\\d%_.~+=-]*)?' + // query string\n '(\\\\#[-a-z\\\\d_]*)?$', 'i'); // fragment locator\n\n return !!pattern.test(str);\n}\n\nfunction containsProtocol(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/){1}.*', 'i');\n return !!pattern.test(str);\n}\n\nString.prototype.replaceAll = function (search, replacement) {\n var target = this;\n return target.split(search).join(replacement);\n};\n\nfunction udpateDisplayedItems(e) {\n console.log(e);\n localStorage.setItem('contenttype', e.target.checked);\n\n if (e.target.checked) {\n localStorage.setItem('content-display', 'none');\n } else {\n localStorage.setItem('content-display', 'block');\n }\n\n setDisplayedItems();\n}\n\nfunction setDisplayedItems() {\n setValueFromLocalStorage('contenttype');\n setValueFromLocalStorage('content-display');\n}\n\nvar _c, _c2, _c3, _c4, _c5, _c6, _c7, _c8, _c9, _c10, _c11, _c12, _c13;\n\n$RefreshReg$(_c, \"Homepage\");\n$RefreshReg$(_c2, \"Search\");\n$RefreshReg$(_c3, \"Header\");\n$RefreshReg$(_c4, \"Applications\");\n$RefreshReg$(_c5, \"App\");\n$RefreshReg$(_c6, \"Bookmarks\");\n$RefreshReg$(_c7, \"LinkGroups\");\n$RefreshReg$(_c8, \"LinkItem\");\n$RefreshReg$(_c9, \"ModalMenu\");\n$RefreshReg$(_c10, \"HideButton\");\n$RefreshReg$(_c11, \"Provider\");\n$RefreshReg$(_c12, \"ModalInit\");\n$RefreshReg$(_c13, \"Clock\");","map":{"version":3,"sources":["/home/seanedmunds/dev/home-page/src/index.js"],"names":["React","useState","useEffect","ReactDOM","setValueFromLocalStorage","property","value","localStorage","getItem","setValue","document","documentElement","style","setProperty","input","querySelector","replace","Homepage","setTheme","date","greet","Search","handleKeyPress","Header","props","Applications","appList","getApps","items","i","apps","length","safe","NSFW","NSFWEnabled","push","name","url","icon","App","classNameType","hrefUrl","iconName","Bookmarks","bookmarkList","getLinks","bookmarks","category","links","LinkGroups","LinkItem","link","ModalMenu","providers","getProviders","updateTheme","HideButton","udpateDisplayedItems","Provider","provider","prefix","ModalInit","setDisplayedItems","render","getElementById","currentDate","Date","dateOptions","weekday","year","month","day","toLocaleDateString","fixDigits","k","currentTime","Math","floor","getHours","easterEggChance","random","greetings","require","timeBased","easterEggs","messages","easteregg","concat","message","easterEggText","Clock","setDate","refreshClock","timerId","setInterval","cleanup","clearInterval","hour","minutes","getMinutes","midday","time","applications","getThemes","themes","e","themeName","target","innerHTML","toLowerCase","index","findIndex","item","setItem","imagebackground","colorbackground","colorserachbackground","colortextpri","colortextacc","colorborder","sindex","cycle","key","keyCode","which","text","replaceAll","option","substr","indexOf","subtext","search","preventDefault","stopPropagation","streamers","streamer","updateLabel","window","location","validURL","containsProtocol","str","pattern","RegExp","test","String","prototype","replacement","split","join","console","log","checked"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { useState, useEffect } from 'react';\nimport ReactDOM from 'react-dom';\nimport './index.css';\n\nconst setValueFromLocalStorage = property => {\n let value = localStorage.getItem(property);\n setValue(property, value);\n};\nconst setValue = (property, value) => {\n if (value) {\n document.documentElement.style.setProperty(`--${property}`, value);\n\n const input = document.querySelector(`#${property}`);\n if (input) {\n value = value.replace('px', '');\n input.value = value;\n }\n }\n};\n\nfunction Homepage() {\n setTheme();\n \n return (\n \n \n \n
\n \n \n
\n \n \n \n
\n \n \n
\n \n \n
\n \n );\n}\n\nfunction Search() {\n return (\n \n )\n}\n\nfunction Header(props) {\n return (\n \n );\n}\n\nfunction Applications() {\n let appList = getApps();\n var items = [];\n for (var i = 0; i < appList.apps.length; i++) {\n var safe = appList.apps[i].NSFW;\n var NSFWEnabled = localStorage.getItem(\"contenttype\");\n if (safe === \"SAFE\") {\n items.push(\n \n );\n } else if (safe === \"NSFW\" && NSFWEnabled) {\n items.push(\n \n );\n } else {\n \n }\n \n }\n return (\n \n Applications
\n \n {items}\n
\n \n );\n}\n\nfunction App(props) {\n \n let classNameType = props.NSFW + \"-content\";\n let hrefUrl = \"https://\" + props.url;\n let iconName = \"mdi-\" + props.icon;\n return (\n \n );\n}\n\nfunction Bookmarks() {\n let bookmarkList = getLinks();\n var items = [];\n for (var i = 0; i < bookmarkList.bookmarks.length; i++) {\n items.push(\n \n );\n }\n return (\n \n Bookmarks
\n \n {items}\n
\n \n );\n}\n\nfunction LinkGroups(props) {\n var items = [];\n for (var i = 0; i < props.links.length; i++) {\n items.push(\n \n );\n }\n return (\n \n
{props.category}
\n {items}\n \n );\n}\n\nfunction LinkItem(props) {\n return (\n \n );\n}\n\nfunction ModalMenu() {\n var providers = getProviders();\n var items = [];\n for (var i = 0; i < providers.providers.length; i++) {\n items.push(\n \n );\n }\n return (\n \n \n \n\n
Color themes
\n\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n\n\n
Search options
\n
\n \n \n \n | Website | \n Prefix | \n
\n {items}\n \n
\n \n\n \n
\n \n );\n}\n\nfunction HideButton() {\n \n return (\n \n
\n );\n}\n\nfunction Provider(props) {\n return (\n \n | {props.provider.name} | \n {props.provider.prefix} | \n
\n );\n}\n\nfunction ModalInit() {\n setDisplayedItems();\n return (\n \n );\n}\n\nReactDOM.render(\n ,\n document.getElementById('root')\n);\n\n//Functions below this line are for calculating data for\n//other functions\n\nfunction date() {\n let currentDate = new Date();\n let dateOptions = {\n weekday: \"long\",\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\"\n };\n let date = currentDate.toLocaleDateString(\"en-GB\", dateOptions);\n return date;\n}\nfunction fixDigits(k) {\n if (k < 10) {\n return \"0\" + k;\n }\n else {\n return k;\n }\n}\nfunction greet() {\n let currentTime = new Date();\n let greet = Math.floor(currentTime.getHours() / 6);\n let easterEggChance = Math.floor(Math.random() * 100);\n let greetings = require('./messages.json');\n let timeBased = [];\n let easterEggs = [];\n for (var i = 0; i < greetings.messages.length; i++) {\n if (greetings.messages[i].easteregg === \"FALSE\") {\n timeBased = timeBased.concat(greetings.messages[i]);\n } else {\n easterEggs = easterEggs.concat(greetings.messages[i]);\n }\n }\n if (easterEggChance > 10) {\n return timeBased[greet].message;\n } else {\n let easterEggText = Math.floor(Math.random() * easterEggs.length);\n return easterEggs[easterEggText].message;\n }\n}\nfunction Clock() {\n const [date, setDate] = useState(new Date());\n\n function refreshClock() {\n setDate(new Date());\n }\n useEffect(() => {\n const timerId = setInterval(refreshClock, 1000);\n return function cleanup() {\n clearInterval(timerId);\n };\n }, []);\n\n var hour = date.getHours();\n var minutes = date.getMinutes();\n //var seconds = date.getSeconds();\n var midday = \"AM\";\n midday = (hour >= 12) ? \"PM\" : \"AM\";\n hour = (hour === 0) ? 12 : ((hour > 12) ? (hour - 12) : hour);\n minutes = fixDigits(minutes);\n //seconds = fixDigits(seconds);\n let time = hour + \":\" + minutes + \" \" + midday;\n\n return (\n {time}
\n\n );\n}\nfunction getApps() {\n let applications = require('./apps.json');\n return applications;\n}\nfunction getLinks() {\n let links = require('./links.json');\n return links;\n}\nfunction getProviders() {\n let providers = require('./providers.json');\n return providers;\n}\nfunction getThemes() {\n let themes = require('./themes.json');\n return themes;\n}\nfunction updateTheme(e) {\n var themes = getThemes();\n var themeName = e.target.innerHTML.toLowerCase();\n var index = themes.themes.findIndex(function(item, i){\n return item.name === themeName\n });\n localStorage.setItem(\"image-background\", themes.themes[index].imagebackground);\n localStorage.setItem(\"color-background\", themes.themes[index].colorbackground);\n localStorage.setItem(\"color-search-background\", themes.themes[index].colorserachbackground);\n localStorage.setItem(\"color-text-pri\",themes.themes[index].colortextpri);\n localStorage.setItem(\"color-text-acc\", themes.themes[index].colortextacc);\n localStorage.setItem(\"color-border\", themes.themes[index].colorborder);\n \n //document.documentElement.style.setProperty(prop, `var(--${themeName}${prop.substring(10)})`);\n setTheme();\n}\nfunction setTheme() {\n setValueFromLocalStorage('image-background');\n setValueFromLocalStorage('color-background');\n setValueFromLocalStorage('color-search-background');\n setValueFromLocalStorage('color-text-pri');\n setValueFromLocalStorage('color-text-acc');\n setValueFromLocalStorage('color-border');\n setValueFromLocalStorage('content-display');\n}\nfunction handleKeyPress(e) {\n var sindex = 0;\n var cycle = false;\n var key = e.keyCode || e.which;\n var text = e.target.value.replaceAll(\"+\", \"%2B\");\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n if (key == 13) { // Search functions\n search(text);\n }\n if (key == 9) { // Tab Completion Functions\n e.preventDefault();\n e.stopPropagation();\n if (text[0] === ';') {\n switch (option) {\n case 't':\n var streamers = ['admiralbahroo', 'moonmoon_ow', 'witwix'];\n if (!subtext || cycle) {\n cycle = true;\n if (sindex > streamers.length - 1) sindex = 0;\n document.getElementById(\"keywords\").value = ';t ' + streamers[sindex++];\n return;\n }\n for (var streamer of streamers) {\n if (subtext === streamer.substr(0, subtext.length)) {\n document.getElementById(\"keywords\").value = ';t ' + streamer;\n return;\n }\n }\n break;\n }\n }\n }\n if(key == 32){ //Space to go to search\nupdateLabel(text);\n }\n sindex = 0;\n cycle = false;\n updateLabel(text);\n}\nfunction updateLabel(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n if (text[0] === '/') {\n// if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n document.getElementById(\"searchType\").innerHTML = \"Allmusic search\";\n break;\n case \"d\":\n document.getElementById(\"searchType\").innerHTML = \"Duck Duck Go search\";\n break;\n case \"di\":\n document.getElementById(\"searchType\").innerHTML = \"Discogs search\";\n break;\n case \"i\":\n document.getElementById(\"searchType\").innerHTML = \"IMDB search\";\n break;\n case \"m\":\n document.getElementById(\"searchType\").innerHTML = \"TheMovieDB search\";\n break;\n case \"r\":\n document.getElementById(\"searchType\").innerHTML = \"Reddit search\";\n break;\n case \"q\":\n document.getElementById(\"searchType\").innerHTML = \"Qwant search\";\n break;\n case \"so\":\n document.getElementById(\"searchType\").innerHTML = \"Soundcloud search\";\n break;\n case \"s\":\n document.getElementById(\"searchType\").innerHTML = \"Spotify search\";\n break;\n case \"tv\":\n document.getElementById(\"searchType\").innerHTML = \"TheTVDB search\";\n break;\n case \"t\":\n document.getElementById(\"searchType\").innerHTML = \"Trakt search\";\n break;\n case \"y\":\n document.getElementById(\"searchType\").innerHTML = \"YouTube search\";\n break;\n case \"w\":\n document.getElementById(\"searchType\").innerHTML = \"Wikipedia search\";\n break;\n case \"p\":\n document.getElementById(\"searchType\").innerHTML = \"Plex search\";\n break;\n case \"rt\":\n document.getElementById(\"searchType\").innerHTML = \"Rotten Tomatoes search\";\n break;\n default:\n document.getElementById(\"searchType\").innerHTML = \"Invalid search\";\n break;\n }\n}else {\n document.getElementById(\"searchType\").innerHTML = \"Google search\";\n }\n}\nfunction search(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n if (text[0] === '/') {\n if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n window.location = \"https://www.allmusic.com/search/all/\" + subtext;\n break;\n case \"d\":\n window.location = \"https://duckduckgo.com/?q=\" + subtext;\n break;\n case \"di\":\n window.location = \"https://www.discogs.com/search/?q=\" + subtext;\n break;\n case \"i\":\n window.location = \"https://www.imdb.com/find?q=\" + subtext;\n break;\n case \"m\":\n window.location = \"https://www.themoviedb.org/search?query=\" + subtext;\n break;\n case \"r\":\n window.location = \"https://www.reddit.com/search?q=\" + subtext;\n break;\n case \"q\":\n window.location = \"https://www.qwant.com/?q=\" + subtext;\n break;\n case \"so\":\n window.location = \"https://soundcloud.com/search?q=\" + subtext;\n break;\n case \"s\":\n window.location = \"https://open.spotify.com/search/results/\" + subtext;\n break;\n case \"t\":\n window.location = \"https://trakt.tv/search?query=\" + subtext;\n break;\n case \"tv\":\n window.location = \"https://www.thetvdb.com/search?query=\" + subtext;\n break;\n case \"y\":\n window.location = \"https://www.youtube.com/results?search_query=\" + subtext;\n break;\n case \"w\":\n window.location = \"https://en.wikipedia.org/w/index.php?search=\" + subtext;\n break;\n case \"p\":\n window.location = \"https://app.plex.tv/desktop/#!/search?query=\" + subtext;\n break;\n case \"rt\":\n window.location = \"https://www.rottentomatoes.com/search?search=\" + subtext;\n break;\n }\n } else {\n var option = text.substr(1);\n switch (option) {\n case \"d\":\n window.location = \"https://www.duckduckgo.com\";\n break;\n case \"y\":\n window.location = \"https://www.youtube.com\";\n break;\n case \"r\":\n window.location = \"https://reddit.com\";\n break;\n case \"s\":\n window.location = \"https://open.spotify.com\";\n break;\n }\n }\n } else if (validURL(text)) {\n if (containsProtocol(text))\n window.location = text;\n else\n window.location = \"https://\" + text;\n } else {\n window.location = \"https://www.google.com/search?q=\" + text;\n }\n}\nfunction validURL(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/)?' + // protocol\n '((([a-z\\\\d]([a-z\\\\d-]*[a-z\\\\d])*)\\\\.)+[a-z]{2,}|' + // domain name\n '((\\\\d{1,3}\\\\.){3}\\\\d{1,3}))' + // OR ip (v4) address\n '(\\\\:\\\\d+)?(\\\\/[-a-z\\\\d%_.~+]*)*' + // port and path\n '(\\\\?[;&a-z\\\\d%_.~+=-]*)?' + // query string\n '(\\\\#[-a-z\\\\d_]*)?$', 'i'); // fragment locator\n return !!pattern.test(str);\n}\nfunction containsProtocol(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/){1}.*', 'i');\n return !!pattern.test(str);\n}\nString.prototype.replaceAll = function(search, replacement) {\n var target = this;\n return target.split(search).join(replacement);\n};\nfunction udpateDisplayedItems(e) {\n console.log(e);\n localStorage.setItem('contenttype', e.target.checked);\n if (e.target.checked) {\n localStorage.setItem('content-display', 'none');\n } else {\n localStorage.setItem('content-display', 'block');\n }\n setDisplayedItems();\n}\nfunction setDisplayedItems() {\n setValueFromLocalStorage('contenttype');\n setValueFromLocalStorage('content-display');\n}"]},"metadata":{},"sourceType":"module"}
\ No newline at end of file
diff --git a/node_modules/.cache/babel-loader/e1cf49a81cace8cacce020e651e32d9a.json b/node_modules/.cache/babel-loader/e1cf49a81cace8cacce020e651e32d9a.json
new file mode 100644
index 00000000..52e80d67
--- /dev/null
+++ b/node_modules/.cache/babel-loader/e1cf49a81cace8cacce020e651e32d9a.json
@@ -0,0 +1 @@
+{"ast":null,"code":"var _jsxFileName = \"/home/seanedmunds/dev/home-page/src/index.js\",\n _s = $RefreshSig$();\n\nimport React from 'react';\nimport { useState, useEffect } from 'react';\nimport ReactDOM from 'react-dom'; //import { unstable_createPortal } from 'react-dom';\n\nimport './index.css';\nimport { jsxDEV as _jsxDEV } from \"react/jsx-dev-runtime\";\n\nconst setValueFromLocalStorage = property => {\n let value = localStorage.getItem(property);\n setValue(property, value);\n};\n\nconst setValue = (property, value) => {\n if (value) {\n document.documentElement.style.setProperty(`--${property}`, value);\n const input = document.querySelector(`#${property}`);\n\n if (input) {\n value = value.replace('px', '');\n input.value = value;\n }\n }\n};\n\nfunction Homepage() {\n setTheme();\n return /*#__PURE__*/_jsxDEV(\"main\", {\n id: \"container\",\n className: \"fade\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Search, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 28,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 27,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Header, {\n date: date(),\n greet: greet()\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 31,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 30,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Applications, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 37,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 36,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Bookmarks, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 40,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 39,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(ModalMenu, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 43,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 42,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(ModalInit, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 46,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 45,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 26,\n columnNumber: 5\n }, this);\n}\n\n_c = Homepage;\n\nfunction Search() {\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"search\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"abackground\",\n children: [/*#__PURE__*/_jsxDEV(\"input\", {\n name: \"keywords\",\n type: \"text\",\n className: \"keyword\",\n id: \"keywords\",\n size: \"50\",\n spellCheck: \"true\",\n placeholder: \"\"\n /*onFocus={this.placeholder = \"\"} onBlur={this.placeholder = ''}*/\n ,\n autoComplete: \"off\",\n autoFocus: true,\n onKeyUp: handleKeyPress\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 56,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n id: \"searchType\",\n className: \"Input-label\",\n children: \"Google search\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 57,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 55,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 54,\n columnNumber: 5\n }, this);\n}\n\n_c2 = Search;\n\nfunction Header(props) {\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"header\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n id: \"greeting_block\",\n children: /*#__PURE__*/_jsxDEV(\"h1\", {\n id: \"header_greet\",\n children: props.greet\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 67,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 66,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"date_block\",\n children: [/*#__PURE__*/_jsxDEV(\"h2\", {\n id: \"header_date\",\n children: props.date\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 70,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(Clock, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 71,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 69,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 65,\n columnNumber: 5\n }, this);\n}\n\n_c3 = Header;\n\nfunction Applications() {\n let appList = getApps();\n var items = [];\n\n for (var i = 0; i < appList.apps.length; i++) {\n var safe = appList.apps[i].NSFW;\n var NSFWEnabled = localStorage.getItem(\"contenttype\");\n\n if (safe === \"SAFE\") {\n items.push( /*#__PURE__*/_jsxDEV(App, {\n name: appList.apps[i].name,\n url: appList.apps[i].url,\n icon: appList.apps[i].icon,\n NSFW: appList.apps[i].NSFW\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 85,\n columnNumber: 9\n }, this));\n } else if (safe === \"NSFW\" && NSFWEnabled) {\n items.push( /*#__PURE__*/_jsxDEV(App, {\n name: appList.apps[i].name,\n url: appList.apps[i].url,\n icon: appList.apps[i].icon,\n NSFW: appList.apps[i].NSFW\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 95,\n columnNumber: 9\n }, this));\n } else {}\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"apps\",\n children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n children: \"Applications\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 110,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"apps_loop\",\n children: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 111,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 109,\n columnNumber: 5\n }, this);\n}\n\n_c4 = Applications;\n\nfunction App(props) {\n let classNameType = props.NSFW + \"-content\";\n let hrefUrl = \"https://\" + props.url;\n let iconName = \"mdi-\" + props.icon;\n return /*#__PURE__*/_jsxDEV(\"div\", {\n className: classNameType,\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: hrefUrl,\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_item\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_icon\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify icon\",\n \"data-icon\": iconName\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 128,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 127,\n columnNumber: 13\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_text\",\n children: [/*#__PURE__*/_jsxDEV(\"span\", {\n id: \"app-name\",\n children: props.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 131,\n columnNumber: 15\n }, this), /*#__PURE__*/_jsxDEV(\"span\", {\n id: \"app-address\",\n children: props.url\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 132,\n columnNumber: 15\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 130,\n columnNumber: 13\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 126,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 125,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 124,\n columnNumber: 7\n }, this);\n}\n\n_c5 = App;\n\nfunction Bookmarks() {\n let bookmarkList = getLinks();\n var items = [];\n\n for (var i = 0; i < bookmarkList.bookmarks.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(LinkGroups, {\n category: bookmarkList.bookmarks[i].category,\n links: bookmarkList.bookmarks[i].links\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 145,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"links\",\n children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n children: \"Bookmarks\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 154,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"links_loop\",\n children: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 155,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 153,\n columnNumber: 5\n }, this);\n}\n\n_c6 = Bookmarks;\n\nfunction LinkGroups(props) {\n var items = [];\n\n for (var i = 0; i < props.links.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(LinkItem, {\n link: props.links[i]\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 166,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"links_item\",\n children: [/*#__PURE__*/_jsxDEV(\"h4\", {\n children: props.category\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 174,\n columnNumber: 7\n }, this), items]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 173,\n columnNumber: 5\n }, this);\n}\n\n_c7 = LinkGroups;\n\nfunction LinkItem(props) {\n return /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: props.link.url,\n className: \"theme_color-border theme_text-select\",\n children: props.link.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 183,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 182,\n columnNumber: 5\n }, this);\n}\n\n_c8 = LinkItem;\n\nfunction ModalMenu() {\n var providers = getProviders();\n var items = [];\n\n for (var i = 0; i < providers.providers.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(Provider, {\n provider: providers.providers[i]\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 193,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"modal\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n children: [/*#__PURE__*/_jsxDEV(\"header\", {\n id: \"modal-header\",\n children: [/*#__PURE__*/_jsxDEV(\"h1\", {\n children: \"Options\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 203,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n href: \"#\",\n title: \"Close\",\n className: \"modal-close\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-close\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 205,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 204,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 202,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"h2\", {\n children: \"Color themes\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 209,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"modal-theme\",\n children: [/*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"blackboard\",\n className: \"theme-button theme-blackboard\",\n onClick: updateTheme,\n children: \"Blackboard\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 212,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"gazette\",\n className: \"theme-button theme-gazette\",\n onClick: updateTheme,\n children: \"Gazette\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 213,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"espresso\",\n className: \"theme-button theme-espresso\",\n onClick: updateTheme,\n children: \"Espresso\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 214,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cab\",\n className: \"theme-button theme-cab\",\n onClick: updateTheme,\n children: \"Cab\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 215,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cloud\",\n className: \"theme-button theme-cloud\",\n onClick: updateTheme,\n children: \"Cloud\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 216,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"lime\",\n className: \"theme-button theme-lime\",\n onClick: updateTheme,\n children: \"Lime\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 217,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"passion\",\n className: \"theme-button theme-passion\",\n onClick: updateTheme,\n children: \"Passion\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 218,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"blues\",\n className: \"theme-button theme-blues\",\n onClick: updateTheme,\n children: \"Blues\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 219,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"chalk\",\n className: \"theme-button theme-chalk\",\n onClick: updateTheme,\n children: \"Chalk\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 220,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"tron\",\n className: \"theme-button theme-tron\",\n onClick: updateTheme,\n children: \"Tron\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 221,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"paper\",\n className: \"theme-button theme-paper\",\n onClick: updateTheme,\n children: \"Paper\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 222,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cyberpunk\",\n className: \"theme-button theme-cyberpunk\",\n onClick: updateTheme,\n children: \"Cyberpunk\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 223,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"quadra\",\n className: \"theme-button theme-panam\",\n onClick: updateTheme,\n children: \"Quadra\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 224,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"panam\",\n className: \"theme-button theme-panam\",\n onClick: updateTheme,\n children: \"Panam\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 225,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"touch\",\n className: \"theme-button theme-touch\",\n onClick: updateTheme,\n children: \"Touch\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 226,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"peek\",\n className: \"theme-button theme-peek\",\n onClick: updateTheme,\n children: \"Peek\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 227,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 211,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"h2\", {\n children: \"Search options\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 231,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"providers\",\n children: /*#__PURE__*/_jsxDEV(\"table\", {\n children: /*#__PURE__*/_jsxDEV(\"tbody\", {\n children: [/*#__PURE__*/_jsxDEV(\"tr\", {\n children: [/*#__PURE__*/_jsxDEV(\"th\", {\n children: \"Website\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 236,\n columnNumber: 19\n }, this), /*#__PURE__*/_jsxDEV(\"th\", {\n children: \"Prefix\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 237,\n columnNumber: 19\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 235,\n columnNumber: 17\n }, this), items]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 234,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 233,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 232,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"header\", {\n id: \"modal-footer\",\n children: [/*#__PURE__*/_jsxDEV(\"a\", {\n href: \"https://github.com/jeroenpardon/\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-github-box\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 245,\n columnNumber: 54\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 245,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n href: \"https://materialdesignicons.com/\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-material-design\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 246,\n columnNumber: 54\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 246,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"sneaky\",\n children: [/*#__PURE__*/_jsxDEV(\"input\", {\n type: \"checkbox\",\n id: \"contenttype\",\n onChange: udpateDisplayedItems\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 247,\n columnNumber: 35\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n for: \"contenttype\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-domino-mask\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 248,\n columnNumber: 36\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 248,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 247,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 244,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 201,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 200,\n columnNumber: 5\n }, this);\n}\n\n_c9 = ModalMenu;\n\nfunction Provider(props) {\n return /*#__PURE__*/_jsxDEV(\"tr\", {\n children: [/*#__PURE__*/_jsxDEV(\"td\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: props.provider.url,\n children: props.provider.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 258,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 258,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"td\", {\n children: props.provider.prefix\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 259,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 257,\n columnNumber: 5\n }, this);\n}\n\n_c10 = Provider;\n\nfunction ModalInit() {\n setDisplayedItems();\n return /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"modal_init\",\n children: [/*#__PURE__*/_jsxDEV(\"a\", {\n className: \"btn\",\n href: \"#modal\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify icon\",\n \"data-icon\": \"mdi-xbox-controller-menu\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 269,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 268,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"script\", {\n type: \"javascript\",\n children: \"document.getElementById('contenttype').checked = checked;\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 271,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 267,\n columnNumber: 5\n }, this);\n}\n\n_c11 = ModalInit;\nReactDOM.render( /*#__PURE__*/_jsxDEV(Homepage, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 279,\n columnNumber: 3\n}, this), document.getElementById('root')); //Functions below this line are for calculating data for\n//other functions\n\nfunction date() {\n let currentDate = new Date();\n let dateOptions = {\n weekday: \"long\",\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\"\n };\n let date = currentDate.toLocaleDateString(\"en-GB\", dateOptions);\n return date;\n}\n\nfunction fixDigits(k) {\n if (k < 10) {\n return \"0\" + k;\n } else {\n return k;\n }\n}\n\nfunction greet() {\n let currentTime = new Date();\n let greet = Math.floor(currentTime.getHours() / 6);\n let easterEggChance = Math.floor(Math.random() * 100);\n\n let greetings = require('./messages.json');\n\n let timeBased = [];\n let easterEggs = [];\n\n for (var i = 0; i < greetings.messages.length; i++) {\n if (greetings.messages[i].easteregg === \"FALSE\") {\n timeBased = timeBased.concat(greetings.messages[i]);\n } else {\n easterEggs = easterEggs.concat(greetings.messages[i]);\n }\n }\n\n if (easterEggChance > 10) {\n return timeBased[greet].message;\n } else {\n let easterEggText = Math.floor(Math.random() * easterEggs.length);\n return easterEggs[easterEggText].message;\n }\n}\n\nfunction Clock() {\n _s();\n\n const [date, setDate] = useState(new Date());\n\n function refreshClock() {\n setDate(new Date());\n }\n\n useEffect(() => {\n const timerId = setInterval(refreshClock, 1000);\n return function cleanup() {\n clearInterval(timerId);\n };\n }, []);\n var hour = date.getHours();\n var minutes = date.getMinutes(); //var seconds = date.getSeconds();\n\n var midday = \"AM\";\n midday = hour >= 12 ? \"PM\" : \"AM\";\n hour = hour === 0 ? 12 : hour > 12 ? hour - 12 : hour;\n minutes = fixDigits(minutes); //seconds = fixDigits(seconds);\n\n let time = hour + \":\" + minutes + \" \" + midday;\n return /*#__PURE__*/_jsxDEV(\"h2\", {\n id: \"clock\",\n children: time\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 350,\n columnNumber: 5\n }, this);\n}\n\n_s(Clock, \"Gqi45WOZhU2c0BLYX0HoJeiR0fk=\");\n\n_c12 = Clock;\n\nfunction getApps() {\n let applications = require('./apps.json');\n\n return applications;\n}\n\nfunction getLinks() {\n let links = require('./links.json');\n\n return links;\n}\n\nfunction getProviders() {\n let providers = require('./providers.json');\n\n return providers;\n}\n\nfunction getThemes() {\n let themes = require('./themes.json');\n\n return themes;\n}\n\nfunction updateTheme(e) {\n var themes = getThemes();\n var themeName = e.target.innerHTML.toLowerCase();\n var index = themes.themes.findIndex(function (item, i) {\n return item.name === themeName;\n });\n localStorage.setItem(\"image-background\", themes.themes[index].imagebackground);\n localStorage.setItem(\"color-background\", themes.themes[index].colorbackground);\n localStorage.setItem(\"color-search-background\", themes.themes[index].colorserachbackground);\n localStorage.setItem(\"color-text-pri\", themes.themes[index].colortextpri);\n localStorage.setItem(\"color-text-acc\", themes.themes[index].colortextacc);\n localStorage.setItem(\"color-border\", themes.themes[index].colorborder); //document.documentElement.style.setProperty(prop, `var(--${themeName}${prop.substring(10)})`);\n\n setTheme();\n}\n\nfunction setTheme() {\n setValueFromLocalStorage('image-background');\n setValueFromLocalStorage('color-background');\n setValueFromLocalStorage('color-search-background');\n setValueFromLocalStorage('color-text-pri');\n setValueFromLocalStorage('color-text-acc');\n setValueFromLocalStorage('color-border');\n setValueFromLocalStorage('content-display');\n}\n\nfunction handleKeyPress(e) {\n var sindex = 0;\n var cycle = false;\n var key = e.keyCode || e.which;\n var text = e.target.value.replaceAll(\"+\", \"%2B\");\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n\n if (key == 13) {\n // Search functions\n search(text);\n }\n\n if (key == 9) {\n // Tab Completion Functions\n e.preventDefault();\n e.stopPropagation();\n\n if (text[0] === ';') {\n switch (option) {\n case 't':\n var streamers = ['admiralbahroo', 'moonmoon_ow', 'witwix'];\n\n if (!subtext || cycle) {\n cycle = true;\n if (sindex > streamers.length - 1) sindex = 0;\n document.getElementById(\"keywords\").value = ';t ' + streamers[sindex++];\n return;\n }\n\n for (var streamer of streamers) {\n if (subtext === streamer.substr(0, subtext.length)) {\n document.getElementById(\"keywords\").value = ';t ' + streamer;\n return;\n }\n }\n\n break;\n }\n }\n }\n\n if (key == 32) {\n //Space to go to search\n updateLabel(text);\n }\n\n sindex = 0;\n cycle = false;\n updateLabel(text);\n}\n\nfunction updateLabel(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n\n if (text[0] === '/') {\n // if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n document.getElementById(\"searchType\").innerHTML = \"Allmusic search\";\n break;\n\n case \"d\":\n document.getElementById(\"searchType\").innerHTML = \"Duck Duck Go search\";\n break;\n\n case \"di\":\n document.getElementById(\"searchType\").innerHTML = \"Discogs search\";\n break;\n\n case \"i\":\n document.getElementById(\"searchType\").innerHTML = \"IMDB search\";\n break;\n\n case \"m\":\n document.getElementById(\"searchType\").innerHTML = \"TheMovieDB search\";\n break;\n\n case \"r\":\n document.getElementById(\"searchType\").innerHTML = \"Reddit search\";\n break;\n\n case \"q\":\n document.getElementById(\"searchType\").innerHTML = \"Qwant search\";\n break;\n\n case \"so\":\n document.getElementById(\"searchType\").innerHTML = \"Soundcloud search\";\n break;\n\n case \"s\":\n document.getElementById(\"searchType\").innerHTML = \"Spotify search\";\n break;\n\n case \"tv\":\n document.getElementById(\"searchType\").innerHTML = \"TheTVDB search\";\n break;\n\n case \"t\":\n document.getElementById(\"searchType\").innerHTML = \"Trakt search\";\n break;\n\n case \"y\":\n document.getElementById(\"searchType\").innerHTML = \"YouTube search\";\n break;\n\n case \"w\":\n document.getElementById(\"searchType\").innerHTML = \"Wikipedia search\";\n break;\n\n case \"p\":\n document.getElementById(\"searchType\").innerHTML = \"Plex search\";\n break;\n\n case \"rt\":\n document.getElementById(\"searchType\").innerHTML = \"Rotten Tomatoes search\";\n break;\n\n default:\n document.getElementById(\"searchType\").innerHTML = \"Invalid search\";\n break;\n }\n } else {\n document.getElementById(\"searchType\").innerHTML = \"Google search\";\n }\n}\n\nfunction search(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n\n if (text[0] === '/') {\n if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n window.location = \"https://www.allmusic.com/search/all/\" + subtext;\n break;\n\n case \"d\":\n window.location = \"https://duckduckgo.com/?q=\" + subtext;\n break;\n\n case \"di\":\n window.location = \"https://www.discogs.com/search/?q=\" + subtext;\n break;\n\n case \"i\":\n window.location = \"https://www.imdb.com/find?q=\" + subtext;\n break;\n\n case \"m\":\n window.location = \"https://www.themoviedb.org/search?query=\" + subtext;\n break;\n\n case \"r\":\n window.location = \"https://www.reddit.com/search?q=\" + subtext;\n break;\n\n case \"q\":\n window.location = \"https://www.qwant.com/?q=\" + subtext;\n break;\n\n case \"so\":\n window.location = \"https://soundcloud.com/search?q=\" + subtext;\n break;\n\n case \"s\":\n window.location = \"https://open.spotify.com/search/results/\" + subtext;\n break;\n\n case \"t\":\n window.location = \"https://trakt.tv/search?query=\" + subtext;\n break;\n\n case \"tv\":\n window.location = \"https://www.thetvdb.com/search?query=\" + subtext;\n break;\n\n case \"y\":\n window.location = \"https://www.youtube.com/results?search_query=\" + subtext;\n break;\n\n case \"w\":\n window.location = \"https://en.wikipedia.org/w/index.php?search=\" + subtext;\n break;\n\n case \"p\":\n window.location = \"https://app.plex.tv/desktop/#!/search?query=\" + subtext;\n break;\n\n case \"rt\":\n window.location = \"https://www.rottentomatoes.com/search?search=\" + subtext;\n break;\n }\n } else {\n var option = text.substr(1);\n\n switch (option) {\n case \"d\":\n window.location = \"https://www.duckduckgo.com\";\n break;\n\n case \"y\":\n window.location = \"https://www.youtube.com\";\n break;\n\n case \"r\":\n window.location = \"https://reddit.com\";\n break;\n\n case \"s\":\n window.location = \"https://open.spotify.com\";\n break;\n }\n }\n } else if (validURL(text)) {\n if (containsProtocol(text)) window.location = text;else window.location = \"https://\" + text;\n } else {\n window.location = \"https://www.google.com/search?q=\" + text;\n }\n} // Source: https://stackoverflow.com/questions/5717093/check-if-a-javascript-string-is-a-url\n\n\nfunction validURL(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/)?' + // protocol\n '((([a-z\\\\d]([a-z\\\\d-]*[a-z\\\\d])*)\\\\.)+[a-z]{2,}|' + // domain name\n '((\\\\d{1,3}\\\\.){3}\\\\d{1,3}))' + // OR ip (v4) address\n '(\\\\:\\\\d+)?(\\\\/[-a-z\\\\d%_.~+]*)*' + // port and path\n '(\\\\?[;&a-z\\\\d%_.~+=-]*)?' + // query string\n '(\\\\#[-a-z\\\\d_]*)?$', 'i'); // fragment locator\n\n return !!pattern.test(str);\n}\n\nfunction containsProtocol(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/){1}.*', 'i');\n return !!pattern.test(str);\n}\n\nString.prototype.replaceAll = function (search, replacement) {\n var target = this;\n return target.split(search).join(replacement);\n};\n\nfunction udpateDisplayedItems(e) {\n localStorage.setItem('contenttype', e.target.checked);\n\n if (e.target.checked) {\n localStorage.setItem('content-display', 'none');\n } else {\n localStorage.setItem('content-display', 'block');\n }\n\n setDisplayedItems();\n}\n\nfunction setDisplayedItems() {\n setValueFromLocalStorage('contenttype');\n setValueFromLocalStorage('content-display');\n var checked = localStorage.getItem(\"contenttype\");\n console.log(\"Checked is \" + checked);\n}\n\nvar _c, _c2, _c3, _c4, _c5, _c6, _c7, _c8, _c9, _c10, _c11, _c12;\n\n$RefreshReg$(_c, \"Homepage\");\n$RefreshReg$(_c2, \"Search\");\n$RefreshReg$(_c3, \"Header\");\n$RefreshReg$(_c4, \"Applications\");\n$RefreshReg$(_c5, \"App\");\n$RefreshReg$(_c6, \"Bookmarks\");\n$RefreshReg$(_c7, \"LinkGroups\");\n$RefreshReg$(_c8, \"LinkItem\");\n$RefreshReg$(_c9, \"ModalMenu\");\n$RefreshReg$(_c10, \"Provider\");\n$RefreshReg$(_c11, \"ModalInit\");\n$RefreshReg$(_c12, \"Clock\");","map":{"version":3,"sources":["/home/seanedmunds/dev/home-page/src/index.js"],"names":["React","useState","useEffect","ReactDOM","setValueFromLocalStorage","property","value","localStorage","getItem","setValue","document","documentElement","style","setProperty","input","querySelector","replace","Homepage","setTheme","date","greet","Search","handleKeyPress","Header","props","Applications","appList","getApps","items","i","apps","length","safe","NSFW","NSFWEnabled","push","name","url","icon","App","classNameType","hrefUrl","iconName","Bookmarks","bookmarkList","getLinks","bookmarks","category","links","LinkGroups","LinkItem","link","ModalMenu","providers","getProviders","updateTheme","udpateDisplayedItems","Provider","provider","prefix","ModalInit","setDisplayedItems","render","getElementById","currentDate","Date","dateOptions","weekday","year","month","day","toLocaleDateString","fixDigits","k","currentTime","Math","floor","getHours","easterEggChance","random","greetings","require","timeBased","easterEggs","messages","easteregg","concat","message","easterEggText","Clock","setDate","refreshClock","timerId","setInterval","cleanup","clearInterval","hour","minutes","getMinutes","midday","time","applications","getThemes","themes","e","themeName","target","innerHTML","toLowerCase","index","findIndex","item","setItem","imagebackground","colorbackground","colorserachbackground","colortextpri","colortextacc","colorborder","sindex","cycle","key","keyCode","which","text","replaceAll","option","substr","indexOf","subtext","search","preventDefault","stopPropagation","streamers","streamer","updateLabel","window","location","validURL","containsProtocol","str","pattern","RegExp","test","String","prototype","replacement","split","join","checked","console","log"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { useState, useEffect } from 'react';\nimport ReactDOM from 'react-dom';\n//import { unstable_createPortal } from 'react-dom';\nimport './index.css';\n\nconst setValueFromLocalStorage = property => {\n let value = localStorage.getItem(property);\n setValue(property, value);\n};\nconst setValue = (property, value) => {\n if (value) {\n document.documentElement.style.setProperty(`--${property}`, value);\n\n const input = document.querySelector(`#${property}`);\n if (input) {\n value = value.replace('px', '');\n input.value = value;\n }\n }\n};\n\nfunction Homepage() {\n setTheme();\n return (\n \n \n \n
\n \n \n
\n \n \n \n
\n \n \n
\n \n \n
\n \n );\n}\n\nfunction Search() {\n return (\n \n )\n}\n\nfunction Header(props) {\n return (\n \n );\n}\n\nfunction Applications() {\n let appList = getApps();\n var items = [];\n for (var i = 0; i < appList.apps.length; i++) {\n var safe = appList.apps[i].NSFW;\n var NSFWEnabled = localStorage.getItem(\"contenttype\");\n if (safe === \"SAFE\") {\n items.push(\n \n );\n } else if (safe === \"NSFW\" && NSFWEnabled) {\n items.push(\n \n );\n } else {\n \n }\n \n }\n return (\n \n Applications
\n \n {items}\n
\n \n );\n}\n\nfunction App(props) {\n \n let classNameType = props.NSFW + \"-content\";\n let hrefUrl = \"https://\" + props.url;\n let iconName = \"mdi-\" + props.icon;\n return (\n \n );\n}\n\nfunction Bookmarks() {\n let bookmarkList = getLinks();\n var items = [];\n for (var i = 0; i < bookmarkList.bookmarks.length; i++) {\n items.push(\n \n );\n }\n return (\n \n Bookmarks
\n \n {items}\n
\n \n );\n}\n\nfunction LinkGroups(props) {\n var items = [];\n for (var i = 0; i < props.links.length; i++) {\n items.push(\n \n );\n }\n return (\n \n
{props.category}
\n {items}\n \n );\n}\n\nfunction LinkItem(props) {\n return (\n \n );\n}\n\nfunction ModalMenu() {\n var providers = getProviders();\n var items = [];\n for (var i = 0; i < providers.providers.length; i++) {\n items.push(\n \n );\n }\n return (\n \n \n \n\n
Color themes
\n\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n\n\n
Search options
\n
\n \n \n \n | Website | \n Prefix | \n
\n {items}\n \n
\n \n\n \n
\n \n );\n}\n\nfunction Provider(props) {\n return (\n \n | {props.provider.name} | \n {props.provider.prefix} | \n
\n );\n}\n\nfunction ModalInit() {\n setDisplayedItems();\n return (\n \n );\n}\n\nReactDOM.render(\n ,\n document.getElementById('root')\n);\n\n//Functions below this line are for calculating data for\n//other functions\n\nfunction date() {\n let currentDate = new Date();\n let dateOptions = {\n weekday: \"long\",\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\"\n };\n let date = currentDate.toLocaleDateString(\"en-GB\", dateOptions);\n return date;\n}\nfunction fixDigits(k) {\n if (k < 10) {\n return \"0\" + k;\n }\n else {\n return k;\n }\n}\nfunction greet() {\n let currentTime = new Date();\n let greet = Math.floor(currentTime.getHours() / 6);\n let easterEggChance = Math.floor(Math.random() * 100);\n let greetings = require('./messages.json');\n let timeBased = [];\n let easterEggs = [];\n for (var i = 0; i < greetings.messages.length; i++) {\n if (greetings.messages[i].easteregg === \"FALSE\") {\n timeBased = timeBased.concat(greetings.messages[i]);\n } else {\n easterEggs = easterEggs.concat(greetings.messages[i]);\n }\n }\n if (easterEggChance > 10) {\n return timeBased[greet].message;\n } else {\n let easterEggText = Math.floor(Math.random() * easterEggs.length);\n return easterEggs[easterEggText].message;\n }\n}\nfunction Clock() {\n const [date, setDate] = useState(new Date());\n\n function refreshClock() {\n setDate(new Date());\n }\n useEffect(() => {\n const timerId = setInterval(refreshClock, 1000);\n return function cleanup() {\n clearInterval(timerId);\n };\n }, []);\n\n var hour = date.getHours();\n var minutes = date.getMinutes();\n //var seconds = date.getSeconds();\n var midday = \"AM\";\n midday = (hour >= 12) ? \"PM\" : \"AM\";\n hour = (hour === 0) ? 12 : ((hour > 12) ? (hour - 12) : hour);\n minutes = fixDigits(minutes);\n //seconds = fixDigits(seconds);\n let time = hour + \":\" + minutes + \" \" + midday;\n\n return (\n {time}
\n\n );\n}\nfunction getApps() {\n let applications = require('./apps.json');\n return applications;\n}\nfunction getLinks() {\n let links = require('./links.json');\n return links;\n}\nfunction getProviders() {\n let providers = require('./providers.json');\n return providers;\n}\nfunction getThemes() {\n let themes = require('./themes.json');\n return themes;\n}\n\nfunction updateTheme(e) {\n var themes = getThemes();\n var themeName = e.target.innerHTML.toLowerCase();\n var index = themes.themes.findIndex(function(item, i){\n return item.name === themeName\n });\n localStorage.setItem(\"image-background\", themes.themes[index].imagebackground);\n localStorage.setItem(\"color-background\", themes.themes[index].colorbackground);\n localStorage.setItem(\"color-search-background\", themes.themes[index].colorserachbackground);\n localStorage.setItem(\"color-text-pri\",themes.themes[index].colortextpri);\n localStorage.setItem(\"color-text-acc\", themes.themes[index].colortextacc);\n localStorage.setItem(\"color-border\", themes.themes[index].colorborder);\n \n //document.documentElement.style.setProperty(prop, `var(--${themeName}${prop.substring(10)})`);\n setTheme();\n}\n\nfunction setTheme() {\n setValueFromLocalStorage('image-background');\n setValueFromLocalStorage('color-background');\n setValueFromLocalStorage('color-search-background');\n setValueFromLocalStorage('color-text-pri');\n setValueFromLocalStorage('color-text-acc');\n setValueFromLocalStorage('color-border');\n setValueFromLocalStorage('content-display');\n}\n\nfunction handleKeyPress(e) {\n var sindex = 0;\n var cycle = false;\n var key = e.keyCode || e.which;\n var text = e.target.value.replaceAll(\"+\", \"%2B\");\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n if (key == 13) { // Search functions\n search(text);\n }\n if (key == 9) { // Tab Completion Functions\n e.preventDefault();\n e.stopPropagation();\n if (text[0] === ';') {\n switch (option) {\n case 't':\n var streamers = ['admiralbahroo', 'moonmoon_ow', 'witwix'];\n if (!subtext || cycle) {\n cycle = true;\n if (sindex > streamers.length - 1) sindex = 0;\n document.getElementById(\"keywords\").value = ';t ' + streamers[sindex++];\n return;\n }\n for (var streamer of streamers) {\n if (subtext === streamer.substr(0, subtext.length)) {\n document.getElementById(\"keywords\").value = ';t ' + streamer;\n return;\n }\n }\n break;\n }\n }\n }\n if(key == 32){ //Space to go to search\nupdateLabel(text);\n }\n sindex = 0;\n cycle = false;\n updateLabel(text);\n}\n\nfunction updateLabel(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n if (text[0] === '/') {\n// if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n document.getElementById(\"searchType\").innerHTML = \"Allmusic search\";\n break;\n case \"d\":\n document.getElementById(\"searchType\").innerHTML = \"Duck Duck Go search\";\n break;\n case \"di\":\n document.getElementById(\"searchType\").innerHTML = \"Discogs search\";\n break;\n case \"i\":\n document.getElementById(\"searchType\").innerHTML = \"IMDB search\";\n break;\n case \"m\":\n document.getElementById(\"searchType\").innerHTML = \"TheMovieDB search\";\n break;\n case \"r\":\n document.getElementById(\"searchType\").innerHTML = \"Reddit search\";\n break;\n case \"q\":\n document.getElementById(\"searchType\").innerHTML = \"Qwant search\";\n break;\n case \"so\":\n document.getElementById(\"searchType\").innerHTML = \"Soundcloud search\";\n break;\n case \"s\":\n document.getElementById(\"searchType\").innerHTML = \"Spotify search\";\n break;\n case \"tv\":\n document.getElementById(\"searchType\").innerHTML = \"TheTVDB search\";\n break;\n case \"t\":\n document.getElementById(\"searchType\").innerHTML = \"Trakt search\";\n break;\n case \"y\":\n document.getElementById(\"searchType\").innerHTML = \"YouTube search\";\n break;\n case \"w\":\n document.getElementById(\"searchType\").innerHTML = \"Wikipedia search\";\n break;\n case \"p\":\n document.getElementById(\"searchType\").innerHTML = \"Plex search\";\n break;\n case \"rt\":\n document.getElementById(\"searchType\").innerHTML = \"Rotten Tomatoes search\";\n break;\n default:\n document.getElementById(\"searchType\").innerHTML = \"Invalid search\";\n break;\n }\n}else {\n document.getElementById(\"searchType\").innerHTML = \"Google search\";\n }\n}\n\nfunction search(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n if (text[0] === '/') {\n if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n window.location = \"https://www.allmusic.com/search/all/\" + subtext;\n break;\n case \"d\":\n window.location = \"https://duckduckgo.com/?q=\" + subtext;\n break;\n case \"di\":\n window.location = \"https://www.discogs.com/search/?q=\" + subtext;\n break;\n case \"i\":\n window.location = \"https://www.imdb.com/find?q=\" + subtext;\n break;\n case \"m\":\n window.location = \"https://www.themoviedb.org/search?query=\" + subtext;\n break;\n case \"r\":\n window.location = \"https://www.reddit.com/search?q=\" + subtext;\n break;\n case \"q\":\n window.location = \"https://www.qwant.com/?q=\" + subtext;\n break;\n case \"so\":\n window.location = \"https://soundcloud.com/search?q=\" + subtext;\n break;\n case \"s\":\n window.location = \"https://open.spotify.com/search/results/\" + subtext;\n break;\n case \"t\":\n window.location = \"https://trakt.tv/search?query=\" + subtext;\n break;\n case \"tv\":\n window.location = \"https://www.thetvdb.com/search?query=\" + subtext;\n break;\n case \"y\":\n window.location = \"https://www.youtube.com/results?search_query=\" + subtext;\n break;\n case \"w\":\n window.location = \"https://en.wikipedia.org/w/index.php?search=\" + subtext;\n break;\n case \"p\":\n window.location = \"https://app.plex.tv/desktop/#!/search?query=\" + subtext;\n break;\n case \"rt\":\n window.location = \"https://www.rottentomatoes.com/search?search=\" + subtext;\n break;\n }\n } else {\n var option = text.substr(1);\n switch (option) {\n case \"d\":\n window.location = \"https://www.duckduckgo.com\";\n break;\n case \"y\":\n window.location = \"https://www.youtube.com\";\n break;\n case \"r\":\n window.location = \"https://reddit.com\";\n break;\n case \"s\":\n window.location = \"https://open.spotify.com\";\n break;\n }\n }\n } else if (validURL(text)) {\n if (containsProtocol(text))\n window.location = text;\n else\n window.location = \"https://\" + text;\n } else {\n window.location = \"https://www.google.com/search?q=\" + text;\n }\n}\n\n// Source: https://stackoverflow.com/questions/5717093/check-if-a-javascript-string-is-a-url\nfunction validURL(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/)?' + // protocol\n '((([a-z\\\\d]([a-z\\\\d-]*[a-z\\\\d])*)\\\\.)+[a-z]{2,}|' + // domain name\n '((\\\\d{1,3}\\\\.){3}\\\\d{1,3}))' + // OR ip (v4) address\n '(\\\\:\\\\d+)?(\\\\/[-a-z\\\\d%_.~+]*)*' + // port and path\n '(\\\\?[;&a-z\\\\d%_.~+=-]*)?' + // query string\n '(\\\\#[-a-z\\\\d_]*)?$', 'i'); // fragment locator\n return !!pattern.test(str);\n}\n\nfunction containsProtocol(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/){1}.*', 'i');\n return !!pattern.test(str);\n}\n\nString.prototype.replaceAll = function(search, replacement) {\n var target = this;\n return target.split(search).join(replacement);\n};\n\nfunction udpateDisplayedItems(e) {\n localStorage.setItem('contenttype', e.target.checked);\n if (e.target.checked) {\n localStorage.setItem('content-display', 'none');\n } else {\n localStorage.setItem('content-display', 'block');\n }\n setDisplayedItems();\n}\n\nfunction setDisplayedItems() {\n setValueFromLocalStorage('contenttype');\n setValueFromLocalStorage('content-display');\n var checked = localStorage.getItem(\"contenttype\");\n console.log(\"Checked is \" + checked);\n}"]},"metadata":{},"sourceType":"module"}
\ No newline at end of file
diff --git a/node_modules/.cache/babel-loader/e2a2de21daf235f75c7aa23cb715d3b6.json b/node_modules/.cache/babel-loader/e2a2de21daf235f75c7aa23cb715d3b6.json
new file mode 100644
index 00000000..5b05c9f0
--- /dev/null
+++ b/node_modules/.cache/babel-loader/e2a2de21daf235f75c7aa23cb715d3b6.json
@@ -0,0 +1 @@
+{"ast":null,"code":"var _jsxFileName = \"/home/seanedmunds/dev/home-page/src/index.js\",\n _s = $RefreshSig$();\n\nimport React from 'react';\nimport { useState, useEffect } from 'react';\nimport ReactDOM from 'react-dom'; //import { unstable_createPortal } from 'react-dom';\n\nimport './index.css';\nimport { jsxDEV as _jsxDEV } from \"react/jsx-dev-runtime\";\n\nconst setValueFromLocalStorage = property => {\n let value = localStorage.getItem(property);\n setValue(property, value);\n};\n\nconst setValue = (property, value) => {\n if (value) {\n document.documentElement.style.setProperty(`--${property}`, value);\n const input = document.querySelector(`#${property}`);\n\n if (input) {\n value = value.replace('px', '');\n input.value = value;\n }\n }\n};\n\nconst boxChecked = property => {\n let value = localStorage.getItem(property);\n};\n\nfunction Homepage() {\n setTheme();\n return /*#__PURE__*/_jsxDEV(\"main\", {\n id: \"container\",\n className: \"fade\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Search, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 34,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 33,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Header, {\n date: date(),\n greet: greet()\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 37,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 36,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Applications, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 43,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 42,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Bookmarks, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 46,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 45,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(ModalMenu, {\n checked: boxChecked\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 49,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 48,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(ModalInit, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 54,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 53,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 32,\n columnNumber: 5\n }, this);\n}\n\n_c = Homepage;\n\nfunction Search() {\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"search\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"abackground\",\n children: [/*#__PURE__*/_jsxDEV(\"input\", {\n name: \"keywords\",\n type: \"text\",\n className: \"keyword\",\n id: \"keywords\",\n size: \"50\",\n spellCheck: \"true\",\n placeholder: \"\"\n /*onFocus={this.placeholder = \"\"} onBlur={this.placeholder = ''}*/\n ,\n autoComplete: \"off\",\n autoFocus: true,\n onKeyUp: handleKeyPress\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 64,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n id: \"searchType\",\n className: \"Input-label\",\n children: \"Google search\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 65,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 63,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 62,\n columnNumber: 5\n }, this);\n}\n\n_c2 = Search;\n\nfunction Header(props) {\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"header\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n id: \"greeting_block\",\n children: /*#__PURE__*/_jsxDEV(\"h1\", {\n id: \"header_greet\",\n children: props.greet\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 75,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 74,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"date_block\",\n children: [/*#__PURE__*/_jsxDEV(\"h2\", {\n id: \"header_date\",\n children: props.date\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 78,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(Clock, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 79,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 77,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 73,\n columnNumber: 5\n }, this);\n}\n\n_c3 = Header;\n\nfunction Applications() {\n let appList = getApps();\n var items = [];\n\n for (var i = 0; i < appList.apps.length; i++) {\n var safe = appList.apps[i].NSFW;\n var NSFWEnabled = localStorage.getItem(\"contenttype\");\n\n if (safe === \"SAFE\") {\n items.push( /*#__PURE__*/_jsxDEV(App, {\n name: appList.apps[i].name,\n url: appList.apps[i].url,\n icon: appList.apps[i].icon,\n NSFW: appList.apps[i].NSFW\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 93,\n columnNumber: 9\n }, this));\n } else if (safe === \"NSFW\" && NSFWEnabled) {\n items.push( /*#__PURE__*/_jsxDEV(App, {\n name: appList.apps[i].name,\n url: appList.apps[i].url,\n icon: appList.apps[i].icon,\n NSFW: appList.apps[i].NSFW\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 103,\n columnNumber: 9\n }, this));\n } else {}\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"apps\",\n children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n children: \"Applications\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 118,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"apps_loop\",\n children: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 119,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 117,\n columnNumber: 5\n }, this);\n}\n\n_c4 = Applications;\n\nfunction App(props) {\n let classNameType = props.NSFW + \"-content\";\n let hrefUrl = \"https://\" + props.url;\n let iconName = \"mdi-\" + props.icon;\n return /*#__PURE__*/_jsxDEV(\"div\", {\n className: classNameType,\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: hrefUrl,\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_item\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_icon\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify icon\",\n \"data-icon\": iconName\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 136,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 135,\n columnNumber: 13\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_text\",\n children: [/*#__PURE__*/_jsxDEV(\"span\", {\n id: \"app-name\",\n children: props.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 139,\n columnNumber: 15\n }, this), /*#__PURE__*/_jsxDEV(\"span\", {\n id: \"app-address\",\n children: props.url\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 140,\n columnNumber: 15\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 138,\n columnNumber: 13\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 134,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 133,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 132,\n columnNumber: 7\n }, this);\n}\n\n_c5 = App;\n\nfunction Bookmarks() {\n let bookmarkList = getLinks();\n var items = [];\n\n for (var i = 0; i < bookmarkList.bookmarks.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(LinkGroups, {\n category: bookmarkList.bookmarks[i].category,\n links: bookmarkList.bookmarks[i].links\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 153,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"links\",\n children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n children: \"Bookmarks\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 162,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"links_loop\",\n children: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 163,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 161,\n columnNumber: 5\n }, this);\n}\n\n_c6 = Bookmarks;\n\nfunction LinkGroups(props) {\n var items = [];\n\n for (var i = 0; i < props.links.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(LinkItem, {\n link: props.links[i]\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 174,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"links_item\",\n children: [/*#__PURE__*/_jsxDEV(\"h4\", {\n children: props.category\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 182,\n columnNumber: 7\n }, this), items]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 181,\n columnNumber: 5\n }, this);\n}\n\n_c7 = LinkGroups;\n\nfunction LinkItem(props) {\n return /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: props.link.url,\n className: \"theme_color-border theme_text-select\",\n children: props.link.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 191,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 190,\n columnNumber: 5\n }, this);\n}\n\n_c8 = LinkItem;\n\nfunction ModalMenu(props) {\n var providers = getProviders();\n var items = [];\n console.log(props);\n\n for (var i = 0; i < providers.providers.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(Provider, {\n provider: providers.providers[i]\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 202,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"modal\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n children: [/*#__PURE__*/_jsxDEV(\"header\", {\n id: \"modal-header\",\n children: [/*#__PURE__*/_jsxDEV(\"h1\", {\n children: \"Options\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 212,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n href: \"#\",\n title: \"Close\",\n className: \"modal-close\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-close\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 214,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 213,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 211,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"h2\", {\n children: \"Color themes\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 218,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"modal-theme\",\n children: [/*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"blackboard\",\n className: \"theme-button theme-blackboard\",\n onClick: updateTheme,\n children: \"Blackboard\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 221,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"gazette\",\n className: \"theme-button theme-gazette\",\n onClick: updateTheme,\n children: \"Gazette\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 222,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"espresso\",\n className: \"theme-button theme-espresso\",\n onClick: updateTheme,\n children: \"Espresso\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 223,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cab\",\n className: \"theme-button theme-cab\",\n onClick: updateTheme,\n children: \"Cab\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 224,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cloud\",\n className: \"theme-button theme-cloud\",\n onClick: updateTheme,\n children: \"Cloud\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 225,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"lime\",\n className: \"theme-button theme-lime\",\n onClick: updateTheme,\n children: \"Lime\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 226,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"passion\",\n className: \"theme-button theme-passion\",\n onClick: updateTheme,\n children: \"Passion\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 227,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"blues\",\n className: \"theme-button theme-blues\",\n onClick: updateTheme,\n children: \"Blues\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 228,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"chalk\",\n className: \"theme-button theme-chalk\",\n onClick: updateTheme,\n children: \"Chalk\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 229,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"tron\",\n className: \"theme-button theme-tron\",\n onClick: updateTheme,\n children: \"Tron\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 230,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"paper\",\n className: \"theme-button theme-paper\",\n onClick: updateTheme,\n children: \"Paper\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 231,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cyberpunk\",\n className: \"theme-button theme-cyberpunk\",\n onClick: updateTheme,\n children: \"Cyberpunk\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 232,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"quadra\",\n className: \"theme-button theme-panam\",\n onClick: updateTheme,\n children: \"Quadra\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 233,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"panam\",\n className: \"theme-button theme-panam\",\n onClick: updateTheme,\n children: \"Panam\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 234,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"touch\",\n className: \"theme-button theme-touch\",\n onClick: updateTheme,\n children: \"Touch\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 235,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"peek\",\n className: \"theme-button theme-peek\",\n onClick: updateTheme,\n children: \"Peek\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 236,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 220,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"h2\", {\n children: \"Search options\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 240,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"providers\",\n children: /*#__PURE__*/_jsxDEV(\"table\", {\n children: /*#__PURE__*/_jsxDEV(\"tbody\", {\n children: [/*#__PURE__*/_jsxDEV(\"tr\", {\n children: [/*#__PURE__*/_jsxDEV(\"th\", {\n children: \"Website\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 245,\n columnNumber: 19\n }, this), /*#__PURE__*/_jsxDEV(\"th\", {\n children: \"Prefix\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 246,\n columnNumber: 19\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 244,\n columnNumber: 17\n }, this), items]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 243,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 242,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 241,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"header\", {\n id: \"modal-footer\",\n children: [/*#__PURE__*/_jsxDEV(\"a\", {\n href: \"https://github.com/jeroenpardon/\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-github-box\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 254,\n columnNumber: 54\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 254,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n href: \"https://materialdesignicons.com/\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-material-design\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 255,\n columnNumber: 54\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 255,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"sneaky\",\n children: [/*#__PURE__*/_jsxDEV(\"input\", {\n type: \"checkbox\",\n id: \"contenttype\",\n checked: boxChecked,\n onChange: udpateDisplayedItems\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 256,\n columnNumber: 35\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n for: \"contenttype\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-domino-mask\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 257,\n columnNumber: 36\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 257,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 256,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 253,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 210,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 209,\n columnNumber: 5\n }, this);\n}\n\n_c9 = ModalMenu;\n\nfunction Provider(props) {\n return /*#__PURE__*/_jsxDEV(\"tr\", {\n children: [/*#__PURE__*/_jsxDEV(\"td\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: props.provider.url,\n children: props.provider.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 267,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 267,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"td\", {\n children: props.provider.prefix\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 268,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 266,\n columnNumber: 5\n }, this);\n}\n\n_c10 = Provider;\n\nfunction ModalInit() {\n setDisplayedItems();\n return /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"modal_init\",\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n className: \"btn\",\n href: \"#modal\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify icon\",\n \"data-icon\": \"mdi-xbox-controller-menu\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 278,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 277,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 276,\n columnNumber: 5\n }, this);\n}\n\n_c11 = ModalInit;\nReactDOM.render( /*#__PURE__*/_jsxDEV(Homepage, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 285,\n columnNumber: 3\n}, this), document.getElementById('root')); //Functions below this line are for calculating data for\n//other functions\n\nfunction date() {\n let currentDate = new Date();\n let dateOptions = {\n weekday: \"long\",\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\"\n };\n let date = currentDate.toLocaleDateString(\"en-GB\", dateOptions);\n return date;\n}\n\nfunction fixDigits(k) {\n if (k < 10) {\n return \"0\" + k;\n } else {\n return k;\n }\n}\n\nfunction greet() {\n let currentTime = new Date();\n let greet = Math.floor(currentTime.getHours() / 6);\n let easterEggChance = Math.floor(Math.random() * 100);\n\n let greetings = require('./messages.json');\n\n let timeBased = [];\n let easterEggs = [];\n\n for (var i = 0; i < greetings.messages.length; i++) {\n if (greetings.messages[i].easteregg === \"FALSE\") {\n timeBased = timeBased.concat(greetings.messages[i]);\n } else {\n easterEggs = easterEggs.concat(greetings.messages[i]);\n }\n }\n\n if (easterEggChance > 10) {\n return timeBased[greet].message;\n } else {\n let easterEggText = Math.floor(Math.random() * easterEggs.length);\n return easterEggs[easterEggText].message;\n }\n}\n\nfunction Clock() {\n _s();\n\n const [date, setDate] = useState(new Date());\n\n function refreshClock() {\n setDate(new Date());\n }\n\n useEffect(() => {\n const timerId = setInterval(refreshClock, 1000);\n return function cleanup() {\n clearInterval(timerId);\n };\n }, []);\n var hour = date.getHours();\n var minutes = date.getMinutes(); //var seconds = date.getSeconds();\n\n var midday = \"AM\";\n midday = hour >= 12 ? \"PM\" : \"AM\";\n hour = hour === 0 ? 12 : hour > 12 ? hour - 12 : hour;\n minutes = fixDigits(minutes); //seconds = fixDigits(seconds);\n\n let time = hour + \":\" + minutes + \" \" + midday;\n return /*#__PURE__*/_jsxDEV(\"h2\", {\n id: \"clock\",\n children: time\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 356,\n columnNumber: 5\n }, this);\n}\n\n_s(Clock, \"Gqi45WOZhU2c0BLYX0HoJeiR0fk=\");\n\n_c12 = Clock;\n\nfunction getApps() {\n let applications = require('./apps.json');\n\n return applications;\n}\n\nfunction getLinks() {\n let links = require('./links.json');\n\n return links;\n}\n\nfunction getProviders() {\n let providers = require('./providers.json');\n\n return providers;\n}\n\nfunction getThemes() {\n let themes = require('./themes.json');\n\n return themes;\n}\n\nfunction updateTheme(e) {\n var themes = getThemes();\n var themeName = e.target.innerHTML.toLowerCase();\n var index = themes.themes.findIndex(function (item, i) {\n return item.name === themeName;\n });\n localStorage.setItem(\"image-background\", themes.themes[index].imagebackground);\n localStorage.setItem(\"color-background\", themes.themes[index].colorbackground);\n localStorage.setItem(\"color-search-background\", themes.themes[index].colorserachbackground);\n localStorage.setItem(\"color-text-pri\", themes.themes[index].colortextpri);\n localStorage.setItem(\"color-text-acc\", themes.themes[index].colortextacc);\n localStorage.setItem(\"color-border\", themes.themes[index].colorborder); //document.documentElement.style.setProperty(prop, `var(--${themeName}${prop.substring(10)})`);\n\n setTheme();\n}\n\nfunction setTheme() {\n setValueFromLocalStorage('image-background');\n setValueFromLocalStorage('color-background');\n setValueFromLocalStorage('color-search-background');\n setValueFromLocalStorage('color-text-pri');\n setValueFromLocalStorage('color-text-acc');\n setValueFromLocalStorage('color-border');\n setValueFromLocalStorage('content-display');\n}\n\nfunction handleKeyPress(e) {\n var sindex = 0;\n var cycle = false;\n var key = e.keyCode || e.which;\n var text = e.target.value.replaceAll(\"+\", \"%2B\");\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n\n if (key == 13) {\n // Search functions\n search(text);\n }\n\n if (key == 9) {\n // Tab Completion Functions\n e.preventDefault();\n e.stopPropagation();\n\n if (text[0] === ';') {\n switch (option) {\n case 't':\n var streamers = ['admiralbahroo', 'moonmoon_ow', 'witwix'];\n\n if (!subtext || cycle) {\n cycle = true;\n if (sindex > streamers.length - 1) sindex = 0;\n document.getElementById(\"keywords\").value = ';t ' + streamers[sindex++];\n return;\n }\n\n for (var streamer of streamers) {\n if (subtext === streamer.substr(0, subtext.length)) {\n document.getElementById(\"keywords\").value = ';t ' + streamer;\n return;\n }\n }\n\n break;\n }\n }\n }\n\n if (key == 32) {\n //Space to go to search\n updateLabel(text);\n }\n\n sindex = 0;\n cycle = false;\n updateLabel(text);\n}\n\nfunction updateLabel(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n\n if (text[0] === '/') {\n // if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n document.getElementById(\"searchType\").innerHTML = \"Allmusic search\";\n break;\n\n case \"d\":\n document.getElementById(\"searchType\").innerHTML = \"Duck Duck Go search\";\n break;\n\n case \"di\":\n document.getElementById(\"searchType\").innerHTML = \"Discogs search\";\n break;\n\n case \"i\":\n document.getElementById(\"searchType\").innerHTML = \"IMDB search\";\n break;\n\n case \"m\":\n document.getElementById(\"searchType\").innerHTML = \"TheMovieDB search\";\n break;\n\n case \"r\":\n document.getElementById(\"searchType\").innerHTML = \"Reddit search\";\n break;\n\n case \"q\":\n document.getElementById(\"searchType\").innerHTML = \"Qwant search\";\n break;\n\n case \"so\":\n document.getElementById(\"searchType\").innerHTML = \"Soundcloud search\";\n break;\n\n case \"s\":\n document.getElementById(\"searchType\").innerHTML = \"Spotify search\";\n break;\n\n case \"tv\":\n document.getElementById(\"searchType\").innerHTML = \"TheTVDB search\";\n break;\n\n case \"t\":\n document.getElementById(\"searchType\").innerHTML = \"Trakt search\";\n break;\n\n case \"y\":\n document.getElementById(\"searchType\").innerHTML = \"YouTube search\";\n break;\n\n case \"w\":\n document.getElementById(\"searchType\").innerHTML = \"Wikipedia search\";\n break;\n\n case \"p\":\n document.getElementById(\"searchType\").innerHTML = \"Plex search\";\n break;\n\n case \"rt\":\n document.getElementById(\"searchType\").innerHTML = \"Rotten Tomatoes search\";\n break;\n\n default:\n document.getElementById(\"searchType\").innerHTML = \"Invalid search\";\n break;\n }\n } else {\n document.getElementById(\"searchType\").innerHTML = \"Google search\";\n }\n}\n\nfunction search(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n\n if (text[0] === '/') {\n if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n window.location = \"https://www.allmusic.com/search/all/\" + subtext;\n break;\n\n case \"d\":\n window.location = \"https://duckduckgo.com/?q=\" + subtext;\n break;\n\n case \"di\":\n window.location = \"https://www.discogs.com/search/?q=\" + subtext;\n break;\n\n case \"i\":\n window.location = \"https://www.imdb.com/find?q=\" + subtext;\n break;\n\n case \"m\":\n window.location = \"https://www.themoviedb.org/search?query=\" + subtext;\n break;\n\n case \"r\":\n window.location = \"https://www.reddit.com/search?q=\" + subtext;\n break;\n\n case \"q\":\n window.location = \"https://www.qwant.com/?q=\" + subtext;\n break;\n\n case \"so\":\n window.location = \"https://soundcloud.com/search?q=\" + subtext;\n break;\n\n case \"s\":\n window.location = \"https://open.spotify.com/search/results/\" + subtext;\n break;\n\n case \"t\":\n window.location = \"https://trakt.tv/search?query=\" + subtext;\n break;\n\n case \"tv\":\n window.location = \"https://www.thetvdb.com/search?query=\" + subtext;\n break;\n\n case \"y\":\n window.location = \"https://www.youtube.com/results?search_query=\" + subtext;\n break;\n\n case \"w\":\n window.location = \"https://en.wikipedia.org/w/index.php?search=\" + subtext;\n break;\n\n case \"p\":\n window.location = \"https://app.plex.tv/desktop/#!/search?query=\" + subtext;\n break;\n\n case \"rt\":\n window.location = \"https://www.rottentomatoes.com/search?search=\" + subtext;\n break;\n }\n } else {\n var option = text.substr(1);\n\n switch (option) {\n case \"d\":\n window.location = \"https://www.duckduckgo.com\";\n break;\n\n case \"y\":\n window.location = \"https://www.youtube.com\";\n break;\n\n case \"r\":\n window.location = \"https://reddit.com\";\n break;\n\n case \"s\":\n window.location = \"https://open.spotify.com\";\n break;\n }\n }\n } else if (validURL(text)) {\n if (containsProtocol(text)) window.location = text;else window.location = \"https://\" + text;\n } else {\n window.location = \"https://www.google.com/search?q=\" + text;\n }\n}\n\nfunction validURL(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/)?' + // protocol\n '((([a-z\\\\d]([a-z\\\\d-]*[a-z\\\\d])*)\\\\.)+[a-z]{2,}|' + // domain name\n '((\\\\d{1,3}\\\\.){3}\\\\d{1,3}))' + // OR ip (v4) address\n '(\\\\:\\\\d+)?(\\\\/[-a-z\\\\d%_.~+]*)*' + // port and path\n '(\\\\?[;&a-z\\\\d%_.~+=-]*)?' + // query string\n '(\\\\#[-a-z\\\\d_]*)?$', 'i'); // fragment locator\n\n return !!pattern.test(str);\n}\n\nfunction containsProtocol(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/){1}.*', 'i');\n return !!pattern.test(str);\n}\n\nString.prototype.replaceAll = function (search, replacement) {\n var target = this;\n return target.split(search).join(replacement);\n};\n\nfunction udpateDisplayedItems(e) {\n console.log(e);\n localStorage.setItem('contenttype', e.target.checked);\n\n if (e.target.checked) {\n localStorage.setItem('content-display', 'none');\n } else {\n localStorage.setItem('content-display', 'block');\n }\n\n setDisplayedItems();\n}\n\nfunction setDisplayedItems() {\n setValueFromLocalStorage('contenttype');\n setValueFromLocalStorage('content-display');\n}\n\nvar _c, _c2, _c3, _c4, _c5, _c6, _c7, _c8, _c9, _c10, _c11, _c12;\n\n$RefreshReg$(_c, \"Homepage\");\n$RefreshReg$(_c2, \"Search\");\n$RefreshReg$(_c3, \"Header\");\n$RefreshReg$(_c4, \"Applications\");\n$RefreshReg$(_c5, \"App\");\n$RefreshReg$(_c6, \"Bookmarks\");\n$RefreshReg$(_c7, \"LinkGroups\");\n$RefreshReg$(_c8, \"LinkItem\");\n$RefreshReg$(_c9, \"ModalMenu\");\n$RefreshReg$(_c10, \"Provider\");\n$RefreshReg$(_c11, \"ModalInit\");\n$RefreshReg$(_c12, \"Clock\");","map":{"version":3,"sources":["/home/seanedmunds/dev/home-page/src/index.js"],"names":["React","useState","useEffect","ReactDOM","setValueFromLocalStorage","property","value","localStorage","getItem","setValue","document","documentElement","style","setProperty","input","querySelector","replace","boxChecked","Homepage","setTheme","date","greet","Search","handleKeyPress","Header","props","Applications","appList","getApps","items","i","apps","length","safe","NSFW","NSFWEnabled","push","name","url","icon","App","classNameType","hrefUrl","iconName","Bookmarks","bookmarkList","getLinks","bookmarks","category","links","LinkGroups","LinkItem","link","ModalMenu","providers","getProviders","console","log","updateTheme","udpateDisplayedItems","Provider","provider","prefix","ModalInit","setDisplayedItems","render","getElementById","currentDate","Date","dateOptions","weekday","year","month","day","toLocaleDateString","fixDigits","k","currentTime","Math","floor","getHours","easterEggChance","random","greetings","require","timeBased","easterEggs","messages","easteregg","concat","message","easterEggText","Clock","setDate","refreshClock","timerId","setInterval","cleanup","clearInterval","hour","minutes","getMinutes","midday","time","applications","getThemes","themes","e","themeName","target","innerHTML","toLowerCase","index","findIndex","item","setItem","imagebackground","colorbackground","colorserachbackground","colortextpri","colortextacc","colorborder","sindex","cycle","key","keyCode","which","text","replaceAll","option","substr","indexOf","subtext","search","preventDefault","stopPropagation","streamers","streamer","updateLabel","window","location","validURL","containsProtocol","str","pattern","RegExp","test","String","prototype","replacement","split","join","checked"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { useState, useEffect } from 'react';\nimport ReactDOM from 'react-dom';\n//import { unstable_createPortal } from 'react-dom';\nimport './index.css';\n\nconst setValueFromLocalStorage = property => {\n let value = localStorage.getItem(property);\n setValue(property, value);\n};\nconst setValue = (property, value) => {\n if (value) {\n document.documentElement.style.setProperty(`--${property}`, value);\n\n const input = document.querySelector(`#${property}`);\n if (input) {\n value = value.replace('px', '');\n input.value = value;\n }\n }\n};\n\nconst boxChecked = property => {\n let value = localStorage.getItem(property);\n\n}\n\nfunction Homepage() {\n setTheme();\n \n return (\n \n \n \n
\n \n \n
\n \n \n \n
\n \n \n
\n \n \n
\n \n );\n}\n\nfunction Search() {\n return (\n \n )\n}\n\nfunction Header(props) {\n return (\n \n );\n}\n\nfunction Applications() {\n let appList = getApps();\n var items = [];\n for (var i = 0; i < appList.apps.length; i++) {\n var safe = appList.apps[i].NSFW;\n var NSFWEnabled = localStorage.getItem(\"contenttype\");\n if (safe === \"SAFE\") {\n items.push(\n \n );\n } else if (safe === \"NSFW\" && NSFWEnabled) {\n items.push(\n \n );\n } else {\n \n }\n \n }\n return (\n \n Applications
\n \n {items}\n
\n \n );\n}\n\nfunction App(props) {\n \n let classNameType = props.NSFW + \"-content\";\n let hrefUrl = \"https://\" + props.url;\n let iconName = \"mdi-\" + props.icon;\n return (\n \n );\n}\n\nfunction Bookmarks() {\n let bookmarkList = getLinks();\n var items = [];\n for (var i = 0; i < bookmarkList.bookmarks.length; i++) {\n items.push(\n \n );\n }\n return (\n \n Bookmarks
\n \n {items}\n
\n \n );\n}\n\nfunction LinkGroups(props) {\n var items = [];\n for (var i = 0; i < props.links.length; i++) {\n items.push(\n \n );\n }\n return (\n \n
{props.category}
\n {items}\n \n );\n}\n\nfunction LinkItem(props) {\n return (\n \n );\n}\n\nfunction ModalMenu(props) {\n var providers = getProviders();\n var items = [];\n console.log(props);\n for (var i = 0; i < providers.providers.length; i++) {\n items.push(\n \n );\n }\n return (\n \n \n \n\n
Color themes
\n\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n\n\n
Search options
\n
\n \n \n \n | Website | \n Prefix | \n
\n {items}\n \n
\n \n\n \n
\n \n );\n}\n\nfunction Provider(props) {\n return (\n \n | {props.provider.name} | \n {props.provider.prefix} | \n
\n );\n}\n\nfunction ModalInit() {\n setDisplayedItems();\n return (\n \n );\n}\n\nReactDOM.render(\n ,\n document.getElementById('root')\n);\n\n//Functions below this line are for calculating data for\n//other functions\n\nfunction date() {\n let currentDate = new Date();\n let dateOptions = {\n weekday: \"long\",\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\"\n };\n let date = currentDate.toLocaleDateString(\"en-GB\", dateOptions);\n return date;\n}\nfunction fixDigits(k) {\n if (k < 10) {\n return \"0\" + k;\n }\n else {\n return k;\n }\n}\nfunction greet() {\n let currentTime = new Date();\n let greet = Math.floor(currentTime.getHours() / 6);\n let easterEggChance = Math.floor(Math.random() * 100);\n let greetings = require('./messages.json');\n let timeBased = [];\n let easterEggs = [];\n for (var i = 0; i < greetings.messages.length; i++) {\n if (greetings.messages[i].easteregg === \"FALSE\") {\n timeBased = timeBased.concat(greetings.messages[i]);\n } else {\n easterEggs = easterEggs.concat(greetings.messages[i]);\n }\n }\n if (easterEggChance > 10) {\n return timeBased[greet].message;\n } else {\n let easterEggText = Math.floor(Math.random() * easterEggs.length);\n return easterEggs[easterEggText].message;\n }\n}\nfunction Clock() {\n const [date, setDate] = useState(new Date());\n\n function refreshClock() {\n setDate(new Date());\n }\n useEffect(() => {\n const timerId = setInterval(refreshClock, 1000);\n return function cleanup() {\n clearInterval(timerId);\n };\n }, []);\n\n var hour = date.getHours();\n var minutes = date.getMinutes();\n //var seconds = date.getSeconds();\n var midday = \"AM\";\n midday = (hour >= 12) ? \"PM\" : \"AM\";\n hour = (hour === 0) ? 12 : ((hour > 12) ? (hour - 12) : hour);\n minutes = fixDigits(minutes);\n //seconds = fixDigits(seconds);\n let time = hour + \":\" + minutes + \" \" + midday;\n\n return (\n {time}
\n\n );\n}\nfunction getApps() {\n let applications = require('./apps.json');\n return applications;\n}\nfunction getLinks() {\n let links = require('./links.json');\n return links;\n}\nfunction getProviders() {\n let providers = require('./providers.json');\n return providers;\n}\nfunction getThemes() {\n let themes = require('./themes.json');\n return themes;\n}\nfunction updateTheme(e) {\n var themes = getThemes();\n var themeName = e.target.innerHTML.toLowerCase();\n var index = themes.themes.findIndex(function(item, i){\n return item.name === themeName\n });\n localStorage.setItem(\"image-background\", themes.themes[index].imagebackground);\n localStorage.setItem(\"color-background\", themes.themes[index].colorbackground);\n localStorage.setItem(\"color-search-background\", themes.themes[index].colorserachbackground);\n localStorage.setItem(\"color-text-pri\",themes.themes[index].colortextpri);\n localStorage.setItem(\"color-text-acc\", themes.themes[index].colortextacc);\n localStorage.setItem(\"color-border\", themes.themes[index].colorborder);\n \n //document.documentElement.style.setProperty(prop, `var(--${themeName}${prop.substring(10)})`);\n setTheme();\n}\nfunction setTheme() {\n setValueFromLocalStorage('image-background');\n setValueFromLocalStorage('color-background');\n setValueFromLocalStorage('color-search-background');\n setValueFromLocalStorage('color-text-pri');\n setValueFromLocalStorage('color-text-acc');\n setValueFromLocalStorage('color-border');\n setValueFromLocalStorage('content-display');\n}\nfunction handleKeyPress(e) {\n var sindex = 0;\n var cycle = false;\n var key = e.keyCode || e.which;\n var text = e.target.value.replaceAll(\"+\", \"%2B\");\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n if (key == 13) { // Search functions\n search(text);\n }\n if (key == 9) { // Tab Completion Functions\n e.preventDefault();\n e.stopPropagation();\n if (text[0] === ';') {\n switch (option) {\n case 't':\n var streamers = ['admiralbahroo', 'moonmoon_ow', 'witwix'];\n if (!subtext || cycle) {\n cycle = true;\n if (sindex > streamers.length - 1) sindex = 0;\n document.getElementById(\"keywords\").value = ';t ' + streamers[sindex++];\n return;\n }\n for (var streamer of streamers) {\n if (subtext === streamer.substr(0, subtext.length)) {\n document.getElementById(\"keywords\").value = ';t ' + streamer;\n return;\n }\n }\n break;\n }\n }\n }\n if(key == 32){ //Space to go to search\nupdateLabel(text);\n }\n sindex = 0;\n cycle = false;\n updateLabel(text);\n}\nfunction updateLabel(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n if (text[0] === '/') {\n// if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n document.getElementById(\"searchType\").innerHTML = \"Allmusic search\";\n break;\n case \"d\":\n document.getElementById(\"searchType\").innerHTML = \"Duck Duck Go search\";\n break;\n case \"di\":\n document.getElementById(\"searchType\").innerHTML = \"Discogs search\";\n break;\n case \"i\":\n document.getElementById(\"searchType\").innerHTML = \"IMDB search\";\n break;\n case \"m\":\n document.getElementById(\"searchType\").innerHTML = \"TheMovieDB search\";\n break;\n case \"r\":\n document.getElementById(\"searchType\").innerHTML = \"Reddit search\";\n break;\n case \"q\":\n document.getElementById(\"searchType\").innerHTML = \"Qwant search\";\n break;\n case \"so\":\n document.getElementById(\"searchType\").innerHTML = \"Soundcloud search\";\n break;\n case \"s\":\n document.getElementById(\"searchType\").innerHTML = \"Spotify search\";\n break;\n case \"tv\":\n document.getElementById(\"searchType\").innerHTML = \"TheTVDB search\";\n break;\n case \"t\":\n document.getElementById(\"searchType\").innerHTML = \"Trakt search\";\n break;\n case \"y\":\n document.getElementById(\"searchType\").innerHTML = \"YouTube search\";\n break;\n case \"w\":\n document.getElementById(\"searchType\").innerHTML = \"Wikipedia search\";\n break;\n case \"p\":\n document.getElementById(\"searchType\").innerHTML = \"Plex search\";\n break;\n case \"rt\":\n document.getElementById(\"searchType\").innerHTML = \"Rotten Tomatoes search\";\n break;\n default:\n document.getElementById(\"searchType\").innerHTML = \"Invalid search\";\n break;\n }\n}else {\n document.getElementById(\"searchType\").innerHTML = \"Google search\";\n }\n}\nfunction search(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n if (text[0] === '/') {\n if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n window.location = \"https://www.allmusic.com/search/all/\" + subtext;\n break;\n case \"d\":\n window.location = \"https://duckduckgo.com/?q=\" + subtext;\n break;\n case \"di\":\n window.location = \"https://www.discogs.com/search/?q=\" + subtext;\n break;\n case \"i\":\n window.location = \"https://www.imdb.com/find?q=\" + subtext;\n break;\n case \"m\":\n window.location = \"https://www.themoviedb.org/search?query=\" + subtext;\n break;\n case \"r\":\n window.location = \"https://www.reddit.com/search?q=\" + subtext;\n break;\n case \"q\":\n window.location = \"https://www.qwant.com/?q=\" + subtext;\n break;\n case \"so\":\n window.location = \"https://soundcloud.com/search?q=\" + subtext;\n break;\n case \"s\":\n window.location = \"https://open.spotify.com/search/results/\" + subtext;\n break;\n case \"t\":\n window.location = \"https://trakt.tv/search?query=\" + subtext;\n break;\n case \"tv\":\n window.location = \"https://www.thetvdb.com/search?query=\" + subtext;\n break;\n case \"y\":\n window.location = \"https://www.youtube.com/results?search_query=\" + subtext;\n break;\n case \"w\":\n window.location = \"https://en.wikipedia.org/w/index.php?search=\" + subtext;\n break;\n case \"p\":\n window.location = \"https://app.plex.tv/desktop/#!/search?query=\" + subtext;\n break;\n case \"rt\":\n window.location = \"https://www.rottentomatoes.com/search?search=\" + subtext;\n break;\n }\n } else {\n var option = text.substr(1);\n switch (option) {\n case \"d\":\n window.location = \"https://www.duckduckgo.com\";\n break;\n case \"y\":\n window.location = \"https://www.youtube.com\";\n break;\n case \"r\":\n window.location = \"https://reddit.com\";\n break;\n case \"s\":\n window.location = \"https://open.spotify.com\";\n break;\n }\n }\n } else if (validURL(text)) {\n if (containsProtocol(text))\n window.location = text;\n else\n window.location = \"https://\" + text;\n } else {\n window.location = \"https://www.google.com/search?q=\" + text;\n }\n}\nfunction validURL(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/)?' + // protocol\n '((([a-z\\\\d]([a-z\\\\d-]*[a-z\\\\d])*)\\\\.)+[a-z]{2,}|' + // domain name\n '((\\\\d{1,3}\\\\.){3}\\\\d{1,3}))' + // OR ip (v4) address\n '(\\\\:\\\\d+)?(\\\\/[-a-z\\\\d%_.~+]*)*' + // port and path\n '(\\\\?[;&a-z\\\\d%_.~+=-]*)?' + // query string\n '(\\\\#[-a-z\\\\d_]*)?$', 'i'); // fragment locator\n return !!pattern.test(str);\n}\nfunction containsProtocol(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/){1}.*', 'i');\n return !!pattern.test(str);\n}\nString.prototype.replaceAll = function(search, replacement) {\n var target = this;\n return target.split(search).join(replacement);\n};\nfunction udpateDisplayedItems(e) {\n console.log(e);\n localStorage.setItem('contenttype', e.target.checked);\n if (e.target.checked) {\n localStorage.setItem('content-display', 'none');\n } else {\n localStorage.setItem('content-display', 'block');\n }\n setDisplayedItems();\n}\nfunction setDisplayedItems() {\n setValueFromLocalStorage('contenttype');\n setValueFromLocalStorage('content-display');\n}"]},"metadata":{},"sourceType":"module"}
\ No newline at end of file
diff --git a/node_modules/.cache/babel-loader/e35642d57ee7b175b02b35d11cd8056e.json b/node_modules/.cache/babel-loader/e35642d57ee7b175b02b35d11cd8056e.json
new file mode 100644
index 00000000..e9d5aefe
--- /dev/null
+++ b/node_modules/.cache/babel-loader/e35642d57ee7b175b02b35d11cd8056e.json
@@ -0,0 +1 @@
+{"ast":null,"code":"var _jsxFileName = \"/home/seanedmunds/dev/home-page/src/index.js\",\n _s = $RefreshSig$();\n\nimport React from 'react';\nimport { useState, useEffect } from 'react';\nimport ReactDOM from 'react-dom'; //import { unstable_createPortal } from 'react-dom';\n\nimport './index.css';\nimport './search.js';\nimport { jsxDEV as _jsxDEV } from \"react/jsx-dev-runtime\";\n\nfunction Homepage() {\n return /*#__PURE__*/_jsxDEV(\"main\", {\n id: \"container\",\n class: \"fade\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Search, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 12,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 11,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Header, {\n date: date(),\n greet: greet()\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 15,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 14,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Applications, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 21,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 20,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Bookmarks, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 24,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 23,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(ModalMenu, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 27,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 26,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(ModalInit, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 30,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 29,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 10,\n columnNumber: 5\n }, this);\n}\n\n_c = Homepage;\n\nfunction Search() {\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"search\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n class: \"abackground\",\n children: [/*#__PURE__*/_jsxDEV(\"input\", {\n name: \"keywords\",\n type: \"text\",\n class: \"keyword\",\n id: \"keywords\",\n size: \"50\",\n placeholder: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 40,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n id: \"searchType\",\n class: \"Input-label\",\n children: \"Google search\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 41,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 39,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 38,\n columnNumber: 5\n }, this);\n}\n\n_c2 = Search;\n\nfunction Header(props) {\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"header\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n id: \"greeting_block\",\n children: /*#__PURE__*/_jsxDEV(\"h1\", {\n id: \"header_greet\",\n children: props.greet\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 51,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 50,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"date_block\",\n children: [/*#__PURE__*/_jsxDEV(\"h2\", {\n id: \"header_date\",\n children: props.date\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 54,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(Clock, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 55,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 53,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 49,\n columnNumber: 5\n }, this);\n}\n\n_c3 = Header;\n\nfunction Applications() {\n let appList = getApps();\n var items = [];\n\n for (var i = 0; i < appList.apps.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(App, {\n name: appList.apps[i].name,\n url: appList.apps[i].url,\n icon: appList.apps[i].icon,\n NSFW: appList.apps[i].NSFW\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 66,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"apps\",\n children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n children: \"Applications\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 77,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"apps_loop\",\n children: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 78,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 76,\n columnNumber: 5\n }, this);\n}\n\n_c4 = Applications;\n\nfunction App(props) {\n let classType = props.NSFW + \"-content\";\n let hrefUrl = \"https://\" + props.url;\n let iconName = \"mdi-\" + props.icon;\n return /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: hrefUrl,\n class: classType,\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n class: \"apps_item\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n class: \"apps_icon\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n class: \"iconify icon\",\n \"data-icon\": iconName\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 94,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 93,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n class: \"apps_text\",\n children: [/*#__PURE__*/_jsxDEV(\"span\", {\n id: \"app-name\",\n children: props.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 97,\n columnNumber: 13\n }, this), /*#__PURE__*/_jsxDEV(\"span\", {\n id: \"app-address\",\n children: props.url\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 98,\n columnNumber: 13\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 96,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 92,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 91,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 90,\n columnNumber: 5\n }, this);\n}\n\n_c5 = App;\n\nfunction Bookmarks() {\n let bookmarkList = getLinks();\n var items = [];\n\n for (var i = 0; i < bookmarkList.bookmarks.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(LinkGroups, {\n category: bookmarkList.bookmarks[i].category,\n links: bookmarkList.bookmarks[i].links\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 111,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"links\",\n children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n children: \"Bookmarks\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 120,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"links_loop\",\n children: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 121,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 119,\n columnNumber: 5\n }, this);\n}\n\n_c6 = Bookmarks;\n\nfunction LinkGroups(props) {\n var items = [];\n\n for (var i = 0; i < props.links.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(LinkItem, {\n link: props.links[i]\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 132,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"links_item\",\n children: [/*#__PURE__*/_jsxDEV(\"h4\", {\n children: props.category\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 140,\n columnNumber: 7\n }, this), items]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 139,\n columnNumber: 5\n }, this);\n}\n\n_c7 = LinkGroups;\n\nfunction LinkItem(props) {\n return /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: props.link.url,\n class: \"theme_color-border theme_text-select\",\n children: props.link.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 149,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 148,\n columnNumber: 5\n }, this);\n}\n\n_c8 = LinkItem;\n\nfunction ModalMenu() {\n var providers = getProviders();\n var items = [];\n\n for (var i = 0; i < providers.providers.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(Provider, {\n provider: providers.providers[i]\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 159,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"modal\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n children: [/*#__PURE__*/_jsxDEV(\"header\", {\n id: \"modal-header\",\n children: [/*#__PURE__*/_jsxDEV(\"h1\", {\n children: \"Options\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 169,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n href: \"#\",\n title: \"Close\",\n class: \"modal-close\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n class: \"iconify\",\n \"data-icon\": \"mdi-close\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 171,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 170,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 168,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"h2\", {\n children: \"Color themes\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 175,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"modal-theme\",\n children: [/*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"blackboard\",\n class: \"theme-button theme-blackboard\",\n children: \"Blackboard\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 178,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"gazette\",\n class: \"theme-button theme-gazette\",\n children: \"Gazette\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 179,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"espresso\",\n class: \"theme-button theme-espresso\",\n children: \"Espresso\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 180,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cab\",\n class: \"theme-button theme-cab\",\n children: \"Cab\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 181,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cloud\",\n class: \"theme-button theme-cloud\",\n children: \"Cloud\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 182,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"lime\",\n class: \"theme-button theme-lime\",\n children: \"Lime\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 183,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"passion\",\n class: \"theme-button theme-passion\",\n children: \"Passion\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 184,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"blues\",\n class: \"theme-button theme-blues\",\n children: \"Blues\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 185,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"chalk\",\n class: \"theme-button theme-chalk\",\n children: \"Chalk\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 186,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"tron\",\n class: \"theme-button theme-tron\",\n children: \"Tron\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 187,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"paper\",\n class: \"theme-button theme-paper\",\n children: \"Paper\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 188,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cyberpunk\",\n class: \"theme-button theme-cyberpunk\",\n children: \"Cyberpunk\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 189,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"quadra\",\n class: \"theme-button theme-panam\",\n children: \"Quadra\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 190,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"panam\",\n class: \"theme-button theme-panam\",\n children: \"Panam\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 191,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"touch\",\n class: \"theme-button theme-touch\",\n children: \"Touch\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 192,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"peek\",\n class: \"theme-button theme-peek\",\n children: \"Peek\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 193,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 177,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"h2\", {\n children: \"Search options\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 197,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"providers\",\n children: /*#__PURE__*/_jsxDEV(\"table\", {\n children: /*#__PURE__*/_jsxDEV(\"tbody\", {\n children: [/*#__PURE__*/_jsxDEV(\"tr\", {\n children: [/*#__PURE__*/_jsxDEV(\"th\", {\n children: \"Website\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 202,\n columnNumber: 19\n }, this), /*#__PURE__*/_jsxDEV(\"th\", {\n children: \"Prefix\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 203,\n columnNumber: 19\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 201,\n columnNumber: 17\n }, this), items]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 200,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 199,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 198,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"header\", {\n id: \"modal-footer\",\n children: [/*#__PURE__*/_jsxDEV(\"a\", {\n href: \"https://github.com/jeroenpardon/\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n class: \"iconify\",\n \"data-icon\": \"mdi-github-box\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 211,\n columnNumber: 54\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 211,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n href: \"https://materialdesignicons.com/\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n class: \"iconify\",\n \"data-icon\": \"mdi-material-design\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 212,\n columnNumber: 54\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 212,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n class: \"sneaky\",\n children: [/*#__PURE__*/_jsxDEV(\"input\", {\n type: \"checkbox\",\n id: \"contenttype\",\n onChange: \"nsfw(this)\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 213,\n columnNumber: 31\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n for: \"contenttype\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n class: \"iconify\",\n \"data-icon\": \"mdi-domino-mask\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 214,\n columnNumber: 36\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 214,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 213,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 210,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 167,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 166,\n columnNumber: 5\n }, this);\n}\n\n_c9 = ModalMenu;\n\nfunction Provider(props) {\n return /*#__PURE__*/_jsxDEV(\"tr\", {\n children: [/*#__PURE__*/_jsxDEV(\"td\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: props.provider.url,\n children: props.provider.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 224,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 224,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"td\", {\n children: props.provider.prefix\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 225,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 223,\n columnNumber: 5\n }, this);\n}\n\n_c10 = Provider;\n\nfunction ModalInit() {\n return /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"modal_init\",\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n class: \"btn\",\n href: \"#modal\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n class: \"iconify icon\",\n \"data-icon\": \"mdi-xbox-controller-menu\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 234,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 233,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 232,\n columnNumber: 5\n }, this);\n}\n\n_c11 = ModalInit;\nReactDOM.render( /*#__PURE__*/_jsxDEV(Homepage, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 241,\n columnNumber: 3\n}, this), document.getElementById('root')); //Functions below this line are for calculating data for\n//other functions\n\nfunction date() {\n let currentDate = new Date();\n let dateOptions = {\n weekday: \"long\",\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\"\n };\n let date = currentDate.toLocaleDateString(\"en-GB\", dateOptions);\n return date;\n}\n\nfunction fixDigits(k) {\n if (k < 10) {\n return \"0\" + k;\n } else {\n return k;\n }\n}\n\nfunction greet() {\n let currentTime = new Date();\n let greet = Math.floor(currentTime.getHours() / 6);\n let easterEggChance = Math.floor(Math.random() * 100);\n\n let greetings = require('./messages.json');\n\n let timeBased = [];\n let easterEggs = [];\n\n for (var i = 0; i < greetings.messages.length; i++) {\n if (greetings.messages[i].easteregg === \"FALSE\") {\n timeBased = timeBased.concat(greetings.messages[i]);\n } else {\n easterEggs = easterEggs.concat(greetings.messages[i]);\n }\n }\n\n if (easterEggChance > 10) {\n return timeBased[greet].message;\n } else {\n let easterEggText = Math.floor(Math.random() * easterEggs.length);\n return easterEggs[easterEggText].message;\n }\n}\n\nfunction Clock() {\n _s();\n\n const [date, setDate] = useState(new Date());\n\n function refreshClock() {\n setDate(new Date());\n }\n\n useEffect(() => {\n const timerId = setInterval(refreshClock, 1000);\n return function cleanup() {\n clearInterval(timerId);\n };\n }, []);\n var hour = date.getHours();\n var minutes = date.getMinutes(); //var seconds = date.getSeconds();\n\n var midday = \"AM\";\n midday = hour >= 12 ? \"PM\" : \"AM\";\n hour = hour === 0 ? 12 : hour > 12 ? hour - 12 : hour;\n minutes = fixDigits(minutes); //seconds = fixDigits(seconds);\n\n let time = hour + \":\" + minutes + \" \" + midday;\n return /*#__PURE__*/_jsxDEV(\"h2\", {\n id: \"clock\",\n children: time\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 312,\n columnNumber: 5\n }, this);\n}\n\n_s(Clock, \"Gqi45WOZhU2c0BLYX0HoJeiR0fk=\");\n\n_c12 = Clock;\n\nfunction getApps() {\n let applications = require('./apps.json');\n\n return applications;\n}\n\nfunction getLinks() {\n let links = require('./links.json');\n\n return links;\n}\n\nfunction getProviders() {\n let providers = require('./providers.json');\n\n return providers;\n}\n\nvar _c, _c2, _c3, _c4, _c5, _c6, _c7, _c8, _c9, _c10, _c11, _c12;\n\n$RefreshReg$(_c, \"Homepage\");\n$RefreshReg$(_c2, \"Search\");\n$RefreshReg$(_c3, \"Header\");\n$RefreshReg$(_c4, \"Applications\");\n$RefreshReg$(_c5, \"App\");\n$RefreshReg$(_c6, \"Bookmarks\");\n$RefreshReg$(_c7, \"LinkGroups\");\n$RefreshReg$(_c8, \"LinkItem\");\n$RefreshReg$(_c9, \"ModalMenu\");\n$RefreshReg$(_c10, \"Provider\");\n$RefreshReg$(_c11, \"ModalInit\");\n$RefreshReg$(_c12, \"Clock\");","map":{"version":3,"sources":["/home/seanedmunds/dev/home-page/src/index.js"],"names":["React","useState","useEffect","ReactDOM","Homepage","date","greet","Search","Header","props","Applications","appList","getApps","items","i","apps","length","push","name","url","icon","NSFW","App","classType","hrefUrl","iconName","Bookmarks","bookmarkList","getLinks","bookmarks","category","links","LinkGroups","LinkItem","link","ModalMenu","providers","getProviders","Provider","provider","prefix","ModalInit","render","document","getElementById","currentDate","Date","dateOptions","weekday","year","month","day","toLocaleDateString","fixDigits","k","currentTime","Math","floor","getHours","easterEggChance","random","greetings","require","timeBased","easterEggs","messages","easteregg","concat","message","easterEggText","Clock","setDate","refreshClock","timerId","setInterval","cleanup","clearInterval","hour","minutes","getMinutes","midday","time","applications"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { useState, useEffect } from 'react';\nimport ReactDOM from 'react-dom';\n//import { unstable_createPortal } from 'react-dom';\nimport './index.css';\nimport './search.js'\n\nfunction Homepage() {\n return (\n \n \n \n
\n \n \n
\n \n \n \n
\n \n \n
\n \n \n
\n \n );\n}\n\nfunction Search() {\n return (\n \n )\n}\n\nfunction Header(props) {\n return (\n \n );\n}\n\nfunction Applications() {\n let appList = getApps();\n var items = [];\n for (var i = 0; i < appList.apps.length; i++) {\n items.push(\n \n );\n }\n return (\n \n Applications
\n \n {items}\n
\n \n );\n}\n\nfunction App(props) {\n let classType = props.NSFW + \"-content\";\n let hrefUrl = \"https://\" + props.url;\n let iconName = \"mdi-\" + props.icon;\n return (\n \n );\n}\n\nfunction Bookmarks() {\n let bookmarkList = getLinks();\n var items = [];\n for (var i = 0; i < bookmarkList.bookmarks.length; i++) {\n items.push(\n \n );\n }\n return (\n \n Bookmarks
\n \n {items}\n
\n \n );\n}\n\nfunction LinkGroups(props) {\n var items = [];\n for (var i = 0; i < props.links.length; i++) {\n items.push(\n \n );\n }\n return (\n \n
{props.category}
\n {items}\n \n );\n}\n\nfunction LinkItem(props) {\n return (\n \n );\n}\n\nfunction ModalMenu() {\n var providers = getProviders();\n var items = [];\n for (var i = 0; i < providers.providers.length; i++) {\n items.push(\n \n );\n }\n return (\n \n \n \n\n
Color themes
\n\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n\n\n
Search options
\n
\n \n \n \n | Website | \n Prefix | \n
\n {items}\n \n
\n \n\n \n
\n \n );\n}\n\nfunction Provider(props) {\n return (\n \n | {props.provider.name} | \n {props.provider.prefix} | \n
\n );\n}\n\nfunction ModalInit() {\n return (\n \n );\n}\n\nReactDOM.render(\n ,\n document.getElementById('root')\n);\n\n//Functions below this line are for calculating data for\n//other functions\n\nfunction date() {\n let currentDate = new Date();\n let dateOptions = {\n weekday: \"long\",\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\"\n };\n let date = currentDate.toLocaleDateString(\"en-GB\", dateOptions);\n return date;\n}\nfunction fixDigits(k) {\n if (k < 10) {\n return \"0\" + k;\n }\n else {\n return k;\n }\n}\nfunction greet() {\n let currentTime = new Date();\n let greet = Math.floor(currentTime.getHours() / 6);\n let easterEggChance = Math.floor(Math.random() * 100);\n let greetings = require('./messages.json');\n let timeBased = [];\n let easterEggs = [];\n for (var i = 0; i < greetings.messages.length; i++) {\n if (greetings.messages[i].easteregg === \"FALSE\") {\n timeBased = timeBased.concat(greetings.messages[i]);\n } else {\n easterEggs = easterEggs.concat(greetings.messages[i]);\n }\n }\n if (easterEggChance > 10) {\n return timeBased[greet].message;\n } else {\n let easterEggText = Math.floor(Math.random() * easterEggs.length);\n return easterEggs[easterEggText].message;\n }\n}\nfunction Clock() {\n const [date, setDate] = useState(new Date());\n\n function refreshClock() {\n setDate(new Date());\n }\n useEffect(() => {\n const timerId = setInterval(refreshClock, 1000);\n return function cleanup() {\n clearInterval(timerId);\n };\n }, []);\n\n var hour = date.getHours();\n var minutes = date.getMinutes();\n //var seconds = date.getSeconds();\n var midday = \"AM\";\n midday = (hour >= 12) ? \"PM\" : \"AM\";\n hour = (hour === 0) ? 12 : ((hour > 12) ? (hour - 12) : hour);\n minutes = fixDigits(minutes);\n //seconds = fixDigits(seconds);\n let time = hour + \":\" + minutes + \" \" + midday;\n\n return (\n {time}
\n\n );\n}\nfunction getApps() {\n let applications = require('./apps.json');\n return applications;\n}\nfunction getLinks() {\n let links = require('./links.json');\n return links;\n}\nfunction getProviders() {\n let providers = require('./providers.json');\n return providers;\n}"]},"metadata":{},"sourceType":"module"}
\ No newline at end of file
diff --git a/node_modules/.cache/babel-loader/e7082e6d26857f89c2326a7c54c641de.json b/node_modules/.cache/babel-loader/e7082e6d26857f89c2326a7c54c641de.json
new file mode 100644
index 00000000..a2be366a
--- /dev/null
+++ b/node_modules/.cache/babel-loader/e7082e6d26857f89c2326a7c54c641de.json
@@ -0,0 +1 @@
+{"ast":null,"code":"var _jsxFileName = \"/home/seanedmunds/dev/home-page/src/index.js\",\n _s = $RefreshSig$();\n\nimport React from 'react';\nimport { useState, useEffect } from 'react';\nimport ReactDOM from 'react-dom'; //import { unstable_createPortal } from 'react-dom';\n\nimport './index.css';\nimport { jsxDEV as _jsxDEV } from \"react/jsx-dev-runtime\";\n\nconst setValueFromLocalStorage = property => {\n let value = localStorage.getItem(property);\n setValue(property, value);\n};\n\nconst setValue = (property, value) => {\n if (value) {\n document.documentElement.style.setProperty(`--${property}`, value);\n const input = document.querySelector(`#${property}`);\n\n if (input) {\n value = value.replace('px', '');\n input.value = value;\n }\n }\n};\n\nfunction Homepage() {\n setTheme();\n return /*#__PURE__*/_jsxDEV(\"main\", {\n id: \"container\",\n className: \"fade\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Search, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 28,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 27,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Header, {\n date: date(),\n greet: greet()\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 31,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 30,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Applications, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 37,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 36,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Bookmarks, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 40,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 39,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(ModalMenu, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 43,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 42,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(ModalInit, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 46,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 45,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 26,\n columnNumber: 5\n }, this);\n}\n\n_c = Homepage;\n\nfunction Search() {\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"search\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"abackground\",\n children: [/*#__PURE__*/_jsxDEV(\"input\", {\n name: \"keywords\",\n type: \"text\",\n className: \"keyword\",\n id: \"keywords\",\n size: \"50\",\n spellCheck: \"true\",\n placeholder: \"\"\n /*onFocus={this.placeholder = \"\"} onBlur={this.placeholder = ''}*/\n ,\n autoComplete: \"off\",\n autoFocus: true,\n onKeyUp: handleKeyPress\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 56,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n id: \"searchType\",\n className: \"Input-label\",\n children: \"Google search\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 57,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 55,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 54,\n columnNumber: 5\n }, this);\n}\n\n_c2 = Search;\n\nfunction Header(props) {\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"header\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n id: \"greeting_block\",\n children: /*#__PURE__*/_jsxDEV(\"h1\", {\n id: \"header_greet\",\n children: props.greet\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 67,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 66,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"date_block\",\n children: [/*#__PURE__*/_jsxDEV(\"h2\", {\n id: \"header_date\",\n children: props.date\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 70,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(Clock, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 71,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 69,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 65,\n columnNumber: 5\n }, this);\n}\n\n_c3 = Header;\n\nfunction Applications() {\n let appList = getApps();\n var items = [];\n\n for (var i = 0; i < appList.apps.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(App, {\n name: appList.apps[i].name,\n url: appList.apps[i].url,\n icon: appList.apps[i].icon,\n NSFW: appList.apps[i].NSFW\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 82,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"apps\",\n children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n children: \"Applications\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 93,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"apps_loop\",\n children: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 94,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 92,\n columnNumber: 5\n }, this);\n}\n\n_c4 = Applications;\n\nfunction App(props) {\n var safe = localStorage.getItem(\"contenttype\");\n\n if (safe) {\n return;\n } else {\n let classNameType = props.NSFW + \"-content\";\n let hrefUrl = \"https://\" + props.url;\n let iconName = \"mdi-\" + props.icon;\n return /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: hrefUrl,\n className: classNameType,\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_item\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_icon\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify icon\",\n \"data-icon\": iconName\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 114,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 113,\n columnNumber: 13\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_text\",\n children: [/*#__PURE__*/_jsxDEV(\"span\", {\n id: \"app-name\",\n children: props.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 117,\n columnNumber: 15\n }, this), /*#__PURE__*/_jsxDEV(\"span\", {\n id: \"app-address\",\n children: props.url\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 118,\n columnNumber: 15\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 116,\n columnNumber: 13\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 112,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 111,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 110,\n columnNumber: 7\n }, this);\n }\n}\n\n_c5 = App;\n\nfunction Bookmarks() {\n let bookmarkList = getLinks();\n var items = [];\n\n for (var i = 0; i < bookmarkList.bookmarks.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(LinkGroups, {\n category: bookmarkList.bookmarks[i].category,\n links: bookmarkList.bookmarks[i].links\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 133,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"links\",\n children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n children: \"Bookmarks\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 142,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"links_loop\",\n children: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 143,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 141,\n columnNumber: 5\n }, this);\n}\n\n_c6 = Bookmarks;\n\nfunction LinkGroups(props) {\n var items = [];\n\n for (var i = 0; i < props.links.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(LinkItem, {\n link: props.links[i]\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 154,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"links_item\",\n children: [/*#__PURE__*/_jsxDEV(\"h4\", {\n children: props.category\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 162,\n columnNumber: 7\n }, this), items]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 161,\n columnNumber: 5\n }, this);\n}\n\n_c7 = LinkGroups;\n\nfunction LinkItem(props) {\n return /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: props.link.url,\n className: \"theme_color-border theme_text-select\",\n children: props.link.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 171,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 170,\n columnNumber: 5\n }, this);\n}\n\n_c8 = LinkItem;\n\nfunction ModalMenu() {\n var providers = getProviders();\n var items = [];\n\n for (var i = 0; i < providers.providers.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(Provider, {\n provider: providers.providers[i]\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 181,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"modal\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n children: [/*#__PURE__*/_jsxDEV(\"header\", {\n id: \"modal-header\",\n children: [/*#__PURE__*/_jsxDEV(\"h1\", {\n children: \"Options\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 191,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n href: \"#\",\n title: \"Close\",\n className: \"modal-close\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-close\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 193,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 192,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 190,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"h2\", {\n children: \"Color themes\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 197,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"modal-theme\",\n children: [/*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"blackboard\",\n className: \"theme-button theme-blackboard\",\n onClick: updateTheme,\n children: \"Blackboard\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 200,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"gazette\",\n className: \"theme-button theme-gazette\",\n onClick: updateTheme,\n children: \"Gazette\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 201,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"espresso\",\n className: \"theme-button theme-espresso\",\n onClick: updateTheme,\n children: \"Espresso\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 202,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cab\",\n className: \"theme-button theme-cab\",\n onClick: updateTheme,\n children: \"Cab\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 203,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cloud\",\n className: \"theme-button theme-cloud\",\n onClick: updateTheme,\n children: \"Cloud\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 204,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"lime\",\n className: \"theme-button theme-lime\",\n onClick: updateTheme,\n children: \"Lime\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 205,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"passion\",\n className: \"theme-button theme-passion\",\n onClick: updateTheme,\n children: \"Passion\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 206,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"blues\",\n className: \"theme-button theme-blues\",\n onClick: updateTheme,\n children: \"Blues\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 207,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"chalk\",\n className: \"theme-button theme-chalk\",\n onClick: updateTheme,\n children: \"Chalk\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 208,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"tron\",\n className: \"theme-button theme-tron\",\n onClick: updateTheme,\n children: \"Tron\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 209,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"paper\",\n className: \"theme-button theme-paper\",\n onClick: updateTheme,\n children: \"Paper\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 210,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cyberpunk\",\n className: \"theme-button theme-cyberpunk\",\n onClick: updateTheme,\n children: \"Cyberpunk\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 211,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"quadra\",\n className: \"theme-button theme-panam\",\n onClick: updateTheme,\n children: \"Quadra\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 212,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"panam\",\n className: \"theme-button theme-panam\",\n onClick: updateTheme,\n children: \"Panam\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 213,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"touch\",\n className: \"theme-button theme-touch\",\n onClick: updateTheme,\n children: \"Touch\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 214,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"peek\",\n className: \"theme-button theme-peek\",\n onClick: updateTheme,\n children: \"Peek\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 215,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 199,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"h2\", {\n children: \"Search options\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 219,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"providers\",\n children: /*#__PURE__*/_jsxDEV(\"table\", {\n children: /*#__PURE__*/_jsxDEV(\"tbody\", {\n children: [/*#__PURE__*/_jsxDEV(\"tr\", {\n children: [/*#__PURE__*/_jsxDEV(\"th\", {\n children: \"Website\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 224,\n columnNumber: 19\n }, this), /*#__PURE__*/_jsxDEV(\"th\", {\n children: \"Prefix\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 225,\n columnNumber: 19\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 223,\n columnNumber: 17\n }, this), items]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 222,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 221,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 220,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"header\", {\n id: \"modal-footer\",\n children: [/*#__PURE__*/_jsxDEV(\"a\", {\n href: \"https://github.com/jeroenpardon/\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-github-box\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 233,\n columnNumber: 54\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 233,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n href: \"https://materialdesignicons.com/\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-material-design\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 234,\n columnNumber: 54\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 234,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"sneaky\",\n children: [/*#__PURE__*/_jsxDEV(\"input\", {\n type: \"checkbox\",\n id: \"contenttype\",\n onChange: udpateDisplayedItems\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 235,\n columnNumber: 35\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n for: \"contenttype\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-domino-mask\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 236,\n columnNumber: 36\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 236,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 235,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 232,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 189,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 188,\n columnNumber: 5\n }, this);\n}\n\n_c9 = ModalMenu;\n\nfunction Provider(props) {\n return /*#__PURE__*/_jsxDEV(\"tr\", {\n children: [/*#__PURE__*/_jsxDEV(\"td\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: props.provider.url,\n children: props.provider.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 246,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 246,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"td\", {\n children: props.provider.prefix\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 247,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 245,\n columnNumber: 5\n }, this);\n}\n\n_c10 = Provider;\n\nfunction ModalInit() {\n return /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"modal_init\",\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n className: \"btn\",\n href: \"#modal\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify icon\",\n \"data-icon\": \"mdi-xbox-controller-menu\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 256,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 255,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 254,\n columnNumber: 5\n }, this);\n}\n\n_c11 = ModalInit;\nReactDOM.render( /*#__PURE__*/_jsxDEV(Homepage, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 263,\n columnNumber: 3\n}, this), document.getElementById('root')); //Functions below this line are for calculating data for\n//other functions\n\nfunction date() {\n let currentDate = new Date();\n let dateOptions = {\n weekday: \"long\",\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\"\n };\n let date = currentDate.toLocaleDateString(\"en-GB\", dateOptions);\n return date;\n}\n\nfunction fixDigits(k) {\n if (k < 10) {\n return \"0\" + k;\n } else {\n return k;\n }\n}\n\nfunction greet() {\n let currentTime = new Date();\n let greet = Math.floor(currentTime.getHours() / 6);\n let easterEggChance = Math.floor(Math.random() * 100);\n\n let greetings = require('./messages.json');\n\n let timeBased = [];\n let easterEggs = [];\n\n for (var i = 0; i < greetings.messages.length; i++) {\n if (greetings.messages[i].easteregg === \"FALSE\") {\n timeBased = timeBased.concat(greetings.messages[i]);\n } else {\n easterEggs = easterEggs.concat(greetings.messages[i]);\n }\n }\n\n if (easterEggChance > 10) {\n return timeBased[greet].message;\n } else {\n let easterEggText = Math.floor(Math.random() * easterEggs.length);\n return easterEggs[easterEggText].message;\n }\n}\n\nfunction Clock() {\n _s();\n\n const [date, setDate] = useState(new Date());\n\n function refreshClock() {\n setDate(new Date());\n }\n\n useEffect(() => {\n const timerId = setInterval(refreshClock, 1000);\n return function cleanup() {\n clearInterval(timerId);\n };\n }, []);\n var hour = date.getHours();\n var minutes = date.getMinutes(); //var seconds = date.getSeconds();\n\n var midday = \"AM\";\n midday = hour >= 12 ? \"PM\" : \"AM\";\n hour = hour === 0 ? 12 : hour > 12 ? hour - 12 : hour;\n minutes = fixDigits(minutes); //seconds = fixDigits(seconds);\n\n let time = hour + \":\" + minutes + \" \" + midday;\n return /*#__PURE__*/_jsxDEV(\"h2\", {\n id: \"clock\",\n children: time\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 334,\n columnNumber: 5\n }, this);\n}\n\n_s(Clock, \"Gqi45WOZhU2c0BLYX0HoJeiR0fk=\");\n\n_c12 = Clock;\n\nfunction getApps() {\n let applications = require('./apps.json');\n\n return applications;\n}\n\nfunction getLinks() {\n let links = require('./links.json');\n\n return links;\n}\n\nfunction getProviders() {\n let providers = require('./providers.json');\n\n return providers;\n}\n\nfunction getThemes() {\n let themes = require('./themes.json');\n\n return themes;\n}\n\nfunction updateTheme(e) {\n var themes = getThemes();\n var themeName = e.target.innerHTML.toLowerCase();\n var index = themes.themes.findIndex(function (item, i) {\n return item.name === themeName;\n });\n console.log(themes.themes[index]);\n localStorage.setItem(\"image-background\", themes.themes[index].imagebackground);\n localStorage.setItem(\"color-background\", themes.themes[index].colorbackground);\n localStorage.setItem(\"color-search-background\", themes.themes[index].colorserachbackground);\n localStorage.setItem(\"color-text-pri\", themes.themes[index].colortextpri);\n localStorage.setItem(\"color-text-acc\", themes.themes[index].colortextacc);\n localStorage.setItem(\"color-border\", themes.themes[index].colorborder); //document.documentElement.style.setProperty(prop, `var(--${themeName}${prop.substring(10)})`);\n\n setTheme();\n}\n\nfunction setTheme() {\n setValueFromLocalStorage('image-background');\n setValueFromLocalStorage('color-background');\n setValueFromLocalStorage('color-search-background');\n setValueFromLocalStorage('color-text-pri');\n setValueFromLocalStorage('color-text-acc');\n setValueFromLocalStorage('color-border');\n setValueFromLocalStorage('content-display');\n}\n\nfunction handleKeyPress(e) {\n var sindex = 0;\n var cycle = false;\n var key = e.keyCode || e.which;\n var text = e.target.value.replaceAll(\"+\", \"%2B\");\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n\n if (key == 13) {\n // Search functions\n search(text);\n }\n\n if (key == 9) {\n // Tab Completion Functions\n e.preventDefault();\n e.stopPropagation();\n\n if (text[0] === ';') {\n switch (option) {\n case 't':\n var streamers = ['admiralbahroo', 'moonmoon_ow', 'witwix'];\n\n if (!subtext || cycle) {\n cycle = true;\n if (sindex > streamers.length - 1) sindex = 0;\n document.getElementById(\"keywords\").value = ';t ' + streamers[sindex++];\n return;\n }\n\n for (var streamer of streamers) {\n if (subtext === streamer.substr(0, subtext.length)) {\n document.getElementById(\"keywords\").value = ';t ' + streamer;\n return;\n }\n }\n\n break;\n }\n }\n }\n\n if (key == 32) {\n //Space to go to search\n updateLabel(text);\n }\n\n sindex = 0;\n cycle = false;\n updateLabel(text);\n}\n\nfunction updateLabel(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n\n if (text[0] === '/') {\n // if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n document.getElementById(\"searchType\").innerHTML = \"Allmusic search\";\n break;\n\n case \"d\":\n document.getElementById(\"searchType\").innerHTML = \"Duck Duck Go search\";\n break;\n\n case \"di\":\n document.getElementById(\"searchType\").innerHTML = \"Discogs search\";\n break;\n\n case \"i\":\n document.getElementById(\"searchType\").innerHTML = \"IMDB search\";\n break;\n\n case \"m\":\n document.getElementById(\"searchType\").innerHTML = \"TheMovieDB search\";\n break;\n\n case \"r\":\n document.getElementById(\"searchType\").innerHTML = \"Reddit search\";\n break;\n\n case \"q\":\n document.getElementById(\"searchType\").innerHTML = \"Qwant search\";\n break;\n\n case \"so\":\n document.getElementById(\"searchType\").innerHTML = \"Soundcloud search\";\n break;\n\n case \"s\":\n document.getElementById(\"searchType\").innerHTML = \"Spotify search\";\n break;\n\n case \"tv\":\n document.getElementById(\"searchType\").innerHTML = \"TheTVDB search\";\n break;\n\n case \"t\":\n document.getElementById(\"searchType\").innerHTML = \"Trakt search\";\n break;\n\n case \"y\":\n document.getElementById(\"searchType\").innerHTML = \"YouTube search\";\n break;\n\n case \"w\":\n document.getElementById(\"searchType\").innerHTML = \"Wikipedia search\";\n break;\n\n case \"p\":\n document.getElementById(\"searchType\").innerHTML = \"Plex search\";\n break;\n\n case \"rt\":\n document.getElementById(\"searchType\").innerHTML = \"Rotten Tomatoes search\";\n break;\n\n default:\n document.getElementById(\"searchType\").innerHTML = \"Invalid search\";\n break;\n }\n } else {\n document.getElementById(\"searchType\").innerHTML = \"Google search\";\n }\n}\n\nfunction search(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n\n if (text[0] === '/') {\n if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n window.location = \"https://www.allmusic.com/search/all/\" + subtext;\n break;\n\n case \"d\":\n window.location = \"https://duckduckgo.com/?q=\" + subtext;\n break;\n\n case \"di\":\n window.location = \"https://www.discogs.com/search/?q=\" + subtext;\n break;\n\n case \"i\":\n window.location = \"https://www.imdb.com/find?q=\" + subtext;\n break;\n\n case \"m\":\n window.location = \"https://www.themoviedb.org/search?query=\" + subtext;\n break;\n\n case \"r\":\n window.location = \"https://www.reddit.com/search?q=\" + subtext;\n break;\n\n case \"q\":\n window.location = \"https://www.qwant.com/?q=\" + subtext;\n break;\n\n case \"so\":\n window.location = \"https://soundcloud.com/search?q=\" + subtext;\n break;\n\n case \"s\":\n window.location = \"https://open.spotify.com/search/results/\" + subtext;\n break;\n\n case \"t\":\n window.location = \"https://trakt.tv/search?query=\" + subtext;\n break;\n\n case \"tv\":\n window.location = \"https://www.thetvdb.com/search?query=\" + subtext;\n break;\n\n case \"y\":\n window.location = \"https://www.youtube.com/results?search_query=\" + subtext;\n break;\n\n case \"w\":\n window.location = \"https://en.wikipedia.org/w/index.php?search=\" + subtext;\n break;\n\n case \"p\":\n window.location = \"https://app.plex.tv/desktop/#!/search?query=\" + subtext;\n break;\n\n case \"rt\":\n window.location = \"https://www.rottentomatoes.com/search?search=\" + subtext;\n break;\n }\n } else {\n var option = text.substr(1);\n\n switch (option) {\n case \"d\":\n window.location = \"https://www.duckduckgo.com\";\n break;\n\n case \"y\":\n window.location = \"https://www.youtube.com\";\n break;\n\n case \"r\":\n window.location = \"https://reddit.com\";\n break;\n\n case \"s\":\n window.location = \"https://open.spotify.com\";\n break;\n }\n }\n } else if (validURL(text)) {\n if (containsProtocol(text)) window.location = text;else window.location = \"https://\" + text;\n } else {\n window.location = \"https://www.google.com/search?q=\" + text;\n }\n} // Source: https://stackoverflow.com/questions/5717093/check-if-a-javascript-string-is-a-url\n\n\nfunction validURL(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/)?' + // protocol\n '((([a-z\\\\d]([a-z\\\\d-]*[a-z\\\\d])*)\\\\.)+[a-z]{2,}|' + // domain name\n '((\\\\d{1,3}\\\\.){3}\\\\d{1,3}))' + // OR ip (v4) address\n '(\\\\:\\\\d+)?(\\\\/[-a-z\\\\d%_.~+]*)*' + // port and path\n '(\\\\?[;&a-z\\\\d%_.~+=-]*)?' + // query string\n '(\\\\#[-a-z\\\\d_]*)?$', 'i'); // fragment locator\n\n return !!pattern.test(str);\n}\n\nfunction containsProtocol(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/){1}.*', 'i');\n return !!pattern.test(str);\n}\n\nString.prototype.replaceAll = function (search, replacement) {\n var target = this;\n return target.split(search).join(replacement);\n};\n\nfunction udpateDisplayedItems(e) {\n console.log(e.target.checked);\n localStorage.setItem('contenttype', e.target.checked);\n\n if (e.target.checked) {\n localStorage.setItem('content-display', 'none');\n } else {\n localStorage.setItem('content-display', 'block');\n }\n\n setDisplayedItems();\n}\n\nfunction setDisplayedItems() {\n setValueFromLocalStorage('contenttype');\n setValueFromLocalStorage('content-display');\n}\n\nvar _c, _c2, _c3, _c4, _c5, _c6, _c7, _c8, _c9, _c10, _c11, _c12;\n\n$RefreshReg$(_c, \"Homepage\");\n$RefreshReg$(_c2, \"Search\");\n$RefreshReg$(_c3, \"Header\");\n$RefreshReg$(_c4, \"Applications\");\n$RefreshReg$(_c5, \"App\");\n$RefreshReg$(_c6, \"Bookmarks\");\n$RefreshReg$(_c7, \"LinkGroups\");\n$RefreshReg$(_c8, \"LinkItem\");\n$RefreshReg$(_c9, \"ModalMenu\");\n$RefreshReg$(_c10, \"Provider\");\n$RefreshReg$(_c11, \"ModalInit\");\n$RefreshReg$(_c12, \"Clock\");","map":{"version":3,"sources":["/home/seanedmunds/dev/home-page/src/index.js"],"names":["React","useState","useEffect","ReactDOM","setValueFromLocalStorage","property","value","localStorage","getItem","setValue","document","documentElement","style","setProperty","input","querySelector","replace","Homepage","setTheme","date","greet","Search","handleKeyPress","Header","props","Applications","appList","getApps","items","i","apps","length","push","name","url","icon","NSFW","App","safe","classNameType","hrefUrl","iconName","Bookmarks","bookmarkList","getLinks","bookmarks","category","links","LinkGroups","LinkItem","link","ModalMenu","providers","getProviders","updateTheme","udpateDisplayedItems","Provider","provider","prefix","ModalInit","render","getElementById","currentDate","Date","dateOptions","weekday","year","month","day","toLocaleDateString","fixDigits","k","currentTime","Math","floor","getHours","easterEggChance","random","greetings","require","timeBased","easterEggs","messages","easteregg","concat","message","easterEggText","Clock","setDate","refreshClock","timerId","setInterval","cleanup","clearInterval","hour","minutes","getMinutes","midday","time","applications","getThemes","themes","e","themeName","target","innerHTML","toLowerCase","index","findIndex","item","console","log","setItem","imagebackground","colorbackground","colorserachbackground","colortextpri","colortextacc","colorborder","sindex","cycle","key","keyCode","which","text","replaceAll","option","substr","indexOf","subtext","search","preventDefault","stopPropagation","streamers","streamer","updateLabel","window","location","validURL","containsProtocol","str","pattern","RegExp","test","String","prototype","replacement","split","join","checked","setDisplayedItems"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { useState, useEffect } from 'react';\nimport ReactDOM from 'react-dom';\n//import { unstable_createPortal } from 'react-dom';\nimport './index.css';\n\nconst setValueFromLocalStorage = property => {\n let value = localStorage.getItem(property);\n setValue(property, value);\n};\nconst setValue = (property, value) => {\n if (value) {\n document.documentElement.style.setProperty(`--${property}`, value);\n\n const input = document.querySelector(`#${property}`);\n if (input) {\n value = value.replace('px', '');\n input.value = value;\n }\n }\n};\n\nfunction Homepage() {\n setTheme();\n return (\n \n \n \n
\n \n \n
\n \n \n \n
\n \n \n
\n \n \n
\n \n );\n}\n\nfunction Search() {\n return (\n \n )\n}\n\nfunction Header(props) {\n return (\n \n );\n}\n\nfunction Applications() {\n let appList = getApps();\n var items = [];\n for (var i = 0; i < appList.apps.length; i++) {\n items.push(\n \n );\n }\n return (\n \n Applications
\n \n {items}\n
\n \n );\n}\n\nfunction App(props) {\n var safe = localStorage.getItem(\"contenttype\")\n if (safe) {\n return;\n } else {\n let classNameType = props.NSFW + \"-content\";\n let hrefUrl = \"https://\" + props.url;\n let iconName = \"mdi-\" + props.icon;\n return (\n \n );\n }\n \n}\n\nfunction Bookmarks() {\n let bookmarkList = getLinks();\n var items = [];\n for (var i = 0; i < bookmarkList.bookmarks.length; i++) {\n items.push(\n \n );\n }\n return (\n \n Bookmarks
\n \n {items}\n
\n \n );\n}\n\nfunction LinkGroups(props) {\n var items = [];\n for (var i = 0; i < props.links.length; i++) {\n items.push(\n \n );\n }\n return (\n \n
{props.category}
\n {items}\n \n );\n}\n\nfunction LinkItem(props) {\n return (\n \n );\n}\n\nfunction ModalMenu() {\n var providers = getProviders();\n var items = [];\n for (var i = 0; i < providers.providers.length; i++) {\n items.push(\n \n );\n }\n return (\n \n \n \n\n
Color themes
\n\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n\n\n
Search options
\n
\n \n \n \n | Website | \n Prefix | \n
\n {items}\n \n
\n \n\n \n
\n \n );\n}\n\nfunction Provider(props) {\n return (\n \n | {props.provider.name} | \n {props.provider.prefix} | \n
\n );\n}\n\nfunction ModalInit() {\n return (\n \n );\n}\n\nReactDOM.render(\n ,\n document.getElementById('root')\n);\n\n//Functions below this line are for calculating data for\n//other functions\n\nfunction date() {\n let currentDate = new Date();\n let dateOptions = {\n weekday: \"long\",\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\"\n };\n let date = currentDate.toLocaleDateString(\"en-GB\", dateOptions);\n return date;\n}\nfunction fixDigits(k) {\n if (k < 10) {\n return \"0\" + k;\n }\n else {\n return k;\n }\n}\nfunction greet() {\n let currentTime = new Date();\n let greet = Math.floor(currentTime.getHours() / 6);\n let easterEggChance = Math.floor(Math.random() * 100);\n let greetings = require('./messages.json');\n let timeBased = [];\n let easterEggs = [];\n for (var i = 0; i < greetings.messages.length; i++) {\n if (greetings.messages[i].easteregg === \"FALSE\") {\n timeBased = timeBased.concat(greetings.messages[i]);\n } else {\n easterEggs = easterEggs.concat(greetings.messages[i]);\n }\n }\n if (easterEggChance > 10) {\n return timeBased[greet].message;\n } else {\n let easterEggText = Math.floor(Math.random() * easterEggs.length);\n return easterEggs[easterEggText].message;\n }\n}\nfunction Clock() {\n const [date, setDate] = useState(new Date());\n\n function refreshClock() {\n setDate(new Date());\n }\n useEffect(() => {\n const timerId = setInterval(refreshClock, 1000);\n return function cleanup() {\n clearInterval(timerId);\n };\n }, []);\n\n var hour = date.getHours();\n var minutes = date.getMinutes();\n //var seconds = date.getSeconds();\n var midday = \"AM\";\n midday = (hour >= 12) ? \"PM\" : \"AM\";\n hour = (hour === 0) ? 12 : ((hour > 12) ? (hour - 12) : hour);\n minutes = fixDigits(minutes);\n //seconds = fixDigits(seconds);\n let time = hour + \":\" + minutes + \" \" + midday;\n\n return (\n {time}
\n\n );\n}\nfunction getApps() {\n let applications = require('./apps.json');\n return applications;\n}\nfunction getLinks() {\n let links = require('./links.json');\n return links;\n}\nfunction getProviders() {\n let providers = require('./providers.json');\n return providers;\n}\nfunction getThemes() {\n let themes = require('./themes.json');\n return themes;\n}\n\nfunction updateTheme(e) {\n var themes = getThemes();\n var themeName = e.target.innerHTML.toLowerCase();\n var index = themes.themes.findIndex(function(item, i){\n return item.name === themeName\n });\n console.log(themes.themes[index]);\n localStorage.setItem(\"image-background\", themes.themes[index].imagebackground);\n localStorage.setItem(\"color-background\", themes.themes[index].colorbackground);\n localStorage.setItem(\"color-search-background\", themes.themes[index].colorserachbackground);\n localStorage.setItem(\"color-text-pri\",themes.themes[index].colortextpri);\n localStorage.setItem(\"color-text-acc\", themes.themes[index].colortextacc);\n localStorage.setItem(\"color-border\", themes.themes[index].colorborder);\n \n //document.documentElement.style.setProperty(prop, `var(--${themeName}${prop.substring(10)})`);\n setTheme();\n}\n\nfunction setTheme() {\n setValueFromLocalStorage('image-background');\n setValueFromLocalStorage('color-background');\n setValueFromLocalStorage('color-search-background');\n setValueFromLocalStorage('color-text-pri');\n setValueFromLocalStorage('color-text-acc');\n setValueFromLocalStorage('color-border');\n setValueFromLocalStorage('content-display');\n}\n\nfunction handleKeyPress(e) {\n var sindex = 0;\n var cycle = false;\n var key = e.keyCode || e.which;\n var text = e.target.value.replaceAll(\"+\", \"%2B\");\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n if (key == 13) { // Search functions\n search(text);\n }\n if (key == 9) { // Tab Completion Functions\n e.preventDefault();\n e.stopPropagation();\n if (text[0] === ';') {\n switch (option) {\n case 't':\n var streamers = ['admiralbahroo', 'moonmoon_ow', 'witwix'];\n if (!subtext || cycle) {\n cycle = true;\n if (sindex > streamers.length - 1) sindex = 0;\n document.getElementById(\"keywords\").value = ';t ' + streamers[sindex++];\n return;\n }\n for (var streamer of streamers) {\n if (subtext === streamer.substr(0, subtext.length)) {\n document.getElementById(\"keywords\").value = ';t ' + streamer;\n return;\n }\n }\n break;\n }\n }\n }\n if(key == 32){ //Space to go to search\nupdateLabel(text);\n }\n sindex = 0;\n cycle = false;\n updateLabel(text);\n}\n\nfunction updateLabel(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n if (text[0] === '/') {\n// if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n document.getElementById(\"searchType\").innerHTML = \"Allmusic search\";\n break;\n case \"d\":\n document.getElementById(\"searchType\").innerHTML = \"Duck Duck Go search\";\n break;\n case \"di\":\n document.getElementById(\"searchType\").innerHTML = \"Discogs search\";\n break;\n case \"i\":\n document.getElementById(\"searchType\").innerHTML = \"IMDB search\";\n break;\n case \"m\":\n document.getElementById(\"searchType\").innerHTML = \"TheMovieDB search\";\n break;\n case \"r\":\n document.getElementById(\"searchType\").innerHTML = \"Reddit search\";\n break;\n case \"q\":\n document.getElementById(\"searchType\").innerHTML = \"Qwant search\";\n break;\n case \"so\":\n document.getElementById(\"searchType\").innerHTML = \"Soundcloud search\";\n break;\n case \"s\":\n document.getElementById(\"searchType\").innerHTML = \"Spotify search\";\n break;\n case \"tv\":\n document.getElementById(\"searchType\").innerHTML = \"TheTVDB search\";\n break;\n case \"t\":\n document.getElementById(\"searchType\").innerHTML = \"Trakt search\";\n break;\n case \"y\":\n document.getElementById(\"searchType\").innerHTML = \"YouTube search\";\n break;\n case \"w\":\n document.getElementById(\"searchType\").innerHTML = \"Wikipedia search\";\n break;\n case \"p\":\n document.getElementById(\"searchType\").innerHTML = \"Plex search\";\n break;\n case \"rt\":\n document.getElementById(\"searchType\").innerHTML = \"Rotten Tomatoes search\";\n break;\n default:\n document.getElementById(\"searchType\").innerHTML = \"Invalid search\";\n break;\n }\n}else {\n document.getElementById(\"searchType\").innerHTML = \"Google search\";\n }\n}\n\nfunction search(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n if (text[0] === '/') {\n if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n window.location = \"https://www.allmusic.com/search/all/\" + subtext;\n break;\n case \"d\":\n window.location = \"https://duckduckgo.com/?q=\" + subtext;\n break;\n case \"di\":\n window.location = \"https://www.discogs.com/search/?q=\" + subtext;\n break;\n case \"i\":\n window.location = \"https://www.imdb.com/find?q=\" + subtext;\n break;\n case \"m\":\n window.location = \"https://www.themoviedb.org/search?query=\" + subtext;\n break;\n case \"r\":\n window.location = \"https://www.reddit.com/search?q=\" + subtext;\n break;\n case \"q\":\n window.location = \"https://www.qwant.com/?q=\" + subtext;\n break;\n case \"so\":\n window.location = \"https://soundcloud.com/search?q=\" + subtext;\n break;\n case \"s\":\n window.location = \"https://open.spotify.com/search/results/\" + subtext;\n break;\n case \"t\":\n window.location = \"https://trakt.tv/search?query=\" + subtext;\n break;\n case \"tv\":\n window.location = \"https://www.thetvdb.com/search?query=\" + subtext;\n break;\n case \"y\":\n window.location = \"https://www.youtube.com/results?search_query=\" + subtext;\n break;\n case \"w\":\n window.location = \"https://en.wikipedia.org/w/index.php?search=\" + subtext;\n break;\n case \"p\":\n window.location = \"https://app.plex.tv/desktop/#!/search?query=\" + subtext;\n break;\n case \"rt\":\n window.location = \"https://www.rottentomatoes.com/search?search=\" + subtext;\n break;\n }\n } else {\n var option = text.substr(1);\n switch (option) {\n case \"d\":\n window.location = \"https://www.duckduckgo.com\";\n break;\n case \"y\":\n window.location = \"https://www.youtube.com\";\n break;\n case \"r\":\n window.location = \"https://reddit.com\";\n break;\n case \"s\":\n window.location = \"https://open.spotify.com\";\n break;\n }\n }\n } else if (validURL(text)) {\n if (containsProtocol(text))\n window.location = text;\n else\n window.location = \"https://\" + text;\n } else {\n window.location = \"https://www.google.com/search?q=\" + text;\n }\n}\n\n// Source: https://stackoverflow.com/questions/5717093/check-if-a-javascript-string-is-a-url\nfunction validURL(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/)?' + // protocol\n '((([a-z\\\\d]([a-z\\\\d-]*[a-z\\\\d])*)\\\\.)+[a-z]{2,}|' + // domain name\n '((\\\\d{1,3}\\\\.){3}\\\\d{1,3}))' + // OR ip (v4) address\n '(\\\\:\\\\d+)?(\\\\/[-a-z\\\\d%_.~+]*)*' + // port and path\n '(\\\\?[;&a-z\\\\d%_.~+=-]*)?' + // query string\n '(\\\\#[-a-z\\\\d_]*)?$', 'i'); // fragment locator\n return !!pattern.test(str);\n}\n\nfunction containsProtocol(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/){1}.*', 'i');\n return !!pattern.test(str);\n}\n\nString.prototype.replaceAll = function(search, replacement) {\n var target = this;\n return target.split(search).join(replacement);\n};\n\nfunction udpateDisplayedItems(e) {\n console.log(e.target.checked);\n localStorage.setItem('contenttype', e.target.checked);\n if (e.target.checked) {\n localStorage.setItem('content-display', 'none');\n } else {\n localStorage.setItem('content-display', 'block');\n }\n setDisplayedItems();\n}\nfunction setDisplayedItems() {\n setValueFromLocalStorage('contenttype');\n setValueFromLocalStorage('content-display');\n}"]},"metadata":{},"sourceType":"module"}
\ No newline at end of file
diff --git a/node_modules/.cache/babel-loader/e84dbeb0b217d3a7f8eb48156308b981.json b/node_modules/.cache/babel-loader/e84dbeb0b217d3a7f8eb48156308b981.json
new file mode 100644
index 00000000..fbeac6e2
--- /dev/null
+++ b/node_modules/.cache/babel-loader/e84dbeb0b217d3a7f8eb48156308b981.json
@@ -0,0 +1 @@
+{"ast":null,"code":"var _jsxFileName = \"/home/seanedmunds/dev/home-page/src/index.js\",\n _s = $RefreshSig$();\n\nimport React from 'react';\nimport { useState, useEffect } from 'react';\nimport ReactDOM from 'react-dom'; //import { unstable_createPortal } from 'react-dom';\n\nimport './index.css';\nimport { jsxDEV as _jsxDEV } from \"react/jsx-dev-runtime\";\n\nconst setValueFromLocalStorage = property => {\n let value = localStorage.getItem(property);\n setValue(property, value);\n};\n\nconst setValue = (property, value) => {\n if (value) {\n document.documentElement.style.setProperty(`--${property}`, value);\n const input = document.querySelector(`#${property}`);\n\n if (input) {\n value = value.replace('px', '');\n input.value = value;\n }\n }\n};\n\nfunction Homepage() {\n setTheme();\n setDisplayedItems();\n return /*#__PURE__*/_jsxDEV(\"main\", {\n id: \"container\",\n className: \"fade\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Search, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 29,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 28,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Header, {\n date: date(),\n greet: greet()\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 32,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 31,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Applications, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 38,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 37,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Bookmarks, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 41,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 40,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(ModalMenu, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 44,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 43,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(ModalInit, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 47,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 46,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 27,\n columnNumber: 5\n }, this);\n}\n\n_c = Homepage;\n\nfunction Search() {\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"search\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"abackground\",\n children: [/*#__PURE__*/_jsxDEV(\"input\", {\n name: \"keywords\",\n type: \"text\",\n className: \"keyword\",\n id: \"keywords\",\n size: \"50\",\n spellCheck: \"true\",\n placeholder: \"\"\n /*onFocus={this.placeholder = \"\"} onBlur={this.placeholder = ''}*/\n ,\n autoComplete: \"off\",\n autoFocus: true,\n onKeyUp: handleKeyPress\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 57,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n id: \"searchType\",\n className: \"Input-label\",\n children: \"Google search\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 58,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 56,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 55,\n columnNumber: 5\n }, this);\n}\n\n_c2 = Search;\n\nfunction Header(props) {\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"header\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n id: \"greeting_block\",\n children: /*#__PURE__*/_jsxDEV(\"h1\", {\n id: \"header_greet\",\n children: props.greet\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 68,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 67,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"date_block\",\n children: [/*#__PURE__*/_jsxDEV(\"h2\", {\n id: \"header_date\",\n children: props.date\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 71,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(Clock, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 72,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 70,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 66,\n columnNumber: 5\n }, this);\n}\n\n_c3 = Header;\n\nfunction Applications() {\n let appList = getApps();\n var items = [];\n\n for (var i = 0; i < appList.apps.length; i++) {\n var safe = appList.apps[i].NSFW;\n var NSFWEnabled = localStorage.getItem(\"contenttype\");\n console.log(safe);\n\n if (safe === \"SAFE\") {\n items.push( /*#__PURE__*/_jsxDEV(App, {\n name: appList.apps[i].name,\n url: appList.apps[i].url,\n icon: appList.apps[i].icon,\n NSFW: appList.apps[i].NSFW\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 87,\n columnNumber: 9\n }, this));\n } else if (safe === \"NSFW\" && NSFWEnabled) {\n items.push( /*#__PURE__*/_jsxDEV(App, {\n name: appList.apps[i].name,\n url: appList.apps[i].url,\n icon: appList.apps[i].icon,\n NSFW: appList.apps[i].NSFW\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 97,\n columnNumber: 9\n }, this));\n } else {\n console.log(NSFWEnabled);\n }\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"apps\",\n children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n children: \"Applications\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 112,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"apps_loop\",\n children: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 113,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 111,\n columnNumber: 5\n }, this);\n}\n\n_c4 = Applications;\n\nfunction App(props) {\n let classNameType = props.NSFW + \"-content\";\n let hrefUrl = \"https://\" + props.url;\n let iconName = \"mdi-\" + props.icon;\n return /*#__PURE__*/_jsxDEV(\"div\", {\n className: classNameType,\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: hrefUrl,\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_item\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_icon\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify icon\",\n \"data-icon\": iconName\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 130,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 129,\n columnNumber: 13\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_text\",\n children: [/*#__PURE__*/_jsxDEV(\"span\", {\n id: \"app-name\",\n children: props.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 133,\n columnNumber: 15\n }, this), /*#__PURE__*/_jsxDEV(\"span\", {\n id: \"app-address\",\n children: props.url\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 134,\n columnNumber: 15\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 132,\n columnNumber: 13\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 128,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 127,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 126,\n columnNumber: 7\n }, this);\n}\n\n_c5 = App;\n\nfunction Bookmarks() {\n let bookmarkList = getLinks();\n var items = [];\n\n for (var i = 0; i < bookmarkList.bookmarks.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(LinkGroups, {\n category: bookmarkList.bookmarks[i].category,\n links: bookmarkList.bookmarks[i].links\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 147,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"links\",\n children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n children: \"Bookmarks\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 156,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"links_loop\",\n children: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 157,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 155,\n columnNumber: 5\n }, this);\n}\n\n_c6 = Bookmarks;\n\nfunction LinkGroups(props) {\n var items = [];\n\n for (var i = 0; i < props.links.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(LinkItem, {\n link: props.links[i]\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 168,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"links_item\",\n children: [/*#__PURE__*/_jsxDEV(\"h4\", {\n children: props.category\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 176,\n columnNumber: 7\n }, this), items]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 175,\n columnNumber: 5\n }, this);\n}\n\n_c7 = LinkGroups;\n\nfunction LinkItem(props) {\n return /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: props.link.url,\n className: \"theme_color-border theme_text-select\",\n children: props.link.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 185,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 184,\n columnNumber: 5\n }, this);\n}\n\n_c8 = LinkItem;\n\nfunction ModalMenu() {\n var providers = getProviders();\n var items = [];\n\n for (var i = 0; i < providers.providers.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(Provider, {\n provider: providers.providers[i]\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 195,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"modal\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n children: [/*#__PURE__*/_jsxDEV(\"header\", {\n id: \"modal-header\",\n children: [/*#__PURE__*/_jsxDEV(\"h1\", {\n children: \"Options\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 205,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n href: \"#\",\n title: \"Close\",\n className: \"modal-close\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-close\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 207,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 206,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 204,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"h2\", {\n children: \"Color themes\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 211,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"modal-theme\",\n children: [/*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"blackboard\",\n className: \"theme-button theme-blackboard\",\n onClick: updateTheme,\n children: \"Blackboard\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 214,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"gazette\",\n className: \"theme-button theme-gazette\",\n onClick: updateTheme,\n children: \"Gazette\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 215,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"espresso\",\n className: \"theme-button theme-espresso\",\n onClick: updateTheme,\n children: \"Espresso\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 216,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cab\",\n className: \"theme-button theme-cab\",\n onClick: updateTheme,\n children: \"Cab\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 217,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cloud\",\n className: \"theme-button theme-cloud\",\n onClick: updateTheme,\n children: \"Cloud\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 218,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"lime\",\n className: \"theme-button theme-lime\",\n onClick: updateTheme,\n children: \"Lime\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 219,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"passion\",\n className: \"theme-button theme-passion\",\n onClick: updateTheme,\n children: \"Passion\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 220,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"blues\",\n className: \"theme-button theme-blues\",\n onClick: updateTheme,\n children: \"Blues\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 221,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"chalk\",\n className: \"theme-button theme-chalk\",\n onClick: updateTheme,\n children: \"Chalk\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 222,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"tron\",\n className: \"theme-button theme-tron\",\n onClick: updateTheme,\n children: \"Tron\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 223,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"paper\",\n className: \"theme-button theme-paper\",\n onClick: updateTheme,\n children: \"Paper\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 224,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cyberpunk\",\n className: \"theme-button theme-cyberpunk\",\n onClick: updateTheme,\n children: \"Cyberpunk\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 225,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"quadra\",\n className: \"theme-button theme-panam\",\n onClick: updateTheme,\n children: \"Quadra\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 226,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"panam\",\n className: \"theme-button theme-panam\",\n onClick: updateTheme,\n children: \"Panam\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 227,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"touch\",\n className: \"theme-button theme-touch\",\n onClick: updateTheme,\n children: \"Touch\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 228,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"peek\",\n className: \"theme-button theme-peek\",\n onClick: updateTheme,\n children: \"Peek\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 229,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 213,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"h2\", {\n children: \"Search options\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 233,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"providers\",\n children: /*#__PURE__*/_jsxDEV(\"table\", {\n children: /*#__PURE__*/_jsxDEV(\"tbody\", {\n children: [/*#__PURE__*/_jsxDEV(\"tr\", {\n children: [/*#__PURE__*/_jsxDEV(\"th\", {\n children: \"Website\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 238,\n columnNumber: 19\n }, this), /*#__PURE__*/_jsxDEV(\"th\", {\n children: \"Prefix\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 239,\n columnNumber: 19\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 237,\n columnNumber: 17\n }, this), items]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 236,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 235,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 234,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"header\", {\n id: \"modal-footer\",\n children: [/*#__PURE__*/_jsxDEV(\"a\", {\n href: \"https://github.com/jeroenpardon/\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-github-box\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 247,\n columnNumber: 54\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 247,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n href: \"https://materialdesignicons.com/\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-material-design\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 248,\n columnNumber: 54\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 248,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"sneaky\",\n children: [/*#__PURE__*/_jsxDEV(\"input\", {\n type: \"checkbox\",\n id: \"contenttype\",\n onChange: udpateDisplayedItems\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 249,\n columnNumber: 35\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n for: \"contenttype\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-domino-mask\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 250,\n columnNumber: 36\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 250,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 249,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 246,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 203,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 202,\n columnNumber: 5\n }, this);\n}\n\n_c9 = ModalMenu;\n\nfunction Provider(props) {\n return /*#__PURE__*/_jsxDEV(\"tr\", {\n children: [/*#__PURE__*/_jsxDEV(\"td\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: props.provider.url,\n children: props.provider.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 260,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 260,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"td\", {\n children: props.provider.prefix\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 261,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 259,\n columnNumber: 5\n }, this);\n}\n\n_c10 = Provider;\n\nfunction ModalInit() {\n return /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"modal_init\",\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n className: \"btn\",\n href: \"#modal\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify icon\",\n \"data-icon\": \"mdi-xbox-controller-menu\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 270,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 269,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 268,\n columnNumber: 5\n }, this);\n}\n\n_c11 = ModalInit;\nReactDOM.render( /*#__PURE__*/_jsxDEV(Homepage, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 277,\n columnNumber: 3\n}, this), document.getElementById('root')); //Functions below this line are for calculating data for\n//other functions\n\nfunction date() {\n let currentDate = new Date();\n let dateOptions = {\n weekday: \"long\",\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\"\n };\n let date = currentDate.toLocaleDateString(\"en-GB\", dateOptions);\n return date;\n}\n\nfunction fixDigits(k) {\n if (k < 10) {\n return \"0\" + k;\n } else {\n return k;\n }\n}\n\nfunction greet() {\n let currentTime = new Date();\n let greet = Math.floor(currentTime.getHours() / 6);\n let easterEggChance = Math.floor(Math.random() * 100);\n\n let greetings = require('./messages.json');\n\n let timeBased = [];\n let easterEggs = [];\n\n for (var i = 0; i < greetings.messages.length; i++) {\n if (greetings.messages[i].easteregg === \"FALSE\") {\n timeBased = timeBased.concat(greetings.messages[i]);\n } else {\n easterEggs = easterEggs.concat(greetings.messages[i]);\n }\n }\n\n if (easterEggChance > 10) {\n return timeBased[greet].message;\n } else {\n let easterEggText = Math.floor(Math.random() * easterEggs.length);\n return easterEggs[easterEggText].message;\n }\n}\n\nfunction Clock() {\n _s();\n\n const [date, setDate] = useState(new Date());\n\n function refreshClock() {\n setDate(new Date());\n }\n\n useEffect(() => {\n const timerId = setInterval(refreshClock, 1000);\n return function cleanup() {\n clearInterval(timerId);\n };\n }, []);\n var hour = date.getHours();\n var minutes = date.getMinutes(); //var seconds = date.getSeconds();\n\n var midday = \"AM\";\n midday = hour >= 12 ? \"PM\" : \"AM\";\n hour = hour === 0 ? 12 : hour > 12 ? hour - 12 : hour;\n minutes = fixDigits(minutes); //seconds = fixDigits(seconds);\n\n let time = hour + \":\" + minutes + \" \" + midday;\n return /*#__PURE__*/_jsxDEV(\"h2\", {\n id: \"clock\",\n children: time\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 348,\n columnNumber: 5\n }, this);\n}\n\n_s(Clock, \"Gqi45WOZhU2c0BLYX0HoJeiR0fk=\");\n\n_c12 = Clock;\n\nfunction getApps() {\n let applications = require('./apps.json');\n\n return applications;\n}\n\nfunction getLinks() {\n let links = require('./links.json');\n\n return links;\n}\n\nfunction getProviders() {\n let providers = require('./providers.json');\n\n return providers;\n}\n\nfunction getThemes() {\n let themes = require('./themes.json');\n\n return themes;\n}\n\nfunction updateTheme(e) {\n var themes = getThemes();\n var themeName = e.target.innerHTML.toLowerCase();\n var index = themes.themes.findIndex(function (item, i) {\n return item.name === themeName;\n });\n console.log(themes.themes[index]);\n localStorage.setItem(\"image-background\", themes.themes[index].imagebackground);\n localStorage.setItem(\"color-background\", themes.themes[index].colorbackground);\n localStorage.setItem(\"color-search-background\", themes.themes[index].colorserachbackground);\n localStorage.setItem(\"color-text-pri\", themes.themes[index].colortextpri);\n localStorage.setItem(\"color-text-acc\", themes.themes[index].colortextacc);\n localStorage.setItem(\"color-border\", themes.themes[index].colorborder); //document.documentElement.style.setProperty(prop, `var(--${themeName}${prop.substring(10)})`);\n\n setTheme();\n}\n\nfunction setTheme() {\n setValueFromLocalStorage('image-background');\n setValueFromLocalStorage('color-background');\n setValueFromLocalStorage('color-search-background');\n setValueFromLocalStorage('color-text-pri');\n setValueFromLocalStorage('color-text-acc');\n setValueFromLocalStorage('color-border');\n setValueFromLocalStorage('content-display');\n}\n\nfunction handleKeyPress(e) {\n var sindex = 0;\n var cycle = false;\n var key = e.keyCode || e.which;\n var text = e.target.value.replaceAll(\"+\", \"%2B\");\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n\n if (key == 13) {\n // Search functions\n search(text);\n }\n\n if (key == 9) {\n // Tab Completion Functions\n e.preventDefault();\n e.stopPropagation();\n\n if (text[0] === ';') {\n switch (option) {\n case 't':\n var streamers = ['admiralbahroo', 'moonmoon_ow', 'witwix'];\n\n if (!subtext || cycle) {\n cycle = true;\n if (sindex > streamers.length - 1) sindex = 0;\n document.getElementById(\"keywords\").value = ';t ' + streamers[sindex++];\n return;\n }\n\n for (var streamer of streamers) {\n if (subtext === streamer.substr(0, subtext.length)) {\n document.getElementById(\"keywords\").value = ';t ' + streamer;\n return;\n }\n }\n\n break;\n }\n }\n }\n\n if (key == 32) {\n //Space to go to search\n updateLabel(text);\n }\n\n sindex = 0;\n cycle = false;\n updateLabel(text);\n}\n\nfunction updateLabel(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n\n if (text[0] === '/') {\n // if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n document.getElementById(\"searchType\").innerHTML = \"Allmusic search\";\n break;\n\n case \"d\":\n document.getElementById(\"searchType\").innerHTML = \"Duck Duck Go search\";\n break;\n\n case \"di\":\n document.getElementById(\"searchType\").innerHTML = \"Discogs search\";\n break;\n\n case \"i\":\n document.getElementById(\"searchType\").innerHTML = \"IMDB search\";\n break;\n\n case \"m\":\n document.getElementById(\"searchType\").innerHTML = \"TheMovieDB search\";\n break;\n\n case \"r\":\n document.getElementById(\"searchType\").innerHTML = \"Reddit search\";\n break;\n\n case \"q\":\n document.getElementById(\"searchType\").innerHTML = \"Qwant search\";\n break;\n\n case \"so\":\n document.getElementById(\"searchType\").innerHTML = \"Soundcloud search\";\n break;\n\n case \"s\":\n document.getElementById(\"searchType\").innerHTML = \"Spotify search\";\n break;\n\n case \"tv\":\n document.getElementById(\"searchType\").innerHTML = \"TheTVDB search\";\n break;\n\n case \"t\":\n document.getElementById(\"searchType\").innerHTML = \"Trakt search\";\n break;\n\n case \"y\":\n document.getElementById(\"searchType\").innerHTML = \"YouTube search\";\n break;\n\n case \"w\":\n document.getElementById(\"searchType\").innerHTML = \"Wikipedia search\";\n break;\n\n case \"p\":\n document.getElementById(\"searchType\").innerHTML = \"Plex search\";\n break;\n\n case \"rt\":\n document.getElementById(\"searchType\").innerHTML = \"Rotten Tomatoes search\";\n break;\n\n default:\n document.getElementById(\"searchType\").innerHTML = \"Invalid search\";\n break;\n }\n } else {\n document.getElementById(\"searchType\").innerHTML = \"Google search\";\n }\n}\n\nfunction search(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n\n if (text[0] === '/') {\n if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n window.location = \"https://www.allmusic.com/search/all/\" + subtext;\n break;\n\n case \"d\":\n window.location = \"https://duckduckgo.com/?q=\" + subtext;\n break;\n\n case \"di\":\n window.location = \"https://www.discogs.com/search/?q=\" + subtext;\n break;\n\n case \"i\":\n window.location = \"https://www.imdb.com/find?q=\" + subtext;\n break;\n\n case \"m\":\n window.location = \"https://www.themoviedb.org/search?query=\" + subtext;\n break;\n\n case \"r\":\n window.location = \"https://www.reddit.com/search?q=\" + subtext;\n break;\n\n case \"q\":\n window.location = \"https://www.qwant.com/?q=\" + subtext;\n break;\n\n case \"so\":\n window.location = \"https://soundcloud.com/search?q=\" + subtext;\n break;\n\n case \"s\":\n window.location = \"https://open.spotify.com/search/results/\" + subtext;\n break;\n\n case \"t\":\n window.location = \"https://trakt.tv/search?query=\" + subtext;\n break;\n\n case \"tv\":\n window.location = \"https://www.thetvdb.com/search?query=\" + subtext;\n break;\n\n case \"y\":\n window.location = \"https://www.youtube.com/results?search_query=\" + subtext;\n break;\n\n case \"w\":\n window.location = \"https://en.wikipedia.org/w/index.php?search=\" + subtext;\n break;\n\n case \"p\":\n window.location = \"https://app.plex.tv/desktop/#!/search?query=\" + subtext;\n break;\n\n case \"rt\":\n window.location = \"https://www.rottentomatoes.com/search?search=\" + subtext;\n break;\n }\n } else {\n var option = text.substr(1);\n\n switch (option) {\n case \"d\":\n window.location = \"https://www.duckduckgo.com\";\n break;\n\n case \"y\":\n window.location = \"https://www.youtube.com\";\n break;\n\n case \"r\":\n window.location = \"https://reddit.com\";\n break;\n\n case \"s\":\n window.location = \"https://open.spotify.com\";\n break;\n }\n }\n } else if (validURL(text)) {\n if (containsProtocol(text)) window.location = text;else window.location = \"https://\" + text;\n } else {\n window.location = \"https://www.google.com/search?q=\" + text;\n }\n} // Source: https://stackoverflow.com/questions/5717093/check-if-a-javascript-string-is-a-url\n\n\nfunction validURL(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/)?' + // protocol\n '((([a-z\\\\d]([a-z\\\\d-]*[a-z\\\\d])*)\\\\.)+[a-z]{2,}|' + // domain name\n '((\\\\d{1,3}\\\\.){3}\\\\d{1,3}))' + // OR ip (v4) address\n '(\\\\:\\\\d+)?(\\\\/[-a-z\\\\d%_.~+]*)*' + // port and path\n '(\\\\?[;&a-z\\\\d%_.~+=-]*)?' + // query string\n '(\\\\#[-a-z\\\\d_]*)?$', 'i'); // fragment locator\n\n return !!pattern.test(str);\n}\n\nfunction containsProtocol(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/){1}.*', 'i');\n return !!pattern.test(str);\n}\n\nString.prototype.replaceAll = function (search, replacement) {\n var target = this;\n return target.split(search).join(replacement);\n};\n\nfunction udpateDisplayedItems(e) {\n localStorage.setItem('contenttype', e.target.checked);\n\n if (e.target.checked) {\n localStorage.setItem('content-display', 'none');\n } else {\n localStorage.setItem('content-display', 'block');\n }\n\n setDisplayedItems();\n}\n\nfunction setDisplayedItems() {\n setValueFromLocalStorage('contenttype');\n setValueFromLocalStorage('content-display');\n var checked = localStorage.getItem('contenttype');\n console.log(checked); //document.getElementById('contenttype').checked = \n}\n\nvar _c, _c2, _c3, _c4, _c5, _c6, _c7, _c8, _c9, _c10, _c11, _c12;\n\n$RefreshReg$(_c, \"Homepage\");\n$RefreshReg$(_c2, \"Search\");\n$RefreshReg$(_c3, \"Header\");\n$RefreshReg$(_c4, \"Applications\");\n$RefreshReg$(_c5, \"App\");\n$RefreshReg$(_c6, \"Bookmarks\");\n$RefreshReg$(_c7, \"LinkGroups\");\n$RefreshReg$(_c8, \"LinkItem\");\n$RefreshReg$(_c9, \"ModalMenu\");\n$RefreshReg$(_c10, \"Provider\");\n$RefreshReg$(_c11, \"ModalInit\");\n$RefreshReg$(_c12, \"Clock\");","map":{"version":3,"sources":["/home/seanedmunds/dev/home-page/src/index.js"],"names":["React","useState","useEffect","ReactDOM","setValueFromLocalStorage","property","value","localStorage","getItem","setValue","document","documentElement","style","setProperty","input","querySelector","replace","Homepage","setTheme","setDisplayedItems","date","greet","Search","handleKeyPress","Header","props","Applications","appList","getApps","items","i","apps","length","safe","NSFW","NSFWEnabled","console","log","push","name","url","icon","App","classNameType","hrefUrl","iconName","Bookmarks","bookmarkList","getLinks","bookmarks","category","links","LinkGroups","LinkItem","link","ModalMenu","providers","getProviders","updateTheme","udpateDisplayedItems","Provider","provider","prefix","ModalInit","render","getElementById","currentDate","Date","dateOptions","weekday","year","month","day","toLocaleDateString","fixDigits","k","currentTime","Math","floor","getHours","easterEggChance","random","greetings","require","timeBased","easterEggs","messages","easteregg","concat","message","easterEggText","Clock","setDate","refreshClock","timerId","setInterval","cleanup","clearInterval","hour","minutes","getMinutes","midday","time","applications","getThemes","themes","e","themeName","target","innerHTML","toLowerCase","index","findIndex","item","setItem","imagebackground","colorbackground","colorserachbackground","colortextpri","colortextacc","colorborder","sindex","cycle","key","keyCode","which","text","replaceAll","option","substr","indexOf","subtext","search","preventDefault","stopPropagation","streamers","streamer","updateLabel","window","location","validURL","containsProtocol","str","pattern","RegExp","test","String","prototype","replacement","split","join","checked"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { useState, useEffect } from 'react';\nimport ReactDOM from 'react-dom';\n//import { unstable_createPortal } from 'react-dom';\nimport './index.css';\n\nconst setValueFromLocalStorage = property => {\n let value = localStorage.getItem(property);\n setValue(property, value);\n};\nconst setValue = (property, value) => {\n if (value) {\n document.documentElement.style.setProperty(`--${property}`, value);\n\n const input = document.querySelector(`#${property}`);\n if (input) {\n value = value.replace('px', '');\n input.value = value;\n }\n }\n};\n\nfunction Homepage() {\n setTheme();\n setDisplayedItems();\n return (\n \n \n \n
\n \n \n
\n \n \n \n
\n \n \n
\n \n \n
\n \n );\n}\n\nfunction Search() {\n return (\n \n )\n}\n\nfunction Header(props) {\n return (\n \n );\n}\n\nfunction Applications() {\n let appList = getApps();\n var items = [];\n for (var i = 0; i < appList.apps.length; i++) {\n var safe = appList.apps[i].NSFW;\n var NSFWEnabled = localStorage.getItem(\"contenttype\");\n console.log(safe);\n if (safe === \"SAFE\") {\n items.push(\n \n );\n } else if (safe === \"NSFW\" && NSFWEnabled) {\n items.push(\n \n );\n } else {\n console.log(NSFWEnabled);\n }\n \n }\n return (\n \n Applications
\n \n {items}\n
\n \n );\n}\n\nfunction App(props) {\n \n let classNameType = props.NSFW + \"-content\";\n let hrefUrl = \"https://\" + props.url;\n let iconName = \"mdi-\" + props.icon;\n return (\n \n );\n}\n\nfunction Bookmarks() {\n let bookmarkList = getLinks();\n var items = [];\n for (var i = 0; i < bookmarkList.bookmarks.length; i++) {\n items.push(\n \n );\n }\n return (\n \n Bookmarks
\n \n {items}\n
\n \n );\n}\n\nfunction LinkGroups(props) {\n var items = [];\n for (var i = 0; i < props.links.length; i++) {\n items.push(\n \n );\n }\n return (\n \n
{props.category}
\n {items}\n \n );\n}\n\nfunction LinkItem(props) {\n return (\n \n );\n}\n\nfunction ModalMenu() {\n var providers = getProviders();\n var items = [];\n for (var i = 0; i < providers.providers.length; i++) {\n items.push(\n \n );\n }\n return (\n \n \n \n\n
Color themes
\n\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n\n\n
Search options
\n
\n \n \n \n | Website | \n Prefix | \n
\n {items}\n \n
\n \n\n \n
\n \n );\n}\n\nfunction Provider(props) {\n return (\n \n | {props.provider.name} | \n {props.provider.prefix} | \n
\n );\n}\n\nfunction ModalInit() {\n return (\n \n );\n}\n\nReactDOM.render(\n ,\n document.getElementById('root')\n);\n\n//Functions below this line are for calculating data for\n//other functions\n\nfunction date() {\n let currentDate = new Date();\n let dateOptions = {\n weekday: \"long\",\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\"\n };\n let date = currentDate.toLocaleDateString(\"en-GB\", dateOptions);\n return date;\n}\nfunction fixDigits(k) {\n if (k < 10) {\n return \"0\" + k;\n }\n else {\n return k;\n }\n}\nfunction greet() {\n let currentTime = new Date();\n let greet = Math.floor(currentTime.getHours() / 6);\n let easterEggChance = Math.floor(Math.random() * 100);\n let greetings = require('./messages.json');\n let timeBased = [];\n let easterEggs = [];\n for (var i = 0; i < greetings.messages.length; i++) {\n if (greetings.messages[i].easteregg === \"FALSE\") {\n timeBased = timeBased.concat(greetings.messages[i]);\n } else {\n easterEggs = easterEggs.concat(greetings.messages[i]);\n }\n }\n if (easterEggChance > 10) {\n return timeBased[greet].message;\n } else {\n let easterEggText = Math.floor(Math.random() * easterEggs.length);\n return easterEggs[easterEggText].message;\n }\n}\nfunction Clock() {\n const [date, setDate] = useState(new Date());\n\n function refreshClock() {\n setDate(new Date());\n }\n useEffect(() => {\n const timerId = setInterval(refreshClock, 1000);\n return function cleanup() {\n clearInterval(timerId);\n };\n }, []);\n\n var hour = date.getHours();\n var minutes = date.getMinutes();\n //var seconds = date.getSeconds();\n var midday = \"AM\";\n midday = (hour >= 12) ? \"PM\" : \"AM\";\n hour = (hour === 0) ? 12 : ((hour > 12) ? (hour - 12) : hour);\n minutes = fixDigits(minutes);\n //seconds = fixDigits(seconds);\n let time = hour + \":\" + minutes + \" \" + midday;\n\n return (\n {time}
\n\n );\n}\nfunction getApps() {\n let applications = require('./apps.json');\n return applications;\n}\nfunction getLinks() {\n let links = require('./links.json');\n return links;\n}\nfunction getProviders() {\n let providers = require('./providers.json');\n return providers;\n}\nfunction getThemes() {\n let themes = require('./themes.json');\n return themes;\n}\n\nfunction updateTheme(e) {\n var themes = getThemes();\n var themeName = e.target.innerHTML.toLowerCase();\n var index = themes.themes.findIndex(function(item, i){\n return item.name === themeName\n });\n console.log(themes.themes[index]);\n localStorage.setItem(\"image-background\", themes.themes[index].imagebackground);\n localStorage.setItem(\"color-background\", themes.themes[index].colorbackground);\n localStorage.setItem(\"color-search-background\", themes.themes[index].colorserachbackground);\n localStorage.setItem(\"color-text-pri\",themes.themes[index].colortextpri);\n localStorage.setItem(\"color-text-acc\", themes.themes[index].colortextacc);\n localStorage.setItem(\"color-border\", themes.themes[index].colorborder);\n \n //document.documentElement.style.setProperty(prop, `var(--${themeName}${prop.substring(10)})`);\n setTheme();\n}\n\nfunction setTheme() {\n setValueFromLocalStorage('image-background');\n setValueFromLocalStorage('color-background');\n setValueFromLocalStorage('color-search-background');\n setValueFromLocalStorage('color-text-pri');\n setValueFromLocalStorage('color-text-acc');\n setValueFromLocalStorage('color-border');\n setValueFromLocalStorage('content-display');\n}\n\nfunction handleKeyPress(e) {\n var sindex = 0;\n var cycle = false;\n var key = e.keyCode || e.which;\n var text = e.target.value.replaceAll(\"+\", \"%2B\");\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n if (key == 13) { // Search functions\n search(text);\n }\n if (key == 9) { // Tab Completion Functions\n e.preventDefault();\n e.stopPropagation();\n if (text[0] === ';') {\n switch (option) {\n case 't':\n var streamers = ['admiralbahroo', 'moonmoon_ow', 'witwix'];\n if (!subtext || cycle) {\n cycle = true;\n if (sindex > streamers.length - 1) sindex = 0;\n document.getElementById(\"keywords\").value = ';t ' + streamers[sindex++];\n return;\n }\n for (var streamer of streamers) {\n if (subtext === streamer.substr(0, subtext.length)) {\n document.getElementById(\"keywords\").value = ';t ' + streamer;\n return;\n }\n }\n break;\n }\n }\n }\n if(key == 32){ //Space to go to search\nupdateLabel(text);\n }\n sindex = 0;\n cycle = false;\n updateLabel(text);\n}\n\nfunction updateLabel(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n if (text[0] === '/') {\n// if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n document.getElementById(\"searchType\").innerHTML = \"Allmusic search\";\n break;\n case \"d\":\n document.getElementById(\"searchType\").innerHTML = \"Duck Duck Go search\";\n break;\n case \"di\":\n document.getElementById(\"searchType\").innerHTML = \"Discogs search\";\n break;\n case \"i\":\n document.getElementById(\"searchType\").innerHTML = \"IMDB search\";\n break;\n case \"m\":\n document.getElementById(\"searchType\").innerHTML = \"TheMovieDB search\";\n break;\n case \"r\":\n document.getElementById(\"searchType\").innerHTML = \"Reddit search\";\n break;\n case \"q\":\n document.getElementById(\"searchType\").innerHTML = \"Qwant search\";\n break;\n case \"so\":\n document.getElementById(\"searchType\").innerHTML = \"Soundcloud search\";\n break;\n case \"s\":\n document.getElementById(\"searchType\").innerHTML = \"Spotify search\";\n break;\n case \"tv\":\n document.getElementById(\"searchType\").innerHTML = \"TheTVDB search\";\n break;\n case \"t\":\n document.getElementById(\"searchType\").innerHTML = \"Trakt search\";\n break;\n case \"y\":\n document.getElementById(\"searchType\").innerHTML = \"YouTube search\";\n break;\n case \"w\":\n document.getElementById(\"searchType\").innerHTML = \"Wikipedia search\";\n break;\n case \"p\":\n document.getElementById(\"searchType\").innerHTML = \"Plex search\";\n break;\n case \"rt\":\n document.getElementById(\"searchType\").innerHTML = \"Rotten Tomatoes search\";\n break;\n default:\n document.getElementById(\"searchType\").innerHTML = \"Invalid search\";\n break;\n }\n}else {\n document.getElementById(\"searchType\").innerHTML = \"Google search\";\n }\n}\n\nfunction search(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n if (text[0] === '/') {\n if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n window.location = \"https://www.allmusic.com/search/all/\" + subtext;\n break;\n case \"d\":\n window.location = \"https://duckduckgo.com/?q=\" + subtext;\n break;\n case \"di\":\n window.location = \"https://www.discogs.com/search/?q=\" + subtext;\n break;\n case \"i\":\n window.location = \"https://www.imdb.com/find?q=\" + subtext;\n break;\n case \"m\":\n window.location = \"https://www.themoviedb.org/search?query=\" + subtext;\n break;\n case \"r\":\n window.location = \"https://www.reddit.com/search?q=\" + subtext;\n break;\n case \"q\":\n window.location = \"https://www.qwant.com/?q=\" + subtext;\n break;\n case \"so\":\n window.location = \"https://soundcloud.com/search?q=\" + subtext;\n break;\n case \"s\":\n window.location = \"https://open.spotify.com/search/results/\" + subtext;\n break;\n case \"t\":\n window.location = \"https://trakt.tv/search?query=\" + subtext;\n break;\n case \"tv\":\n window.location = \"https://www.thetvdb.com/search?query=\" + subtext;\n break;\n case \"y\":\n window.location = \"https://www.youtube.com/results?search_query=\" + subtext;\n break;\n case \"w\":\n window.location = \"https://en.wikipedia.org/w/index.php?search=\" + subtext;\n break;\n case \"p\":\n window.location = \"https://app.plex.tv/desktop/#!/search?query=\" + subtext;\n break;\n case \"rt\":\n window.location = \"https://www.rottentomatoes.com/search?search=\" + subtext;\n break;\n }\n } else {\n var option = text.substr(1);\n switch (option) {\n case \"d\":\n window.location = \"https://www.duckduckgo.com\";\n break;\n case \"y\":\n window.location = \"https://www.youtube.com\";\n break;\n case \"r\":\n window.location = \"https://reddit.com\";\n break;\n case \"s\":\n window.location = \"https://open.spotify.com\";\n break;\n }\n }\n } else if (validURL(text)) {\n if (containsProtocol(text))\n window.location = text;\n else\n window.location = \"https://\" + text;\n } else {\n window.location = \"https://www.google.com/search?q=\" + text;\n }\n}\n\n// Source: https://stackoverflow.com/questions/5717093/check-if-a-javascript-string-is-a-url\nfunction validURL(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/)?' + // protocol\n '((([a-z\\\\d]([a-z\\\\d-]*[a-z\\\\d])*)\\\\.)+[a-z]{2,}|' + // domain name\n '((\\\\d{1,3}\\\\.){3}\\\\d{1,3}))' + // OR ip (v4) address\n '(\\\\:\\\\d+)?(\\\\/[-a-z\\\\d%_.~+]*)*' + // port and path\n '(\\\\?[;&a-z\\\\d%_.~+=-]*)?' + // query string\n '(\\\\#[-a-z\\\\d_]*)?$', 'i'); // fragment locator\n return !!pattern.test(str);\n}\n\nfunction containsProtocol(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/){1}.*', 'i');\n return !!pattern.test(str);\n}\n\nString.prototype.replaceAll = function(search, replacement) {\n var target = this;\n return target.split(search).join(replacement);\n};\n\nfunction udpateDisplayedItems(e) {\n localStorage.setItem('contenttype', e.target.checked);\n if (e.target.checked) {\n localStorage.setItem('content-display', 'none');\n } else {\n localStorage.setItem('content-display', 'block');\n }\n setDisplayedItems();\n}\nfunction setDisplayedItems() {\n setValueFromLocalStorage('contenttype');\n setValueFromLocalStorage('content-display');\n var checked = localStorage.getItem('contenttype');\n console.log(checked);\n //document.getElementById('contenttype').checked = \n}"]},"metadata":{},"sourceType":"module"}
\ No newline at end of file
diff --git a/node_modules/.cache/babel-loader/ebdf427f485bbf62a1a30f08946363f5.json b/node_modules/.cache/babel-loader/ebdf427f485bbf62a1a30f08946363f5.json
new file mode 100644
index 00000000..81609702
--- /dev/null
+++ b/node_modules/.cache/babel-loader/ebdf427f485bbf62a1a30f08946363f5.json
@@ -0,0 +1 @@
+{"ast":null,"code":"var _jsxFileName = \"/home/seanedmunds/dev/home-page/src/index.js\",\n _s = $RefreshSig$();\n\nimport React from 'react';\nimport { useState, useEffect } from 'react';\nimport ReactDOM from 'react-dom'; //import { unstable_createPortal } from 'react-dom';\n\nimport './index.css';\nimport { jsxDEV as _jsxDEV } from \"react/jsx-dev-runtime\";\n\nconst setValueFromLocalStorage = property => {\n let value = localStorage.getItem(property);\n setValue(property, value);\n};\n\nconst setValue = (property, value) => {\n if (value) {\n document.documentElement.style.setProperty(`--${property}`, value);\n const input = document.querySelector(`#${property}`);\n\n if (input) {\n value = value.replace('px', '');\n input.value = value;\n }\n }\n};\n\nfunction Homepage() {\n setTheme();\n return /*#__PURE__*/_jsxDEV(\"main\", {\n id: \"container\",\n className: \"fade\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Search, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 28,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 27,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Header, {\n date: date(),\n greet: greet()\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 31,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 30,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Applications, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 37,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 36,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Bookmarks, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 40,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 39,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(ModalMenu, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 43,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 42,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(ModalInit, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 46,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 45,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 26,\n columnNumber: 5\n }, this);\n}\n\n_c = Homepage;\n\nfunction Search() {\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"search\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"abackground\",\n children: [/*#__PURE__*/_jsxDEV(\"input\", {\n name: \"keywords\",\n type: \"text\",\n className: \"keyword\",\n id: \"keywords\",\n size: \"50\",\n spellCheck: \"true\",\n placeholder: \"\"\n /*onFocus={this.placeholder = \"\"} onBlur={this.placeholder = ''}*/\n ,\n autoComplete: \"off\",\n autoFocus: true,\n onKeyUp: handleKeyPress\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 56,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n id: \"searchType\",\n className: \"Input-label\",\n children: \"Google search\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 57,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 55,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 54,\n columnNumber: 5\n }, this);\n}\n\n_c2 = Search;\n\nfunction Header(props) {\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"header\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n id: \"greeting_block\",\n children: /*#__PURE__*/_jsxDEV(\"h1\", {\n id: \"header_greet\",\n children: props.greet\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 67,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 66,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"date_block\",\n children: [/*#__PURE__*/_jsxDEV(\"h2\", {\n id: \"header_date\",\n children: props.date\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 70,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(Clock, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 71,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 69,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 65,\n columnNumber: 5\n }, this);\n}\n\n_c3 = Header;\n\nfunction Applications() {\n let appList = getApps();\n var items = [];\n\n for (var i = 0; i < appList.apps.length; i++) {\n var safe = appList.apps[i].NSFW;\n var NSFWEnabled = localStorage.getItem(\"contenttype\");\n\n if (safe === \"SAFE\") {\n items.push( /*#__PURE__*/_jsxDEV(App, {\n name: appList.apps[i].name,\n url: appList.apps[i].url,\n icon: appList.apps[i].icon,\n NSFW: appList.apps[i].NSFW\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 85,\n columnNumber: 9\n }, this));\n } else if (safe === \"NSFW\" && NSFWEnabled) {\n items.push( /*#__PURE__*/_jsxDEV(App, {\n name: appList.apps[i].name,\n url: appList.apps[i].url,\n icon: appList.apps[i].icon,\n NSFW: appList.apps[i].NSFW\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 95,\n columnNumber: 9\n }, this));\n } else {}\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"apps\",\n children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n children: \"Applications\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 110,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"apps_loop\",\n children: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 111,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 109,\n columnNumber: 5\n }, this);\n}\n\n_c4 = Applications;\n\nfunction App(props) {\n let classNameType = props.NSFW + \"-content\";\n let hrefUrl = \"https://\" + props.url;\n let iconName = \"mdi-\" + props.icon;\n return /*#__PURE__*/_jsxDEV(\"div\", {\n className: classNameType,\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: hrefUrl,\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_item\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_icon\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify icon\",\n \"data-icon\": iconName\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 128,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 127,\n columnNumber: 13\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_text\",\n children: [/*#__PURE__*/_jsxDEV(\"span\", {\n id: \"app-name\",\n children: props.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 131,\n columnNumber: 15\n }, this), /*#__PURE__*/_jsxDEV(\"span\", {\n id: \"app-address\",\n children: props.url\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 132,\n columnNumber: 15\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 130,\n columnNumber: 13\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 126,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 125,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 124,\n columnNumber: 7\n }, this);\n}\n\n_c5 = App;\n\nfunction Bookmarks() {\n let bookmarkList = getLinks();\n var items = [];\n\n for (var i = 0; i < bookmarkList.bookmarks.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(LinkGroups, {\n category: bookmarkList.bookmarks[i].category,\n links: bookmarkList.bookmarks[i].links\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 145,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"links\",\n children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n children: \"Bookmarks\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 154,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"links_loop\",\n children: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 155,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 153,\n columnNumber: 5\n }, this);\n}\n\n_c6 = Bookmarks;\n\nfunction LinkGroups(props) {\n var items = [];\n\n for (var i = 0; i < props.links.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(LinkItem, {\n link: props.links[i]\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 166,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"links_item\",\n children: [/*#__PURE__*/_jsxDEV(\"h4\", {\n children: props.category\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 174,\n columnNumber: 7\n }, this), items]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 173,\n columnNumber: 5\n }, this);\n}\n\n_c7 = LinkGroups;\n\nfunction LinkItem(props) {\n return /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: props.link.url,\n className: \"theme_color-border theme_text-select\",\n children: props.link.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 183,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 182,\n columnNumber: 5\n }, this);\n}\n\n_c8 = LinkItem;\n\nfunction ModalMenu() {\n var providers = getProviders();\n var items = [];\n\n for (var i = 0; i < providers.providers.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(Provider, {\n provider: providers.providers[i]\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 193,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"modal\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n children: [/*#__PURE__*/_jsxDEV(\"header\", {\n id: \"modal-header\",\n children: [/*#__PURE__*/_jsxDEV(\"h1\", {\n children: \"Options\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 203,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n href: \"#\",\n title: \"Close\",\n className: \"modal-close\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-close\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 205,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 204,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 202,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"h2\", {\n children: \"Color themes\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 209,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"modal-theme\",\n children: [/*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"blackboard\",\n className: \"theme-button theme-blackboard\",\n onClick: updateTheme,\n children: \"Blackboard\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 212,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"gazette\",\n className: \"theme-button theme-gazette\",\n onClick: updateTheme,\n children: \"Gazette\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 213,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"espresso\",\n className: \"theme-button theme-espresso\",\n onClick: updateTheme,\n children: \"Espresso\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 214,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cab\",\n className: \"theme-button theme-cab\",\n onClick: updateTheme,\n children: \"Cab\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 215,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cloud\",\n className: \"theme-button theme-cloud\",\n onClick: updateTheme,\n children: \"Cloud\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 216,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"lime\",\n className: \"theme-button theme-lime\",\n onClick: updateTheme,\n children: \"Lime\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 217,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"passion\",\n className: \"theme-button theme-passion\",\n onClick: updateTheme,\n children: \"Passion\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 218,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"blues\",\n className: \"theme-button theme-blues\",\n onClick: updateTheme,\n children: \"Blues\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 219,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"chalk\",\n className: \"theme-button theme-chalk\",\n onClick: updateTheme,\n children: \"Chalk\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 220,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"tron\",\n className: \"theme-button theme-tron\",\n onClick: updateTheme,\n children: \"Tron\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 221,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"paper\",\n className: \"theme-button theme-paper\",\n onClick: updateTheme,\n children: \"Paper\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 222,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cyberpunk\",\n className: \"theme-button theme-cyberpunk\",\n onClick: updateTheme,\n children: \"Cyberpunk\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 223,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"quadra\",\n className: \"theme-button theme-panam\",\n onClick: updateTheme,\n children: \"Quadra\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 224,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"panam\",\n className: \"theme-button theme-panam\",\n onClick: updateTheme,\n children: \"Panam\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 225,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"touch\",\n className: \"theme-button theme-touch\",\n onClick: updateTheme,\n children: \"Touch\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 226,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"peek\",\n className: \"theme-button theme-peek\",\n onClick: updateTheme,\n children: \"Peek\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 227,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 211,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"h2\", {\n children: \"Search options\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 231,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"providers\",\n children: /*#__PURE__*/_jsxDEV(\"table\", {\n children: /*#__PURE__*/_jsxDEV(\"tbody\", {\n children: [/*#__PURE__*/_jsxDEV(\"tr\", {\n children: [/*#__PURE__*/_jsxDEV(\"th\", {\n children: \"Website\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 236,\n columnNumber: 19\n }, this), /*#__PURE__*/_jsxDEV(\"th\", {\n children: \"Prefix\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 237,\n columnNumber: 19\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 235,\n columnNumber: 17\n }, this), items]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 234,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 233,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 232,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"header\", {\n id: \"modal-footer\",\n children: [/*#__PURE__*/_jsxDEV(\"a\", {\n href: \"https://github.com/jeroenpardon/\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-github-box\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 245,\n columnNumber: 54\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 245,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n href: \"https://materialdesignicons.com/\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-material-design\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 246,\n columnNumber: 54\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 246,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"sneaky\",\n children: [/*#__PURE__*/_jsxDEV(\"input\", {\n type: \"checkbox\",\n id: \"contenttype\",\n onChange: udpateDisplayedItems\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 247,\n columnNumber: 35\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n for: \"contenttype\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-domino-mask\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 248,\n columnNumber: 36\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 248,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 247,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 244,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 201,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 200,\n columnNumber: 5\n }, this);\n}\n\n_c9 = ModalMenu;\n\nfunction Provider(props) {\n return /*#__PURE__*/_jsxDEV(\"tr\", {\n children: [/*#__PURE__*/_jsxDEV(\"td\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: props.provider.url,\n children: props.provider.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 258,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 258,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"td\", {\n children: props.provider.prefix\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 259,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 257,\n columnNumber: 5\n }, this);\n}\n\n_c10 = Provider;\n\nfunction ModalInit() {\n setDisplayedItems();\n return /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"modal_init\",\n children: [/*#__PURE__*/_jsxDEV(\"a\", {\n className: \"btn\",\n href: \"#modal\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify icon\",\n \"data-icon\": \"mdi-xbox-controller-menu\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 269,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 268,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"script\", {\n type: \"javascript\",\n children: \"document.getElementById('contenttype').checked = checked;\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 271,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 267,\n columnNumber: 5\n }, this);\n}\n\n_c11 = ModalInit;\nReactDOM.render( /*#__PURE__*/_jsxDEV(Homepage, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 279,\n columnNumber: 3\n}, this), document.getElementById('root')); //Functions below this line are for calculating data for\n//other functions\n\nfunction date() {\n let currentDate = new Date();\n let dateOptions = {\n weekday: \"long\",\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\"\n };\n let date = currentDate.toLocaleDateString(\"en-GB\", dateOptions);\n return date;\n}\n\nfunction fixDigits(k) {\n if (k < 10) {\n return \"0\" + k;\n } else {\n return k;\n }\n}\n\nfunction greet() {\n let currentTime = new Date();\n let greet = Math.floor(currentTime.getHours() / 6);\n let easterEggChance = Math.floor(Math.random() * 100);\n\n let greetings = require('./messages.json');\n\n let timeBased = [];\n let easterEggs = [];\n\n for (var i = 0; i < greetings.messages.length; i++) {\n if (greetings.messages[i].easteregg === \"FALSE\") {\n timeBased = timeBased.concat(greetings.messages[i]);\n } else {\n easterEggs = easterEggs.concat(greetings.messages[i]);\n }\n }\n\n if (easterEggChance > 10) {\n return timeBased[greet].message;\n } else {\n let easterEggText = Math.floor(Math.random() * easterEggs.length);\n return easterEggs[easterEggText].message;\n }\n}\n\nfunction Clock() {\n _s();\n\n const [date, setDate] = useState(new Date());\n\n function refreshClock() {\n setDate(new Date());\n }\n\n useEffect(() => {\n const timerId = setInterval(refreshClock, 1000);\n return function cleanup() {\n clearInterval(timerId);\n };\n }, []);\n var hour = date.getHours();\n var minutes = date.getMinutes(); //var seconds = date.getSeconds();\n\n var midday = \"AM\";\n midday = hour >= 12 ? \"PM\" : \"AM\";\n hour = hour === 0 ? 12 : hour > 12 ? hour - 12 : hour;\n minutes = fixDigits(minutes); //seconds = fixDigits(seconds);\n\n let time = hour + \":\" + minutes + \" \" + midday;\n return /*#__PURE__*/_jsxDEV(\"h2\", {\n id: \"clock\",\n children: time\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 350,\n columnNumber: 5\n }, this);\n}\n\n_s(Clock, \"Gqi45WOZhU2c0BLYX0HoJeiR0fk=\");\n\n_c12 = Clock;\n\nfunction getApps() {\n let applications = require('./apps.json');\n\n return applications;\n}\n\nfunction getLinks() {\n let links = require('./links.json');\n\n return links;\n}\n\nfunction getProviders() {\n let providers = require('./providers.json');\n\n return providers;\n}\n\nfunction getThemes() {\n let themes = require('./themes.json');\n\n return themes;\n}\n\nfunction updateTheme(e) {\n var themes = getThemes();\n var themeName = e.target.innerHTML.toLowerCase();\n var index = themes.themes.findIndex(function (item, i) {\n return item.name === themeName;\n });\n localStorage.setItem(\"image-background\", themes.themes[index].imagebackground);\n localStorage.setItem(\"color-background\", themes.themes[index].colorbackground);\n localStorage.setItem(\"color-search-background\", themes.themes[index].colorserachbackground);\n localStorage.setItem(\"color-text-pri\", themes.themes[index].colortextpri);\n localStorage.setItem(\"color-text-acc\", themes.themes[index].colortextacc);\n localStorage.setItem(\"color-border\", themes.themes[index].colorborder); //document.documentElement.style.setProperty(prop, `var(--${themeName}${prop.substring(10)})`);\n\n setTheme();\n}\n\nfunction setTheme() {\n setValueFromLocalStorage('image-background');\n setValueFromLocalStorage('color-background');\n setValueFromLocalStorage('color-search-background');\n setValueFromLocalStorage('color-text-pri');\n setValueFromLocalStorage('color-text-acc');\n setValueFromLocalStorage('color-border');\n setValueFromLocalStorage('content-display');\n}\n\nfunction handleKeyPress(e) {\n var sindex = 0;\n var cycle = false;\n var key = e.keyCode || e.which;\n var text = e.target.value.replaceAll(\"+\", \"%2B\");\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n\n if (key == 13) {\n // Search functions\n search(text);\n }\n\n if (key == 9) {\n // Tab Completion Functions\n e.preventDefault();\n e.stopPropagation();\n\n if (text[0] === ';') {\n switch (option) {\n case 't':\n var streamers = ['admiralbahroo', 'moonmoon_ow', 'witwix'];\n\n if (!subtext || cycle) {\n cycle = true;\n if (sindex > streamers.length - 1) sindex = 0;\n document.getElementById(\"keywords\").value = ';t ' + streamers[sindex++];\n return;\n }\n\n for (var streamer of streamers) {\n if (subtext === streamer.substr(0, subtext.length)) {\n document.getElementById(\"keywords\").value = ';t ' + streamer;\n return;\n }\n }\n\n break;\n }\n }\n }\n\n if (key == 32) {\n //Space to go to search\n updateLabel(text);\n }\n\n sindex = 0;\n cycle = false;\n updateLabel(text);\n}\n\nfunction updateLabel(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n\n if (text[0] === '/') {\n // if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n document.getElementById(\"searchType\").innerHTML = \"Allmusic search\";\n break;\n\n case \"d\":\n document.getElementById(\"searchType\").innerHTML = \"Duck Duck Go search\";\n break;\n\n case \"di\":\n document.getElementById(\"searchType\").innerHTML = \"Discogs search\";\n break;\n\n case \"i\":\n document.getElementById(\"searchType\").innerHTML = \"IMDB search\";\n break;\n\n case \"m\":\n document.getElementById(\"searchType\").innerHTML = \"TheMovieDB search\";\n break;\n\n case \"r\":\n document.getElementById(\"searchType\").innerHTML = \"Reddit search\";\n break;\n\n case \"q\":\n document.getElementById(\"searchType\").innerHTML = \"Qwant search\";\n break;\n\n case \"so\":\n document.getElementById(\"searchType\").innerHTML = \"Soundcloud search\";\n break;\n\n case \"s\":\n document.getElementById(\"searchType\").innerHTML = \"Spotify search\";\n break;\n\n case \"tv\":\n document.getElementById(\"searchType\").innerHTML = \"TheTVDB search\";\n break;\n\n case \"t\":\n document.getElementById(\"searchType\").innerHTML = \"Trakt search\";\n break;\n\n case \"y\":\n document.getElementById(\"searchType\").innerHTML = \"YouTube search\";\n break;\n\n case \"w\":\n document.getElementById(\"searchType\").innerHTML = \"Wikipedia search\";\n break;\n\n case \"p\":\n document.getElementById(\"searchType\").innerHTML = \"Plex search\";\n break;\n\n case \"rt\":\n document.getElementById(\"searchType\").innerHTML = \"Rotten Tomatoes search\";\n break;\n\n default:\n document.getElementById(\"searchType\").innerHTML = \"Invalid search\";\n break;\n }\n } else {\n document.getElementById(\"searchType\").innerHTML = \"Google search\";\n }\n}\n\nfunction search(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n\n if (text[0] === '/') {\n if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n window.location = \"https://www.allmusic.com/search/all/\" + subtext;\n break;\n\n case \"d\":\n window.location = \"https://duckduckgo.com/?q=\" + subtext;\n break;\n\n case \"di\":\n window.location = \"https://www.discogs.com/search/?q=\" + subtext;\n break;\n\n case \"i\":\n window.location = \"https://www.imdb.com/find?q=\" + subtext;\n break;\n\n case \"m\":\n window.location = \"https://www.themoviedb.org/search?query=\" + subtext;\n break;\n\n case \"r\":\n window.location = \"https://www.reddit.com/search?q=\" + subtext;\n break;\n\n case \"q\":\n window.location = \"https://www.qwant.com/?q=\" + subtext;\n break;\n\n case \"so\":\n window.location = \"https://soundcloud.com/search?q=\" + subtext;\n break;\n\n case \"s\":\n window.location = \"https://open.spotify.com/search/results/\" + subtext;\n break;\n\n case \"t\":\n window.location = \"https://trakt.tv/search?query=\" + subtext;\n break;\n\n case \"tv\":\n window.location = \"https://www.thetvdb.com/search?query=\" + subtext;\n break;\n\n case \"y\":\n window.location = \"https://www.youtube.com/results?search_query=\" + subtext;\n break;\n\n case \"w\":\n window.location = \"https://en.wikipedia.org/w/index.php?search=\" + subtext;\n break;\n\n case \"p\":\n window.location = \"https://app.plex.tv/desktop/#!/search?query=\" + subtext;\n break;\n\n case \"rt\":\n window.location = \"https://www.rottentomatoes.com/search?search=\" + subtext;\n break;\n }\n } else {\n var option = text.substr(1);\n\n switch (option) {\n case \"d\":\n window.location = \"https://www.duckduckgo.com\";\n break;\n\n case \"y\":\n window.location = \"https://www.youtube.com\";\n break;\n\n case \"r\":\n window.location = \"https://reddit.com\";\n break;\n\n case \"s\":\n window.location = \"https://open.spotify.com\";\n break;\n }\n }\n } else if (validURL(text)) {\n if (containsProtocol(text)) window.location = text;else window.location = \"https://\" + text;\n } else {\n window.location = \"https://www.google.com/search?q=\" + text;\n }\n} // Source: https://stackoverflow.com/questions/5717093/check-if-a-javascript-string-is-a-url\n\n\nfunction validURL(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/)?' + // protocol\n '((([a-z\\\\d]([a-z\\\\d-]*[a-z\\\\d])*)\\\\.)+[a-z]{2,}|' + // domain name\n '((\\\\d{1,3}\\\\.){3}\\\\d{1,3}))' + // OR ip (v4) address\n '(\\\\:\\\\d+)?(\\\\/[-a-z\\\\d%_.~+]*)*' + // port and path\n '(\\\\?[;&a-z\\\\d%_.~+=-]*)?' + // query string\n '(\\\\#[-a-z\\\\d_]*)?$', 'i'); // fragment locator\n\n return !!pattern.test(str);\n}\n\nfunction containsProtocol(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/){1}.*', 'i');\n return !!pattern.test(str);\n}\n\nString.prototype.replaceAll = function (search, replacement) {\n var target = this;\n return target.split(search).join(replacement);\n};\n\nfunction udpateDisplayedItems(e) {\n localStorage.setItem('contenttype', e.target.checked);\n\n if (e.target.checked) {\n localStorage.setItem('content-display', 'none');\n } else {\n localStorage.setItem('content-display', 'block');\n }\n\n setDisplayedItems();\n}\n\nfunction setDisplayedItems() {\n setValueFromLocalStorage('contenttype');\n setValueFromLocalStorage('content-display');\n var checked = localStorage.getItem(\"contenttype\");\n console.log(checked);\n}\n\nvar _c, _c2, _c3, _c4, _c5, _c6, _c7, _c8, _c9, _c10, _c11, _c12;\n\n$RefreshReg$(_c, \"Homepage\");\n$RefreshReg$(_c2, \"Search\");\n$RefreshReg$(_c3, \"Header\");\n$RefreshReg$(_c4, \"Applications\");\n$RefreshReg$(_c5, \"App\");\n$RefreshReg$(_c6, \"Bookmarks\");\n$RefreshReg$(_c7, \"LinkGroups\");\n$RefreshReg$(_c8, \"LinkItem\");\n$RefreshReg$(_c9, \"ModalMenu\");\n$RefreshReg$(_c10, \"Provider\");\n$RefreshReg$(_c11, \"ModalInit\");\n$RefreshReg$(_c12, \"Clock\");","map":{"version":3,"sources":["/home/seanedmunds/dev/home-page/src/index.js"],"names":["React","useState","useEffect","ReactDOM","setValueFromLocalStorage","property","value","localStorage","getItem","setValue","document","documentElement","style","setProperty","input","querySelector","replace","Homepage","setTheme","date","greet","Search","handleKeyPress","Header","props","Applications","appList","getApps","items","i","apps","length","safe","NSFW","NSFWEnabled","push","name","url","icon","App","classNameType","hrefUrl","iconName","Bookmarks","bookmarkList","getLinks","bookmarks","category","links","LinkGroups","LinkItem","link","ModalMenu","providers","getProviders","updateTheme","udpateDisplayedItems","Provider","provider","prefix","ModalInit","setDisplayedItems","render","getElementById","currentDate","Date","dateOptions","weekday","year","month","day","toLocaleDateString","fixDigits","k","currentTime","Math","floor","getHours","easterEggChance","random","greetings","require","timeBased","easterEggs","messages","easteregg","concat","message","easterEggText","Clock","setDate","refreshClock","timerId","setInterval","cleanup","clearInterval","hour","minutes","getMinutes","midday","time","applications","getThemes","themes","e","themeName","target","innerHTML","toLowerCase","index","findIndex","item","setItem","imagebackground","colorbackground","colorserachbackground","colortextpri","colortextacc","colorborder","sindex","cycle","key","keyCode","which","text","replaceAll","option","substr","indexOf","subtext","search","preventDefault","stopPropagation","streamers","streamer","updateLabel","window","location","validURL","containsProtocol","str","pattern","RegExp","test","String","prototype","replacement","split","join","checked","console","log"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { useState, useEffect } from 'react';\nimport ReactDOM from 'react-dom';\n//import { unstable_createPortal } from 'react-dom';\nimport './index.css';\n\nconst setValueFromLocalStorage = property => {\n let value = localStorage.getItem(property);\n setValue(property, value);\n};\nconst setValue = (property, value) => {\n if (value) {\n document.documentElement.style.setProperty(`--${property}`, value);\n\n const input = document.querySelector(`#${property}`);\n if (input) {\n value = value.replace('px', '');\n input.value = value;\n }\n }\n};\n\nfunction Homepage() {\n setTheme();\n return (\n \n \n \n
\n \n \n
\n \n \n \n
\n \n \n
\n \n \n
\n \n );\n}\n\nfunction Search() {\n return (\n \n )\n}\n\nfunction Header(props) {\n return (\n \n );\n}\n\nfunction Applications() {\n let appList = getApps();\n var items = [];\n for (var i = 0; i < appList.apps.length; i++) {\n var safe = appList.apps[i].NSFW;\n var NSFWEnabled = localStorage.getItem(\"contenttype\");\n if (safe === \"SAFE\") {\n items.push(\n \n );\n } else if (safe === \"NSFW\" && NSFWEnabled) {\n items.push(\n \n );\n } else {\n \n }\n \n }\n return (\n \n Applications
\n \n {items}\n
\n \n );\n}\n\nfunction App(props) {\n \n let classNameType = props.NSFW + \"-content\";\n let hrefUrl = \"https://\" + props.url;\n let iconName = \"mdi-\" + props.icon;\n return (\n \n );\n}\n\nfunction Bookmarks() {\n let bookmarkList = getLinks();\n var items = [];\n for (var i = 0; i < bookmarkList.bookmarks.length; i++) {\n items.push(\n \n );\n }\n return (\n \n Bookmarks
\n \n {items}\n
\n \n );\n}\n\nfunction LinkGroups(props) {\n var items = [];\n for (var i = 0; i < props.links.length; i++) {\n items.push(\n \n );\n }\n return (\n \n
{props.category}
\n {items}\n \n );\n}\n\nfunction LinkItem(props) {\n return (\n \n );\n}\n\nfunction ModalMenu() {\n var providers = getProviders();\n var items = [];\n for (var i = 0; i < providers.providers.length; i++) {\n items.push(\n \n );\n }\n return (\n \n \n \n\n
Color themes
\n\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n\n\n
Search options
\n
\n \n \n \n | Website | \n Prefix | \n
\n {items}\n \n
\n \n\n \n
\n \n );\n}\n\nfunction Provider(props) {\n return (\n \n | {props.provider.name} | \n {props.provider.prefix} | \n
\n );\n}\n\nfunction ModalInit() {\n setDisplayedItems();\n return (\n \n );\n}\n\nReactDOM.render(\n ,\n document.getElementById('root')\n);\n\n//Functions below this line are for calculating data for\n//other functions\n\nfunction date() {\n let currentDate = new Date();\n let dateOptions = {\n weekday: \"long\",\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\"\n };\n let date = currentDate.toLocaleDateString(\"en-GB\", dateOptions);\n return date;\n}\nfunction fixDigits(k) {\n if (k < 10) {\n return \"0\" + k;\n }\n else {\n return k;\n }\n}\nfunction greet() {\n let currentTime = new Date();\n let greet = Math.floor(currentTime.getHours() / 6);\n let easterEggChance = Math.floor(Math.random() * 100);\n let greetings = require('./messages.json');\n let timeBased = [];\n let easterEggs = [];\n for (var i = 0; i < greetings.messages.length; i++) {\n if (greetings.messages[i].easteregg === \"FALSE\") {\n timeBased = timeBased.concat(greetings.messages[i]);\n } else {\n easterEggs = easterEggs.concat(greetings.messages[i]);\n }\n }\n if (easterEggChance > 10) {\n return timeBased[greet].message;\n } else {\n let easterEggText = Math.floor(Math.random() * easterEggs.length);\n return easterEggs[easterEggText].message;\n }\n}\nfunction Clock() {\n const [date, setDate] = useState(new Date());\n\n function refreshClock() {\n setDate(new Date());\n }\n useEffect(() => {\n const timerId = setInterval(refreshClock, 1000);\n return function cleanup() {\n clearInterval(timerId);\n };\n }, []);\n\n var hour = date.getHours();\n var minutes = date.getMinutes();\n //var seconds = date.getSeconds();\n var midday = \"AM\";\n midday = (hour >= 12) ? \"PM\" : \"AM\";\n hour = (hour === 0) ? 12 : ((hour > 12) ? (hour - 12) : hour);\n minutes = fixDigits(minutes);\n //seconds = fixDigits(seconds);\n let time = hour + \":\" + minutes + \" \" + midday;\n\n return (\n {time}
\n\n );\n}\nfunction getApps() {\n let applications = require('./apps.json');\n return applications;\n}\nfunction getLinks() {\n let links = require('./links.json');\n return links;\n}\nfunction getProviders() {\n let providers = require('./providers.json');\n return providers;\n}\nfunction getThemes() {\n let themes = require('./themes.json');\n return themes;\n}\n\nfunction updateTheme(e) {\n var themes = getThemes();\n var themeName = e.target.innerHTML.toLowerCase();\n var index = themes.themes.findIndex(function(item, i){\n return item.name === themeName\n });\n localStorage.setItem(\"image-background\", themes.themes[index].imagebackground);\n localStorage.setItem(\"color-background\", themes.themes[index].colorbackground);\n localStorage.setItem(\"color-search-background\", themes.themes[index].colorserachbackground);\n localStorage.setItem(\"color-text-pri\",themes.themes[index].colortextpri);\n localStorage.setItem(\"color-text-acc\", themes.themes[index].colortextacc);\n localStorage.setItem(\"color-border\", themes.themes[index].colorborder);\n \n //document.documentElement.style.setProperty(prop, `var(--${themeName}${prop.substring(10)})`);\n setTheme();\n}\n\nfunction setTheme() {\n setValueFromLocalStorage('image-background');\n setValueFromLocalStorage('color-background');\n setValueFromLocalStorage('color-search-background');\n setValueFromLocalStorage('color-text-pri');\n setValueFromLocalStorage('color-text-acc');\n setValueFromLocalStorage('color-border');\n setValueFromLocalStorage('content-display');\n}\n\nfunction handleKeyPress(e) {\n var sindex = 0;\n var cycle = false;\n var key = e.keyCode || e.which;\n var text = e.target.value.replaceAll(\"+\", \"%2B\");\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n if (key == 13) { // Search functions\n search(text);\n }\n if (key == 9) { // Tab Completion Functions\n e.preventDefault();\n e.stopPropagation();\n if (text[0] === ';') {\n switch (option) {\n case 't':\n var streamers = ['admiralbahroo', 'moonmoon_ow', 'witwix'];\n if (!subtext || cycle) {\n cycle = true;\n if (sindex > streamers.length - 1) sindex = 0;\n document.getElementById(\"keywords\").value = ';t ' + streamers[sindex++];\n return;\n }\n for (var streamer of streamers) {\n if (subtext === streamer.substr(0, subtext.length)) {\n document.getElementById(\"keywords\").value = ';t ' + streamer;\n return;\n }\n }\n break;\n }\n }\n }\n if(key == 32){ //Space to go to search\nupdateLabel(text);\n }\n sindex = 0;\n cycle = false;\n updateLabel(text);\n}\n\nfunction updateLabel(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n if (text[0] === '/') {\n// if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n document.getElementById(\"searchType\").innerHTML = \"Allmusic search\";\n break;\n case \"d\":\n document.getElementById(\"searchType\").innerHTML = \"Duck Duck Go search\";\n break;\n case \"di\":\n document.getElementById(\"searchType\").innerHTML = \"Discogs search\";\n break;\n case \"i\":\n document.getElementById(\"searchType\").innerHTML = \"IMDB search\";\n break;\n case \"m\":\n document.getElementById(\"searchType\").innerHTML = \"TheMovieDB search\";\n break;\n case \"r\":\n document.getElementById(\"searchType\").innerHTML = \"Reddit search\";\n break;\n case \"q\":\n document.getElementById(\"searchType\").innerHTML = \"Qwant search\";\n break;\n case \"so\":\n document.getElementById(\"searchType\").innerHTML = \"Soundcloud search\";\n break;\n case \"s\":\n document.getElementById(\"searchType\").innerHTML = \"Spotify search\";\n break;\n case \"tv\":\n document.getElementById(\"searchType\").innerHTML = \"TheTVDB search\";\n break;\n case \"t\":\n document.getElementById(\"searchType\").innerHTML = \"Trakt search\";\n break;\n case \"y\":\n document.getElementById(\"searchType\").innerHTML = \"YouTube search\";\n break;\n case \"w\":\n document.getElementById(\"searchType\").innerHTML = \"Wikipedia search\";\n break;\n case \"p\":\n document.getElementById(\"searchType\").innerHTML = \"Plex search\";\n break;\n case \"rt\":\n document.getElementById(\"searchType\").innerHTML = \"Rotten Tomatoes search\";\n break;\n default:\n document.getElementById(\"searchType\").innerHTML = \"Invalid search\";\n break;\n }\n}else {\n document.getElementById(\"searchType\").innerHTML = \"Google search\";\n }\n}\n\nfunction search(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n if (text[0] === '/') {\n if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n window.location = \"https://www.allmusic.com/search/all/\" + subtext;\n break;\n case \"d\":\n window.location = \"https://duckduckgo.com/?q=\" + subtext;\n break;\n case \"di\":\n window.location = \"https://www.discogs.com/search/?q=\" + subtext;\n break;\n case \"i\":\n window.location = \"https://www.imdb.com/find?q=\" + subtext;\n break;\n case \"m\":\n window.location = \"https://www.themoviedb.org/search?query=\" + subtext;\n break;\n case \"r\":\n window.location = \"https://www.reddit.com/search?q=\" + subtext;\n break;\n case \"q\":\n window.location = \"https://www.qwant.com/?q=\" + subtext;\n break;\n case \"so\":\n window.location = \"https://soundcloud.com/search?q=\" + subtext;\n break;\n case \"s\":\n window.location = \"https://open.spotify.com/search/results/\" + subtext;\n break;\n case \"t\":\n window.location = \"https://trakt.tv/search?query=\" + subtext;\n break;\n case \"tv\":\n window.location = \"https://www.thetvdb.com/search?query=\" + subtext;\n break;\n case \"y\":\n window.location = \"https://www.youtube.com/results?search_query=\" + subtext;\n break;\n case \"w\":\n window.location = \"https://en.wikipedia.org/w/index.php?search=\" + subtext;\n break;\n case \"p\":\n window.location = \"https://app.plex.tv/desktop/#!/search?query=\" + subtext;\n break;\n case \"rt\":\n window.location = \"https://www.rottentomatoes.com/search?search=\" + subtext;\n break;\n }\n } else {\n var option = text.substr(1);\n switch (option) {\n case \"d\":\n window.location = \"https://www.duckduckgo.com\";\n break;\n case \"y\":\n window.location = \"https://www.youtube.com\";\n break;\n case \"r\":\n window.location = \"https://reddit.com\";\n break;\n case \"s\":\n window.location = \"https://open.spotify.com\";\n break;\n }\n }\n } else if (validURL(text)) {\n if (containsProtocol(text))\n window.location = text;\n else\n window.location = \"https://\" + text;\n } else {\n window.location = \"https://www.google.com/search?q=\" + text;\n }\n}\n\n// Source: https://stackoverflow.com/questions/5717093/check-if-a-javascript-string-is-a-url\nfunction validURL(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/)?' + // protocol\n '((([a-z\\\\d]([a-z\\\\d-]*[a-z\\\\d])*)\\\\.)+[a-z]{2,}|' + // domain name\n '((\\\\d{1,3}\\\\.){3}\\\\d{1,3}))' + // OR ip (v4) address\n '(\\\\:\\\\d+)?(\\\\/[-a-z\\\\d%_.~+]*)*' + // port and path\n '(\\\\?[;&a-z\\\\d%_.~+=-]*)?' + // query string\n '(\\\\#[-a-z\\\\d_]*)?$', 'i'); // fragment locator\n return !!pattern.test(str);\n}\n\nfunction containsProtocol(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/){1}.*', 'i');\n return !!pattern.test(str);\n}\n\nString.prototype.replaceAll = function(search, replacement) {\n var target = this;\n return target.split(search).join(replacement);\n};\n\nfunction udpateDisplayedItems(e) {\n localStorage.setItem('contenttype', e.target.checked);\n if (e.target.checked) {\n localStorage.setItem('content-display', 'none');\n } else {\n localStorage.setItem('content-display', 'block');\n }\n setDisplayedItems();\n}\nfunction setDisplayedItems() {\n setValueFromLocalStorage('contenttype');\n setValueFromLocalStorage('content-display');\n var checked = localStorage.getItem(\"contenttype\");\n console.log(checked);\n}"]},"metadata":{},"sourceType":"module"}
\ No newline at end of file
diff --git a/node_modules/.cache/babel-loader/ec412c7de3a9809d3459d06363a90efd.json b/node_modules/.cache/babel-loader/ec412c7de3a9809d3459d06363a90efd.json
new file mode 100644
index 00000000..b8202d32
--- /dev/null
+++ b/node_modules/.cache/babel-loader/ec412c7de3a9809d3459d06363a90efd.json
@@ -0,0 +1 @@
+{"ast":null,"code":"var _jsxFileName = \"/home/seanedmunds/dev/home-page/src/index.js\",\n _s = $RefreshSig$();\n\nimport React from 'react';\nimport { useState, useEffect } from 'react';\nimport ReactDOM from 'react-dom'; //import { unstable_createPortal } from 'react-dom';\n\nimport './index.css';\nimport './themer';\nimport { jsxDEV as _jsxDEV } from \"react/jsx-dev-runtime\";\n\nfunction Homepage() {\n return /*#__PURE__*/_jsxDEV(\"main\", {\n id: \"container\",\n className: \"fade\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Search, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 12,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 11,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Header, {\n date: date(),\n greet: greet()\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 15,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 14,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Applications, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 21,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 20,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Bookmarks, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 24,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 23,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(ModalMenu, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 27,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 26,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(ModalInit, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 30,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 29,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 10,\n columnNumber: 5\n }, this);\n}\n\n_c = Homepage;\n\nfunction Search() {\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"search\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"abackground\",\n children: [/*#__PURE__*/_jsxDEV(\"input\", {\n name: \"keywords\",\n type: \"text\",\n className: \"keyword\",\n id: \"keywords\",\n size: \"50\",\n spellCheck: \"true\",\n placeholder: \"\"\n /*onFocus={this.placeholder = \"\"} onBlur={this.placeholder = ''}*/\n ,\n autoComplete: \"off\",\n autoFocus: true,\n onKeyUp: handleKeyPress\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 40,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n id: \"searchType\",\n className: \"Input-label\",\n children: \"Google search\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 41,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 39,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 38,\n columnNumber: 5\n }, this);\n}\n\n_c2 = Search;\n\nfunction Header(props) {\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"header\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n id: \"greeting_block\",\n children: /*#__PURE__*/_jsxDEV(\"h1\", {\n id: \"header_greet\",\n children: props.greet\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 51,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 50,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"date_block\",\n children: [/*#__PURE__*/_jsxDEV(\"h2\", {\n id: \"header_date\",\n children: props.date\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 54,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(Clock, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 55,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 53,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 49,\n columnNumber: 5\n }, this);\n}\n\n_c3 = Header;\n\nfunction Applications() {\n let appList = getApps();\n var items = [];\n\n for (var i = 0; i < appList.apps.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(App, {\n name: appList.apps[i].name,\n url: appList.apps[i].url,\n icon: appList.apps[i].icon,\n NSFW: appList.apps[i].NSFW\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 66,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"apps\",\n children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n children: \"Applications\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 77,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"apps_loop\",\n children: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 78,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 76,\n columnNumber: 5\n }, this);\n}\n\n_c4 = Applications;\n\nfunction App(props) {\n let classNameType = props.NSFW + \"-content\";\n let hrefUrl = \"https://\" + props.url;\n let iconName = \"mdi-\" + props.icon;\n return /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: hrefUrl,\n className: classNameType,\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_item\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_icon\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify icon\",\n \"data-icon\": iconName\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 94,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 93,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_text\",\n children: [/*#__PURE__*/_jsxDEV(\"span\", {\n id: \"app-name\",\n children: props.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 97,\n columnNumber: 13\n }, this), /*#__PURE__*/_jsxDEV(\"span\", {\n id: \"app-address\",\n children: props.url\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 98,\n columnNumber: 13\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 96,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 92,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 91,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 90,\n columnNumber: 5\n }, this);\n}\n\n_c5 = App;\n\nfunction Bookmarks() {\n let bookmarkList = getLinks();\n var items = [];\n\n for (var i = 0; i < bookmarkList.bookmarks.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(LinkGroups, {\n category: bookmarkList.bookmarks[i].category,\n links: bookmarkList.bookmarks[i].links\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 111,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"links\",\n children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n children: \"Bookmarks\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 120,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"links_loop\",\n children: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 121,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 119,\n columnNumber: 5\n }, this);\n}\n\n_c6 = Bookmarks;\n\nfunction LinkGroups(props) {\n var items = [];\n\n for (var i = 0; i < props.links.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(LinkItem, {\n link: props.links[i]\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 132,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"links_item\",\n children: [/*#__PURE__*/_jsxDEV(\"h4\", {\n children: props.category\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 140,\n columnNumber: 7\n }, this), items]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 139,\n columnNumber: 5\n }, this);\n}\n\n_c7 = LinkGroups;\n\nfunction LinkItem(props) {\n return /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: props.link.url,\n className: \"theme_color-border theme_text-select\",\n children: props.link.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 149,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 148,\n columnNumber: 5\n }, this);\n}\n\n_c8 = LinkItem;\n\nfunction ModalMenu() {\n var providers = getProviders();\n var items = [];\n\n for (var i = 0; i < providers.providers.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(Provider, {\n provider: providers.providers[i]\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 159,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"modal\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n children: [/*#__PURE__*/_jsxDEV(\"header\", {\n id: \"modal-header\",\n children: [/*#__PURE__*/_jsxDEV(\"h1\", {\n children: \"Options\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 169,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n href: \"#\",\n title: \"Close\",\n className: \"modal-close\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-close\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 171,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 170,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 168,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"h2\", {\n children: \"Color themes\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 175,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"modal-theme\",\n children: [/*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"blackboard\",\n className: \"theme-button theme-blackboard\",\n children: \"Blackboard\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 178,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"gazette\",\n className: \"theme-button theme-gazette\",\n children: \"Gazette\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 179,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"espresso\",\n className: \"theme-button theme-espresso\",\n children: \"Espresso\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 180,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cab\",\n className: \"theme-button theme-cab\",\n children: \"Cab\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 181,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cloud\",\n className: \"theme-button theme-cloud\",\n children: \"Cloud\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 182,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"lime\",\n className: \"theme-button theme-lime\",\n children: \"Lime\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 183,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"passion\",\n className: \"theme-button theme-passion\",\n children: \"Passion\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 184,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"blues\",\n className: \"theme-button theme-blues\",\n children: \"Blues\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 185,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"chalk\",\n className: \"theme-button theme-chalk\",\n children: \"Chalk\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 186,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"tron\",\n className: \"theme-button theme-tron\",\n children: \"Tron\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 187,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"paper\",\n className: \"theme-button theme-paper\",\n children: \"Paper\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 188,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cyberpunk\",\n className: \"theme-button theme-cyberpunk\",\n children: \"Cyberpunk\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 189,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"quadra\",\n className: \"theme-button theme-panam\",\n children: \"Quadra\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 190,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"panam\",\n className: \"theme-button theme-panam\",\n children: \"Panam\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 191,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"touch\",\n className: \"theme-button theme-touch\",\n children: \"Touch\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 192,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"peek\",\n className: \"theme-button theme-peek\",\n children: \"Peek\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 193,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 177,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"h2\", {\n children: \"Search options\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 197,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"providers\",\n children: /*#__PURE__*/_jsxDEV(\"table\", {\n children: /*#__PURE__*/_jsxDEV(\"tbody\", {\n children: [/*#__PURE__*/_jsxDEV(\"tr\", {\n children: [/*#__PURE__*/_jsxDEV(\"th\", {\n children: \"Website\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 202,\n columnNumber: 19\n }, this), /*#__PURE__*/_jsxDEV(\"th\", {\n children: \"Prefix\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 203,\n columnNumber: 19\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 201,\n columnNumber: 17\n }, this), items]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 200,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 199,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 198,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"header\", {\n id: \"modal-footer\",\n children: [/*#__PURE__*/_jsxDEV(\"a\", {\n href: \"https://github.com/jeroenpardon/\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-github-box\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 211,\n columnNumber: 54\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 211,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n href: \"https://materialdesignicons.com/\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-material-design\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 212,\n columnNumber: 54\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 212,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"sneaky\",\n children: [/*#__PURE__*/_jsxDEV(\"input\", {\n type: \"checkbox\",\n id: \"contenttype\",\n onChange: \"nsfw(this)\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 213,\n columnNumber: 35\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n for: \"contenttype\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-domino-mask\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 214,\n columnNumber: 36\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 214,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 213,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 210,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 167,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 166,\n columnNumber: 5\n }, this);\n}\n\n_c9 = ModalMenu;\n\nfunction Provider(props) {\n return /*#__PURE__*/_jsxDEV(\"tr\", {\n children: [/*#__PURE__*/_jsxDEV(\"td\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: props.provider.url,\n children: props.provider.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 224,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 224,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"td\", {\n children: props.provider.prefix\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 225,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 223,\n columnNumber: 5\n }, this);\n}\n\n_c10 = Provider;\n\nfunction ModalInit() {\n return /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"modal_init\",\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n className: \"btn\",\n href: \"#modal\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify icon\",\n \"data-icon\": \"mdi-xbox-controller-menu\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 234,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 233,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 232,\n columnNumber: 5\n }, this);\n}\n\n_c11 = ModalInit;\nReactDOM.render( /*#__PURE__*/_jsxDEV(Homepage, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 241,\n columnNumber: 3\n}, this), document.getElementById('root')); //Functions below this line are for calculating data for\n//other functions\n\nfunction date() {\n let currentDate = new Date();\n let dateOptions = {\n weekday: \"long\",\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\"\n };\n let date = currentDate.toLocaleDateString(\"en-GB\", dateOptions);\n return date;\n}\n\nfunction fixDigits(k) {\n if (k < 10) {\n return \"0\" + k;\n } else {\n return k;\n }\n}\n\nfunction greet() {\n let currentTime = new Date();\n let greet = Math.floor(currentTime.getHours() / 6);\n let easterEggChance = Math.floor(Math.random() * 100);\n\n let greetings = require('./messages.json');\n\n let timeBased = [];\n let easterEggs = [];\n\n for (var i = 0; i < greetings.messages.length; i++) {\n if (greetings.messages[i].easteregg === \"FALSE\") {\n timeBased = timeBased.concat(greetings.messages[i]);\n } else {\n easterEggs = easterEggs.concat(greetings.messages[i]);\n }\n }\n\n if (easterEggChance > 10) {\n return timeBased[greet].message;\n } else {\n let easterEggText = Math.floor(Math.random() * easterEggs.length);\n return easterEggs[easterEggText].message;\n }\n}\n\nfunction Clock() {\n _s();\n\n const [date, setDate] = useState(new Date());\n\n function refreshClock() {\n setDate(new Date());\n }\n\n useEffect(() => {\n const timerId = setInterval(refreshClock, 1000);\n return function cleanup() {\n clearInterval(timerId);\n };\n }, []);\n var hour = date.getHours();\n var minutes = date.getMinutes(); //var seconds = date.getSeconds();\n\n var midday = \"AM\";\n midday = hour >= 12 ? \"PM\" : \"AM\";\n hour = hour === 0 ? 12 : hour > 12 ? hour - 12 : hour;\n minutes = fixDigits(minutes); //seconds = fixDigits(seconds);\n\n let time = hour + \":\" + minutes + \" \" + midday;\n return /*#__PURE__*/_jsxDEV(\"h2\", {\n id: \"clock\",\n children: time\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 312,\n columnNumber: 5\n }, this);\n}\n\n_s(Clock, \"Gqi45WOZhU2c0BLYX0HoJeiR0fk=\");\n\n_c12 = Clock;\n\nfunction getApps() {\n let applications = require('./apps.json');\n\n return applications;\n}\n\nfunction getLinks() {\n let links = require('./links.json');\n\n return links;\n}\n\nfunction getProviders() {\n let providers = require('./providers.json');\n\n return providers;\n}\n\nfunction handleKeyPress(e) {\n var sindex = 0;\n var cycle = false;\n var key = e.keyCode || e.which;\n var text = e.target.value.replaceAll(\"+\", \"%2B\");\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n\n if (key == 13) {\n // Search functions\n search(text);\n }\n\n if (key == 9) {\n // Tab Completion Functions\n e.preventDefault();\n e.stopPropagation();\n\n if (text[0] === ';') {\n switch (option) {\n case 't':\n var streamers = ['admiralbahroo', 'moonmoon_ow', 'witwix'];\n\n if (!subtext || cycle) {\n cycle = true;\n if (sindex > streamers.length - 1) sindex = 0;\n document.getElementById(\"keywords\").value = ';t ' + streamers[sindex++];\n return;\n }\n\n for (var streamer of streamers) {\n if (subtext === streamer.substr(0, subtext.length)) {\n document.getElementById(\"keywords\").value = ';t ' + streamer;\n return;\n }\n }\n\n break;\n }\n }\n }\n\n if (key == 32) {\n //Space to go to search\n updateLabel(text);\n }\n\n sindex = 0;\n cycle = false;\n updateLabel(text);\n}\n\nfunction updateLabel(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n\n if (text[0] === '/') {\n // if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n document.getElementById(\"searchType\").innerHTML = \"Allmusic search\";\n break;\n\n case \"d\":\n document.getElementById(\"searchType\").innerHTML = \"Duck Duck Go search\";\n break;\n\n case \"di\":\n document.getElementById(\"searchType\").innerHTML = \"Discogs search\";\n break;\n\n case \"i\":\n document.getElementById(\"searchType\").innerHTML = \"IMDB search\";\n break;\n\n case \"m\":\n document.getElementById(\"searchType\").innerHTML = \"TheMovieDB search\";\n break;\n\n case \"r\":\n document.getElementById(\"searchType\").innerHTML = \"Reddit search\";\n break;\n\n case \"q\":\n document.getElementById(\"searchType\").innerHTML = \"Qwant search\";\n break;\n\n case \"so\":\n document.getElementById(\"searchType\").innerHTML = \"Soundcloud search\";\n break;\n\n case \"s\":\n document.getElementById(\"searchType\").innerHTML = \"Spotify search\";\n break;\n\n case \"tv\":\n document.getElementById(\"searchType\").innerHTML = \"TheTVDB search\";\n break;\n\n case \"t\":\n document.getElementById(\"searchType\").innerHTML = \"Trakt search\";\n break;\n\n case \"y\":\n document.getElementById(\"searchType\").innerHTML = \"YouTube search\";\n break;\n\n case \"w\":\n document.getElementById(\"searchType\").innerHTML = \"Wikipedia search\";\n break;\n\n case \"p\":\n document.getElementById(\"searchType\").innerHTML = \"Plex search\";\n break;\n\n case \"rt\":\n document.getElementById(\"searchType\").innerHTML = \"Rotten Tomatoes search\";\n break;\n\n default:\n document.getElementById(\"searchType\").innerHTML = \"Invalid search\";\n break;\n }\n } else {\n document.getElementById(\"searchType\").innerHTML = \"Google search\";\n }\n}\n\nfunction search(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n\n if (text[0] === '/') {\n if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n window.location = \"https://www.allmusic.com/search/all/\" + subtext;\n break;\n\n case \"d\":\n window.location = \"https://duckduckgo.com/?q=\" + subtext;\n break;\n\n case \"di\":\n window.location = \"https://www.discogs.com/search/?q=\" + subtext;\n break;\n\n case \"i\":\n window.location = \"https://www.imdb.com/find?q=\" + subtext;\n break;\n\n case \"m\":\n window.location = \"https://www.themoviedb.org/search?query=\" + subtext;\n break;\n\n case \"r\":\n window.location = \"https://www.reddit.com/search?q=\" + subtext;\n break;\n\n case \"q\":\n window.location = \"https://www.qwant.com/?q=\" + subtext;\n break;\n\n case \"so\":\n window.location = \"https://soundcloud.com/search?q=\" + subtext;\n break;\n\n case \"s\":\n window.location = \"https://open.spotify.com/search/results/\" + subtext;\n break;\n\n case \"t\":\n window.location = \"https://trakt.tv/search?query=\" + subtext;\n break;\n\n case \"tv\":\n window.location = \"https://www.thetvdb.com/search?query=\" + subtext;\n break;\n\n case \"y\":\n window.location = \"https://www.youtube.com/results?search_query=\" + subtext;\n break;\n\n case \"w\":\n window.location = \"https://en.wikipedia.org/w/index.php?search=\" + subtext;\n break;\n\n case \"p\":\n window.location = \"https://app.plex.tv/desktop/#!/search?query=\" + subtext;\n break;\n\n case \"rt\":\n window.location = \"https://www.rottentomatoes.com/search?search=\" + subtext;\n break;\n }\n } else {\n var option = text.substr(1);\n\n switch (option) {\n case \"d\":\n window.location = \"https://www.duckduckgo.com\";\n break;\n\n case \"y\":\n window.location = \"https://www.youtube.com\";\n break;\n\n case \"r\":\n window.location = \"https://reddit.com\";\n break;\n\n case \"s\":\n window.location = \"https://open.spotify.com\";\n break;\n }\n }\n } else if (validURL(text)) {\n if (containsProtocol(text)) window.location = text;else window.location = \"https://\" + text;\n } else {\n window.location = \"https://www.google.com/search?q=\" + text;\n }\n} // Source: https://stackoverflow.com/questions/5717093/check-if-a-javascript-string-is-a-url\n\n\nfunction validURL(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/)?' + // protocol\n '((([a-z\\\\d]([a-z\\\\d-]*[a-z\\\\d])*)\\\\.)+[a-z]{2,}|' + // domain name\n '((\\\\d{1,3}\\\\.){3}\\\\d{1,3}))' + // OR ip (v4) address\n '(\\\\:\\\\d+)?(\\\\/[-a-z\\\\d%_.~+]*)*' + // port and path\n '(\\\\?[;&a-z\\\\d%_.~+=-]*)?' + // query string\n '(\\\\#[-a-z\\\\d_]*)?$', 'i'); // fragment locator\n\n return !!pattern.test(str);\n}\n\nfunction containsProtocol(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/){1}.*', 'i');\n return !!pattern.test(str);\n}\n\nString.prototype.replaceAll = function (search, replacement) {\n var target = this;\n return target.split(search).join(replacement);\n};\n\nvar _c, _c2, _c3, _c4, _c5, _c6, _c7, _c8, _c9, _c10, _c11, _c12;\n\n$RefreshReg$(_c, \"Homepage\");\n$RefreshReg$(_c2, \"Search\");\n$RefreshReg$(_c3, \"Header\");\n$RefreshReg$(_c4, \"Applications\");\n$RefreshReg$(_c5, \"App\");\n$RefreshReg$(_c6, \"Bookmarks\");\n$RefreshReg$(_c7, \"LinkGroups\");\n$RefreshReg$(_c8, \"LinkItem\");\n$RefreshReg$(_c9, \"ModalMenu\");\n$RefreshReg$(_c10, \"Provider\");\n$RefreshReg$(_c11, \"ModalInit\");\n$RefreshReg$(_c12, \"Clock\");","map":{"version":3,"sources":["/home/seanedmunds/dev/home-page/src/index.js"],"names":["React","useState","useEffect","ReactDOM","Homepage","date","greet","Search","handleKeyPress","Header","props","Applications","appList","getApps","items","i","apps","length","push","name","url","icon","NSFW","App","classNameType","hrefUrl","iconName","Bookmarks","bookmarkList","getLinks","bookmarks","category","links","LinkGroups","LinkItem","link","ModalMenu","providers","getProviders","Provider","provider","prefix","ModalInit","render","document","getElementById","currentDate","Date","dateOptions","weekday","year","month","day","toLocaleDateString","fixDigits","k","currentTime","Math","floor","getHours","easterEggChance","random","greetings","require","timeBased","easterEggs","messages","easteregg","concat","message","easterEggText","Clock","setDate","refreshClock","timerId","setInterval","cleanup","clearInterval","hour","minutes","getMinutes","midday","time","applications","e","sindex","cycle","key","keyCode","which","text","target","value","replaceAll","option","substr","indexOf","subtext","search","preventDefault","stopPropagation","streamers","streamer","updateLabel","innerHTML","window","location","validURL","containsProtocol","str","pattern","RegExp","test","String","prototype","replacement","split","join"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { useState, useEffect } from 'react';\nimport ReactDOM from 'react-dom';\n//import { unstable_createPortal } from 'react-dom';\nimport './index.css';\nimport './themer';\n\nfunction Homepage() {\n return (\n \n \n \n
\n \n \n
\n \n \n \n
\n \n \n
\n \n \n
\n \n );\n}\n\nfunction Search() {\n return (\n \n )\n}\n\nfunction Header(props) {\n return (\n \n );\n}\n\nfunction Applications() {\n let appList = getApps();\n var items = [];\n for (var i = 0; i < appList.apps.length; i++) {\n items.push(\n \n );\n }\n return (\n \n Applications
\n \n {items}\n
\n \n );\n}\n\nfunction App(props) {\n let classNameType = props.NSFW + \"-content\";\n let hrefUrl = \"https://\" + props.url;\n let iconName = \"mdi-\" + props.icon;\n return (\n \n );\n}\n\nfunction Bookmarks() {\n let bookmarkList = getLinks();\n var items = [];\n for (var i = 0; i < bookmarkList.bookmarks.length; i++) {\n items.push(\n \n );\n }\n return (\n \n Bookmarks
\n \n {items}\n
\n \n );\n}\n\nfunction LinkGroups(props) {\n var items = [];\n for (var i = 0; i < props.links.length; i++) {\n items.push(\n \n );\n }\n return (\n \n
{props.category}
\n {items}\n \n );\n}\n\nfunction LinkItem(props) {\n return (\n \n );\n}\n\nfunction ModalMenu() {\n var providers = getProviders();\n var items = [];\n for (var i = 0; i < providers.providers.length; i++) {\n items.push(\n \n );\n }\n return (\n \n \n \n\n
Color themes
\n\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n\n\n
Search options
\n
\n \n \n \n | Website | \n Prefix | \n
\n {items}\n \n
\n \n\n \n
\n \n );\n}\n\nfunction Provider(props) {\n return (\n \n | {props.provider.name} | \n {props.provider.prefix} | \n
\n );\n}\n\nfunction ModalInit() {\n return (\n \n );\n}\n\nReactDOM.render(\n ,\n document.getElementById('root')\n);\n\n//Functions below this line are for calculating data for\n//other functions\n\nfunction date() {\n let currentDate = new Date();\n let dateOptions = {\n weekday: \"long\",\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\"\n };\n let date = currentDate.toLocaleDateString(\"en-GB\", dateOptions);\n return date;\n}\nfunction fixDigits(k) {\n if (k < 10) {\n return \"0\" + k;\n }\n else {\n return k;\n }\n}\nfunction greet() {\n let currentTime = new Date();\n let greet = Math.floor(currentTime.getHours() / 6);\n let easterEggChance = Math.floor(Math.random() * 100);\n let greetings = require('./messages.json');\n let timeBased = [];\n let easterEggs = [];\n for (var i = 0; i < greetings.messages.length; i++) {\n if (greetings.messages[i].easteregg === \"FALSE\") {\n timeBased = timeBased.concat(greetings.messages[i]);\n } else {\n easterEggs = easterEggs.concat(greetings.messages[i]);\n }\n }\n if (easterEggChance > 10) {\n return timeBased[greet].message;\n } else {\n let easterEggText = Math.floor(Math.random() * easterEggs.length);\n return easterEggs[easterEggText].message;\n }\n}\nfunction Clock() {\n const [date, setDate] = useState(new Date());\n\n function refreshClock() {\n setDate(new Date());\n }\n useEffect(() => {\n const timerId = setInterval(refreshClock, 1000);\n return function cleanup() {\n clearInterval(timerId);\n };\n }, []);\n\n var hour = date.getHours();\n var minutes = date.getMinutes();\n //var seconds = date.getSeconds();\n var midday = \"AM\";\n midday = (hour >= 12) ? \"PM\" : \"AM\";\n hour = (hour === 0) ? 12 : ((hour > 12) ? (hour - 12) : hour);\n minutes = fixDigits(minutes);\n //seconds = fixDigits(seconds);\n let time = hour + \":\" + minutes + \" \" + midday;\n\n return (\n {time}
\n\n );\n}\nfunction getApps() {\n let applications = require('./apps.json');\n return applications;\n}\nfunction getLinks() {\n let links = require('./links.json');\n return links;\n}\nfunction getProviders() {\n let providers = require('./providers.json');\n return providers;\n}\n\nfunction handleKeyPress(e) {\n var sindex = 0;\n var cycle = false;\n var key = e.keyCode || e.which;\n var text = e.target.value.replaceAll(\"+\", \"%2B\");\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n if (key == 13) { // Search functions\n search(text);\n }\n if (key == 9) { // Tab Completion Functions\n e.preventDefault();\n e.stopPropagation();\n if (text[0] === ';') {\n switch (option) {\n case 't':\n var streamers = ['admiralbahroo', 'moonmoon_ow', 'witwix'];\n if (!subtext || cycle) {\n cycle = true;\n if (sindex > streamers.length - 1) sindex = 0;\n document.getElementById(\"keywords\").value = ';t ' + streamers[sindex++];\n return;\n }\n for (var streamer of streamers) {\n if (subtext === streamer.substr(0, subtext.length)) {\n document.getElementById(\"keywords\").value = ';t ' + streamer;\n return;\n }\n }\n break;\n }\n }\n }\n if(key == 32){ //Space to go to search\nupdateLabel(text);\n }\n sindex = 0;\n cycle = false;\n updateLabel(text);\n}\n\nfunction updateLabel(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n if (text[0] === '/') {\n// if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n document.getElementById(\"searchType\").innerHTML = \"Allmusic search\";\n break;\n case \"d\":\n document.getElementById(\"searchType\").innerHTML = \"Duck Duck Go search\";\n break;\n case \"di\":\n document.getElementById(\"searchType\").innerHTML = \"Discogs search\";\n break;\n case \"i\":\n document.getElementById(\"searchType\").innerHTML = \"IMDB search\";\n break;\n case \"m\":\n document.getElementById(\"searchType\").innerHTML = \"TheMovieDB search\";\n break;\n case \"r\":\n document.getElementById(\"searchType\").innerHTML = \"Reddit search\";\n break;\n case \"q\":\n document.getElementById(\"searchType\").innerHTML = \"Qwant search\";\n break;\n case \"so\":\n document.getElementById(\"searchType\").innerHTML = \"Soundcloud search\";\n break;\n case \"s\":\n document.getElementById(\"searchType\").innerHTML = \"Spotify search\";\n break;\n case \"tv\":\n document.getElementById(\"searchType\").innerHTML = \"TheTVDB search\";\n break;\n case \"t\":\n document.getElementById(\"searchType\").innerHTML = \"Trakt search\";\n break;\n case \"y\":\n document.getElementById(\"searchType\").innerHTML = \"YouTube search\";\n break;\n case \"w\":\n document.getElementById(\"searchType\").innerHTML = \"Wikipedia search\";\n break;\n case \"p\":\n document.getElementById(\"searchType\").innerHTML = \"Plex search\";\n break;\n case \"rt\":\n document.getElementById(\"searchType\").innerHTML = \"Rotten Tomatoes search\";\n break;\n default:\n document.getElementById(\"searchType\").innerHTML = \"Invalid search\";\n break;\n }\n}else {\n document.getElementById(\"searchType\").innerHTML = \"Google search\";\n }\n}\n\nfunction search(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n if (text[0] === '/') {\n if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n window.location = \"https://www.allmusic.com/search/all/\" + subtext;\n break;\n case \"d\":\n window.location = \"https://duckduckgo.com/?q=\" + subtext;\n break;\n case \"di\":\n window.location = \"https://www.discogs.com/search/?q=\" + subtext;\n break;\n case \"i\":\n window.location = \"https://www.imdb.com/find?q=\" + subtext;\n break;\n case \"m\":\n window.location = \"https://www.themoviedb.org/search?query=\" + subtext;\n break;\n case \"r\":\n window.location = \"https://www.reddit.com/search?q=\" + subtext;\n break;\n case \"q\":\n window.location = \"https://www.qwant.com/?q=\" + subtext;\n break;\n case \"so\":\n window.location = \"https://soundcloud.com/search?q=\" + subtext;\n break;\n case \"s\":\n window.location = \"https://open.spotify.com/search/results/\" + subtext;\n break;\n case \"t\":\n window.location = \"https://trakt.tv/search?query=\" + subtext;\n break;\n case \"tv\":\n window.location = \"https://www.thetvdb.com/search?query=\" + subtext;\n break;\n case \"y\":\n window.location = \"https://www.youtube.com/results?search_query=\" + subtext;\n break;\n case \"w\":\n window.location = \"https://en.wikipedia.org/w/index.php?search=\" + subtext;\n break;\n case \"p\":\n window.location = \"https://app.plex.tv/desktop/#!/search?query=\" + subtext;\n break;\n case \"rt\":\n window.location = \"https://www.rottentomatoes.com/search?search=\" + subtext;\n break;\n }\n } else {\n var option = text.substr(1);\n switch (option) {\n case \"d\":\n window.location = \"https://www.duckduckgo.com\";\n break;\n case \"y\":\n window.location = \"https://www.youtube.com\";\n break;\n case \"r\":\n window.location = \"https://reddit.com\";\n break;\n case \"s\":\n window.location = \"https://open.spotify.com\";\n break;\n }\n }\n } else if (validURL(text)) {\n if (containsProtocol(text))\n window.location = text;\n else\n window.location = \"https://\" + text;\n } else {\n window.location = \"https://www.google.com/search?q=\" + text;\n }\n}\n\n// Source: https://stackoverflow.com/questions/5717093/check-if-a-javascript-string-is-a-url\nfunction validURL(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/)?' + // protocol\n '((([a-z\\\\d]([a-z\\\\d-]*[a-z\\\\d])*)\\\\.)+[a-z]{2,}|' + // domain name\n '((\\\\d{1,3}\\\\.){3}\\\\d{1,3}))' + // OR ip (v4) address\n '(\\\\:\\\\d+)?(\\\\/[-a-z\\\\d%_.~+]*)*' + // port and path\n '(\\\\?[;&a-z\\\\d%_.~+=-]*)?' + // query string\n '(\\\\#[-a-z\\\\d_]*)?$', 'i'); // fragment locator\n return !!pattern.test(str);\n}\n\nfunction containsProtocol(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/){1}.*', 'i');\n return !!pattern.test(str);\n}\n\nString.prototype.replaceAll = function(search, replacement) {\n var target = this;\n return target.split(search).join(replacement);\n};"]},"metadata":{},"sourceType":"module"}
\ No newline at end of file
diff --git a/node_modules/.cache/babel-loader/efcc4e714922425116e80308e12f572a.json b/node_modules/.cache/babel-loader/efcc4e714922425116e80308e12f572a.json
new file mode 100644
index 00000000..34c99e2e
--- /dev/null
+++ b/node_modules/.cache/babel-loader/efcc4e714922425116e80308e12f572a.json
@@ -0,0 +1 @@
+{"ast":null,"code":"var _jsxFileName = \"/home/seanedmunds/dev/home-page/src/index.js\",\n _s = $RefreshSig$();\n\nimport React from 'react';\nimport { useState, useEffect } from 'react';\nimport ReactDOM from 'react-dom'; //import { unstable_createPortal } from 'react-dom';\n\nimport './index.css';\nimport { jsxDEV as _jsxDEV } from \"react/jsx-dev-runtime\";\n\nconst setValueFromLocalStorage = property => {\n let value = localStorage.getItem(property);\n setValue(property, value);\n};\n\nconst setValue = (property, value) => {\n if (value) {\n document.documentElement.style.setProperty(`--${property}`, value);\n const input = document.querySelector(`#${property}`);\n\n if (input) {\n value = value.replace('px', '');\n input.value = value;\n }\n }\n};\n\nfunction Homepage() {\n setTheme();\n return /*#__PURE__*/_jsxDEV(\"main\", {\n id: \"container\",\n className: \"fade\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Search, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 28,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 27,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Header, {\n date: date(),\n greet: greet()\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 31,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 30,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Applications, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 37,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 36,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Bookmarks, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 40,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 39,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(ModalMenu, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 43,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 42,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(ModalInit, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 46,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 45,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 26,\n columnNumber: 5\n }, this);\n}\n\n_c = Homepage;\n\nfunction Search() {\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"search\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"abackground\",\n children: [/*#__PURE__*/_jsxDEV(\"input\", {\n name: \"keywords\",\n type: \"text\",\n className: \"keyword\",\n id: \"keywords\",\n size: \"50\",\n spellCheck: \"true\",\n placeholder: \"\"\n /*onFocus={this.placeholder = \"\"} onBlur={this.placeholder = ''}*/\n ,\n autoComplete: \"off\",\n autoFocus: true,\n onKeyUp: handleKeyPress\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 56,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n id: \"searchType\",\n className: \"Input-label\",\n children: \"Google search\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 57,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 55,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 54,\n columnNumber: 5\n }, this);\n}\n\n_c2 = Search;\n\nfunction Header(props) {\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"header\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n id: \"greeting_block\",\n children: /*#__PURE__*/_jsxDEV(\"h1\", {\n id: \"header_greet\",\n children: props.greet\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 67,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 66,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"date_block\",\n children: [/*#__PURE__*/_jsxDEV(\"h2\", {\n id: \"header_date\",\n children: props.date\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 70,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(Clock, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 71,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 69,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 65,\n columnNumber: 5\n }, this);\n}\n\n_c3 = Header;\n\nfunction Applications() {\n let appList = getApps();\n var items = [];\n\n for (var i = 0; i < appList.apps.length; i++) {\n var safe = appList.apps[i].NSFW;\n var NSFWEnabled = localStorage.getItem(\"contenttype\");\n console.log(safe);\n\n if (safe === \"SAFE\") {\n items.push( /*#__PURE__*/_jsxDEV(App, {\n name: appList.apps[i].name,\n url: appList.apps[i].url,\n icon: appList.apps[i].icon,\n NSFW: appList.apps[i].NSFW\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 86,\n columnNumber: 9\n }, this));\n } else if (safe === \"NSFW\" && NSFWEnabled) {\n items.push( /*#__PURE__*/_jsxDEV(App, {\n name: appList.apps[i].name,\n url: appList.apps[i].url,\n icon: appList.apps[i].icon,\n NSFW: appList.apps[i].NSFW\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 96,\n columnNumber: 9\n }, this));\n } else {\n console.log(NSFWEnabled);\n }\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"apps\",\n children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n children: \"Applications\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 111,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"apps_loop\",\n children: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 112,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 110,\n columnNumber: 5\n }, this);\n}\n\n_c4 = Applications;\n\nfunction App(props) {\n if (safe === \"NSFW\" && !NSFWEnabled) {\n return /*#__PURE__*/_jsxDEV(\"div\", {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 122,\n columnNumber: 7\n }, this);\n } else {\n let classNameType = props.NSFW + \"-content\";\n let hrefUrl = \"https://\" + props.url;\n let iconName = \"mdi-\" + props.icon;\n return /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: hrefUrl,\n className: classNameType,\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_item\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_icon\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify icon\",\n \"data-icon\": iconName\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 133,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 132,\n columnNumber: 13\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_text\",\n children: [/*#__PURE__*/_jsxDEV(\"span\", {\n id: \"app-name\",\n children: props.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 136,\n columnNumber: 15\n }, this), /*#__PURE__*/_jsxDEV(\"span\", {\n id: \"app-address\",\n children: props.url\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 137,\n columnNumber: 15\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 135,\n columnNumber: 13\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 131,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 130,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 129,\n columnNumber: 7\n }, this);\n }\n}\n\n_c5 = App;\n\nfunction Bookmarks() {\n let bookmarkList = getLinks();\n var items = [];\n\n for (var i = 0; i < bookmarkList.bookmarks.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(LinkGroups, {\n category: bookmarkList.bookmarks[i].category,\n links: bookmarkList.bookmarks[i].links\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 152,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"links\",\n children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n children: \"Bookmarks\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 161,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"links_loop\",\n children: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 162,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 160,\n columnNumber: 5\n }, this);\n}\n\n_c6 = Bookmarks;\n\nfunction LinkGroups(props) {\n var items = [];\n\n for (var i = 0; i < props.links.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(LinkItem, {\n link: props.links[i]\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 173,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"links_item\",\n children: [/*#__PURE__*/_jsxDEV(\"h4\", {\n children: props.category\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 181,\n columnNumber: 7\n }, this), items]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 180,\n columnNumber: 5\n }, this);\n}\n\n_c7 = LinkGroups;\n\nfunction LinkItem(props) {\n return /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: props.link.url,\n className: \"theme_color-border theme_text-select\",\n children: props.link.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 190,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 189,\n columnNumber: 5\n }, this);\n}\n\n_c8 = LinkItem;\n\nfunction ModalMenu() {\n var providers = getProviders();\n var items = [];\n\n for (var i = 0; i < providers.providers.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(Provider, {\n provider: providers.providers[i]\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 200,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"modal\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n children: [/*#__PURE__*/_jsxDEV(\"header\", {\n id: \"modal-header\",\n children: [/*#__PURE__*/_jsxDEV(\"h1\", {\n children: \"Options\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 210,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n href: \"#\",\n title: \"Close\",\n className: \"modal-close\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-close\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 212,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 211,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 209,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"h2\", {\n children: \"Color themes\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 216,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"modal-theme\",\n children: [/*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"blackboard\",\n className: \"theme-button theme-blackboard\",\n onClick: updateTheme,\n children: \"Blackboard\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 219,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"gazette\",\n className: \"theme-button theme-gazette\",\n onClick: updateTheme,\n children: \"Gazette\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 220,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"espresso\",\n className: \"theme-button theme-espresso\",\n onClick: updateTheme,\n children: \"Espresso\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 221,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cab\",\n className: \"theme-button theme-cab\",\n onClick: updateTheme,\n children: \"Cab\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 222,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cloud\",\n className: \"theme-button theme-cloud\",\n onClick: updateTheme,\n children: \"Cloud\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 223,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"lime\",\n className: \"theme-button theme-lime\",\n onClick: updateTheme,\n children: \"Lime\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 224,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"passion\",\n className: \"theme-button theme-passion\",\n onClick: updateTheme,\n children: \"Passion\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 225,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"blues\",\n className: \"theme-button theme-blues\",\n onClick: updateTheme,\n children: \"Blues\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 226,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"chalk\",\n className: \"theme-button theme-chalk\",\n onClick: updateTheme,\n children: \"Chalk\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 227,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"tron\",\n className: \"theme-button theme-tron\",\n onClick: updateTheme,\n children: \"Tron\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 228,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"paper\",\n className: \"theme-button theme-paper\",\n onClick: updateTheme,\n children: \"Paper\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 229,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cyberpunk\",\n className: \"theme-button theme-cyberpunk\",\n onClick: updateTheme,\n children: \"Cyberpunk\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 230,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"quadra\",\n className: \"theme-button theme-panam\",\n onClick: updateTheme,\n children: \"Quadra\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 231,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"panam\",\n className: \"theme-button theme-panam\",\n onClick: updateTheme,\n children: \"Panam\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 232,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"touch\",\n className: \"theme-button theme-touch\",\n onClick: updateTheme,\n children: \"Touch\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 233,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"peek\",\n className: \"theme-button theme-peek\",\n onClick: updateTheme,\n children: \"Peek\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 234,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 218,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"h2\", {\n children: \"Search options\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 238,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"providers\",\n children: /*#__PURE__*/_jsxDEV(\"table\", {\n children: /*#__PURE__*/_jsxDEV(\"tbody\", {\n children: [/*#__PURE__*/_jsxDEV(\"tr\", {\n children: [/*#__PURE__*/_jsxDEV(\"th\", {\n children: \"Website\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 243,\n columnNumber: 19\n }, this), /*#__PURE__*/_jsxDEV(\"th\", {\n children: \"Prefix\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 244,\n columnNumber: 19\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 242,\n columnNumber: 17\n }, this), items]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 241,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 240,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 239,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"header\", {\n id: \"modal-footer\",\n children: [/*#__PURE__*/_jsxDEV(\"a\", {\n href: \"https://github.com/jeroenpardon/\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-github-box\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 252,\n columnNumber: 54\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 252,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n href: \"https://materialdesignicons.com/\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-material-design\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 253,\n columnNumber: 54\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 253,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"sneaky\",\n children: [/*#__PURE__*/_jsxDEV(\"input\", {\n type: \"checkbox\",\n id: \"contenttype\",\n onChange: udpateDisplayedItems\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 254,\n columnNumber: 35\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n for: \"contenttype\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-domino-mask\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 255,\n columnNumber: 36\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 255,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 254,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 251,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 208,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 207,\n columnNumber: 5\n }, this);\n}\n\n_c9 = ModalMenu;\n\nfunction Provider(props) {\n return /*#__PURE__*/_jsxDEV(\"tr\", {\n children: [/*#__PURE__*/_jsxDEV(\"td\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: props.provider.url,\n children: props.provider.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 265,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 265,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"td\", {\n children: props.provider.prefix\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 266,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 264,\n columnNumber: 5\n }, this);\n}\n\n_c10 = Provider;\n\nfunction ModalInit() {\n return /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"modal_init\",\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n className: \"btn\",\n href: \"#modal\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify icon\",\n \"data-icon\": \"mdi-xbox-controller-menu\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 275,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 274,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 273,\n columnNumber: 5\n }, this);\n}\n\n_c11 = ModalInit;\nReactDOM.render( /*#__PURE__*/_jsxDEV(Homepage, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 282,\n columnNumber: 3\n}, this), document.getElementById('root')); //Functions below this line are for calculating data for\n//other functions\n\nfunction date() {\n let currentDate = new Date();\n let dateOptions = {\n weekday: \"long\",\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\"\n };\n let date = currentDate.toLocaleDateString(\"en-GB\", dateOptions);\n return date;\n}\n\nfunction fixDigits(k) {\n if (k < 10) {\n return \"0\" + k;\n } else {\n return k;\n }\n}\n\nfunction greet() {\n let currentTime = new Date();\n let greet = Math.floor(currentTime.getHours() / 6);\n let easterEggChance = Math.floor(Math.random() * 100);\n\n let greetings = require('./messages.json');\n\n let timeBased = [];\n let easterEggs = [];\n\n for (var i = 0; i < greetings.messages.length; i++) {\n if (greetings.messages[i].easteregg === \"FALSE\") {\n timeBased = timeBased.concat(greetings.messages[i]);\n } else {\n easterEggs = easterEggs.concat(greetings.messages[i]);\n }\n }\n\n if (easterEggChance > 10) {\n return timeBased[greet].message;\n } else {\n let easterEggText = Math.floor(Math.random() * easterEggs.length);\n return easterEggs[easterEggText].message;\n }\n}\n\nfunction Clock() {\n _s();\n\n const [date, setDate] = useState(new Date());\n\n function refreshClock() {\n setDate(new Date());\n }\n\n useEffect(() => {\n const timerId = setInterval(refreshClock, 1000);\n return function cleanup() {\n clearInterval(timerId);\n };\n }, []);\n var hour = date.getHours();\n var minutes = date.getMinutes(); //var seconds = date.getSeconds();\n\n var midday = \"AM\";\n midday = hour >= 12 ? \"PM\" : \"AM\";\n hour = hour === 0 ? 12 : hour > 12 ? hour - 12 : hour;\n minutes = fixDigits(minutes); //seconds = fixDigits(seconds);\n\n let time = hour + \":\" + minutes + \" \" + midday;\n return /*#__PURE__*/_jsxDEV(\"h2\", {\n id: \"clock\",\n children: time\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 353,\n columnNumber: 5\n }, this);\n}\n\n_s(Clock, \"Gqi45WOZhU2c0BLYX0HoJeiR0fk=\");\n\n_c12 = Clock;\n\nfunction getApps() {\n let applications = require('./apps.json');\n\n return applications;\n}\n\nfunction getLinks() {\n let links = require('./links.json');\n\n return links;\n}\n\nfunction getProviders() {\n let providers = require('./providers.json');\n\n return providers;\n}\n\nfunction getThemes() {\n let themes = require('./themes.json');\n\n return themes;\n}\n\nfunction updateTheme(e) {\n var themes = getThemes();\n var themeName = e.target.innerHTML.toLowerCase();\n var index = themes.themes.findIndex(function (item, i) {\n return item.name === themeName;\n });\n console.log(themes.themes[index]);\n localStorage.setItem(\"image-background\", themes.themes[index].imagebackground);\n localStorage.setItem(\"color-background\", themes.themes[index].colorbackground);\n localStorage.setItem(\"color-search-background\", themes.themes[index].colorserachbackground);\n localStorage.setItem(\"color-text-pri\", themes.themes[index].colortextpri);\n localStorage.setItem(\"color-text-acc\", themes.themes[index].colortextacc);\n localStorage.setItem(\"color-border\", themes.themes[index].colorborder); //document.documentElement.style.setProperty(prop, `var(--${themeName}${prop.substring(10)})`);\n\n setTheme();\n}\n\nfunction setTheme() {\n setValueFromLocalStorage('image-background');\n setValueFromLocalStorage('color-background');\n setValueFromLocalStorage('color-search-background');\n setValueFromLocalStorage('color-text-pri');\n setValueFromLocalStorage('color-text-acc');\n setValueFromLocalStorage('color-border');\n setValueFromLocalStorage('content-display');\n}\n\nfunction handleKeyPress(e) {\n var sindex = 0;\n var cycle = false;\n var key = e.keyCode || e.which;\n var text = e.target.value.replaceAll(\"+\", \"%2B\");\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n\n if (key == 13) {\n // Search functions\n search(text);\n }\n\n if (key == 9) {\n // Tab Completion Functions\n e.preventDefault();\n e.stopPropagation();\n\n if (text[0] === ';') {\n switch (option) {\n case 't':\n var streamers = ['admiralbahroo', 'moonmoon_ow', 'witwix'];\n\n if (!subtext || cycle) {\n cycle = true;\n if (sindex > streamers.length - 1) sindex = 0;\n document.getElementById(\"keywords\").value = ';t ' + streamers[sindex++];\n return;\n }\n\n for (var streamer of streamers) {\n if (subtext === streamer.substr(0, subtext.length)) {\n document.getElementById(\"keywords\").value = ';t ' + streamer;\n return;\n }\n }\n\n break;\n }\n }\n }\n\n if (key == 32) {\n //Space to go to search\n updateLabel(text);\n }\n\n sindex = 0;\n cycle = false;\n updateLabel(text);\n}\n\nfunction updateLabel(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n\n if (text[0] === '/') {\n // if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n document.getElementById(\"searchType\").innerHTML = \"Allmusic search\";\n break;\n\n case \"d\":\n document.getElementById(\"searchType\").innerHTML = \"Duck Duck Go search\";\n break;\n\n case \"di\":\n document.getElementById(\"searchType\").innerHTML = \"Discogs search\";\n break;\n\n case \"i\":\n document.getElementById(\"searchType\").innerHTML = \"IMDB search\";\n break;\n\n case \"m\":\n document.getElementById(\"searchType\").innerHTML = \"TheMovieDB search\";\n break;\n\n case \"r\":\n document.getElementById(\"searchType\").innerHTML = \"Reddit search\";\n break;\n\n case \"q\":\n document.getElementById(\"searchType\").innerHTML = \"Qwant search\";\n break;\n\n case \"so\":\n document.getElementById(\"searchType\").innerHTML = \"Soundcloud search\";\n break;\n\n case \"s\":\n document.getElementById(\"searchType\").innerHTML = \"Spotify search\";\n break;\n\n case \"tv\":\n document.getElementById(\"searchType\").innerHTML = \"TheTVDB search\";\n break;\n\n case \"t\":\n document.getElementById(\"searchType\").innerHTML = \"Trakt search\";\n break;\n\n case \"y\":\n document.getElementById(\"searchType\").innerHTML = \"YouTube search\";\n break;\n\n case \"w\":\n document.getElementById(\"searchType\").innerHTML = \"Wikipedia search\";\n break;\n\n case \"p\":\n document.getElementById(\"searchType\").innerHTML = \"Plex search\";\n break;\n\n case \"rt\":\n document.getElementById(\"searchType\").innerHTML = \"Rotten Tomatoes search\";\n break;\n\n default:\n document.getElementById(\"searchType\").innerHTML = \"Invalid search\";\n break;\n }\n } else {\n document.getElementById(\"searchType\").innerHTML = \"Google search\";\n }\n}\n\nfunction search(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n\n if (text[0] === '/') {\n if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n window.location = \"https://www.allmusic.com/search/all/\" + subtext;\n break;\n\n case \"d\":\n window.location = \"https://duckduckgo.com/?q=\" + subtext;\n break;\n\n case \"di\":\n window.location = \"https://www.discogs.com/search/?q=\" + subtext;\n break;\n\n case \"i\":\n window.location = \"https://www.imdb.com/find?q=\" + subtext;\n break;\n\n case \"m\":\n window.location = \"https://www.themoviedb.org/search?query=\" + subtext;\n break;\n\n case \"r\":\n window.location = \"https://www.reddit.com/search?q=\" + subtext;\n break;\n\n case \"q\":\n window.location = \"https://www.qwant.com/?q=\" + subtext;\n break;\n\n case \"so\":\n window.location = \"https://soundcloud.com/search?q=\" + subtext;\n break;\n\n case \"s\":\n window.location = \"https://open.spotify.com/search/results/\" + subtext;\n break;\n\n case \"t\":\n window.location = \"https://trakt.tv/search?query=\" + subtext;\n break;\n\n case \"tv\":\n window.location = \"https://www.thetvdb.com/search?query=\" + subtext;\n break;\n\n case \"y\":\n window.location = \"https://www.youtube.com/results?search_query=\" + subtext;\n break;\n\n case \"w\":\n window.location = \"https://en.wikipedia.org/w/index.php?search=\" + subtext;\n break;\n\n case \"p\":\n window.location = \"https://app.plex.tv/desktop/#!/search?query=\" + subtext;\n break;\n\n case \"rt\":\n window.location = \"https://www.rottentomatoes.com/search?search=\" + subtext;\n break;\n }\n } else {\n var option = text.substr(1);\n\n switch (option) {\n case \"d\":\n window.location = \"https://www.duckduckgo.com\";\n break;\n\n case \"y\":\n window.location = \"https://www.youtube.com\";\n break;\n\n case \"r\":\n window.location = \"https://reddit.com\";\n break;\n\n case \"s\":\n window.location = \"https://open.spotify.com\";\n break;\n }\n }\n } else if (validURL(text)) {\n if (containsProtocol(text)) window.location = text;else window.location = \"https://\" + text;\n } else {\n window.location = \"https://www.google.com/search?q=\" + text;\n }\n} // Source: https://stackoverflow.com/questions/5717093/check-if-a-javascript-string-is-a-url\n\n\nfunction validURL(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/)?' + // protocol\n '((([a-z\\\\d]([a-z\\\\d-]*[a-z\\\\d])*)\\\\.)+[a-z]{2,}|' + // domain name\n '((\\\\d{1,3}\\\\.){3}\\\\d{1,3}))' + // OR ip (v4) address\n '(\\\\:\\\\d+)?(\\\\/[-a-z\\\\d%_.~+]*)*' + // port and path\n '(\\\\?[;&a-z\\\\d%_.~+=-]*)?' + // query string\n '(\\\\#[-a-z\\\\d_]*)?$', 'i'); // fragment locator\n\n return !!pattern.test(str);\n}\n\nfunction containsProtocol(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/){1}.*', 'i');\n return !!pattern.test(str);\n}\n\nString.prototype.replaceAll = function (search, replacement) {\n var target = this;\n return target.split(search).join(replacement);\n};\n\nfunction udpateDisplayedItems(e) {\n localStorage.setItem('contenttype', e.target.checked);\n\n if (e.target.checked) {\n localStorage.setItem('content-display', 'none');\n } else {\n localStorage.setItem('content-display', 'block');\n }\n\n setDisplayedItems();\n}\n\nfunction setDisplayedItems() {\n setValueFromLocalStorage('contenttype');\n setValueFromLocalStorage('content-display');\n}\n\nvar _c, _c2, _c3, _c4, _c5, _c6, _c7, _c8, _c9, _c10, _c11, _c12;\n\n$RefreshReg$(_c, \"Homepage\");\n$RefreshReg$(_c2, \"Search\");\n$RefreshReg$(_c3, \"Header\");\n$RefreshReg$(_c4, \"Applications\");\n$RefreshReg$(_c5, \"App\");\n$RefreshReg$(_c6, \"Bookmarks\");\n$RefreshReg$(_c7, \"LinkGroups\");\n$RefreshReg$(_c8, \"LinkItem\");\n$RefreshReg$(_c9, \"ModalMenu\");\n$RefreshReg$(_c10, \"Provider\");\n$RefreshReg$(_c11, \"ModalInit\");\n$RefreshReg$(_c12, \"Clock\");","map":{"version":3,"sources":["/home/seanedmunds/dev/home-page/src/index.js"],"names":["React","useState","useEffect","ReactDOM","setValueFromLocalStorage","property","value","localStorage","getItem","setValue","document","documentElement","style","setProperty","input","querySelector","replace","Homepage","setTheme","date","greet","Search","handleKeyPress","Header","props","Applications","appList","getApps","items","i","apps","length","safe","NSFW","NSFWEnabled","console","log","push","name","url","icon","App","classNameType","hrefUrl","iconName","Bookmarks","bookmarkList","getLinks","bookmarks","category","links","LinkGroups","LinkItem","link","ModalMenu","providers","getProviders","updateTheme","udpateDisplayedItems","Provider","provider","prefix","ModalInit","render","getElementById","currentDate","Date","dateOptions","weekday","year","month","day","toLocaleDateString","fixDigits","k","currentTime","Math","floor","getHours","easterEggChance","random","greetings","require","timeBased","easterEggs","messages","easteregg","concat","message","easterEggText","Clock","setDate","refreshClock","timerId","setInterval","cleanup","clearInterval","hour","minutes","getMinutes","midday","time","applications","getThemes","themes","e","themeName","target","innerHTML","toLowerCase","index","findIndex","item","setItem","imagebackground","colorbackground","colorserachbackground","colortextpri","colortextacc","colorborder","sindex","cycle","key","keyCode","which","text","replaceAll","option","substr","indexOf","subtext","search","preventDefault","stopPropagation","streamers","streamer","updateLabel","window","location","validURL","containsProtocol","str","pattern","RegExp","test","String","prototype","replacement","split","join","checked","setDisplayedItems"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { useState, useEffect } from 'react';\nimport ReactDOM from 'react-dom';\n//import { unstable_createPortal } from 'react-dom';\nimport './index.css';\n\nconst setValueFromLocalStorage = property => {\n let value = localStorage.getItem(property);\n setValue(property, value);\n};\nconst setValue = (property, value) => {\n if (value) {\n document.documentElement.style.setProperty(`--${property}`, value);\n\n const input = document.querySelector(`#${property}`);\n if (input) {\n value = value.replace('px', '');\n input.value = value;\n }\n }\n};\n\nfunction Homepage() {\n setTheme();\n return (\n \n \n \n
\n \n \n
\n \n \n \n
\n \n \n
\n \n \n
\n \n );\n}\n\nfunction Search() {\n return (\n \n )\n}\n\nfunction Header(props) {\n return (\n \n );\n}\n\nfunction Applications() {\n let appList = getApps();\n var items = [];\n for (var i = 0; i < appList.apps.length; i++) {\n var safe = appList.apps[i].NSFW;\n var NSFWEnabled = localStorage.getItem(\"contenttype\");\n console.log(safe);\n if (safe === \"SAFE\") {\n items.push(\n \n );\n } else if (safe === \"NSFW\" && NSFWEnabled) {\n items.push(\n \n );\n } else {\n console.log(NSFWEnabled);\n }\n \n }\n return (\n \n Applications
\n \n {items}\n
\n \n );\n}\n\nfunction App(props) {\n if (safe === \"NSFW\" && !NSFWEnabled) {\n return (\n \n );\n } else {\n let classNameType = props.NSFW + \"-content\";\n let hrefUrl = \"https://\" + props.url;\n let iconName = \"mdi-\" + props.icon;\n return (\n \n );\n }\n \n}\n\nfunction Bookmarks() {\n let bookmarkList = getLinks();\n var items = [];\n for (var i = 0; i < bookmarkList.bookmarks.length; i++) {\n items.push(\n \n );\n }\n return (\n \n Bookmarks
\n \n {items}\n
\n \n );\n}\n\nfunction LinkGroups(props) {\n var items = [];\n for (var i = 0; i < props.links.length; i++) {\n items.push(\n \n );\n }\n return (\n \n
{props.category}
\n {items}\n \n );\n}\n\nfunction LinkItem(props) {\n return (\n \n );\n}\n\nfunction ModalMenu() {\n var providers = getProviders();\n var items = [];\n for (var i = 0; i < providers.providers.length; i++) {\n items.push(\n \n );\n }\n return (\n \n \n \n\n
Color themes
\n\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n\n\n
Search options
\n
\n \n \n \n | Website | \n Prefix | \n
\n {items}\n \n
\n \n\n \n
\n \n );\n}\n\nfunction Provider(props) {\n return (\n \n | {props.provider.name} | \n {props.provider.prefix} | \n
\n );\n}\n\nfunction ModalInit() {\n return (\n \n );\n}\n\nReactDOM.render(\n ,\n document.getElementById('root')\n);\n\n//Functions below this line are for calculating data for\n//other functions\n\nfunction date() {\n let currentDate = new Date();\n let dateOptions = {\n weekday: \"long\",\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\"\n };\n let date = currentDate.toLocaleDateString(\"en-GB\", dateOptions);\n return date;\n}\nfunction fixDigits(k) {\n if (k < 10) {\n return \"0\" + k;\n }\n else {\n return k;\n }\n}\nfunction greet() {\n let currentTime = new Date();\n let greet = Math.floor(currentTime.getHours() / 6);\n let easterEggChance = Math.floor(Math.random() * 100);\n let greetings = require('./messages.json');\n let timeBased = [];\n let easterEggs = [];\n for (var i = 0; i < greetings.messages.length; i++) {\n if (greetings.messages[i].easteregg === \"FALSE\") {\n timeBased = timeBased.concat(greetings.messages[i]);\n } else {\n easterEggs = easterEggs.concat(greetings.messages[i]);\n }\n }\n if (easterEggChance > 10) {\n return timeBased[greet].message;\n } else {\n let easterEggText = Math.floor(Math.random() * easterEggs.length);\n return easterEggs[easterEggText].message;\n }\n}\nfunction Clock() {\n const [date, setDate] = useState(new Date());\n\n function refreshClock() {\n setDate(new Date());\n }\n useEffect(() => {\n const timerId = setInterval(refreshClock, 1000);\n return function cleanup() {\n clearInterval(timerId);\n };\n }, []);\n\n var hour = date.getHours();\n var minutes = date.getMinutes();\n //var seconds = date.getSeconds();\n var midday = \"AM\";\n midday = (hour >= 12) ? \"PM\" : \"AM\";\n hour = (hour === 0) ? 12 : ((hour > 12) ? (hour - 12) : hour);\n minutes = fixDigits(minutes);\n //seconds = fixDigits(seconds);\n let time = hour + \":\" + minutes + \" \" + midday;\n\n return (\n {time}
\n\n );\n}\nfunction getApps() {\n let applications = require('./apps.json');\n return applications;\n}\nfunction getLinks() {\n let links = require('./links.json');\n return links;\n}\nfunction getProviders() {\n let providers = require('./providers.json');\n return providers;\n}\nfunction getThemes() {\n let themes = require('./themes.json');\n return themes;\n}\n\nfunction updateTheme(e) {\n var themes = getThemes();\n var themeName = e.target.innerHTML.toLowerCase();\n var index = themes.themes.findIndex(function(item, i){\n return item.name === themeName\n });\n console.log(themes.themes[index]);\n localStorage.setItem(\"image-background\", themes.themes[index].imagebackground);\n localStorage.setItem(\"color-background\", themes.themes[index].colorbackground);\n localStorage.setItem(\"color-search-background\", themes.themes[index].colorserachbackground);\n localStorage.setItem(\"color-text-pri\",themes.themes[index].colortextpri);\n localStorage.setItem(\"color-text-acc\", themes.themes[index].colortextacc);\n localStorage.setItem(\"color-border\", themes.themes[index].colorborder);\n \n //document.documentElement.style.setProperty(prop, `var(--${themeName}${prop.substring(10)})`);\n setTheme();\n}\n\nfunction setTheme() {\n setValueFromLocalStorage('image-background');\n setValueFromLocalStorage('color-background');\n setValueFromLocalStorage('color-search-background');\n setValueFromLocalStorage('color-text-pri');\n setValueFromLocalStorage('color-text-acc');\n setValueFromLocalStorage('color-border');\n setValueFromLocalStorage('content-display');\n}\n\nfunction handleKeyPress(e) {\n var sindex = 0;\n var cycle = false;\n var key = e.keyCode || e.which;\n var text = e.target.value.replaceAll(\"+\", \"%2B\");\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n if (key == 13) { // Search functions\n search(text);\n }\n if (key == 9) { // Tab Completion Functions\n e.preventDefault();\n e.stopPropagation();\n if (text[0] === ';') {\n switch (option) {\n case 't':\n var streamers = ['admiralbahroo', 'moonmoon_ow', 'witwix'];\n if (!subtext || cycle) {\n cycle = true;\n if (sindex > streamers.length - 1) sindex = 0;\n document.getElementById(\"keywords\").value = ';t ' + streamers[sindex++];\n return;\n }\n for (var streamer of streamers) {\n if (subtext === streamer.substr(0, subtext.length)) {\n document.getElementById(\"keywords\").value = ';t ' + streamer;\n return;\n }\n }\n break;\n }\n }\n }\n if(key == 32){ //Space to go to search\nupdateLabel(text);\n }\n sindex = 0;\n cycle = false;\n updateLabel(text);\n}\n\nfunction updateLabel(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n if (text[0] === '/') {\n// if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n document.getElementById(\"searchType\").innerHTML = \"Allmusic search\";\n break;\n case \"d\":\n document.getElementById(\"searchType\").innerHTML = \"Duck Duck Go search\";\n break;\n case \"di\":\n document.getElementById(\"searchType\").innerHTML = \"Discogs search\";\n break;\n case \"i\":\n document.getElementById(\"searchType\").innerHTML = \"IMDB search\";\n break;\n case \"m\":\n document.getElementById(\"searchType\").innerHTML = \"TheMovieDB search\";\n break;\n case \"r\":\n document.getElementById(\"searchType\").innerHTML = \"Reddit search\";\n break;\n case \"q\":\n document.getElementById(\"searchType\").innerHTML = \"Qwant search\";\n break;\n case \"so\":\n document.getElementById(\"searchType\").innerHTML = \"Soundcloud search\";\n break;\n case \"s\":\n document.getElementById(\"searchType\").innerHTML = \"Spotify search\";\n break;\n case \"tv\":\n document.getElementById(\"searchType\").innerHTML = \"TheTVDB search\";\n break;\n case \"t\":\n document.getElementById(\"searchType\").innerHTML = \"Trakt search\";\n break;\n case \"y\":\n document.getElementById(\"searchType\").innerHTML = \"YouTube search\";\n break;\n case \"w\":\n document.getElementById(\"searchType\").innerHTML = \"Wikipedia search\";\n break;\n case \"p\":\n document.getElementById(\"searchType\").innerHTML = \"Plex search\";\n break;\n case \"rt\":\n document.getElementById(\"searchType\").innerHTML = \"Rotten Tomatoes search\";\n break;\n default:\n document.getElementById(\"searchType\").innerHTML = \"Invalid search\";\n break;\n }\n}else {\n document.getElementById(\"searchType\").innerHTML = \"Google search\";\n }\n}\n\nfunction search(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n if (text[0] === '/') {\n if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n window.location = \"https://www.allmusic.com/search/all/\" + subtext;\n break;\n case \"d\":\n window.location = \"https://duckduckgo.com/?q=\" + subtext;\n break;\n case \"di\":\n window.location = \"https://www.discogs.com/search/?q=\" + subtext;\n break;\n case \"i\":\n window.location = \"https://www.imdb.com/find?q=\" + subtext;\n break;\n case \"m\":\n window.location = \"https://www.themoviedb.org/search?query=\" + subtext;\n break;\n case \"r\":\n window.location = \"https://www.reddit.com/search?q=\" + subtext;\n break;\n case \"q\":\n window.location = \"https://www.qwant.com/?q=\" + subtext;\n break;\n case \"so\":\n window.location = \"https://soundcloud.com/search?q=\" + subtext;\n break;\n case \"s\":\n window.location = \"https://open.spotify.com/search/results/\" + subtext;\n break;\n case \"t\":\n window.location = \"https://trakt.tv/search?query=\" + subtext;\n break;\n case \"tv\":\n window.location = \"https://www.thetvdb.com/search?query=\" + subtext;\n break;\n case \"y\":\n window.location = \"https://www.youtube.com/results?search_query=\" + subtext;\n break;\n case \"w\":\n window.location = \"https://en.wikipedia.org/w/index.php?search=\" + subtext;\n break;\n case \"p\":\n window.location = \"https://app.plex.tv/desktop/#!/search?query=\" + subtext;\n break;\n case \"rt\":\n window.location = \"https://www.rottentomatoes.com/search?search=\" + subtext;\n break;\n }\n } else {\n var option = text.substr(1);\n switch (option) {\n case \"d\":\n window.location = \"https://www.duckduckgo.com\";\n break;\n case \"y\":\n window.location = \"https://www.youtube.com\";\n break;\n case \"r\":\n window.location = \"https://reddit.com\";\n break;\n case \"s\":\n window.location = \"https://open.spotify.com\";\n break;\n }\n }\n } else if (validURL(text)) {\n if (containsProtocol(text))\n window.location = text;\n else\n window.location = \"https://\" + text;\n } else {\n window.location = \"https://www.google.com/search?q=\" + text;\n }\n}\n\n// Source: https://stackoverflow.com/questions/5717093/check-if-a-javascript-string-is-a-url\nfunction validURL(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/)?' + // protocol\n '((([a-z\\\\d]([a-z\\\\d-]*[a-z\\\\d])*)\\\\.)+[a-z]{2,}|' + // domain name\n '((\\\\d{1,3}\\\\.){3}\\\\d{1,3}))' + // OR ip (v4) address\n '(\\\\:\\\\d+)?(\\\\/[-a-z\\\\d%_.~+]*)*' + // port and path\n '(\\\\?[;&a-z\\\\d%_.~+=-]*)?' + // query string\n '(\\\\#[-a-z\\\\d_]*)?$', 'i'); // fragment locator\n return !!pattern.test(str);\n}\n\nfunction containsProtocol(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/){1}.*', 'i');\n return !!pattern.test(str);\n}\n\nString.prototype.replaceAll = function(search, replacement) {\n var target = this;\n return target.split(search).join(replacement);\n};\n\nfunction udpateDisplayedItems(e) {\n localStorage.setItem('contenttype', e.target.checked);\n if (e.target.checked) {\n localStorage.setItem('content-display', 'none');\n } else {\n localStorage.setItem('content-display', 'block');\n }\n setDisplayedItems();\n}\nfunction setDisplayedItems() {\n setValueFromLocalStorage('contenttype');\n setValueFromLocalStorage('content-display');\n}"]},"metadata":{},"sourceType":"module"}
\ No newline at end of file
diff --git a/node_modules/.cache/babel-loader/f14b54d241b933ab52a412a9fa11d2d2.json b/node_modules/.cache/babel-loader/f14b54d241b933ab52a412a9fa11d2d2.json
new file mode 100644
index 00000000..0ff4c8e6
--- /dev/null
+++ b/node_modules/.cache/babel-loader/f14b54d241b933ab52a412a9fa11d2d2.json
@@ -0,0 +1 @@
+{"ast":null,"code":"var _jsxFileName = \"/home/seanedmunds/dev/home-page/src/index.js\",\n _s = $RefreshSig$();\n\nimport React from 'react';\nimport { useState, useEffect } from 'react';\nimport ReactDOM from 'react-dom';\nimport './index.css';\nimport { jsxDEV as _jsxDEV } from \"react/jsx-dev-runtime\";\n\nconst setValueFromLocalStorage = property => {\n let value = localStorage.getItem(property);\n setValue(property, value);\n};\n\nconst setValue = (property, value) => {\n if (value) {\n document.documentElement.style.setProperty(`--${property}`, value);\n const input = document.querySelector(`#${property}`);\n\n if (input) {\n value = value.replace('px', '');\n input.value = value;\n }\n }\n};\n\nfunction Homepage() {\n setTheme();\n return /*#__PURE__*/_jsxDEV(\"main\", {\n id: \"container\",\n className: \"fade\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Search, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 28,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 27,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Header, {\n date: date(),\n greet: greet()\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 31,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 30,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Applications, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 37,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 36,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Bookmarks, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 40,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 39,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(ModalMenu, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 43,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 42,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(ModalInit, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 46,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 45,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 26,\n columnNumber: 5\n }, this);\n}\n\n_c = Homepage;\n\nfunction Search() {\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"search\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"abackground\",\n children: [/*#__PURE__*/_jsxDEV(\"input\", {\n name: \"keywords\",\n type: \"text\",\n className: \"keyword\",\n id: \"keywords\",\n size: \"50\",\n spellCheck: \"true\",\n placeholder: \"\"\n /*onFocus={this.placeholder = \"\"} onBlur={this.placeholder = ''}*/\n ,\n autoComplete: \"off\",\n autoFocus: true,\n onKeyUp: handleKeyPress\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 56,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n id: \"searchType\",\n className: \"Input-label\",\n children: \"Google search\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 57,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 55,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 54,\n columnNumber: 5\n }, this);\n}\n\n_c2 = Search;\n\nfunction Header(props) {\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"header\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n id: \"greeting_block\",\n children: /*#__PURE__*/_jsxDEV(\"h1\", {\n id: \"header_greet\",\n children: props.greet\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 67,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 66,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"date_block\",\n children: [/*#__PURE__*/_jsxDEV(\"h2\", {\n id: \"header_date\",\n children: props.date\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 70,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(Clock, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 71,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 69,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 65,\n columnNumber: 5\n }, this);\n}\n\n_c3 = Header;\n\nfunction Applications() {\n let appList = getApps();\n var items = [];\n\n for (var i = 0; i < appList.apps.length; i++) {\n var safe = appList.apps[i].NSFW;\n var NSFWEnabled = localStorage.getItem(\"contenttype\");\n\n if (safe === \"SAFE\") {\n items.push( /*#__PURE__*/_jsxDEV(App, {\n name: appList.apps[i].name,\n url: appList.apps[i].url,\n icon: appList.apps[i].icon,\n NSFW: appList.apps[i].NSFW\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 85,\n columnNumber: 9\n }, this));\n } else if (safe === \"NSFW\" && NSFWEnabled) {\n items.push( /*#__PURE__*/_jsxDEV(App, {\n name: appList.apps[i].name,\n url: appList.apps[i].url,\n icon: appList.apps[i].icon,\n NSFW: appList.apps[i].NSFW\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 95,\n columnNumber: 9\n }, this));\n } else {}\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"apps\",\n children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n children: \"Applications\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 110,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"apps_loop\",\n children: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 111,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 109,\n columnNumber: 5\n }, this);\n}\n\n_c4 = Applications;\n\nfunction App(props) {\n let classNameType = props.NSFW + \"-content\";\n let hrefUrl = \"https://\" + props.url;\n let iconName = \"mdi-\" + props.icon;\n return /*#__PURE__*/_jsxDEV(\"div\", {\n className: classNameType,\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: hrefUrl,\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_item\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_icon\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify icon\",\n \"data-icon\": iconName\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 128,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 127,\n columnNumber: 13\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_text\",\n children: [/*#__PURE__*/_jsxDEV(\"span\", {\n id: \"app-name\",\n children: props.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 131,\n columnNumber: 15\n }, this), /*#__PURE__*/_jsxDEV(\"span\", {\n id: \"app-address\",\n children: props.url\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 132,\n columnNumber: 15\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 130,\n columnNumber: 13\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 126,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 125,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 124,\n columnNumber: 7\n }, this);\n}\n\n_c5 = App;\n\nfunction Bookmarks() {\n let bookmarkList = getLinks();\n var items = [];\n\n for (var i = 0; i < bookmarkList.bookmarks.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(LinkGroups, {\n category: bookmarkList.bookmarks[i].category,\n links: bookmarkList.bookmarks[i].links\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 145,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"links\",\n children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n children: \"Bookmarks\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 154,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"links_loop\",\n children: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 155,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 153,\n columnNumber: 5\n }, this);\n}\n\n_c6 = Bookmarks;\n\nfunction LinkGroups(props) {\n var items = [];\n\n for (var i = 0; i < props.links.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(LinkItem, {\n link: props.links[i]\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 166,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"links_item\",\n children: [/*#__PURE__*/_jsxDEV(\"h4\", {\n children: props.category\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 174,\n columnNumber: 7\n }, this), items]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 173,\n columnNumber: 5\n }, this);\n}\n\n_c7 = LinkGroups;\n\nfunction LinkItem(props) {\n return /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: props.link.url,\n className: \"theme_color-border theme_text-select\",\n children: props.link.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 183,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 182,\n columnNumber: 5\n }, this);\n}\n\n_c8 = LinkItem;\n\nfunction ModalMenu() {\n var providers = getProviders();\n var items = [];\n\n for (var i = 0; i < providers.providers.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(Provider, {\n provider: providers.providers[i]\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 193,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"modal\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n children: [/*#__PURE__*/_jsxDEV(\"header\", {\n id: \"modal-header\",\n children: [/*#__PURE__*/_jsxDEV(\"h1\", {\n children: \"Options\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 203,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n href: \"#\",\n title: \"Close\",\n className: \"modal-close\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-close\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 205,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 204,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 202,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"h2\", {\n children: \"Color themes\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 209,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"modal-theme\",\n children: [/*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"blackboard\",\n className: \"theme-button theme-blackboard\",\n onClick: updateTheme,\n children: \"Blackboard\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 212,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"gazette\",\n className: \"theme-button theme-gazette\",\n onClick: updateTheme,\n children: \"Gazette\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 213,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"espresso\",\n className: \"theme-button theme-espresso\",\n onClick: updateTheme,\n children: \"Espresso\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 214,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cab\",\n className: \"theme-button theme-cab\",\n onClick: updateTheme,\n children: \"Cab\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 215,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cloud\",\n className: \"theme-button theme-cloud\",\n onClick: updateTheme,\n children: \"Cloud\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 216,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"lime\",\n className: \"theme-button theme-lime\",\n onClick: updateTheme,\n children: \"Lime\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 217,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"passion\",\n className: \"theme-button theme-passion\",\n onClick: updateTheme,\n children: \"Passion\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 218,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"blues\",\n className: \"theme-button theme-blues\",\n onClick: updateTheme,\n children: \"Blues\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 219,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"chalk\",\n className: \"theme-button theme-chalk\",\n onClick: updateTheme,\n children: \"Chalk\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 220,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"tron\",\n className: \"theme-button theme-tron\",\n onClick: updateTheme,\n children: \"Tron\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 221,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"paper\",\n className: \"theme-button theme-paper\",\n onClick: updateTheme,\n children: \"Paper\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 222,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cyberpunk\",\n className: \"theme-button theme-cyberpunk\",\n onClick: updateTheme,\n children: \"Cyberpunk\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 223,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"quadra\",\n className: \"theme-button theme-panam\",\n onClick: updateTheme,\n children: \"Quadra\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 224,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"panam\",\n className: \"theme-button theme-panam\",\n onClick: updateTheme,\n children: \"Panam\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 225,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"touch\",\n className: \"theme-button theme-touch\",\n onClick: updateTheme,\n children: \"Touch\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 226,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"peek\",\n className: \"theme-button theme-peek\",\n onClick: updateTheme,\n children: \"Peek\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 227,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 211,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"h2\", {\n children: \"Search options\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 231,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"providers\",\n children: /*#__PURE__*/_jsxDEV(\"table\", {\n children: /*#__PURE__*/_jsxDEV(\"tbody\", {\n children: [/*#__PURE__*/_jsxDEV(\"tr\", {\n children: [/*#__PURE__*/_jsxDEV(\"th\", {\n children: \"Website\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 236,\n columnNumber: 19\n }, this), /*#__PURE__*/_jsxDEV(\"th\", {\n children: \"Prefix\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 237,\n columnNumber: 19\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 235,\n columnNumber: 17\n }, this), items]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 234,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 233,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 232,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"header\", {\n id: \"modal-footer\",\n children: [/*#__PURE__*/_jsxDEV(\"a\", {\n href: \"https://github.com/jeroenpardon/\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-github-box\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 245,\n columnNumber: 54\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 245,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n href: \"https://materialdesignicons.com/\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-material-design\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 246,\n columnNumber: 54\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 246,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(HideButton, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 247,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 244,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 201,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 200,\n columnNumber: 5\n }, this);\n}\n\n_c9 = ModalMenu;\n\nfunction HideButton() {\n return /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"sneaky\",\n children: [/*#__PURE__*/_jsxDEV(\"input\", {\n type: \"checkbox\",\n id: \"contenttype\",\n onChange: udpateDisplayedItems\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 256,\n columnNumber: 29\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n for: \"contenttype\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-domino-mask\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 257,\n columnNumber: 30\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 257,\n columnNumber: 5\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 256,\n columnNumber: 5\n }, this);\n}\n\n_c10 = HideButton;\n\nfunction Provider(props) {\n return /*#__PURE__*/_jsxDEV(\"tr\", {\n children: [/*#__PURE__*/_jsxDEV(\"td\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: props.provider.url,\n children: props.provider.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 264,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 264,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"td\", {\n children: props.provider.prefix\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 265,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 263,\n columnNumber: 5\n }, this);\n}\n\n_c11 = Provider;\n\nfunction ModalInit() {\n setDisplayedItems();\n return /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"modal_init\",\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n className: \"btn\",\n href: \"#modal\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify icon\",\n \"data-icon\": \"mdi-xbox-controller-menu\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 275,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 274,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 273,\n columnNumber: 5\n }, this);\n}\n\n_c12 = ModalInit;\nReactDOM.render( /*#__PURE__*/_jsxDEV(Homepage, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 282,\n columnNumber: 3\n}, this), document.getElementById('root')); //Functions below this line are for calculating data for\n//other functions\n\nfunction date() {\n let currentDate = new Date();\n let dateOptions = {\n weekday: \"long\",\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\"\n };\n let date = currentDate.toLocaleDateString(\"en-GB\", dateOptions);\n return date;\n}\n\nfunction fixDigits(k) {\n if (k < 10) {\n return \"0\" + k;\n } else {\n return k;\n }\n}\n\nfunction greet() {\n let currentTime = new Date();\n let greet = Math.floor(currentTime.getHours() / 6);\n let easterEggChance = Math.floor(Math.random() * 100);\n\n let greetings = require('./messages.json');\n\n let timeBased = [];\n let easterEggs = [];\n\n for (var i = 0; i < greetings.messages.length; i++) {\n if (greetings.messages[i].easteregg === \"FALSE\") {\n timeBased = timeBased.concat(greetings.messages[i]);\n } else {\n easterEggs = easterEggs.concat(greetings.messages[i]);\n }\n }\n\n if (easterEggChance > 10) {\n return timeBased[greet].message;\n } else {\n let easterEggText = Math.floor(Math.random() * easterEggs.length);\n return easterEggs[easterEggText].message;\n }\n}\n\nfunction Clock() {\n _s();\n\n const [date, setDate] = useState(new Date());\n\n function refreshClock() {\n setDate(new Date());\n }\n\n useEffect(() => {\n const timerId = setInterval(refreshClock, 1000);\n return function cleanup() {\n clearInterval(timerId);\n };\n }, []);\n var hour = date.getHours();\n var minutes = date.getMinutes(); //var seconds = date.getSeconds();\n\n var midday = \"AM\";\n midday = hour >= 12 ? \"PM\" : \"AM\";\n hour = hour === 0 ? 12 : hour > 12 ? hour - 12 : hour;\n minutes = fixDigits(minutes); //seconds = fixDigits(seconds);\n\n let time = hour + \":\" + minutes + \" \" + midday;\n return /*#__PURE__*/_jsxDEV(\"h2\", {\n id: \"clock\",\n children: time\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 353,\n columnNumber: 5\n }, this);\n}\n\n_s(Clock, \"Gqi45WOZhU2c0BLYX0HoJeiR0fk=\");\n\n_c13 = Clock;\n\nfunction getApps() {\n let applications = require('./apps.json');\n\n return applications;\n}\n\nfunction getLinks() {\n let links = require('./links.json');\n\n return links;\n}\n\nfunction getProviders() {\n let providers = require('./providers.json');\n\n return providers;\n}\n\nfunction getThemes() {\n let themes = require('./themes.json');\n\n return themes;\n}\n\nfunction updateTheme(e) {\n var themes = getThemes();\n var themeName = e.target.innerHTML.toLowerCase();\n var index = themes.themes.findIndex(function (item, i) {\n return item.name === themeName;\n });\n localStorage.setItem(\"image-background\", themes.themes[index].imagebackground);\n localStorage.setItem(\"color-background\", themes.themes[index].colorbackground);\n localStorage.setItem(\"color-search-background\", themes.themes[index].colorserachbackground);\n localStorage.setItem(\"color-text-pri\", themes.themes[index].colortextpri);\n localStorage.setItem(\"color-text-acc\", themes.themes[index].colortextacc);\n localStorage.setItem(\"color-border\", themes.themes[index].colorborder); //document.documentElement.style.setProperty(prop, `var(--${themeName}${prop.substring(10)})`);\n\n setTheme();\n}\n\nfunction setTheme() {\n setValueFromLocalStorage('image-background');\n setValueFromLocalStorage('color-background');\n setValueFromLocalStorage('color-search-background');\n setValueFromLocalStorage('color-text-pri');\n setValueFromLocalStorage('color-text-acc');\n setValueFromLocalStorage('color-border');\n setValueFromLocalStorage('content-display');\n}\n\nfunction handleKeyPress(e) {\n var sindex = 0;\n var cycle = false;\n var key = e.keyCode || e.which;\n var text = e.target.value.replaceAll(\"+\", \"%2B\");\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n\n if (key == 13) {\n // Search functions\n search(text);\n }\n\n if (key == 9) {\n // Tab Completion Functions\n e.preventDefault();\n e.stopPropagation();\n\n if (text[0] === ';') {\n switch (option) {\n case 't':\n var streamers = ['admiralbahroo', 'moonmoon_ow', 'witwix'];\n\n if (!subtext || cycle) {\n cycle = true;\n if (sindex > streamers.length - 1) sindex = 0;\n document.getElementById(\"keywords\").value = ';t ' + streamers[sindex++];\n return;\n }\n\n for (var streamer of streamers) {\n if (subtext === streamer.substr(0, subtext.length)) {\n document.getElementById(\"keywords\").value = ';t ' + streamer;\n return;\n }\n }\n\n break;\n }\n }\n }\n\n if (key == 32) {\n //Space to go to search\n updateLabel(text);\n }\n\n sindex = 0;\n cycle = false;\n updateLabel(text);\n}\n\nfunction updateLabel(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n\n if (text[0] === '/') {\n // if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n document.getElementById(\"searchType\").innerHTML = \"Allmusic search\";\n break;\n\n case \"d\":\n document.getElementById(\"searchType\").innerHTML = \"Duck Duck Go search\";\n break;\n\n case \"di\":\n document.getElementById(\"searchType\").innerHTML = \"Discogs search\";\n break;\n\n case \"i\":\n document.getElementById(\"searchType\").innerHTML = \"IMDB search\";\n break;\n\n case \"m\":\n document.getElementById(\"searchType\").innerHTML = \"TheMovieDB search\";\n break;\n\n case \"r\":\n document.getElementById(\"searchType\").innerHTML = \"Reddit search\";\n break;\n\n case \"q\":\n document.getElementById(\"searchType\").innerHTML = \"Qwant search\";\n break;\n\n case \"so\":\n document.getElementById(\"searchType\").innerHTML = \"Soundcloud search\";\n break;\n\n case \"s\":\n document.getElementById(\"searchType\").innerHTML = \"Spotify search\";\n break;\n\n case \"tv\":\n document.getElementById(\"searchType\").innerHTML = \"TheTVDB search\";\n break;\n\n case \"t\":\n document.getElementById(\"searchType\").innerHTML = \"Trakt search\";\n break;\n\n case \"y\":\n document.getElementById(\"searchType\").innerHTML = \"YouTube search\";\n break;\n\n case \"w\":\n document.getElementById(\"searchType\").innerHTML = \"Wikipedia search\";\n break;\n\n case \"p\":\n document.getElementById(\"searchType\").innerHTML = \"Plex search\";\n break;\n\n case \"rt\":\n document.getElementById(\"searchType\").innerHTML = \"Rotten Tomatoes search\";\n break;\n\n default:\n document.getElementById(\"searchType\").innerHTML = \"Invalid search\";\n break;\n }\n } else {\n document.getElementById(\"searchType\").innerHTML = \"Google search\";\n }\n}\n\nfunction search(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n\n if (text[0] === '/') {\n if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n window.location = \"https://www.allmusic.com/search/all/\" + subtext;\n break;\n\n case \"d\":\n window.location = \"https://duckduckgo.com/?q=\" + subtext;\n break;\n\n case \"di\":\n window.location = \"https://www.discogs.com/search/?q=\" + subtext;\n break;\n\n case \"i\":\n window.location = \"https://www.imdb.com/find?q=\" + subtext;\n break;\n\n case \"m\":\n window.location = \"https://www.themoviedb.org/search?query=\" + subtext;\n break;\n\n case \"r\":\n window.location = \"https://www.reddit.com/search?q=\" + subtext;\n break;\n\n case \"q\":\n window.location = \"https://www.qwant.com/?q=\" + subtext;\n break;\n\n case \"so\":\n window.location = \"https://soundcloud.com/search?q=\" + subtext;\n break;\n\n case \"s\":\n window.location = \"https://open.spotify.com/search/results/\" + subtext;\n break;\n\n case \"t\":\n window.location = \"https://trakt.tv/search?query=\" + subtext;\n break;\n\n case \"tv\":\n window.location = \"https://www.thetvdb.com/search?query=\" + subtext;\n break;\n\n case \"y\":\n window.location = \"https://www.youtube.com/results?search_query=\" + subtext;\n break;\n\n case \"w\":\n window.location = \"https://en.wikipedia.org/w/index.php?search=\" + subtext;\n break;\n\n case \"p\":\n window.location = \"https://app.plex.tv/desktop/#!/search?query=\" + subtext;\n break;\n\n case \"rt\":\n window.location = \"https://www.rottentomatoes.com/search?search=\" + subtext;\n break;\n }\n } else {\n var option = text.substr(1);\n\n switch (option) {\n case \"d\":\n window.location = \"https://www.duckduckgo.com\";\n break;\n\n case \"y\":\n window.location = \"https://www.youtube.com\";\n break;\n\n case \"r\":\n window.location = \"https://reddit.com\";\n break;\n\n case \"s\":\n window.location = \"https://open.spotify.com\";\n break;\n }\n }\n } else if (validURL(text)) {\n if (containsProtocol(text)) window.location = text;else window.location = \"https://\" + text;\n } else {\n window.location = \"https://www.google.com/search?q=\" + text;\n }\n}\n\nfunction validURL(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/)?' + // protocol\n '((([a-z\\\\d]([a-z\\\\d-]*[a-z\\\\d])*)\\\\.)+[a-z]{2,}|' + // domain name\n '((\\\\d{1,3}\\\\.){3}\\\\d{1,3}))' + // OR ip (v4) address\n '(\\\\:\\\\d+)?(\\\\/[-a-z\\\\d%_.~+]*)*' + // port and path\n '(\\\\?[;&a-z\\\\d%_.~+=-]*)?' + // query string\n '(\\\\#[-a-z\\\\d_]*)?$', 'i'); // fragment locator\n\n return !!pattern.test(str);\n}\n\nfunction containsProtocol(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/){1}.*', 'i');\n return !!pattern.test(str);\n}\n\nString.prototype.replaceAll = function (search, replacement) {\n var target = this;\n return target.split(search).join(replacement);\n};\n\nfunction udpateDisplayedItems(e) {\n console.log(e);\n localStorage.setItem('contenttype', e.target.checked);\n\n if (e.target.checked) {\n localStorage.setItem('content-display', 'none');\n } else {\n localStorage.setItem('content-display', 'block');\n }\n\n setDisplayedItems();\n}\n\nfunction setDisplayedItems() {\n setValueFromLocalStorage('contenttype');\n setValueFromLocalStorage('content-display');\n}\n\nvar _c, _c2, _c3, _c4, _c5, _c6, _c7, _c8, _c9, _c10, _c11, _c12, _c13;\n\n$RefreshReg$(_c, \"Homepage\");\n$RefreshReg$(_c2, \"Search\");\n$RefreshReg$(_c3, \"Header\");\n$RefreshReg$(_c4, \"Applications\");\n$RefreshReg$(_c5, \"App\");\n$RefreshReg$(_c6, \"Bookmarks\");\n$RefreshReg$(_c7, \"LinkGroups\");\n$RefreshReg$(_c8, \"LinkItem\");\n$RefreshReg$(_c9, \"ModalMenu\");\n$RefreshReg$(_c10, \"HideButton\");\n$RefreshReg$(_c11, \"Provider\");\n$RefreshReg$(_c12, \"ModalInit\");\n$RefreshReg$(_c13, \"Clock\");","map":{"version":3,"sources":["/home/seanedmunds/dev/home-page/src/index.js"],"names":["React","useState","useEffect","ReactDOM","setValueFromLocalStorage","property","value","localStorage","getItem","setValue","document","documentElement","style","setProperty","input","querySelector","replace","Homepage","setTheme","date","greet","Search","handleKeyPress","Header","props","Applications","appList","getApps","items","i","apps","length","safe","NSFW","NSFWEnabled","push","name","url","icon","App","classNameType","hrefUrl","iconName","Bookmarks","bookmarkList","getLinks","bookmarks","category","links","LinkGroups","LinkItem","link","ModalMenu","providers","getProviders","updateTheme","HideButton","udpateDisplayedItems","Provider","provider","prefix","ModalInit","setDisplayedItems","render","getElementById","currentDate","Date","dateOptions","weekday","year","month","day","toLocaleDateString","fixDigits","k","currentTime","Math","floor","getHours","easterEggChance","random","greetings","require","timeBased","easterEggs","messages","easteregg","concat","message","easterEggText","Clock","setDate","refreshClock","timerId","setInterval","cleanup","clearInterval","hour","minutes","getMinutes","midday","time","applications","getThemes","themes","e","themeName","target","innerHTML","toLowerCase","index","findIndex","item","setItem","imagebackground","colorbackground","colorserachbackground","colortextpri","colortextacc","colorborder","sindex","cycle","key","keyCode","which","text","replaceAll","option","substr","indexOf","subtext","search","preventDefault","stopPropagation","streamers","streamer","updateLabel","window","location","validURL","containsProtocol","str","pattern","RegExp","test","String","prototype","replacement","split","join","console","log","checked"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { useState, useEffect } from 'react';\nimport ReactDOM from 'react-dom';\nimport './index.css';\n\nconst setValueFromLocalStorage = property => {\n let value = localStorage.getItem(property);\n setValue(property, value);\n};\nconst setValue = (property, value) => {\n if (value) {\n document.documentElement.style.setProperty(`--${property}`, value);\n\n const input = document.querySelector(`#${property}`);\n if (input) {\n value = value.replace('px', '');\n input.value = value;\n }\n }\n};\n\nfunction Homepage() {\n setTheme();\n \n return (\n \n \n \n
\n \n \n
\n \n \n \n
\n \n \n
\n \n \n
\n \n );\n}\n\nfunction Search() {\n return (\n \n )\n}\n\nfunction Header(props) {\n return (\n \n );\n}\n\nfunction Applications() {\n let appList = getApps();\n var items = [];\n for (var i = 0; i < appList.apps.length; i++) {\n var safe = appList.apps[i].NSFW;\n var NSFWEnabled = localStorage.getItem(\"contenttype\");\n if (safe === \"SAFE\") {\n items.push(\n \n );\n } else if (safe === \"NSFW\" && NSFWEnabled) {\n items.push(\n \n );\n } else {\n \n }\n \n }\n return (\n \n Applications
\n \n {items}\n
\n \n );\n}\n\nfunction App(props) {\n \n let classNameType = props.NSFW + \"-content\";\n let hrefUrl = \"https://\" + props.url;\n let iconName = \"mdi-\" + props.icon;\n return (\n \n );\n}\n\nfunction Bookmarks() {\n let bookmarkList = getLinks();\n var items = [];\n for (var i = 0; i < bookmarkList.bookmarks.length; i++) {\n items.push(\n \n );\n }\n return (\n \n Bookmarks
\n \n {items}\n
\n \n );\n}\n\nfunction LinkGroups(props) {\n var items = [];\n for (var i = 0; i < props.links.length; i++) {\n items.push(\n \n );\n }\n return (\n \n
{props.category}
\n {items}\n \n );\n}\n\nfunction LinkItem(props) {\n return (\n \n );\n}\n\nfunction ModalMenu() {\n var providers = getProviders();\n var items = [];\n for (var i = 0; i < providers.providers.length; i++) {\n items.push(\n \n );\n }\n return (\n \n \n \n\n
Color themes
\n\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n\n\n
Search options
\n
\n \n \n \n | Website | \n Prefix | \n
\n {items}\n \n
\n \n\n \n
\n \n );\n}\n\nfunction HideButton() {\n return (\n \n
\n );\n}\n\nfunction Provider(props) {\n return (\n \n | {props.provider.name} | \n {props.provider.prefix} | \n
\n );\n}\n\nfunction ModalInit() {\n setDisplayedItems();\n return (\n \n );\n}\n\nReactDOM.render(\n ,\n document.getElementById('root')\n);\n\n//Functions below this line are for calculating data for\n//other functions\n\nfunction date() {\n let currentDate = new Date();\n let dateOptions = {\n weekday: \"long\",\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\"\n };\n let date = currentDate.toLocaleDateString(\"en-GB\", dateOptions);\n return date;\n}\nfunction fixDigits(k) {\n if (k < 10) {\n return \"0\" + k;\n }\n else {\n return k;\n }\n}\nfunction greet() {\n let currentTime = new Date();\n let greet = Math.floor(currentTime.getHours() / 6);\n let easterEggChance = Math.floor(Math.random() * 100);\n let greetings = require('./messages.json');\n let timeBased = [];\n let easterEggs = [];\n for (var i = 0; i < greetings.messages.length; i++) {\n if (greetings.messages[i].easteregg === \"FALSE\") {\n timeBased = timeBased.concat(greetings.messages[i]);\n } else {\n easterEggs = easterEggs.concat(greetings.messages[i]);\n }\n }\n if (easterEggChance > 10) {\n return timeBased[greet].message;\n } else {\n let easterEggText = Math.floor(Math.random() * easterEggs.length);\n return easterEggs[easterEggText].message;\n }\n}\nfunction Clock() {\n const [date, setDate] = useState(new Date());\n\n function refreshClock() {\n setDate(new Date());\n }\n useEffect(() => {\n const timerId = setInterval(refreshClock, 1000);\n return function cleanup() {\n clearInterval(timerId);\n };\n }, []);\n\n var hour = date.getHours();\n var minutes = date.getMinutes();\n //var seconds = date.getSeconds();\n var midday = \"AM\";\n midday = (hour >= 12) ? \"PM\" : \"AM\";\n hour = (hour === 0) ? 12 : ((hour > 12) ? (hour - 12) : hour);\n minutes = fixDigits(minutes);\n //seconds = fixDigits(seconds);\n let time = hour + \":\" + minutes + \" \" + midday;\n\n return (\n {time}
\n\n );\n}\nfunction getApps() {\n let applications = require('./apps.json');\n return applications;\n}\nfunction getLinks() {\n let links = require('./links.json');\n return links;\n}\nfunction getProviders() {\n let providers = require('./providers.json');\n return providers;\n}\nfunction getThemes() {\n let themes = require('./themes.json');\n return themes;\n}\nfunction updateTheme(e) {\n var themes = getThemes();\n var themeName = e.target.innerHTML.toLowerCase();\n var index = themes.themes.findIndex(function(item, i){\n return item.name === themeName\n });\n localStorage.setItem(\"image-background\", themes.themes[index].imagebackground);\n localStorage.setItem(\"color-background\", themes.themes[index].colorbackground);\n localStorage.setItem(\"color-search-background\", themes.themes[index].colorserachbackground);\n localStorage.setItem(\"color-text-pri\",themes.themes[index].colortextpri);\n localStorage.setItem(\"color-text-acc\", themes.themes[index].colortextacc);\n localStorage.setItem(\"color-border\", themes.themes[index].colorborder);\n \n //document.documentElement.style.setProperty(prop, `var(--${themeName}${prop.substring(10)})`);\n setTheme();\n}\nfunction setTheme() {\n setValueFromLocalStorage('image-background');\n setValueFromLocalStorage('color-background');\n setValueFromLocalStorage('color-search-background');\n setValueFromLocalStorage('color-text-pri');\n setValueFromLocalStorage('color-text-acc');\n setValueFromLocalStorage('color-border');\n setValueFromLocalStorage('content-display');\n}\nfunction handleKeyPress(e) {\n var sindex = 0;\n var cycle = false;\n var key = e.keyCode || e.which;\n var text = e.target.value.replaceAll(\"+\", \"%2B\");\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n if (key == 13) { // Search functions\n search(text);\n }\n if (key == 9) { // Tab Completion Functions\n e.preventDefault();\n e.stopPropagation();\n if (text[0] === ';') {\n switch (option) {\n case 't':\n var streamers = ['admiralbahroo', 'moonmoon_ow', 'witwix'];\n if (!subtext || cycle) {\n cycle = true;\n if (sindex > streamers.length - 1) sindex = 0;\n document.getElementById(\"keywords\").value = ';t ' + streamers[sindex++];\n return;\n }\n for (var streamer of streamers) {\n if (subtext === streamer.substr(0, subtext.length)) {\n document.getElementById(\"keywords\").value = ';t ' + streamer;\n return;\n }\n }\n break;\n }\n }\n }\n if(key == 32){ //Space to go to search\nupdateLabel(text);\n }\n sindex = 0;\n cycle = false;\n updateLabel(text);\n}\nfunction updateLabel(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n if (text[0] === '/') {\n// if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n document.getElementById(\"searchType\").innerHTML = \"Allmusic search\";\n break;\n case \"d\":\n document.getElementById(\"searchType\").innerHTML = \"Duck Duck Go search\";\n break;\n case \"di\":\n document.getElementById(\"searchType\").innerHTML = \"Discogs search\";\n break;\n case \"i\":\n document.getElementById(\"searchType\").innerHTML = \"IMDB search\";\n break;\n case \"m\":\n document.getElementById(\"searchType\").innerHTML = \"TheMovieDB search\";\n break;\n case \"r\":\n document.getElementById(\"searchType\").innerHTML = \"Reddit search\";\n break;\n case \"q\":\n document.getElementById(\"searchType\").innerHTML = \"Qwant search\";\n break;\n case \"so\":\n document.getElementById(\"searchType\").innerHTML = \"Soundcloud search\";\n break;\n case \"s\":\n document.getElementById(\"searchType\").innerHTML = \"Spotify search\";\n break;\n case \"tv\":\n document.getElementById(\"searchType\").innerHTML = \"TheTVDB search\";\n break;\n case \"t\":\n document.getElementById(\"searchType\").innerHTML = \"Trakt search\";\n break;\n case \"y\":\n document.getElementById(\"searchType\").innerHTML = \"YouTube search\";\n break;\n case \"w\":\n document.getElementById(\"searchType\").innerHTML = \"Wikipedia search\";\n break;\n case \"p\":\n document.getElementById(\"searchType\").innerHTML = \"Plex search\";\n break;\n case \"rt\":\n document.getElementById(\"searchType\").innerHTML = \"Rotten Tomatoes search\";\n break;\n default:\n document.getElementById(\"searchType\").innerHTML = \"Invalid search\";\n break;\n }\n}else {\n document.getElementById(\"searchType\").innerHTML = \"Google search\";\n }\n}\nfunction search(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n if (text[0] === '/') {\n if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n window.location = \"https://www.allmusic.com/search/all/\" + subtext;\n break;\n case \"d\":\n window.location = \"https://duckduckgo.com/?q=\" + subtext;\n break;\n case \"di\":\n window.location = \"https://www.discogs.com/search/?q=\" + subtext;\n break;\n case \"i\":\n window.location = \"https://www.imdb.com/find?q=\" + subtext;\n break;\n case \"m\":\n window.location = \"https://www.themoviedb.org/search?query=\" + subtext;\n break;\n case \"r\":\n window.location = \"https://www.reddit.com/search?q=\" + subtext;\n break;\n case \"q\":\n window.location = \"https://www.qwant.com/?q=\" + subtext;\n break;\n case \"so\":\n window.location = \"https://soundcloud.com/search?q=\" + subtext;\n break;\n case \"s\":\n window.location = \"https://open.spotify.com/search/results/\" + subtext;\n break;\n case \"t\":\n window.location = \"https://trakt.tv/search?query=\" + subtext;\n break;\n case \"tv\":\n window.location = \"https://www.thetvdb.com/search?query=\" + subtext;\n break;\n case \"y\":\n window.location = \"https://www.youtube.com/results?search_query=\" + subtext;\n break;\n case \"w\":\n window.location = \"https://en.wikipedia.org/w/index.php?search=\" + subtext;\n break;\n case \"p\":\n window.location = \"https://app.plex.tv/desktop/#!/search?query=\" + subtext;\n break;\n case \"rt\":\n window.location = \"https://www.rottentomatoes.com/search?search=\" + subtext;\n break;\n }\n } else {\n var option = text.substr(1);\n switch (option) {\n case \"d\":\n window.location = \"https://www.duckduckgo.com\";\n break;\n case \"y\":\n window.location = \"https://www.youtube.com\";\n break;\n case \"r\":\n window.location = \"https://reddit.com\";\n break;\n case \"s\":\n window.location = \"https://open.spotify.com\";\n break;\n }\n }\n } else if (validURL(text)) {\n if (containsProtocol(text))\n window.location = text;\n else\n window.location = \"https://\" + text;\n } else {\n window.location = \"https://www.google.com/search?q=\" + text;\n }\n}\nfunction validURL(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/)?' + // protocol\n '((([a-z\\\\d]([a-z\\\\d-]*[a-z\\\\d])*)\\\\.)+[a-z]{2,}|' + // domain name\n '((\\\\d{1,3}\\\\.){3}\\\\d{1,3}))' + // OR ip (v4) address\n '(\\\\:\\\\d+)?(\\\\/[-a-z\\\\d%_.~+]*)*' + // port and path\n '(\\\\?[;&a-z\\\\d%_.~+=-]*)?' + // query string\n '(\\\\#[-a-z\\\\d_]*)?$', 'i'); // fragment locator\n return !!pattern.test(str);\n}\nfunction containsProtocol(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/){1}.*', 'i');\n return !!pattern.test(str);\n}\nString.prototype.replaceAll = function(search, replacement) {\n var target = this;\n return target.split(search).join(replacement);\n};\nfunction udpateDisplayedItems(e) {\n console.log(e);\n localStorage.setItem('contenttype', e.target.checked);\n if (e.target.checked) {\n localStorage.setItem('content-display', 'none');\n } else {\n localStorage.setItem('content-display', 'block');\n }\n setDisplayedItems();\n}\nfunction setDisplayedItems() {\n setValueFromLocalStorage('contenttype');\n setValueFromLocalStorage('content-display');\n}"]},"metadata":{},"sourceType":"module"}
\ No newline at end of file
diff --git a/node_modules/.cache/babel-loader/f14c9c86f2d4a4d055aa47c0e75583e9.json b/node_modules/.cache/babel-loader/f14c9c86f2d4a4d055aa47c0e75583e9.json
new file mode 100644
index 00000000..8d096712
--- /dev/null
+++ b/node_modules/.cache/babel-loader/f14c9c86f2d4a4d055aa47c0e75583e9.json
@@ -0,0 +1 @@
+{"ast":null,"code":"var _jsxFileName = \"/home/seanedmunds/dev/home-page/src/index.js\",\n _s = $RefreshSig$();\n\nimport React from 'react';\nimport { useState, useEffect } from 'react';\nimport ReactDOM from 'react-dom'; //import { unstable_createPortal } from 'react-dom';\n\nimport './index.css';\nimport { jsxDEV as _jsxDEV } from \"react/jsx-dev-runtime\";\n\nfunction Homepage() {\n return /*#__PURE__*/_jsxDEV(\"main\", {\n id: \"container\",\n className: \"fade\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Search, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 11,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 10,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Header, {\n date: date(),\n greet: greet()\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 14,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 13,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Applications, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 20,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 19,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Bookmarks, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 23,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 22,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(ModalMenu, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 26,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 25,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(ModalInit, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 29,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 28,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 9,\n columnNumber: 5\n }, this);\n}\n\n_c = Homepage;\n\nfunction Search() {\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"search\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"abackground\",\n children: [/*#__PURE__*/_jsxDEV(\"input\", {\n name: \"keywords\",\n type: \"text\",\n className: \"keyword\",\n id: \"keywords\",\n size: \"50\",\n spellCheck: \"true\",\n placeholder: \"\"\n /*onFocus={this.placeholder = \"\"} onBlur={this.placeholder = ''}*/\n ,\n autoComplete: \"off\",\n autoFocus: \"true\",\n onKeyUp: handleKeyPress(event)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 39,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n id: \"searchType\",\n className: \"Input-label\",\n children: \"Google search\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 40,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 38,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 37,\n columnNumber: 5\n }, this);\n}\n\n_c2 = Search;\n\nfunction Header(props) {\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"header\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n id: \"greeting_block\",\n children: /*#__PURE__*/_jsxDEV(\"h1\", {\n id: \"header_greet\",\n children: props.greet\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 50,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 49,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"date_block\",\n children: [/*#__PURE__*/_jsxDEV(\"h2\", {\n id: \"header_date\",\n children: props.date\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 53,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(Clock, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 54,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 52,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 48,\n columnNumber: 5\n }, this);\n}\n\n_c3 = Header;\n\nfunction Applications() {\n let appList = getApps();\n var items = [];\n\n for (var i = 0; i < appList.apps.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(App, {\n name: appList.apps[i].name,\n url: appList.apps[i].url,\n icon: appList.apps[i].icon,\n NSFW: appList.apps[i].NSFW\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 65,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"apps\",\n children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n children: \"Applications\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 76,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"apps_loop\",\n children: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 77,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 75,\n columnNumber: 5\n }, this);\n}\n\n_c4 = Applications;\n\nfunction App(props) {\n let classNameType = props.NSFW + \"-content\";\n let hrefUrl = \"https://\" + props.url;\n let iconName = \"mdi-\" + props.icon;\n return /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: hrefUrl,\n className: classNameType,\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_item\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_icon\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify icon\",\n \"data-icon\": iconName\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 93,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 92,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_text\",\n children: [/*#__PURE__*/_jsxDEV(\"span\", {\n id: \"app-name\",\n children: props.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 96,\n columnNumber: 13\n }, this), /*#__PURE__*/_jsxDEV(\"span\", {\n id: \"app-address\",\n children: props.url\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 97,\n columnNumber: 13\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 95,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 91,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 90,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 89,\n columnNumber: 5\n }, this);\n}\n\n_c5 = App;\n\nfunction Bookmarks() {\n let bookmarkList = getLinks();\n var items = [];\n\n for (var i = 0; i < bookmarkList.bookmarks.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(LinkGroups, {\n category: bookmarkList.bookmarks[i].category,\n links: bookmarkList.bookmarks[i].links\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 110,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"links\",\n children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n children: \"Bookmarks\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 119,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"links_loop\",\n children: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 120,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 118,\n columnNumber: 5\n }, this);\n}\n\n_c6 = Bookmarks;\n\nfunction LinkGroups(props) {\n var items = [];\n\n for (var i = 0; i < props.links.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(LinkItem, {\n link: props.links[i]\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 131,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"links_item\",\n children: [/*#__PURE__*/_jsxDEV(\"h4\", {\n children: props.category\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 139,\n columnNumber: 7\n }, this), items]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 138,\n columnNumber: 5\n }, this);\n}\n\n_c7 = LinkGroups;\n\nfunction LinkItem(props) {\n return /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: props.link.url,\n className: \"theme_color-border theme_text-select\",\n children: props.link.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 148,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 147,\n columnNumber: 5\n }, this);\n}\n\n_c8 = LinkItem;\n\nfunction ModalMenu() {\n var providers = getProviders();\n var items = [];\n\n for (var i = 0; i < providers.providers.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(Provider, {\n provider: providers.providers[i]\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 158,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"modal\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n children: [/*#__PURE__*/_jsxDEV(\"header\", {\n id: \"modal-header\",\n children: [/*#__PURE__*/_jsxDEV(\"h1\", {\n children: \"Options\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 168,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n href: \"#\",\n title: \"Close\",\n className: \"modal-close\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-close\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 170,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 169,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 167,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"h2\", {\n children: \"Color themes\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 174,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"modal-theme\",\n children: [/*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"blackboard\",\n className: \"theme-button theme-blackboard\",\n children: \"Blackboard\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 177,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"gazette\",\n className: \"theme-button theme-gazette\",\n children: \"Gazette\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 178,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"espresso\",\n className: \"theme-button theme-espresso\",\n children: \"Espresso\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 179,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cab\",\n className: \"theme-button theme-cab\",\n children: \"Cab\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 180,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cloud\",\n className: \"theme-button theme-cloud\",\n children: \"Cloud\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 181,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"lime\",\n className: \"theme-button theme-lime\",\n children: \"Lime\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 182,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"passion\",\n className: \"theme-button theme-passion\",\n children: \"Passion\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 183,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"blues\",\n className: \"theme-button theme-blues\",\n children: \"Blues\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 184,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"chalk\",\n className: \"theme-button theme-chalk\",\n children: \"Chalk\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 185,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"tron\",\n className: \"theme-button theme-tron\",\n children: \"Tron\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 186,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"paper\",\n className: \"theme-button theme-paper\",\n children: \"Paper\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 187,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cyberpunk\",\n className: \"theme-button theme-cyberpunk\",\n children: \"Cyberpunk\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 188,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"quadra\",\n className: \"theme-button theme-panam\",\n children: \"Quadra\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 189,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"panam\",\n className: \"theme-button theme-panam\",\n children: \"Panam\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 190,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"touch\",\n className: \"theme-button theme-touch\",\n children: \"Touch\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 191,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"peek\",\n className: \"theme-button theme-peek\",\n children: \"Peek\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 192,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 176,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"h2\", {\n children: \"Search options\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 196,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"providers\",\n children: /*#__PURE__*/_jsxDEV(\"table\", {\n children: /*#__PURE__*/_jsxDEV(\"tbody\", {\n children: [/*#__PURE__*/_jsxDEV(\"tr\", {\n children: [/*#__PURE__*/_jsxDEV(\"th\", {\n children: \"Website\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 201,\n columnNumber: 19\n }, this), /*#__PURE__*/_jsxDEV(\"th\", {\n children: \"Prefix\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 202,\n columnNumber: 19\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 200,\n columnNumber: 17\n }, this), items]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 199,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 198,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 197,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"header\", {\n id: \"modal-footer\",\n children: [/*#__PURE__*/_jsxDEV(\"a\", {\n href: \"https://github.com/jeroenpardon/\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-github-box\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 210,\n columnNumber: 54\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 210,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n href: \"https://materialdesignicons.com/\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-material-design\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 211,\n columnNumber: 54\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 211,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"sneaky\",\n children: [/*#__PURE__*/_jsxDEV(\"input\", {\n type: \"checkbox\",\n id: \"contenttype\",\n onChange: \"nsfw(this)\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 212,\n columnNumber: 35\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n for: \"contenttype\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-domino-mask\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 213,\n columnNumber: 36\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 213,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 212,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 209,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 166,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 165,\n columnNumber: 5\n }, this);\n}\n\n_c9 = ModalMenu;\n\nfunction Provider(props) {\n return /*#__PURE__*/_jsxDEV(\"tr\", {\n children: [/*#__PURE__*/_jsxDEV(\"td\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: props.provider.url,\n children: props.provider.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 223,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 223,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"td\", {\n children: props.provider.prefix\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 224,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 222,\n columnNumber: 5\n }, this);\n}\n\n_c10 = Provider;\n\nfunction ModalInit() {\n return /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"modal_init\",\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n className: \"btn\",\n href: \"#modal\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify icon\",\n \"data-icon\": \"mdi-xbox-controller-menu\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 233,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 232,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 231,\n columnNumber: 5\n }, this);\n}\n\n_c11 = ModalInit;\nReactDOM.render( /*#__PURE__*/_jsxDEV(Homepage, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 240,\n columnNumber: 3\n}, this), document.getElementById('root')); //Functions below this line are for calculating data for\n//other functions\n\nfunction date() {\n let currentDate = new Date();\n let dateOptions = {\n weekday: \"long\",\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\"\n };\n let date = currentDate.toLocaleDateString(\"en-GB\", dateOptions);\n return date;\n}\n\nfunction fixDigits(k) {\n if (k < 10) {\n return \"0\" + k;\n } else {\n return k;\n }\n}\n\nfunction greet() {\n let currentTime = new Date();\n let greet = Math.floor(currentTime.getHours() / 6);\n let easterEggChance = Math.floor(Math.random() * 100);\n\n let greetings = require('./messages.json');\n\n let timeBased = [];\n let easterEggs = [];\n\n for (var i = 0; i < greetings.messages.length; i++) {\n if (greetings.messages[i].easteregg === \"FALSE\") {\n timeBased = timeBased.concat(greetings.messages[i]);\n } else {\n easterEggs = easterEggs.concat(greetings.messages[i]);\n }\n }\n\n if (easterEggChance > 10) {\n return timeBased[greet].message;\n } else {\n let easterEggText = Math.floor(Math.random() * easterEggs.length);\n return easterEggs[easterEggText].message;\n }\n}\n\nfunction Clock() {\n _s();\n\n const [date, setDate] = useState(new Date());\n\n function refreshClock() {\n setDate(new Date());\n }\n\n useEffect(() => {\n const timerId = setInterval(refreshClock, 1000);\n return function cleanup() {\n clearInterval(timerId);\n };\n }, []);\n var hour = date.getHours();\n var minutes = date.getMinutes(); //var seconds = date.getSeconds();\n\n var midday = \"AM\";\n midday = hour >= 12 ? \"PM\" : \"AM\";\n hour = hour === 0 ? 12 : hour > 12 ? hour - 12 : hour;\n minutes = fixDigits(minutes); //seconds = fixDigits(seconds);\n\n let time = hour + \":\" + minutes + \" \" + midday;\n return /*#__PURE__*/_jsxDEV(\"h2\", {\n id: \"clock\",\n children: time\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 311,\n columnNumber: 5\n }, this);\n}\n\n_s(Clock, \"Gqi45WOZhU2c0BLYX0HoJeiR0fk=\");\n\n_c12 = Clock;\n\nfunction getApps() {\n let applications = require('./apps.json');\n\n return applications;\n}\n\nfunction getLinks() {\n let links = require('./links.json');\n\n return links;\n}\n\nfunction getProviders() {\n let providers = require('./providers.json');\n\n return providers;\n}\n\nfunction handleKeyPress(e) {\n var sindex = 0;\n var cycle = false;\n var key = e.keyCode || e.which;\n var text = document.getElementById(\"keywords\").value.replaceAll(\"+\", \"%2B\");\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n\n if (key == 13) {\n // Search functions\n search(text);\n }\n\n if (key == 9) {\n // Tab Completion Functions\n e.preventDefault();\n e.stopPropagation();\n\n if (text[0] === ';') {\n switch (option) {\n case 't':\n var streamers = ['admiralbahroo', 'moonmoon_ow', 'witwix'];\n\n if (!subtext || cycle) {\n cycle = true;\n if (sindex > streamers.length - 1) sindex = 0;\n document.getElementById(\"keywords\").value = ';t ' + streamers[sindex++];\n return;\n }\n\n for (var streamer of streamers) {\n if (subtext === streamer.substr(0, subtext.length)) {\n document.getElementById(\"keywords\").value = ';t ' + streamer;\n return;\n }\n }\n\n break;\n }\n }\n }\n\n if (key == 32) {\n //Space to go to search\n updateLabel(text);\n }\n\n sindex = 0;\n cycle = false;\n updateLabel(text);\n}\n\nvar _c, _c2, _c3, _c4, _c5, _c6, _c7, _c8, _c9, _c10, _c11, _c12;\n\n$RefreshReg$(_c, \"Homepage\");\n$RefreshReg$(_c2, \"Search\");\n$RefreshReg$(_c3, \"Header\");\n$RefreshReg$(_c4, \"Applications\");\n$RefreshReg$(_c5, \"App\");\n$RefreshReg$(_c6, \"Bookmarks\");\n$RefreshReg$(_c7, \"LinkGroups\");\n$RefreshReg$(_c8, \"LinkItem\");\n$RefreshReg$(_c9, \"ModalMenu\");\n$RefreshReg$(_c10, \"Provider\");\n$RefreshReg$(_c11, \"ModalInit\");\n$RefreshReg$(_c12, \"Clock\");","map":{"version":3,"sources":["/home/seanedmunds/dev/home-page/src/index.js"],"names":["React","useState","useEffect","ReactDOM","Homepage","date","greet","Search","handleKeyPress","event","Header","props","Applications","appList","getApps","items","i","apps","length","push","name","url","icon","NSFW","App","classNameType","hrefUrl","iconName","Bookmarks","bookmarkList","getLinks","bookmarks","category","links","LinkGroups","LinkItem","link","ModalMenu","providers","getProviders","Provider","provider","prefix","ModalInit","render","document","getElementById","currentDate","Date","dateOptions","weekday","year","month","day","toLocaleDateString","fixDigits","k","currentTime","Math","floor","getHours","easterEggChance","random","greetings","require","timeBased","easterEggs","messages","easteregg","concat","message","easterEggText","Clock","setDate","refreshClock","timerId","setInterval","cleanup","clearInterval","hour","minutes","getMinutes","midday","time","applications","e","sindex","cycle","key","keyCode","which","text","value","replaceAll","option","substr","indexOf","subtext","search","preventDefault","stopPropagation","streamers","streamer","updateLabel"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { useState, useEffect } from 'react';\nimport ReactDOM from 'react-dom';\n//import { unstable_createPortal } from 'react-dom';\nimport './index.css';\n\nfunction Homepage() {\n return (\n \n \n \n
\n \n \n
\n \n \n \n
\n \n \n
\n \n \n
\n \n );\n}\n\nfunction Search() {\n return (\n \n )\n}\n\nfunction Header(props) {\n return (\n \n );\n}\n\nfunction Applications() {\n let appList = getApps();\n var items = [];\n for (var i = 0; i < appList.apps.length; i++) {\n items.push(\n \n );\n }\n return (\n \n Applications
\n \n {items}\n
\n \n );\n}\n\nfunction App(props) {\n let classNameType = props.NSFW + \"-content\";\n let hrefUrl = \"https://\" + props.url;\n let iconName = \"mdi-\" + props.icon;\n return (\n \n );\n}\n\nfunction Bookmarks() {\n let bookmarkList = getLinks();\n var items = [];\n for (var i = 0; i < bookmarkList.bookmarks.length; i++) {\n items.push(\n \n );\n }\n return (\n \n Bookmarks
\n \n {items}\n
\n \n );\n}\n\nfunction LinkGroups(props) {\n var items = [];\n for (var i = 0; i < props.links.length; i++) {\n items.push(\n \n );\n }\n return (\n \n
{props.category}
\n {items}\n \n );\n}\n\nfunction LinkItem(props) {\n return (\n \n );\n}\n\nfunction ModalMenu() {\n var providers = getProviders();\n var items = [];\n for (var i = 0; i < providers.providers.length; i++) {\n items.push(\n \n );\n }\n return (\n \n \n \n\n
Color themes
\n\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n\n\n
Search options
\n
\n \n \n \n | Website | \n Prefix | \n
\n {items}\n \n
\n \n\n \n
\n \n );\n}\n\nfunction Provider(props) {\n return (\n \n | {props.provider.name} | \n {props.provider.prefix} | \n
\n );\n}\n\nfunction ModalInit() {\n return (\n \n );\n}\n\nReactDOM.render(\n ,\n document.getElementById('root')\n);\n\n//Functions below this line are for calculating data for\n//other functions\n\nfunction date() {\n let currentDate = new Date();\n let dateOptions = {\n weekday: \"long\",\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\"\n };\n let date = currentDate.toLocaleDateString(\"en-GB\", dateOptions);\n return date;\n}\nfunction fixDigits(k) {\n if (k < 10) {\n return \"0\" + k;\n }\n else {\n return k;\n }\n}\nfunction greet() {\n let currentTime = new Date();\n let greet = Math.floor(currentTime.getHours() / 6);\n let easterEggChance = Math.floor(Math.random() * 100);\n let greetings = require('./messages.json');\n let timeBased = [];\n let easterEggs = [];\n for (var i = 0; i < greetings.messages.length; i++) {\n if (greetings.messages[i].easteregg === \"FALSE\") {\n timeBased = timeBased.concat(greetings.messages[i]);\n } else {\n easterEggs = easterEggs.concat(greetings.messages[i]);\n }\n }\n if (easterEggChance > 10) {\n return timeBased[greet].message;\n } else {\n let easterEggText = Math.floor(Math.random() * easterEggs.length);\n return easterEggs[easterEggText].message;\n }\n}\nfunction Clock() {\n const [date, setDate] = useState(new Date());\n\n function refreshClock() {\n setDate(new Date());\n }\n useEffect(() => {\n const timerId = setInterval(refreshClock, 1000);\n return function cleanup() {\n clearInterval(timerId);\n };\n }, []);\n\n var hour = date.getHours();\n var minutes = date.getMinutes();\n //var seconds = date.getSeconds();\n var midday = \"AM\";\n midday = (hour >= 12) ? \"PM\" : \"AM\";\n hour = (hour === 0) ? 12 : ((hour > 12) ? (hour - 12) : hour);\n minutes = fixDigits(minutes);\n //seconds = fixDigits(seconds);\n let time = hour + \":\" + minutes + \" \" + midday;\n\n return (\n {time}
\n\n );\n}\nfunction getApps() {\n let applications = require('./apps.json');\n return applications;\n}\nfunction getLinks() {\n let links = require('./links.json');\n return links;\n}\nfunction getProviders() {\n let providers = require('./providers.json');\n return providers;\n}\n\nfunction handleKeyPress(e) {\n var sindex = 0;\n var cycle = false;\n var key = e.keyCode || e.which;\n var text = document.getElementById(\"keywords\").value.replaceAll(\"+\", \"%2B\");\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n if (key == 13) { // Search functions\n search(text);\n }\n if (key == 9) { // Tab Completion Functions\n e.preventDefault();\n e.stopPropagation();\n if (text[0] === ';') {\n switch (option) {\n case 't':\n var streamers = ['admiralbahroo', 'moonmoon_ow', 'witwix'];\n if (!subtext || cycle) {\n cycle = true;\n if (sindex > streamers.length - 1) sindex = 0;\n document.getElementById(\"keywords\").value = ';t ' + streamers[sindex++];\n return;\n }\n for (var streamer of streamers) {\n if (subtext === streamer.substr(0, subtext.length)) {\n document.getElementById(\"keywords\").value = ';t ' + streamer;\n return;\n }\n }\n break;\n }\n }\n }\n if(key == 32){ //Space to go to search\nupdateLabel(text);\n }\n sindex = 0;\n cycle = false;\n updateLabel(text);\n}"]},"metadata":{},"sourceType":"module"}
\ No newline at end of file
diff --git a/node_modules/.cache/babel-loader/f2c2a9214f676637aadd536904eea00d.json b/node_modules/.cache/babel-loader/f2c2a9214f676637aadd536904eea00d.json
new file mode 100644
index 00000000..b750f5d4
--- /dev/null
+++ b/node_modules/.cache/babel-loader/f2c2a9214f676637aadd536904eea00d.json
@@ -0,0 +1 @@
+{"ast":null,"code":"var _jsxFileName = \"/home/seanedmunds/dev/home-page/src/index.js\",\n _s = $RefreshSig$();\n\nimport React from 'react';\nimport { useState, useEffect } from 'react';\nimport ReactDOM from 'react-dom'; //import { unstable_createPortal } from 'react-dom';\n\nimport './index.css';\nimport { jsxDEV as _jsxDEV } from \"react/jsx-dev-runtime\";\n\nfunction Homepage() {\n return /*#__PURE__*/_jsxDEV(\"main\", {\n id: \"container\",\n className: \"fade\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Search, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 11,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 10,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Header, {\n date: date(),\n greet: greet()\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 14,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 13,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Applications, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 20,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 19,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Bookmarks, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 23,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 22,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(ModalMenu, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 26,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 25,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(ModalInit, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 29,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 28,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 9,\n columnNumber: 5\n }, this);\n}\n\n_c = Homepage;\n\nfunction Search() {\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"search\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"abackground\",\n children: [/*#__PURE__*/_jsxDEV(\"input\", {\n name: \"keywords\",\n type: \"text\",\n className: \"keyword\",\n id: \"keywords\",\n size: \"50\",\n spellCheck: \"true\",\n placeholder: \"\"\n /*onFocus={this.placeholder = \"\"} onBlur={this.placeholder = ''}*/\n ,\n autoComplete: \"off\",\n autoFocus: true,\n onKeyUp: handleKeyPress\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 39,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n id: \"searchType\",\n className: \"Input-label\",\n children: \"Google search\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 40,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 38,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 37,\n columnNumber: 5\n }, this);\n}\n\n_c2 = Search;\n\nfunction Header(props) {\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"header\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n id: \"greeting_block\",\n children: /*#__PURE__*/_jsxDEV(\"h1\", {\n id: \"header_greet\",\n children: props.greet\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 50,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 49,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"date_block\",\n children: [/*#__PURE__*/_jsxDEV(\"h2\", {\n id: \"header_date\",\n children: props.date\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 53,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(Clock, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 54,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 52,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 48,\n columnNumber: 5\n }, this);\n}\n\n_c3 = Header;\n\nfunction Applications() {\n let appList = getApps();\n var items = [];\n\n for (var i = 0; i < appList.apps.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(App, {\n name: appList.apps[i].name,\n url: appList.apps[i].url,\n icon: appList.apps[i].icon,\n NSFW: appList.apps[i].NSFW\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 65,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"apps\",\n children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n children: \"Applications\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 76,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"apps_loop\",\n children: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 77,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 75,\n columnNumber: 5\n }, this);\n}\n\n_c4 = Applications;\n\nfunction App(props) {\n let classNameType = props.NSFW + \"-content\";\n let hrefUrl = \"https://\" + props.url;\n let iconName = \"mdi-\" + props.icon;\n return /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: hrefUrl,\n className: classNameType,\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_item\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_icon\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify icon\",\n \"data-icon\": iconName\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 93,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 92,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_text\",\n children: [/*#__PURE__*/_jsxDEV(\"span\", {\n id: \"app-name\",\n children: props.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 96,\n columnNumber: 13\n }, this), /*#__PURE__*/_jsxDEV(\"span\", {\n id: \"app-address\",\n children: props.url\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 97,\n columnNumber: 13\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 95,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 91,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 90,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 89,\n columnNumber: 5\n }, this);\n}\n\n_c5 = App;\n\nfunction Bookmarks() {\n let bookmarkList = getLinks();\n var items = [];\n\n for (var i = 0; i < bookmarkList.bookmarks.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(LinkGroups, {\n category: bookmarkList.bookmarks[i].category,\n links: bookmarkList.bookmarks[i].links\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 110,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"links\",\n children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n children: \"Bookmarks\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 119,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"links_loop\",\n children: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 120,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 118,\n columnNumber: 5\n }, this);\n}\n\n_c6 = Bookmarks;\n\nfunction LinkGroups(props) {\n var items = [];\n\n for (var i = 0; i < props.links.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(LinkItem, {\n link: props.links[i]\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 131,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"links_item\",\n children: [/*#__PURE__*/_jsxDEV(\"h4\", {\n children: props.category\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 139,\n columnNumber: 7\n }, this), items]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 138,\n columnNumber: 5\n }, this);\n}\n\n_c7 = LinkGroups;\n\nfunction LinkItem(props) {\n return /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: props.link.url,\n className: \"theme_color-border theme_text-select\",\n children: props.link.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 148,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 147,\n columnNumber: 5\n }, this);\n}\n\n_c8 = LinkItem;\n\nfunction ModalMenu() {\n var providers = getProviders();\n var items = [];\n\n for (var i = 0; i < providers.providers.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(Provider, {\n provider: providers.providers[i]\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 158,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"modal\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n children: [/*#__PURE__*/_jsxDEV(\"header\", {\n id: \"modal-header\",\n children: [/*#__PURE__*/_jsxDEV(\"h1\", {\n children: \"Options\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 168,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n href: \"#\",\n title: \"Close\",\n className: \"modal-close\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-close\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 170,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 169,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 167,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"h2\", {\n children: \"Color themes\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 174,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"modal-theme\",\n children: [/*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"blackboard\",\n className: \"theme-button theme-blackboard\",\n onClick: updateTheme,\n children: \"Blackboard\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 177,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"gazette\",\n className: \"theme-button theme-gazette\",\n children: \"Gazette\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 178,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"espresso\",\n className: \"theme-button theme-espresso\",\n children: \"Espresso\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 179,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cab\",\n className: \"theme-button theme-cab\",\n children: \"Cab\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 180,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cloud\",\n className: \"theme-button theme-cloud\",\n children: \"Cloud\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 181,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"lime\",\n className: \"theme-button theme-lime\",\n children: \"Lime\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 182,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"passion\",\n className: \"theme-button theme-passion\",\n children: \"Passion\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 183,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"blues\",\n className: \"theme-button theme-blues\",\n children: \"Blues\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 184,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"chalk\",\n className: \"theme-button theme-chalk\",\n children: \"Chalk\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 185,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"tron\",\n className: \"theme-button theme-tron\",\n children: \"Tron\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 186,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"paper\",\n className: \"theme-button theme-paper\",\n children: \"Paper\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 187,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cyberpunk\",\n className: \"theme-button theme-cyberpunk\",\n children: \"Cyberpunk\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 188,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"quadra\",\n className: \"theme-button theme-panam\",\n children: \"Quadra\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 189,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"panam\",\n className: \"theme-button theme-panam\",\n children: \"Panam\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 190,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"touch\",\n className: \"theme-button theme-touch\",\n children: \"Touch\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 191,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"peek\",\n className: \"theme-button theme-peek\",\n children: \"Peek\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 192,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 176,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"h2\", {\n children: \"Search options\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 196,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"providers\",\n children: /*#__PURE__*/_jsxDEV(\"table\", {\n children: /*#__PURE__*/_jsxDEV(\"tbody\", {\n children: [/*#__PURE__*/_jsxDEV(\"tr\", {\n children: [/*#__PURE__*/_jsxDEV(\"th\", {\n children: \"Website\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 201,\n columnNumber: 19\n }, this), /*#__PURE__*/_jsxDEV(\"th\", {\n children: \"Prefix\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 202,\n columnNumber: 19\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 200,\n columnNumber: 17\n }, this), items]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 199,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 198,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 197,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"header\", {\n id: \"modal-footer\",\n children: [/*#__PURE__*/_jsxDEV(\"a\", {\n href: \"https://github.com/jeroenpardon/\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-github-box\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 210,\n columnNumber: 54\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 210,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n href: \"https://materialdesignicons.com/\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-material-design\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 211,\n columnNumber: 54\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 211,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"sneaky\",\n children: [/*#__PURE__*/_jsxDEV(\"input\", {\n type: \"checkbox\",\n id: \"contenttype\",\n onChange: \"nsfw(this)\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 212,\n columnNumber: 35\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n for: \"contenttype\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-domino-mask\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 213,\n columnNumber: 36\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 213,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 212,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 209,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 166,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 165,\n columnNumber: 5\n }, this);\n}\n\n_c9 = ModalMenu;\n\nfunction Provider(props) {\n return /*#__PURE__*/_jsxDEV(\"tr\", {\n children: [/*#__PURE__*/_jsxDEV(\"td\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: props.provider.url,\n children: props.provider.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 223,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 223,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"td\", {\n children: props.provider.prefix\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 224,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 222,\n columnNumber: 5\n }, this);\n}\n\n_c10 = Provider;\n\nfunction ModalInit() {\n return /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"modal_init\",\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n className: \"btn\",\n href: \"#modal\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify icon\",\n \"data-icon\": \"mdi-xbox-controller-menu\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 233,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 232,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 231,\n columnNumber: 5\n }, this);\n}\n\n_c11 = ModalInit;\nReactDOM.render( /*#__PURE__*/_jsxDEV(Homepage, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 240,\n columnNumber: 3\n}, this), document.getElementById('root')); //Functions below this line are for calculating data for\n//other functions\n\nfunction date() {\n let currentDate = new Date();\n let dateOptions = {\n weekday: \"long\",\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\"\n };\n let date = currentDate.toLocaleDateString(\"en-GB\", dateOptions);\n return date;\n}\n\nfunction fixDigits(k) {\n if (k < 10) {\n return \"0\" + k;\n } else {\n return k;\n }\n}\n\nfunction greet() {\n let currentTime = new Date();\n let greet = Math.floor(currentTime.getHours() / 6);\n let easterEggChance = Math.floor(Math.random() * 100);\n\n let greetings = require('./messages.json');\n\n let timeBased = [];\n let easterEggs = [];\n\n for (var i = 0; i < greetings.messages.length; i++) {\n if (greetings.messages[i].easteregg === \"FALSE\") {\n timeBased = timeBased.concat(greetings.messages[i]);\n } else {\n easterEggs = easterEggs.concat(greetings.messages[i]);\n }\n }\n\n if (easterEggChance > 10) {\n return timeBased[greet].message;\n } else {\n let easterEggText = Math.floor(Math.random() * easterEggs.length);\n return easterEggs[easterEggText].message;\n }\n}\n\nfunction Clock() {\n _s();\n\n const [date, setDate] = useState(new Date());\n\n function refreshClock() {\n setDate(new Date());\n }\n\n useEffect(() => {\n const timerId = setInterval(refreshClock, 1000);\n return function cleanup() {\n clearInterval(timerId);\n };\n }, []);\n var hour = date.getHours();\n var minutes = date.getMinutes(); //var seconds = date.getSeconds();\n\n var midday = \"AM\";\n midday = hour >= 12 ? \"PM\" : \"AM\";\n hour = hour === 0 ? 12 : hour > 12 ? hour - 12 : hour;\n minutes = fixDigits(minutes); //seconds = fixDigits(seconds);\n\n let time = hour + \":\" + minutes + \" \" + midday;\n return /*#__PURE__*/_jsxDEV(\"h2\", {\n id: \"clock\",\n children: time\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 311,\n columnNumber: 5\n }, this);\n}\n\n_s(Clock, \"Gqi45WOZhU2c0BLYX0HoJeiR0fk=\");\n\n_c12 = Clock;\n\nfunction getApps() {\n let applications = require('./apps.json');\n\n return applications;\n}\n\nfunction getLinks() {\n let links = require('./links.json');\n\n return links;\n}\n\nfunction getProviders() {\n let providers = require('./providers.json');\n\n return providers;\n}\n\nfunction getThemes() {\n let themes = require('./themes.json');\n\n return themes;\n}\n\nfunction updateTheme(e) {\n var themes = getThemes().themes;\n console.log(e.target);\n}\n\nfunction handleKeyPress(e) {\n var sindex = 0;\n var cycle = false;\n var key = e.keyCode || e.which;\n var text = e.target.value.replaceAll(\"+\", \"%2B\");\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n\n if (key == 13) {\n // Search functions\n search(text);\n }\n\n if (key == 9) {\n // Tab Completion Functions\n e.preventDefault();\n e.stopPropagation();\n\n if (text[0] === ';') {\n switch (option) {\n case 't':\n var streamers = ['admiralbahroo', 'moonmoon_ow', 'witwix'];\n\n if (!subtext || cycle) {\n cycle = true;\n if (sindex > streamers.length - 1) sindex = 0;\n document.getElementById(\"keywords\").value = ';t ' + streamers[sindex++];\n return;\n }\n\n for (var streamer of streamers) {\n if (subtext === streamer.substr(0, subtext.length)) {\n document.getElementById(\"keywords\").value = ';t ' + streamer;\n return;\n }\n }\n\n break;\n }\n }\n }\n\n if (key == 32) {\n //Space to go to search\n updateLabel(text);\n }\n\n sindex = 0;\n cycle = false;\n updateLabel(text);\n}\n\nfunction updateLabel(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n\n if (text[0] === '/') {\n // if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n document.getElementById(\"searchType\").innerHTML = \"Allmusic search\";\n break;\n\n case \"d\":\n document.getElementById(\"searchType\").innerHTML = \"Duck Duck Go search\";\n break;\n\n case \"di\":\n document.getElementById(\"searchType\").innerHTML = \"Discogs search\";\n break;\n\n case \"i\":\n document.getElementById(\"searchType\").innerHTML = \"IMDB search\";\n break;\n\n case \"m\":\n document.getElementById(\"searchType\").innerHTML = \"TheMovieDB search\";\n break;\n\n case \"r\":\n document.getElementById(\"searchType\").innerHTML = \"Reddit search\";\n break;\n\n case \"q\":\n document.getElementById(\"searchType\").innerHTML = \"Qwant search\";\n break;\n\n case \"so\":\n document.getElementById(\"searchType\").innerHTML = \"Soundcloud search\";\n break;\n\n case \"s\":\n document.getElementById(\"searchType\").innerHTML = \"Spotify search\";\n break;\n\n case \"tv\":\n document.getElementById(\"searchType\").innerHTML = \"TheTVDB search\";\n break;\n\n case \"t\":\n document.getElementById(\"searchType\").innerHTML = \"Trakt search\";\n break;\n\n case \"y\":\n document.getElementById(\"searchType\").innerHTML = \"YouTube search\";\n break;\n\n case \"w\":\n document.getElementById(\"searchType\").innerHTML = \"Wikipedia search\";\n break;\n\n case \"p\":\n document.getElementById(\"searchType\").innerHTML = \"Plex search\";\n break;\n\n case \"rt\":\n document.getElementById(\"searchType\").innerHTML = \"Rotten Tomatoes search\";\n break;\n\n default:\n document.getElementById(\"searchType\").innerHTML = \"Invalid search\";\n break;\n }\n } else {\n document.getElementById(\"searchType\").innerHTML = \"Google search\";\n }\n}\n\nfunction search(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n\n if (text[0] === '/') {\n if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n window.location = \"https://www.allmusic.com/search/all/\" + subtext;\n break;\n\n case \"d\":\n window.location = \"https://duckduckgo.com/?q=\" + subtext;\n break;\n\n case \"di\":\n window.location = \"https://www.discogs.com/search/?q=\" + subtext;\n break;\n\n case \"i\":\n window.location = \"https://www.imdb.com/find?q=\" + subtext;\n break;\n\n case \"m\":\n window.location = \"https://www.themoviedb.org/search?query=\" + subtext;\n break;\n\n case \"r\":\n window.location = \"https://www.reddit.com/search?q=\" + subtext;\n break;\n\n case \"q\":\n window.location = \"https://www.qwant.com/?q=\" + subtext;\n break;\n\n case \"so\":\n window.location = \"https://soundcloud.com/search?q=\" + subtext;\n break;\n\n case \"s\":\n window.location = \"https://open.spotify.com/search/results/\" + subtext;\n break;\n\n case \"t\":\n window.location = \"https://trakt.tv/search?query=\" + subtext;\n break;\n\n case \"tv\":\n window.location = \"https://www.thetvdb.com/search?query=\" + subtext;\n break;\n\n case \"y\":\n window.location = \"https://www.youtube.com/results?search_query=\" + subtext;\n break;\n\n case \"w\":\n window.location = \"https://en.wikipedia.org/w/index.php?search=\" + subtext;\n break;\n\n case \"p\":\n window.location = \"https://app.plex.tv/desktop/#!/search?query=\" + subtext;\n break;\n\n case \"rt\":\n window.location = \"https://www.rottentomatoes.com/search?search=\" + subtext;\n break;\n }\n } else {\n var option = text.substr(1);\n\n switch (option) {\n case \"d\":\n window.location = \"https://www.duckduckgo.com\";\n break;\n\n case \"y\":\n window.location = \"https://www.youtube.com\";\n break;\n\n case \"r\":\n window.location = \"https://reddit.com\";\n break;\n\n case \"s\":\n window.location = \"https://open.spotify.com\";\n break;\n }\n }\n } else if (validURL(text)) {\n if (containsProtocol(text)) window.location = text;else window.location = \"https://\" + text;\n } else {\n window.location = \"https://www.google.com/search?q=\" + text;\n }\n} // Source: https://stackoverflow.com/questions/5717093/check-if-a-javascript-string-is-a-url\n\n\nfunction validURL(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/)?' + // protocol\n '((([a-z\\\\d]([a-z\\\\d-]*[a-z\\\\d])*)\\\\.)+[a-z]{2,}|' + // domain name\n '((\\\\d{1,3}\\\\.){3}\\\\d{1,3}))' + // OR ip (v4) address\n '(\\\\:\\\\d+)?(\\\\/[-a-z\\\\d%_.~+]*)*' + // port and path\n '(\\\\?[;&a-z\\\\d%_.~+=-]*)?' + // query string\n '(\\\\#[-a-z\\\\d_]*)?$', 'i'); // fragment locator\n\n return !!pattern.test(str);\n}\n\nfunction containsProtocol(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/){1}.*', 'i');\n return !!pattern.test(str);\n}\n\nString.prototype.replaceAll = function (search, replacement) {\n var target = this;\n return target.split(search).join(replacement);\n};\n\nvar _c, _c2, _c3, _c4, _c5, _c6, _c7, _c8, _c9, _c10, _c11, _c12;\n\n$RefreshReg$(_c, \"Homepage\");\n$RefreshReg$(_c2, \"Search\");\n$RefreshReg$(_c3, \"Header\");\n$RefreshReg$(_c4, \"Applications\");\n$RefreshReg$(_c5, \"App\");\n$RefreshReg$(_c6, \"Bookmarks\");\n$RefreshReg$(_c7, \"LinkGroups\");\n$RefreshReg$(_c8, \"LinkItem\");\n$RefreshReg$(_c9, \"ModalMenu\");\n$RefreshReg$(_c10, \"Provider\");\n$RefreshReg$(_c11, \"ModalInit\");\n$RefreshReg$(_c12, \"Clock\");","map":{"version":3,"sources":["/home/seanedmunds/dev/home-page/src/index.js"],"names":["React","useState","useEffect","ReactDOM","Homepage","date","greet","Search","handleKeyPress","Header","props","Applications","appList","getApps","items","i","apps","length","push","name","url","icon","NSFW","App","classNameType","hrefUrl","iconName","Bookmarks","bookmarkList","getLinks","bookmarks","category","links","LinkGroups","LinkItem","link","ModalMenu","providers","getProviders","updateTheme","Provider","provider","prefix","ModalInit","render","document","getElementById","currentDate","Date","dateOptions","weekday","year","month","day","toLocaleDateString","fixDigits","k","currentTime","Math","floor","getHours","easterEggChance","random","greetings","require","timeBased","easterEggs","messages","easteregg","concat","message","easterEggText","Clock","setDate","refreshClock","timerId","setInterval","cleanup","clearInterval","hour","minutes","getMinutes","midday","time","applications","getThemes","themes","e","console","log","target","sindex","cycle","key","keyCode","which","text","value","replaceAll","option","substr","indexOf","subtext","search","preventDefault","stopPropagation","streamers","streamer","updateLabel","innerHTML","window","location","validURL","containsProtocol","str","pattern","RegExp","test","String","prototype","replacement","split","join"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { useState, useEffect } from 'react';\nimport ReactDOM from 'react-dom';\n//import { unstable_createPortal } from 'react-dom';\nimport './index.css';\n\nfunction Homepage() {\n return (\n \n \n \n
\n \n \n
\n \n \n \n
\n \n \n
\n \n \n
\n \n );\n}\n\nfunction Search() {\n return (\n \n )\n}\n\nfunction Header(props) {\n return (\n \n );\n}\n\nfunction Applications() {\n let appList = getApps();\n var items = [];\n for (var i = 0; i < appList.apps.length; i++) {\n items.push(\n \n );\n }\n return (\n \n Applications
\n \n {items}\n
\n \n );\n}\n\nfunction App(props) {\n let classNameType = props.NSFW + \"-content\";\n let hrefUrl = \"https://\" + props.url;\n let iconName = \"mdi-\" + props.icon;\n return (\n \n );\n}\n\nfunction Bookmarks() {\n let bookmarkList = getLinks();\n var items = [];\n for (var i = 0; i < bookmarkList.bookmarks.length; i++) {\n items.push(\n \n );\n }\n return (\n \n Bookmarks
\n \n {items}\n
\n \n );\n}\n\nfunction LinkGroups(props) {\n var items = [];\n for (var i = 0; i < props.links.length; i++) {\n items.push(\n \n );\n }\n return (\n \n
{props.category}
\n {items}\n \n );\n}\n\nfunction LinkItem(props) {\n return (\n \n );\n}\n\nfunction ModalMenu() {\n var providers = getProviders();\n var items = [];\n for (var i = 0; i < providers.providers.length; i++) {\n items.push(\n \n );\n }\n return (\n \n \n \n\n
Color themes
\n\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n\n\n
Search options
\n
\n \n \n \n | Website | \n Prefix | \n
\n {items}\n \n
\n \n\n \n
\n \n );\n}\n\nfunction Provider(props) {\n return (\n \n | {props.provider.name} | \n {props.provider.prefix} | \n
\n );\n}\n\nfunction ModalInit() {\n return (\n \n );\n}\n\nReactDOM.render(\n ,\n document.getElementById('root')\n);\n\n//Functions below this line are for calculating data for\n//other functions\n\nfunction date() {\n let currentDate = new Date();\n let dateOptions = {\n weekday: \"long\",\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\"\n };\n let date = currentDate.toLocaleDateString(\"en-GB\", dateOptions);\n return date;\n}\nfunction fixDigits(k) {\n if (k < 10) {\n return \"0\" + k;\n }\n else {\n return k;\n }\n}\nfunction greet() {\n let currentTime = new Date();\n let greet = Math.floor(currentTime.getHours() / 6);\n let easterEggChance = Math.floor(Math.random() * 100);\n let greetings = require('./messages.json');\n let timeBased = [];\n let easterEggs = [];\n for (var i = 0; i < greetings.messages.length; i++) {\n if (greetings.messages[i].easteregg === \"FALSE\") {\n timeBased = timeBased.concat(greetings.messages[i]);\n } else {\n easterEggs = easterEggs.concat(greetings.messages[i]);\n }\n }\n if (easterEggChance > 10) {\n return timeBased[greet].message;\n } else {\n let easterEggText = Math.floor(Math.random() * easterEggs.length);\n return easterEggs[easterEggText].message;\n }\n}\nfunction Clock() {\n const [date, setDate] = useState(new Date());\n\n function refreshClock() {\n setDate(new Date());\n }\n useEffect(() => {\n const timerId = setInterval(refreshClock, 1000);\n return function cleanup() {\n clearInterval(timerId);\n };\n }, []);\n\n var hour = date.getHours();\n var minutes = date.getMinutes();\n //var seconds = date.getSeconds();\n var midday = \"AM\";\n midday = (hour >= 12) ? \"PM\" : \"AM\";\n hour = (hour === 0) ? 12 : ((hour > 12) ? (hour - 12) : hour);\n minutes = fixDigits(minutes);\n //seconds = fixDigits(seconds);\n let time = hour + \":\" + minutes + \" \" + midday;\n\n return (\n {time}
\n\n );\n}\nfunction getApps() {\n let applications = require('./apps.json');\n return applications;\n}\nfunction getLinks() {\n let links = require('./links.json');\n return links;\n}\nfunction getProviders() {\n let providers = require('./providers.json');\n return providers;\n}\nfunction getThemes() {\n let themes = require('./themes.json');\n return themes;\n}\n\nfunction updateTheme(e) {\n var themes = getThemes().themes;\n console.log(e.target);\n}\n\nfunction handleKeyPress(e) {\n var sindex = 0;\n var cycle = false;\n var key = e.keyCode || e.which;\n var text = e.target.value.replaceAll(\"+\", \"%2B\");\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n if (key == 13) { // Search functions\n search(text);\n }\n if (key == 9) { // Tab Completion Functions\n e.preventDefault();\n e.stopPropagation();\n if (text[0] === ';') {\n switch (option) {\n case 't':\n var streamers = ['admiralbahroo', 'moonmoon_ow', 'witwix'];\n if (!subtext || cycle) {\n cycle = true;\n if (sindex > streamers.length - 1) sindex = 0;\n document.getElementById(\"keywords\").value = ';t ' + streamers[sindex++];\n return;\n }\n for (var streamer of streamers) {\n if (subtext === streamer.substr(0, subtext.length)) {\n document.getElementById(\"keywords\").value = ';t ' + streamer;\n return;\n }\n }\n break;\n }\n }\n }\n if(key == 32){ //Space to go to search\nupdateLabel(text);\n }\n sindex = 0;\n cycle = false;\n updateLabel(text);\n}\n\nfunction updateLabel(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n if (text[0] === '/') {\n// if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n document.getElementById(\"searchType\").innerHTML = \"Allmusic search\";\n break;\n case \"d\":\n document.getElementById(\"searchType\").innerHTML = \"Duck Duck Go search\";\n break;\n case \"di\":\n document.getElementById(\"searchType\").innerHTML = \"Discogs search\";\n break;\n case \"i\":\n document.getElementById(\"searchType\").innerHTML = \"IMDB search\";\n break;\n case \"m\":\n document.getElementById(\"searchType\").innerHTML = \"TheMovieDB search\";\n break;\n case \"r\":\n document.getElementById(\"searchType\").innerHTML = \"Reddit search\";\n break;\n case \"q\":\n document.getElementById(\"searchType\").innerHTML = \"Qwant search\";\n break;\n case \"so\":\n document.getElementById(\"searchType\").innerHTML = \"Soundcloud search\";\n break;\n case \"s\":\n document.getElementById(\"searchType\").innerHTML = \"Spotify search\";\n break;\n case \"tv\":\n document.getElementById(\"searchType\").innerHTML = \"TheTVDB search\";\n break;\n case \"t\":\n document.getElementById(\"searchType\").innerHTML = \"Trakt search\";\n break;\n case \"y\":\n document.getElementById(\"searchType\").innerHTML = \"YouTube search\";\n break;\n case \"w\":\n document.getElementById(\"searchType\").innerHTML = \"Wikipedia search\";\n break;\n case \"p\":\n document.getElementById(\"searchType\").innerHTML = \"Plex search\";\n break;\n case \"rt\":\n document.getElementById(\"searchType\").innerHTML = \"Rotten Tomatoes search\";\n break;\n default:\n document.getElementById(\"searchType\").innerHTML = \"Invalid search\";\n break;\n }\n}else {\n document.getElementById(\"searchType\").innerHTML = \"Google search\";\n }\n}\n\nfunction search(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n if (text[0] === '/') {\n if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n window.location = \"https://www.allmusic.com/search/all/\" + subtext;\n break;\n case \"d\":\n window.location = \"https://duckduckgo.com/?q=\" + subtext;\n break;\n case \"di\":\n window.location = \"https://www.discogs.com/search/?q=\" + subtext;\n break;\n case \"i\":\n window.location = \"https://www.imdb.com/find?q=\" + subtext;\n break;\n case \"m\":\n window.location = \"https://www.themoviedb.org/search?query=\" + subtext;\n break;\n case \"r\":\n window.location = \"https://www.reddit.com/search?q=\" + subtext;\n break;\n case \"q\":\n window.location = \"https://www.qwant.com/?q=\" + subtext;\n break;\n case \"so\":\n window.location = \"https://soundcloud.com/search?q=\" + subtext;\n break;\n case \"s\":\n window.location = \"https://open.spotify.com/search/results/\" + subtext;\n break;\n case \"t\":\n window.location = \"https://trakt.tv/search?query=\" + subtext;\n break;\n case \"tv\":\n window.location = \"https://www.thetvdb.com/search?query=\" + subtext;\n break;\n case \"y\":\n window.location = \"https://www.youtube.com/results?search_query=\" + subtext;\n break;\n case \"w\":\n window.location = \"https://en.wikipedia.org/w/index.php?search=\" + subtext;\n break;\n case \"p\":\n window.location = \"https://app.plex.tv/desktop/#!/search?query=\" + subtext;\n break;\n case \"rt\":\n window.location = \"https://www.rottentomatoes.com/search?search=\" + subtext;\n break;\n }\n } else {\n var option = text.substr(1);\n switch (option) {\n case \"d\":\n window.location = \"https://www.duckduckgo.com\";\n break;\n case \"y\":\n window.location = \"https://www.youtube.com\";\n break;\n case \"r\":\n window.location = \"https://reddit.com\";\n break;\n case \"s\":\n window.location = \"https://open.spotify.com\";\n break;\n }\n }\n } else if (validURL(text)) {\n if (containsProtocol(text))\n window.location = text;\n else\n window.location = \"https://\" + text;\n } else {\n window.location = \"https://www.google.com/search?q=\" + text;\n }\n}\n\n// Source: https://stackoverflow.com/questions/5717093/check-if-a-javascript-string-is-a-url\nfunction validURL(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/)?' + // protocol\n '((([a-z\\\\d]([a-z\\\\d-]*[a-z\\\\d])*)\\\\.)+[a-z]{2,}|' + // domain name\n '((\\\\d{1,3}\\\\.){3}\\\\d{1,3}))' + // OR ip (v4) address\n '(\\\\:\\\\d+)?(\\\\/[-a-z\\\\d%_.~+]*)*' + // port and path\n '(\\\\?[;&a-z\\\\d%_.~+=-]*)?' + // query string\n '(\\\\#[-a-z\\\\d_]*)?$', 'i'); // fragment locator\n return !!pattern.test(str);\n}\n\nfunction containsProtocol(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/){1}.*', 'i');\n return !!pattern.test(str);\n}\n\nString.prototype.replaceAll = function(search, replacement) {\n var target = this;\n return target.split(search).join(replacement);\n};"]},"metadata":{},"sourceType":"module"}
\ No newline at end of file
diff --git a/node_modules/.cache/babel-loader/f36ead689f618ee7ccd9a91441da47ed.json b/node_modules/.cache/babel-loader/f36ead689f618ee7ccd9a91441da47ed.json
new file mode 100644
index 00000000..6155820f
--- /dev/null
+++ b/node_modules/.cache/babel-loader/f36ead689f618ee7ccd9a91441da47ed.json
@@ -0,0 +1 @@
+{"ast":null,"code":"var _jsxFileName = \"/home/seanedmunds/dev/home-page/src/index.js\",\n _s = $RefreshSig$();\n\nimport React from 'react';\nimport { useState, useEffect } from 'react';\nimport ReactDOM from 'react-dom';\nimport './index.css';\nimport { jsxDEV as _jsxDEV } from \"react/jsx-dev-runtime\";\n\nconst setValueFromLocalStorage = property => {\n let value = localStorage.getItem(property);\n setValue(property, value);\n};\n\nconst setValue = (property, value) => {\n if (value) {\n document.documentElement.style.setProperty(`--${property}`, value);\n const input = document.querySelector(`#${property}`);\n\n if (input) {\n value = value.replace('px', '');\n input.value = value;\n }\n }\n};\n\nfunction Homepage() {\n setTheme();\n return /*#__PURE__*/_jsxDEV(\"main\", {\n id: \"container\",\n className: \"fade\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Search, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 28,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 27,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Header, {\n date: date(),\n greet: greet()\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 31,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 30,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Applications, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 37,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 36,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Bookmarks, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 40,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 39,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(ModalMenu, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 43,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 42,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(ModalInit, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 46,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 45,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 26,\n columnNumber: 5\n }, this);\n}\n\n_c = Homepage;\n\nfunction Search() {\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"search\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"abackground\",\n children: [/*#__PURE__*/_jsxDEV(\"input\", {\n name: \"keywords\",\n type: \"text\",\n className: \"keyword\",\n id: \"keywords\",\n size: \"50\",\n spellCheck: \"true\",\n placeholder: \"\"\n /*onFocus={this.placeholder = \"\"} onBlur={this.placeholder = ''}*/\n ,\n autoComplete: \"off\",\n autoFocus: true,\n onKeyUp: handleKeyPress\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 56,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n id: \"searchType\",\n className: \"Input-label\",\n children: \"Google search\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 57,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 55,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 54,\n columnNumber: 5\n }, this);\n}\n\n_c2 = Search;\n\nfunction Header(props) {\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"header\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n id: \"greeting_block\",\n children: /*#__PURE__*/_jsxDEV(\"h1\", {\n id: \"header_greet\",\n children: props.greet\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 67,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 66,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"date_block\",\n children: [/*#__PURE__*/_jsxDEV(\"h2\", {\n id: \"header_date\",\n children: props.date\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 70,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(Clock, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 71,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 69,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 65,\n columnNumber: 5\n }, this);\n}\n\n_c3 = Header;\n\nfunction Applications() {\n let appList = getApps();\n var items = [];\n\n for (var i = 0; i < appList.apps.length; i++) {\n var safe = appList.apps[i].NSFW;\n var NSFWEnabled = localStorage.getItem(\"contenttype\");\n\n if (safe === \"SAFE\") {\n items.push( /*#__PURE__*/_jsxDEV(App, {\n name: appList.apps[i].name,\n url: appList.apps[i].url,\n icon: appList.apps[i].icon,\n NSFW: appList.apps[i].NSFW\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 85,\n columnNumber: 9\n }, this));\n } else if (safe === \"NSFW\" && NSFWEnabled) {\n items.push( /*#__PURE__*/_jsxDEV(App, {\n name: appList.apps[i].name,\n url: appList.apps[i].url,\n icon: appList.apps[i].icon,\n NSFW: appList.apps[i].NSFW\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 95,\n columnNumber: 9\n }, this));\n } else {}\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"apps\",\n children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n children: \"Applications\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 110,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"apps_loop\",\n children: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 111,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 109,\n columnNumber: 5\n }, this);\n}\n\n_c4 = Applications;\n\nfunction App(props) {\n let classNameType = props.NSFW + \"-content\";\n let hrefUrl = \"https://\" + props.url;\n let iconName = \"mdi-\" + props.icon;\n return /*#__PURE__*/_jsxDEV(\"div\", {\n className: classNameType,\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: hrefUrl,\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_item\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_icon\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify icon\",\n \"data-icon\": iconName\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 128,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 127,\n columnNumber: 13\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_text\",\n children: [/*#__PURE__*/_jsxDEV(\"span\", {\n id: \"app-name\",\n children: props.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 131,\n columnNumber: 15\n }, this), /*#__PURE__*/_jsxDEV(\"span\", {\n id: \"app-address\",\n children: props.url\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 132,\n columnNumber: 15\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 130,\n columnNumber: 13\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 126,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 125,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 124,\n columnNumber: 7\n }, this);\n}\n\n_c5 = App;\n\nfunction Bookmarks() {\n let bookmarkList = getLinks();\n var items = [];\n\n for (var i = 0; i < bookmarkList.bookmarks.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(LinkGroups, {\n category: bookmarkList.bookmarks[i].category,\n links: bookmarkList.bookmarks[i].links\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 145,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"links\",\n children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n children: \"Bookmarks\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 154,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"links_loop\",\n children: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 155,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 153,\n columnNumber: 5\n }, this);\n}\n\n_c6 = Bookmarks;\n\nfunction LinkGroups(props) {\n var items = [];\n\n for (var i = 0; i < props.links.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(LinkItem, {\n link: props.links[i]\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 166,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"links_item\",\n children: [/*#__PURE__*/_jsxDEV(\"h4\", {\n children: props.category\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 174,\n columnNumber: 7\n }, this), items]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 173,\n columnNumber: 5\n }, this);\n}\n\n_c7 = LinkGroups;\n\nfunction LinkItem(props) {\n return /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: props.link.url,\n className: \"theme_color-border theme_text-select\",\n children: props.link.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 183,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 182,\n columnNumber: 5\n }, this);\n}\n\n_c8 = LinkItem;\n\nfunction ModalMenu() {\n var providers = getProviders();\n var items = [];\n\n for (var i = 0; i < providers.providers.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(Provider, {\n provider: providers.providers[i]\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 193,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"modal\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n children: [/*#__PURE__*/_jsxDEV(\"header\", {\n id: \"modal-header\",\n children: [/*#__PURE__*/_jsxDEV(\"h1\", {\n children: \"Options\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 203,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n href: \"#\",\n title: \"Close\",\n className: \"modal-close\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-close\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 205,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 204,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 202,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"h2\", {\n children: \"Color themes\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 209,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"modal-theme\",\n children: [/*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"blackboard\",\n className: \"theme-button theme-blackboard\",\n onClick: updateTheme,\n children: \"Blackboard\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 212,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"gazette\",\n className: \"theme-button theme-gazette\",\n onClick: updateTheme,\n children: \"Gazette\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 213,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"espresso\",\n className: \"theme-button theme-espresso\",\n onClick: updateTheme,\n children: \"Espresso\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 214,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cab\",\n className: \"theme-button theme-cab\",\n onClick: updateTheme,\n children: \"Cab\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 215,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cloud\",\n className: \"theme-button theme-cloud\",\n onClick: updateTheme,\n children: \"Cloud\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 216,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"lime\",\n className: \"theme-button theme-lime\",\n onClick: updateTheme,\n children: \"Lime\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 217,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"passion\",\n className: \"theme-button theme-passion\",\n onClick: updateTheme,\n children: \"Passion\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 218,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"blues\",\n className: \"theme-button theme-blues\",\n onClick: updateTheme,\n children: \"Blues\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 219,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"chalk\",\n className: \"theme-button theme-chalk\",\n onClick: updateTheme,\n children: \"Chalk\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 220,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"tron\",\n className: \"theme-button theme-tron\",\n onClick: updateTheme,\n children: \"Tron\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 221,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"paper\",\n className: \"theme-button theme-paper\",\n onClick: updateTheme,\n children: \"Paper\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 222,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cyberpunk\",\n className: \"theme-button theme-cyberpunk\",\n onClick: updateTheme,\n children: \"Cyberpunk\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 223,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"quadra\",\n className: \"theme-button theme-panam\",\n onClick: updateTheme,\n children: \"Quadra\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 224,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"panam\",\n className: \"theme-button theme-panam\",\n onClick: updateTheme,\n children: \"Panam\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 225,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"touch\",\n className: \"theme-button theme-touch\",\n onClick: updateTheme,\n children: \"Touch\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 226,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"peek\",\n className: \"theme-button theme-peek\",\n onClick: updateTheme,\n children: \"Peek\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 227,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 211,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"h2\", {\n children: \"Search options\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 231,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"providers\",\n children: /*#__PURE__*/_jsxDEV(\"table\", {\n children: /*#__PURE__*/_jsxDEV(\"tbody\", {\n children: [/*#__PURE__*/_jsxDEV(\"tr\", {\n children: [/*#__PURE__*/_jsxDEV(\"th\", {\n children: \"Website\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 236,\n columnNumber: 19\n }, this), /*#__PURE__*/_jsxDEV(\"th\", {\n children: \"Prefix\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 237,\n columnNumber: 19\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 235,\n columnNumber: 17\n }, this), items]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 234,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 233,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 232,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"header\", {\n id: \"modal-footer\",\n children: [/*#__PURE__*/_jsxDEV(\"a\", {\n href: \"https://github.com/jeroenpardon/\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-github-box\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 245,\n columnNumber: 54\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 245,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n href: \"https://materialdesignicons.com/\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-material-design\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 246,\n columnNumber: 54\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 246,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(HideButton, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 247,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 244,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 201,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 200,\n columnNumber: 5\n }, this);\n}\n\n_c9 = ModalMenu;\n\nfunction HideButton() {\n var isChecked = localStorage.getItem(\"content-type\");\n console.log(isChecked);\n return /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"sneaky\",\n children: [/*#__PURE__*/_jsxDEV(\"input\", {\n type: \"checkbox\",\n id: \"contenttype\",\n checked: isChecked,\n onChange: udpateDisplayedItems\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 259,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n for: \"contenttype\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-domino-mask\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 260,\n columnNumber: 32\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 260,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 258,\n columnNumber: 5\n }, this);\n}\n\n_c10 = HideButton;\n\nfunction Provider(props) {\n return /*#__PURE__*/_jsxDEV(\"tr\", {\n children: [/*#__PURE__*/_jsxDEV(\"td\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: props.provider.url,\n children: props.provider.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 268,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 268,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"td\", {\n children: props.provider.prefix\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 269,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 267,\n columnNumber: 5\n }, this);\n}\n\n_c11 = Provider;\n\nfunction ModalInit() {\n setDisplayedItems();\n return /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"modal_init\",\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n className: \"btn\",\n href: \"#modal\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify icon\",\n \"data-icon\": \"mdi-xbox-controller-menu\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 279,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 278,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 277,\n columnNumber: 5\n }, this);\n}\n\n_c12 = ModalInit;\nReactDOM.render( /*#__PURE__*/_jsxDEV(Homepage, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 286,\n columnNumber: 3\n}, this), document.getElementById('root')); //Functions below this line are for calculating data for\n//other functions\n\nfunction date() {\n let currentDate = new Date();\n let dateOptions = {\n weekday: \"long\",\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\"\n };\n let date = currentDate.toLocaleDateString(\"en-GB\", dateOptions);\n return date;\n}\n\nfunction fixDigits(k) {\n if (k < 10) {\n return \"0\" + k;\n } else {\n return k;\n }\n}\n\nfunction greet() {\n let currentTime = new Date();\n let greet = Math.floor(currentTime.getHours() / 6);\n let easterEggChance = Math.floor(Math.random() * 100);\n\n let greetings = require('./messages.json');\n\n let timeBased = [];\n let easterEggs = [];\n\n for (var i = 0; i < greetings.messages.length; i++) {\n if (greetings.messages[i].easteregg === \"FALSE\") {\n timeBased = timeBased.concat(greetings.messages[i]);\n } else {\n easterEggs = easterEggs.concat(greetings.messages[i]);\n }\n }\n\n if (easterEggChance > 10) {\n return timeBased[greet].message;\n } else {\n let easterEggText = Math.floor(Math.random() * easterEggs.length);\n return easterEggs[easterEggText].message;\n }\n}\n\nfunction Clock() {\n _s();\n\n const [date, setDate] = useState(new Date());\n\n function refreshClock() {\n setDate(new Date());\n }\n\n useEffect(() => {\n const timerId = setInterval(refreshClock, 1000);\n return function cleanup() {\n clearInterval(timerId);\n };\n }, []);\n var hour = date.getHours();\n var minutes = date.getMinutes(); //var seconds = date.getSeconds();\n\n var midday = \"AM\";\n midday = hour >= 12 ? \"PM\" : \"AM\";\n hour = hour === 0 ? 12 : hour > 12 ? hour - 12 : hour;\n minutes = fixDigits(minutes); //seconds = fixDigits(seconds);\n\n let time = hour + \":\" + minutes + \" \" + midday;\n return /*#__PURE__*/_jsxDEV(\"h2\", {\n id: \"clock\",\n children: time\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 357,\n columnNumber: 5\n }, this);\n}\n\n_s(Clock, \"Gqi45WOZhU2c0BLYX0HoJeiR0fk=\");\n\n_c13 = Clock;\n\nfunction getApps() {\n let applications = require('./apps.json');\n\n return applications;\n}\n\nfunction getLinks() {\n let links = require('./links.json');\n\n return links;\n}\n\nfunction getProviders() {\n let providers = require('./providers.json');\n\n return providers;\n}\n\nfunction getThemes() {\n let themes = require('./themes.json');\n\n return themes;\n}\n\nfunction updateTheme(e) {\n var themes = getThemes();\n var themeName = e.target.innerHTML.toLowerCase();\n var index = themes.themes.findIndex(function (item, i) {\n return item.name === themeName;\n });\n localStorage.setItem(\"image-background\", themes.themes[index].imagebackground);\n localStorage.setItem(\"color-background\", themes.themes[index].colorbackground);\n localStorage.setItem(\"color-search-background\", themes.themes[index].colorserachbackground);\n localStorage.setItem(\"color-text-pri\", themes.themes[index].colortextpri);\n localStorage.setItem(\"color-text-acc\", themes.themes[index].colortextacc);\n localStorage.setItem(\"color-border\", themes.themes[index].colorborder); //document.documentElement.style.setProperty(prop, `var(--${themeName}${prop.substring(10)})`);\n\n setTheme();\n}\n\nfunction setTheme() {\n setValueFromLocalStorage('image-background');\n setValueFromLocalStorage('color-background');\n setValueFromLocalStorage('color-search-background');\n setValueFromLocalStorage('color-text-pri');\n setValueFromLocalStorage('color-text-acc');\n setValueFromLocalStorage('color-border');\n setValueFromLocalStorage('content-display');\n}\n\nfunction handleKeyPress(e) {\n var sindex = 0;\n var cycle = false;\n var key = e.keyCode || e.which;\n var text = e.target.value.replaceAll(\"+\", \"%2B\");\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n\n if (key == 13) {\n // Search functions\n search(text);\n }\n\n if (key == 9) {\n // Tab Completion Functions\n e.preventDefault();\n e.stopPropagation();\n\n if (text[0] === ';') {\n switch (option) {\n case 't':\n var streamers = ['admiralbahroo', 'moonmoon_ow', 'witwix'];\n\n if (!subtext || cycle) {\n cycle = true;\n if (sindex > streamers.length - 1) sindex = 0;\n document.getElementById(\"keywords\").value = ';t ' + streamers[sindex++];\n return;\n }\n\n for (var streamer of streamers) {\n if (subtext === streamer.substr(0, subtext.length)) {\n document.getElementById(\"keywords\").value = ';t ' + streamer;\n return;\n }\n }\n\n break;\n }\n }\n }\n\n if (key == 32) {\n //Space to go to search\n updateLabel(text);\n }\n\n sindex = 0;\n cycle = false;\n updateLabel(text);\n}\n\nfunction updateLabel(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n\n if (text[0] === '/') {\n // if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n document.getElementById(\"searchType\").innerHTML = \"Allmusic search\";\n break;\n\n case \"d\":\n document.getElementById(\"searchType\").innerHTML = \"Duck Duck Go search\";\n break;\n\n case \"di\":\n document.getElementById(\"searchType\").innerHTML = \"Discogs search\";\n break;\n\n case \"i\":\n document.getElementById(\"searchType\").innerHTML = \"IMDB search\";\n break;\n\n case \"m\":\n document.getElementById(\"searchType\").innerHTML = \"TheMovieDB search\";\n break;\n\n case \"r\":\n document.getElementById(\"searchType\").innerHTML = \"Reddit search\";\n break;\n\n case \"q\":\n document.getElementById(\"searchType\").innerHTML = \"Qwant search\";\n break;\n\n case \"so\":\n document.getElementById(\"searchType\").innerHTML = \"Soundcloud search\";\n break;\n\n case \"s\":\n document.getElementById(\"searchType\").innerHTML = \"Spotify search\";\n break;\n\n case \"tv\":\n document.getElementById(\"searchType\").innerHTML = \"TheTVDB search\";\n break;\n\n case \"t\":\n document.getElementById(\"searchType\").innerHTML = \"Trakt search\";\n break;\n\n case \"y\":\n document.getElementById(\"searchType\").innerHTML = \"YouTube search\";\n break;\n\n case \"w\":\n document.getElementById(\"searchType\").innerHTML = \"Wikipedia search\";\n break;\n\n case \"p\":\n document.getElementById(\"searchType\").innerHTML = \"Plex search\";\n break;\n\n case \"rt\":\n document.getElementById(\"searchType\").innerHTML = \"Rotten Tomatoes search\";\n break;\n\n default:\n document.getElementById(\"searchType\").innerHTML = \"Invalid search\";\n break;\n }\n } else {\n document.getElementById(\"searchType\").innerHTML = \"Google search\";\n }\n}\n\nfunction search(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n\n if (text[0] === '/') {\n if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n window.location = \"https://www.allmusic.com/search/all/\" + subtext;\n break;\n\n case \"d\":\n window.location = \"https://duckduckgo.com/?q=\" + subtext;\n break;\n\n case \"di\":\n window.location = \"https://www.discogs.com/search/?q=\" + subtext;\n break;\n\n case \"i\":\n window.location = \"https://www.imdb.com/find?q=\" + subtext;\n break;\n\n case \"m\":\n window.location = \"https://www.themoviedb.org/search?query=\" + subtext;\n break;\n\n case \"r\":\n window.location = \"https://www.reddit.com/search?q=\" + subtext;\n break;\n\n case \"q\":\n window.location = \"https://www.qwant.com/?q=\" + subtext;\n break;\n\n case \"so\":\n window.location = \"https://soundcloud.com/search?q=\" + subtext;\n break;\n\n case \"s\":\n window.location = \"https://open.spotify.com/search/results/\" + subtext;\n break;\n\n case \"t\":\n window.location = \"https://trakt.tv/search?query=\" + subtext;\n break;\n\n case \"tv\":\n window.location = \"https://www.thetvdb.com/search?query=\" + subtext;\n break;\n\n case \"y\":\n window.location = \"https://www.youtube.com/results?search_query=\" + subtext;\n break;\n\n case \"w\":\n window.location = \"https://en.wikipedia.org/w/index.php?search=\" + subtext;\n break;\n\n case \"p\":\n window.location = \"https://app.plex.tv/desktop/#!/search?query=\" + subtext;\n break;\n\n case \"rt\":\n window.location = \"https://www.rottentomatoes.com/search?search=\" + subtext;\n break;\n }\n } else {\n var option = text.substr(1);\n\n switch (option) {\n case \"d\":\n window.location = \"https://www.duckduckgo.com\";\n break;\n\n case \"y\":\n window.location = \"https://www.youtube.com\";\n break;\n\n case \"r\":\n window.location = \"https://reddit.com\";\n break;\n\n case \"s\":\n window.location = \"https://open.spotify.com\";\n break;\n }\n }\n } else if (validURL(text)) {\n if (containsProtocol(text)) window.location = text;else window.location = \"https://\" + text;\n } else {\n window.location = \"https://www.google.com/search?q=\" + text;\n }\n}\n\nfunction validURL(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/)?' + // protocol\n '((([a-z\\\\d]([a-z\\\\d-]*[a-z\\\\d])*)\\\\.)+[a-z]{2,}|' + // domain name\n '((\\\\d{1,3}\\\\.){3}\\\\d{1,3}))' + // OR ip (v4) address\n '(\\\\:\\\\d+)?(\\\\/[-a-z\\\\d%_.~+]*)*' + // port and path\n '(\\\\?[;&a-z\\\\d%_.~+=-]*)?' + // query string\n '(\\\\#[-a-z\\\\d_]*)?$', 'i'); // fragment locator\n\n return !!pattern.test(str);\n}\n\nfunction containsProtocol(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/){1}.*', 'i');\n return !!pattern.test(str);\n}\n\nString.prototype.replaceAll = function (search, replacement) {\n var target = this;\n return target.split(search).join(replacement);\n};\n\nfunction udpateDisplayedItems(e) {\n console.log(e);\n localStorage.setItem('contenttype', e.target.checked);\n\n if (e.target.checked) {\n localStorage.setItem('content-display', 'none');\n } else {\n localStorage.setItem('content-display', 'block');\n }\n\n setDisplayedItems();\n}\n\nfunction setDisplayedItems() {\n setValueFromLocalStorage('contenttype');\n setValueFromLocalStorage('content-display');\n}\n\nvar _c, _c2, _c3, _c4, _c5, _c6, _c7, _c8, _c9, _c10, _c11, _c12, _c13;\n\n$RefreshReg$(_c, \"Homepage\");\n$RefreshReg$(_c2, \"Search\");\n$RefreshReg$(_c3, \"Header\");\n$RefreshReg$(_c4, \"Applications\");\n$RefreshReg$(_c5, \"App\");\n$RefreshReg$(_c6, \"Bookmarks\");\n$RefreshReg$(_c7, \"LinkGroups\");\n$RefreshReg$(_c8, \"LinkItem\");\n$RefreshReg$(_c9, \"ModalMenu\");\n$RefreshReg$(_c10, \"HideButton\");\n$RefreshReg$(_c11, \"Provider\");\n$RefreshReg$(_c12, \"ModalInit\");\n$RefreshReg$(_c13, \"Clock\");","map":{"version":3,"sources":["/home/seanedmunds/dev/home-page/src/index.js"],"names":["React","useState","useEffect","ReactDOM","setValueFromLocalStorage","property","value","localStorage","getItem","setValue","document","documentElement","style","setProperty","input","querySelector","replace","Homepage","setTheme","date","greet","Search","handleKeyPress","Header","props","Applications","appList","getApps","items","i","apps","length","safe","NSFW","NSFWEnabled","push","name","url","icon","App","classNameType","hrefUrl","iconName","Bookmarks","bookmarkList","getLinks","bookmarks","category","links","LinkGroups","LinkItem","link","ModalMenu","providers","getProviders","updateTheme","HideButton","isChecked","console","log","udpateDisplayedItems","Provider","provider","prefix","ModalInit","setDisplayedItems","render","getElementById","currentDate","Date","dateOptions","weekday","year","month","day","toLocaleDateString","fixDigits","k","currentTime","Math","floor","getHours","easterEggChance","random","greetings","require","timeBased","easterEggs","messages","easteregg","concat","message","easterEggText","Clock","setDate","refreshClock","timerId","setInterval","cleanup","clearInterval","hour","minutes","getMinutes","midday","time","applications","getThemes","themes","e","themeName","target","innerHTML","toLowerCase","index","findIndex","item","setItem","imagebackground","colorbackground","colorserachbackground","colortextpri","colortextacc","colorborder","sindex","cycle","key","keyCode","which","text","replaceAll","option","substr","indexOf","subtext","search","preventDefault","stopPropagation","streamers","streamer","updateLabel","window","location","validURL","containsProtocol","str","pattern","RegExp","test","String","prototype","replacement","split","join","checked"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { useState, useEffect } from 'react';\nimport ReactDOM from 'react-dom';\nimport './index.css';\n\nconst setValueFromLocalStorage = property => {\n let value = localStorage.getItem(property);\n setValue(property, value);\n};\nconst setValue = (property, value) => {\n if (value) {\n document.documentElement.style.setProperty(`--${property}`, value);\n\n const input = document.querySelector(`#${property}`);\n if (input) {\n value = value.replace('px', '');\n input.value = value;\n }\n }\n};\n\nfunction Homepage() {\n setTheme();\n \n return (\n \n \n \n
\n \n \n
\n \n \n \n
\n \n \n
\n \n \n
\n \n );\n}\n\nfunction Search() {\n return (\n \n )\n}\n\nfunction Header(props) {\n return (\n \n );\n}\n\nfunction Applications() {\n let appList = getApps();\n var items = [];\n for (var i = 0; i < appList.apps.length; i++) {\n var safe = appList.apps[i].NSFW;\n var NSFWEnabled = localStorage.getItem(\"contenttype\");\n if (safe === \"SAFE\") {\n items.push(\n \n );\n } else if (safe === \"NSFW\" && NSFWEnabled) {\n items.push(\n \n );\n } else {\n \n }\n \n }\n return (\n \n Applications
\n \n {items}\n
\n \n );\n}\n\nfunction App(props) {\n \n let classNameType = props.NSFW + \"-content\";\n let hrefUrl = \"https://\" + props.url;\n let iconName = \"mdi-\" + props.icon;\n return (\n \n );\n}\n\nfunction Bookmarks() {\n let bookmarkList = getLinks();\n var items = [];\n for (var i = 0; i < bookmarkList.bookmarks.length; i++) {\n items.push(\n \n );\n }\n return (\n \n Bookmarks
\n \n {items}\n
\n \n );\n}\n\nfunction LinkGroups(props) {\n var items = [];\n for (var i = 0; i < props.links.length; i++) {\n items.push(\n \n );\n }\n return (\n \n
{props.category}
\n {items}\n \n );\n}\n\nfunction LinkItem(props) {\n return (\n \n );\n}\n\nfunction ModalMenu() {\n var providers = getProviders();\n var items = [];\n for (var i = 0; i < providers.providers.length; i++) {\n items.push(\n \n );\n }\n return (\n \n \n \n\n
Color themes
\n\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n\n\n
Search options
\n
\n \n \n \n | Website | \n Prefix | \n
\n {items}\n \n
\n \n\n \n
\n \n );\n}\n\nfunction HideButton() {\n var isChecked = localStorage.getItem(\"content-type\");\n console.log(isChecked);\n return(\n \n \n \n
\n );\n}\n\nfunction Provider(props) {\n return (\n \n | {props.provider.name} | \n {props.provider.prefix} | \n
\n );\n}\n\nfunction ModalInit() {\n setDisplayedItems();\n return (\n \n );\n}\n\nReactDOM.render(\n ,\n document.getElementById('root')\n);\n\n//Functions below this line are for calculating data for\n//other functions\n\nfunction date() {\n let currentDate = new Date();\n let dateOptions = {\n weekday: \"long\",\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\"\n };\n let date = currentDate.toLocaleDateString(\"en-GB\", dateOptions);\n return date;\n}\nfunction fixDigits(k) {\n if (k < 10) {\n return \"0\" + k;\n }\n else {\n return k;\n }\n}\nfunction greet() {\n let currentTime = new Date();\n let greet = Math.floor(currentTime.getHours() / 6);\n let easterEggChance = Math.floor(Math.random() * 100);\n let greetings = require('./messages.json');\n let timeBased = [];\n let easterEggs = [];\n for (var i = 0; i < greetings.messages.length; i++) {\n if (greetings.messages[i].easteregg === \"FALSE\") {\n timeBased = timeBased.concat(greetings.messages[i]);\n } else {\n easterEggs = easterEggs.concat(greetings.messages[i]);\n }\n }\n if (easterEggChance > 10) {\n return timeBased[greet].message;\n } else {\n let easterEggText = Math.floor(Math.random() * easterEggs.length);\n return easterEggs[easterEggText].message;\n }\n}\nfunction Clock() {\n const [date, setDate] = useState(new Date());\n\n function refreshClock() {\n setDate(new Date());\n }\n useEffect(() => {\n const timerId = setInterval(refreshClock, 1000);\n return function cleanup() {\n clearInterval(timerId);\n };\n }, []);\n\n var hour = date.getHours();\n var minutes = date.getMinutes();\n //var seconds = date.getSeconds();\n var midday = \"AM\";\n midday = (hour >= 12) ? \"PM\" : \"AM\";\n hour = (hour === 0) ? 12 : ((hour > 12) ? (hour - 12) : hour);\n minutes = fixDigits(minutes);\n //seconds = fixDigits(seconds);\n let time = hour + \":\" + minutes + \" \" + midday;\n\n return (\n {time}
\n\n );\n}\nfunction getApps() {\n let applications = require('./apps.json');\n return applications;\n}\nfunction getLinks() {\n let links = require('./links.json');\n return links;\n}\nfunction getProviders() {\n let providers = require('./providers.json');\n return providers;\n}\nfunction getThemes() {\n let themes = require('./themes.json');\n return themes;\n}\nfunction updateTheme(e) {\n var themes = getThemes();\n var themeName = e.target.innerHTML.toLowerCase();\n var index = themes.themes.findIndex(function(item, i){\n return item.name === themeName\n });\n localStorage.setItem(\"image-background\", themes.themes[index].imagebackground);\n localStorage.setItem(\"color-background\", themes.themes[index].colorbackground);\n localStorage.setItem(\"color-search-background\", themes.themes[index].colorserachbackground);\n localStorage.setItem(\"color-text-pri\",themes.themes[index].colortextpri);\n localStorage.setItem(\"color-text-acc\", themes.themes[index].colortextacc);\n localStorage.setItem(\"color-border\", themes.themes[index].colorborder);\n \n //document.documentElement.style.setProperty(prop, `var(--${themeName}${prop.substring(10)})`);\n setTheme();\n}\nfunction setTheme() {\n setValueFromLocalStorage('image-background');\n setValueFromLocalStorage('color-background');\n setValueFromLocalStorage('color-search-background');\n setValueFromLocalStorage('color-text-pri');\n setValueFromLocalStorage('color-text-acc');\n setValueFromLocalStorage('color-border');\n setValueFromLocalStorage('content-display');\n}\nfunction handleKeyPress(e) {\n var sindex = 0;\n var cycle = false;\n var key = e.keyCode || e.which;\n var text = e.target.value.replaceAll(\"+\", \"%2B\");\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n if (key == 13) { // Search functions\n search(text);\n }\n if (key == 9) { // Tab Completion Functions\n e.preventDefault();\n e.stopPropagation();\n if (text[0] === ';') {\n switch (option) {\n case 't':\n var streamers = ['admiralbahroo', 'moonmoon_ow', 'witwix'];\n if (!subtext || cycle) {\n cycle = true;\n if (sindex > streamers.length - 1) sindex = 0;\n document.getElementById(\"keywords\").value = ';t ' + streamers[sindex++];\n return;\n }\n for (var streamer of streamers) {\n if (subtext === streamer.substr(0, subtext.length)) {\n document.getElementById(\"keywords\").value = ';t ' + streamer;\n return;\n }\n }\n break;\n }\n }\n }\n if(key == 32){ //Space to go to search\nupdateLabel(text);\n }\n sindex = 0;\n cycle = false;\n updateLabel(text);\n}\nfunction updateLabel(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n if (text[0] === '/') {\n// if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n document.getElementById(\"searchType\").innerHTML = \"Allmusic search\";\n break;\n case \"d\":\n document.getElementById(\"searchType\").innerHTML = \"Duck Duck Go search\";\n break;\n case \"di\":\n document.getElementById(\"searchType\").innerHTML = \"Discogs search\";\n break;\n case \"i\":\n document.getElementById(\"searchType\").innerHTML = \"IMDB search\";\n break;\n case \"m\":\n document.getElementById(\"searchType\").innerHTML = \"TheMovieDB search\";\n break;\n case \"r\":\n document.getElementById(\"searchType\").innerHTML = \"Reddit search\";\n break;\n case \"q\":\n document.getElementById(\"searchType\").innerHTML = \"Qwant search\";\n break;\n case \"so\":\n document.getElementById(\"searchType\").innerHTML = \"Soundcloud search\";\n break;\n case \"s\":\n document.getElementById(\"searchType\").innerHTML = \"Spotify search\";\n break;\n case \"tv\":\n document.getElementById(\"searchType\").innerHTML = \"TheTVDB search\";\n break;\n case \"t\":\n document.getElementById(\"searchType\").innerHTML = \"Trakt search\";\n break;\n case \"y\":\n document.getElementById(\"searchType\").innerHTML = \"YouTube search\";\n break;\n case \"w\":\n document.getElementById(\"searchType\").innerHTML = \"Wikipedia search\";\n break;\n case \"p\":\n document.getElementById(\"searchType\").innerHTML = \"Plex search\";\n break;\n case \"rt\":\n document.getElementById(\"searchType\").innerHTML = \"Rotten Tomatoes search\";\n break;\n default:\n document.getElementById(\"searchType\").innerHTML = \"Invalid search\";\n break;\n }\n}else {\n document.getElementById(\"searchType\").innerHTML = \"Google search\";\n }\n}\nfunction search(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n if (text[0] === '/') {\n if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n window.location = \"https://www.allmusic.com/search/all/\" + subtext;\n break;\n case \"d\":\n window.location = \"https://duckduckgo.com/?q=\" + subtext;\n break;\n case \"di\":\n window.location = \"https://www.discogs.com/search/?q=\" + subtext;\n break;\n case \"i\":\n window.location = \"https://www.imdb.com/find?q=\" + subtext;\n break;\n case \"m\":\n window.location = \"https://www.themoviedb.org/search?query=\" + subtext;\n break;\n case \"r\":\n window.location = \"https://www.reddit.com/search?q=\" + subtext;\n break;\n case \"q\":\n window.location = \"https://www.qwant.com/?q=\" + subtext;\n break;\n case \"so\":\n window.location = \"https://soundcloud.com/search?q=\" + subtext;\n break;\n case \"s\":\n window.location = \"https://open.spotify.com/search/results/\" + subtext;\n break;\n case \"t\":\n window.location = \"https://trakt.tv/search?query=\" + subtext;\n break;\n case \"tv\":\n window.location = \"https://www.thetvdb.com/search?query=\" + subtext;\n break;\n case \"y\":\n window.location = \"https://www.youtube.com/results?search_query=\" + subtext;\n break;\n case \"w\":\n window.location = \"https://en.wikipedia.org/w/index.php?search=\" + subtext;\n break;\n case \"p\":\n window.location = \"https://app.plex.tv/desktop/#!/search?query=\" + subtext;\n break;\n case \"rt\":\n window.location = \"https://www.rottentomatoes.com/search?search=\" + subtext;\n break;\n }\n } else {\n var option = text.substr(1);\n switch (option) {\n case \"d\":\n window.location = \"https://www.duckduckgo.com\";\n break;\n case \"y\":\n window.location = \"https://www.youtube.com\";\n break;\n case \"r\":\n window.location = \"https://reddit.com\";\n break;\n case \"s\":\n window.location = \"https://open.spotify.com\";\n break;\n }\n }\n } else if (validURL(text)) {\n if (containsProtocol(text))\n window.location = text;\n else\n window.location = \"https://\" + text;\n } else {\n window.location = \"https://www.google.com/search?q=\" + text;\n }\n}\nfunction validURL(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/)?' + // protocol\n '((([a-z\\\\d]([a-z\\\\d-]*[a-z\\\\d])*)\\\\.)+[a-z]{2,}|' + // domain name\n '((\\\\d{1,3}\\\\.){3}\\\\d{1,3}))' + // OR ip (v4) address\n '(\\\\:\\\\d+)?(\\\\/[-a-z\\\\d%_.~+]*)*' + // port and path\n '(\\\\?[;&a-z\\\\d%_.~+=-]*)?' + // query string\n '(\\\\#[-a-z\\\\d_]*)?$', 'i'); // fragment locator\n return !!pattern.test(str);\n}\nfunction containsProtocol(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/){1}.*', 'i');\n return !!pattern.test(str);\n}\nString.prototype.replaceAll = function(search, replacement) {\n var target = this;\n return target.split(search).join(replacement);\n};\nfunction udpateDisplayedItems(e) {\n console.log(e);\n localStorage.setItem('contenttype', e.target.checked);\n if (e.target.checked) {\n localStorage.setItem('content-display', 'none');\n } else {\n localStorage.setItem('content-display', 'block');\n }\n setDisplayedItems();\n}\nfunction setDisplayedItems() {\n setValueFromLocalStorage('contenttype');\n setValueFromLocalStorage('content-display');\n}"]},"metadata":{},"sourceType":"module"}
\ No newline at end of file
diff --git a/node_modules/.cache/babel-loader/f4994cc32569e1527c488dc9923a9e96.json b/node_modules/.cache/babel-loader/f4994cc32569e1527c488dc9923a9e96.json
new file mode 100644
index 00000000..daa8d2a0
--- /dev/null
+++ b/node_modules/.cache/babel-loader/f4994cc32569e1527c488dc9923a9e96.json
@@ -0,0 +1 @@
+{"ast":null,"code":"var _jsxFileName = \"/home/seanedmunds/dev/home-page/src/index.js\",\n _s = $RefreshSig$();\n\nimport React from 'react';\nimport { useState, useEffect } from 'react';\nimport ReactDOM from 'react-dom'; //import { unstable_createPortal } from 'react-dom';\n\nimport './index.css';\nimport { jsxDEV as _jsxDEV } from \"react/jsx-dev-runtime\";\n\nfunction Homepage() {\n return /*#__PURE__*/_jsxDEV(\"main\", {\n id: \"container\",\n className: \"fade\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Search, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 11,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 10,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Header, {\n date: date(),\n greet: greet()\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 14,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 13,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Applications, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 20,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 19,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Bookmarks, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 23,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 22,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(ModalMenu, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 26,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 25,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(ModalInit, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 29,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 28,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 9,\n columnNumber: 5\n }, this);\n}\n\n_c = Homepage;\n\nfunction Search() {\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"search\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"abackground\",\n children: [/*#__PURE__*/_jsxDEV(\"input\", {\n name: \"keywords\",\n type: \"text\",\n className: \"keyword\",\n id: \"keywords\",\n size: \"50\",\n spellCheck: \"true\",\n placeholder: \"\"\n /*onFocus={this.placeholder = \"\"} onBlur={this.placeholder = ''}*/\n ,\n autoComplete: \"off\",\n autoFocus: true,\n onKeyUp: handleKeyPress\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 39,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n id: \"searchType\",\n className: \"Input-label\",\n children: \"Google search\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 40,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 38,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 37,\n columnNumber: 5\n }, this);\n}\n\n_c2 = Search;\n\nfunction Header(props) {\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"header\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n id: \"greeting_block\",\n children: /*#__PURE__*/_jsxDEV(\"h1\", {\n id: \"header_greet\",\n children: props.greet\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 50,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 49,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"date_block\",\n children: [/*#__PURE__*/_jsxDEV(\"h2\", {\n id: \"header_date\",\n children: props.date\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 53,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(Clock, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 54,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 52,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 48,\n columnNumber: 5\n }, this);\n}\n\n_c3 = Header;\n\nfunction Applications() {\n let appList = getApps();\n var items = [];\n\n for (var i = 0; i < appList.apps.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(App, {\n name: appList.apps[i].name,\n url: appList.apps[i].url,\n icon: appList.apps[i].icon,\n NSFW: appList.apps[i].NSFW\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 65,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"apps\",\n children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n children: \"Applications\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 76,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"apps_loop\",\n children: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 77,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 75,\n columnNumber: 5\n }, this);\n}\n\n_c4 = Applications;\n\nfunction App(props) {\n let classNameType = props.NSFW + \"-content\";\n let hrefUrl = \"https://\" + props.url;\n let iconName = \"mdi-\" + props.icon;\n return /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: hrefUrl,\n className: classNameType,\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_item\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_icon\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify icon\",\n \"data-icon\": iconName\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 93,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 92,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_text\",\n children: [/*#__PURE__*/_jsxDEV(\"span\", {\n id: \"app-name\",\n children: props.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 96,\n columnNumber: 13\n }, this), /*#__PURE__*/_jsxDEV(\"span\", {\n id: \"app-address\",\n children: props.url\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 97,\n columnNumber: 13\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 95,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 91,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 90,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 89,\n columnNumber: 5\n }, this);\n}\n\n_c5 = App;\n\nfunction Bookmarks() {\n let bookmarkList = getLinks();\n var items = [];\n\n for (var i = 0; i < bookmarkList.bookmarks.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(LinkGroups, {\n category: bookmarkList.bookmarks[i].category,\n links: bookmarkList.bookmarks[i].links\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 110,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"links\",\n children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n children: \"Bookmarks\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 119,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"links_loop\",\n children: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 120,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 118,\n columnNumber: 5\n }, this);\n}\n\n_c6 = Bookmarks;\n\nfunction LinkGroups(props) {\n var items = [];\n\n for (var i = 0; i < props.links.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(LinkItem, {\n link: props.links[i]\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 131,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"links_item\",\n children: [/*#__PURE__*/_jsxDEV(\"h4\", {\n children: props.category\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 139,\n columnNumber: 7\n }, this), items]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 138,\n columnNumber: 5\n }, this);\n}\n\n_c7 = LinkGroups;\n\nfunction LinkItem(props) {\n return /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: props.link.url,\n className: \"theme_color-border theme_text-select\",\n children: props.link.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 148,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 147,\n columnNumber: 5\n }, this);\n}\n\n_c8 = LinkItem;\n\nfunction ModalMenu() {\n var providers = getProviders();\n var items = [];\n\n for (var i = 0; i < providers.providers.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(Provider, {\n provider: providers.providers[i]\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 158,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"modal\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n children: [/*#__PURE__*/_jsxDEV(\"header\", {\n id: \"modal-header\",\n children: [/*#__PURE__*/_jsxDEV(\"h1\", {\n children: \"Options\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 168,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n href: \"#\",\n title: \"Close\",\n className: \"modal-close\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-close\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 170,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 169,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 167,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"h2\", {\n children: \"Color themes\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 174,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"modal-theme\",\n children: [/*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"blackboard\",\n className: \"theme-button theme-blackboard\",\n onClick: updateTheme,\n children: \"Blackboard\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 177,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"gazette\",\n className: \"theme-button theme-gazette\",\n children: \"Gazette\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 178,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"espresso\",\n className: \"theme-button theme-espresso\",\n children: \"Espresso\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 179,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cab\",\n className: \"theme-button theme-cab\",\n children: \"Cab\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 180,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cloud\",\n className: \"theme-button theme-cloud\",\n children: \"Cloud\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 181,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"lime\",\n className: \"theme-button theme-lime\",\n children: \"Lime\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 182,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"passion\",\n className: \"theme-button theme-passion\",\n children: \"Passion\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 183,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"blues\",\n className: \"theme-button theme-blues\",\n children: \"Blues\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 184,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"chalk\",\n className: \"theme-button theme-chalk\",\n children: \"Chalk\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 185,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"tron\",\n className: \"theme-button theme-tron\",\n children: \"Tron\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 186,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"paper\",\n className: \"theme-button theme-paper\",\n children: \"Paper\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 187,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cyberpunk\",\n className: \"theme-button theme-cyberpunk\",\n children: \"Cyberpunk\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 188,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"quadra\",\n className: \"theme-button theme-panam\",\n children: \"Quadra\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 189,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"panam\",\n className: \"theme-button theme-panam\",\n children: \"Panam\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 190,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"touch\",\n className: \"theme-button theme-touch\",\n children: \"Touch\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 191,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"peek\",\n className: \"theme-button theme-peek\",\n children: \"Peek\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 192,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 176,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"h2\", {\n children: \"Search options\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 196,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"providers\",\n children: /*#__PURE__*/_jsxDEV(\"table\", {\n children: /*#__PURE__*/_jsxDEV(\"tbody\", {\n children: [/*#__PURE__*/_jsxDEV(\"tr\", {\n children: [/*#__PURE__*/_jsxDEV(\"th\", {\n children: \"Website\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 201,\n columnNumber: 19\n }, this), /*#__PURE__*/_jsxDEV(\"th\", {\n children: \"Prefix\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 202,\n columnNumber: 19\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 200,\n columnNumber: 17\n }, this), items]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 199,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 198,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 197,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"header\", {\n id: \"modal-footer\",\n children: [/*#__PURE__*/_jsxDEV(\"a\", {\n href: \"https://github.com/jeroenpardon/\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-github-box\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 210,\n columnNumber: 54\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 210,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n href: \"https://materialdesignicons.com/\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-material-design\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 211,\n columnNumber: 54\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 211,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"sneaky\",\n children: [/*#__PURE__*/_jsxDEV(\"input\", {\n type: \"checkbox\",\n id: \"contenttype\",\n onChange: \"nsfw(this)\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 212,\n columnNumber: 35\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n for: \"contenttype\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-domino-mask\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 213,\n columnNumber: 36\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 213,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 212,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 209,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 166,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 165,\n columnNumber: 5\n }, this);\n}\n\n_c9 = ModalMenu;\n\nfunction Provider(props) {\n return /*#__PURE__*/_jsxDEV(\"tr\", {\n children: [/*#__PURE__*/_jsxDEV(\"td\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: props.provider.url,\n children: props.provider.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 223,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 223,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"td\", {\n children: props.provider.prefix\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 224,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 222,\n columnNumber: 5\n }, this);\n}\n\n_c10 = Provider;\n\nfunction ModalInit() {\n return /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"modal_init\",\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n className: \"btn\",\n href: \"#modal\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify icon\",\n \"data-icon\": \"mdi-xbox-controller-menu\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 233,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 232,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 231,\n columnNumber: 5\n }, this);\n}\n\n_c11 = ModalInit;\nReactDOM.render( /*#__PURE__*/_jsxDEV(Homepage, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 240,\n columnNumber: 3\n}, this), document.getElementById('root')); //Functions below this line are for calculating data for\n//other functions\n\nfunction date() {\n let currentDate = new Date();\n let dateOptions = {\n weekday: \"long\",\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\"\n };\n let date = currentDate.toLocaleDateString(\"en-GB\", dateOptions);\n return date;\n}\n\nfunction fixDigits(k) {\n if (k < 10) {\n return \"0\" + k;\n } else {\n return k;\n }\n}\n\nfunction greet() {\n let currentTime = new Date();\n let greet = Math.floor(currentTime.getHours() / 6);\n let easterEggChance = Math.floor(Math.random() * 100);\n\n let greetings = require('./messages.json');\n\n let timeBased = [];\n let easterEggs = [];\n\n for (var i = 0; i < greetings.messages.length; i++) {\n if (greetings.messages[i].easteregg === \"FALSE\") {\n timeBased = timeBased.concat(greetings.messages[i]);\n } else {\n easterEggs = easterEggs.concat(greetings.messages[i]);\n }\n }\n\n if (easterEggChance > 10) {\n return timeBased[greet].message;\n } else {\n let easterEggText = Math.floor(Math.random() * easterEggs.length);\n return easterEggs[easterEggText].message;\n }\n}\n\nfunction Clock() {\n _s();\n\n const [date, setDate] = useState(new Date());\n\n function refreshClock() {\n setDate(new Date());\n }\n\n useEffect(() => {\n const timerId = setInterval(refreshClock, 1000);\n return function cleanup() {\n clearInterval(timerId);\n };\n }, []);\n var hour = date.getHours();\n var minutes = date.getMinutes(); //var seconds = date.getSeconds();\n\n var midday = \"AM\";\n midday = hour >= 12 ? \"PM\" : \"AM\";\n hour = hour === 0 ? 12 : hour > 12 ? hour - 12 : hour;\n minutes = fixDigits(minutes); //seconds = fixDigits(seconds);\n\n let time = hour + \":\" + minutes + \" \" + midday;\n return /*#__PURE__*/_jsxDEV(\"h2\", {\n id: \"clock\",\n children: time\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 311,\n columnNumber: 5\n }, this);\n}\n\n_s(Clock, \"Gqi45WOZhU2c0BLYX0HoJeiR0fk=\");\n\n_c12 = Clock;\n\nfunction getApps() {\n let applications = require('./apps.json');\n\n return applications;\n}\n\nfunction getLinks() {\n let links = require('./links.json');\n\n return links;\n}\n\nfunction getProviders() {\n let providers = require('./providers.json');\n\n return providers;\n}\n\nfunction getThemes() {\n let themes = require('./themes.json');\n\n return themes;\n}\n\nfunction updateTheme(e) {\n var themes = getThemes();\n var themeName = e.target.innerHTML.toLowerCase();\n var index = themes.themes.findIndex(function (item, i) {\n return item.name === themeName;\n });\n console.log(themes.themes[index]);\n localStorage.setItem(\"image-background\", themes.themes[index].imagebackground);\n localStorage.setItem(\"color-background\", themes.themes[index].colorbackground);\n localStorage.setItem(\"color-search-background\", themes.themes[index].colorserachbackground);\n localStorage.setItem(\"color-text-pri\", themes.themes[index].colortextpri);\n localStorage.setItem(\"color-text-acc\", themes.themes[index].colortextacc);\n localStorage.setItem(\"color-border\", themes.themes[index].colorborder);\n\n const setValueFromLocalStorage = property => {\n let value = localStorage.getItem(property);\n setValue(property, value);\n };\n\n const setValue = (property, value) => {\n if (value) {\n document.documentElement.style.setProperty(`--${property}`, value);\n const input = document.querySelector(`#${property}`);\n\n if (input) {\n value = value.replace('px', '');\n input.value = value;\n }\n }\n };\n\n setValueFromLocalStorage('image-background');\n setValueFromLocalStorage('color-background');\n setValueFromLocalStorage('color-search-background');\n setValueFromLocalStorage('color-text-pri');\n setValueFromLocalStorage('color-text-acc');\n setValueFromLocalStorage('color-border');\n setValueFromLocalStorage('content-display');\n}\n\nfunction handleKeyPress(e) {\n var sindex = 0;\n var cycle = false;\n var key = e.keyCode || e.which;\n var text = e.target.value.replaceAll(\"+\", \"%2B\");\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n\n if (key == 13) {\n // Search functions\n search(text);\n }\n\n if (key == 9) {\n // Tab Completion Functions\n e.preventDefault();\n e.stopPropagation();\n\n if (text[0] === ';') {\n switch (option) {\n case 't':\n var streamers = ['admiralbahroo', 'moonmoon_ow', 'witwix'];\n\n if (!subtext || cycle) {\n cycle = true;\n if (sindex > streamers.length - 1) sindex = 0;\n document.getElementById(\"keywords\").value = ';t ' + streamers[sindex++];\n return;\n }\n\n for (var streamer of streamers) {\n if (subtext === streamer.substr(0, subtext.length)) {\n document.getElementById(\"keywords\").value = ';t ' + streamer;\n return;\n }\n }\n\n break;\n }\n }\n }\n\n if (key == 32) {\n //Space to go to search\n updateLabel(text);\n }\n\n sindex = 0;\n cycle = false;\n updateLabel(text);\n}\n\nfunction updateLabel(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n\n if (text[0] === '/') {\n // if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n document.getElementById(\"searchType\").innerHTML = \"Allmusic search\";\n break;\n\n case \"d\":\n document.getElementById(\"searchType\").innerHTML = \"Duck Duck Go search\";\n break;\n\n case \"di\":\n document.getElementById(\"searchType\").innerHTML = \"Discogs search\";\n break;\n\n case \"i\":\n document.getElementById(\"searchType\").innerHTML = \"IMDB search\";\n break;\n\n case \"m\":\n document.getElementById(\"searchType\").innerHTML = \"TheMovieDB search\";\n break;\n\n case \"r\":\n document.getElementById(\"searchType\").innerHTML = \"Reddit search\";\n break;\n\n case \"q\":\n document.getElementById(\"searchType\").innerHTML = \"Qwant search\";\n break;\n\n case \"so\":\n document.getElementById(\"searchType\").innerHTML = \"Soundcloud search\";\n break;\n\n case \"s\":\n document.getElementById(\"searchType\").innerHTML = \"Spotify search\";\n break;\n\n case \"tv\":\n document.getElementById(\"searchType\").innerHTML = \"TheTVDB search\";\n break;\n\n case \"t\":\n document.getElementById(\"searchType\").innerHTML = \"Trakt search\";\n break;\n\n case \"y\":\n document.getElementById(\"searchType\").innerHTML = \"YouTube search\";\n break;\n\n case \"w\":\n document.getElementById(\"searchType\").innerHTML = \"Wikipedia search\";\n break;\n\n case \"p\":\n document.getElementById(\"searchType\").innerHTML = \"Plex search\";\n break;\n\n case \"rt\":\n document.getElementById(\"searchType\").innerHTML = \"Rotten Tomatoes search\";\n break;\n\n default:\n document.getElementById(\"searchType\").innerHTML = \"Invalid search\";\n break;\n }\n } else {\n document.getElementById(\"searchType\").innerHTML = \"Google search\";\n }\n}\n\nfunction search(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n\n if (text[0] === '/') {\n if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n window.location = \"https://www.allmusic.com/search/all/\" + subtext;\n break;\n\n case \"d\":\n window.location = \"https://duckduckgo.com/?q=\" + subtext;\n break;\n\n case \"di\":\n window.location = \"https://www.discogs.com/search/?q=\" + subtext;\n break;\n\n case \"i\":\n window.location = \"https://www.imdb.com/find?q=\" + subtext;\n break;\n\n case \"m\":\n window.location = \"https://www.themoviedb.org/search?query=\" + subtext;\n break;\n\n case \"r\":\n window.location = \"https://www.reddit.com/search?q=\" + subtext;\n break;\n\n case \"q\":\n window.location = \"https://www.qwant.com/?q=\" + subtext;\n break;\n\n case \"so\":\n window.location = \"https://soundcloud.com/search?q=\" + subtext;\n break;\n\n case \"s\":\n window.location = \"https://open.spotify.com/search/results/\" + subtext;\n break;\n\n case \"t\":\n window.location = \"https://trakt.tv/search?query=\" + subtext;\n break;\n\n case \"tv\":\n window.location = \"https://www.thetvdb.com/search?query=\" + subtext;\n break;\n\n case \"y\":\n window.location = \"https://www.youtube.com/results?search_query=\" + subtext;\n break;\n\n case \"w\":\n window.location = \"https://en.wikipedia.org/w/index.php?search=\" + subtext;\n break;\n\n case \"p\":\n window.location = \"https://app.plex.tv/desktop/#!/search?query=\" + subtext;\n break;\n\n case \"rt\":\n window.location = \"https://www.rottentomatoes.com/search?search=\" + subtext;\n break;\n }\n } else {\n var option = text.substr(1);\n\n switch (option) {\n case \"d\":\n window.location = \"https://www.duckduckgo.com\";\n break;\n\n case \"y\":\n window.location = \"https://www.youtube.com\";\n break;\n\n case \"r\":\n window.location = \"https://reddit.com\";\n break;\n\n case \"s\":\n window.location = \"https://open.spotify.com\";\n break;\n }\n }\n } else if (validURL(text)) {\n if (containsProtocol(text)) window.location = text;else window.location = \"https://\" + text;\n } else {\n window.location = \"https://www.google.com/search?q=\" + text;\n }\n} // Source: https://stackoverflow.com/questions/5717093/check-if-a-javascript-string-is-a-url\n\n\nfunction validURL(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/)?' + // protocol\n '((([a-z\\\\d]([a-z\\\\d-]*[a-z\\\\d])*)\\\\.)+[a-z]{2,}|' + // domain name\n '((\\\\d{1,3}\\\\.){3}\\\\d{1,3}))' + // OR ip (v4) address\n '(\\\\:\\\\d+)?(\\\\/[-a-z\\\\d%_.~+]*)*' + // port and path\n '(\\\\?[;&a-z\\\\d%_.~+=-]*)?' + // query string\n '(\\\\#[-a-z\\\\d_]*)?$', 'i'); // fragment locator\n\n return !!pattern.test(str);\n}\n\nfunction containsProtocol(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/){1}.*', 'i');\n return !!pattern.test(str);\n}\n\nString.prototype.replaceAll = function (search, replacement) {\n var target = this;\n return target.split(search).join(replacement);\n};\n\nvar _c, _c2, _c3, _c4, _c5, _c6, _c7, _c8, _c9, _c10, _c11, _c12;\n\n$RefreshReg$(_c, \"Homepage\");\n$RefreshReg$(_c2, \"Search\");\n$RefreshReg$(_c3, \"Header\");\n$RefreshReg$(_c4, \"Applications\");\n$RefreshReg$(_c5, \"App\");\n$RefreshReg$(_c6, \"Bookmarks\");\n$RefreshReg$(_c7, \"LinkGroups\");\n$RefreshReg$(_c8, \"LinkItem\");\n$RefreshReg$(_c9, \"ModalMenu\");\n$RefreshReg$(_c10, \"Provider\");\n$RefreshReg$(_c11, \"ModalInit\");\n$RefreshReg$(_c12, \"Clock\");","map":{"version":3,"sources":["/home/seanedmunds/dev/home-page/src/index.js"],"names":["React","useState","useEffect","ReactDOM","Homepage","date","greet","Search","handleKeyPress","Header","props","Applications","appList","getApps","items","i","apps","length","push","name","url","icon","NSFW","App","classNameType","hrefUrl","iconName","Bookmarks","bookmarkList","getLinks","bookmarks","category","links","LinkGroups","LinkItem","link","ModalMenu","providers","getProviders","updateTheme","Provider","provider","prefix","ModalInit","render","document","getElementById","currentDate","Date","dateOptions","weekday","year","month","day","toLocaleDateString","fixDigits","k","currentTime","Math","floor","getHours","easterEggChance","random","greetings","require","timeBased","easterEggs","messages","easteregg","concat","message","easterEggText","Clock","setDate","refreshClock","timerId","setInterval","cleanup","clearInterval","hour","minutes","getMinutes","midday","time","applications","getThemes","themes","e","themeName","target","innerHTML","toLowerCase","index","findIndex","item","console","log","localStorage","setItem","imagebackground","colorbackground","colorserachbackground","colortextpri","colortextacc","colorborder","setValueFromLocalStorage","property","value","getItem","setValue","documentElement","style","setProperty","input","querySelector","replace","sindex","cycle","key","keyCode","which","text","replaceAll","option","substr","indexOf","subtext","search","preventDefault","stopPropagation","streamers","streamer","updateLabel","window","location","validURL","containsProtocol","str","pattern","RegExp","test","String","prototype","replacement","split","join"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { useState, useEffect } from 'react';\nimport ReactDOM from 'react-dom';\n//import { unstable_createPortal } from 'react-dom';\nimport './index.css';\n\nfunction Homepage() {\n return (\n \n \n \n
\n \n \n
\n \n \n \n
\n \n \n
\n \n \n
\n \n );\n}\n\nfunction Search() {\n return (\n \n )\n}\n\nfunction Header(props) {\n return (\n \n );\n}\n\nfunction Applications() {\n let appList = getApps();\n var items = [];\n for (var i = 0; i < appList.apps.length; i++) {\n items.push(\n \n );\n }\n return (\n \n Applications
\n \n {items}\n
\n \n );\n}\n\nfunction App(props) {\n let classNameType = props.NSFW + \"-content\";\n let hrefUrl = \"https://\" + props.url;\n let iconName = \"mdi-\" + props.icon;\n return (\n \n );\n}\n\nfunction Bookmarks() {\n let bookmarkList = getLinks();\n var items = [];\n for (var i = 0; i < bookmarkList.bookmarks.length; i++) {\n items.push(\n \n );\n }\n return (\n \n Bookmarks
\n \n {items}\n
\n \n );\n}\n\nfunction LinkGroups(props) {\n var items = [];\n for (var i = 0; i < props.links.length; i++) {\n items.push(\n \n );\n }\n return (\n \n
{props.category}
\n {items}\n \n );\n}\n\nfunction LinkItem(props) {\n return (\n \n );\n}\n\nfunction ModalMenu() {\n var providers = getProviders();\n var items = [];\n for (var i = 0; i < providers.providers.length; i++) {\n items.push(\n \n );\n }\n return (\n \n \n \n\n
Color themes
\n\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n\n\n
Search options
\n
\n \n \n \n | Website | \n Prefix | \n
\n {items}\n \n
\n \n\n \n
\n \n );\n}\n\nfunction Provider(props) {\n return (\n \n | {props.provider.name} | \n {props.provider.prefix} | \n
\n );\n}\n\nfunction ModalInit() {\n return (\n \n );\n}\n\nReactDOM.render(\n ,\n document.getElementById('root')\n);\n\n//Functions below this line are for calculating data for\n//other functions\n\nfunction date() {\n let currentDate = new Date();\n let dateOptions = {\n weekday: \"long\",\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\"\n };\n let date = currentDate.toLocaleDateString(\"en-GB\", dateOptions);\n return date;\n}\nfunction fixDigits(k) {\n if (k < 10) {\n return \"0\" + k;\n }\n else {\n return k;\n }\n}\nfunction greet() {\n let currentTime = new Date();\n let greet = Math.floor(currentTime.getHours() / 6);\n let easterEggChance = Math.floor(Math.random() * 100);\n let greetings = require('./messages.json');\n let timeBased = [];\n let easterEggs = [];\n for (var i = 0; i < greetings.messages.length; i++) {\n if (greetings.messages[i].easteregg === \"FALSE\") {\n timeBased = timeBased.concat(greetings.messages[i]);\n } else {\n easterEggs = easterEggs.concat(greetings.messages[i]);\n }\n }\n if (easterEggChance > 10) {\n return timeBased[greet].message;\n } else {\n let easterEggText = Math.floor(Math.random() * easterEggs.length);\n return easterEggs[easterEggText].message;\n }\n}\nfunction Clock() {\n const [date, setDate] = useState(new Date());\n\n function refreshClock() {\n setDate(new Date());\n }\n useEffect(() => {\n const timerId = setInterval(refreshClock, 1000);\n return function cleanup() {\n clearInterval(timerId);\n };\n }, []);\n\n var hour = date.getHours();\n var minutes = date.getMinutes();\n //var seconds = date.getSeconds();\n var midday = \"AM\";\n midday = (hour >= 12) ? \"PM\" : \"AM\";\n hour = (hour === 0) ? 12 : ((hour > 12) ? (hour - 12) : hour);\n minutes = fixDigits(minutes);\n //seconds = fixDigits(seconds);\n let time = hour + \":\" + minutes + \" \" + midday;\n\n return (\n {time}
\n\n );\n}\nfunction getApps() {\n let applications = require('./apps.json');\n return applications;\n}\nfunction getLinks() {\n let links = require('./links.json');\n return links;\n}\nfunction getProviders() {\n let providers = require('./providers.json');\n return providers;\n}\nfunction getThemes() {\n let themes = require('./themes.json');\n return themes;\n}\n\nfunction updateTheme(e) {\n var themes = getThemes();\n var themeName = e.target.innerHTML.toLowerCase();\n var index = themes.themes.findIndex(function(item, i){\n return item.name === themeName\n });\n console.log(themes.themes[index]);\n localStorage.setItem(\"image-background\", themes.themes[index].imagebackground);\n localStorage.setItem(\"color-background\", themes.themes[index].colorbackground);\n localStorage.setItem(\"color-search-background\", themes.themes[index].colorserachbackground);\n localStorage.setItem(\"color-text-pri\",themes.themes[index].colortextpri);\n localStorage.setItem(\"color-text-acc\", themes.themes[index].colortextacc);\n localStorage.setItem(\"color-border\", themes.themes[index].colorborder);\n\n const setValueFromLocalStorage = property => {\n let value = localStorage.getItem(property);\n setValue(property, value);\n };\n\n const setValue = (property, value) => {\n if (value) {\n document.documentElement.style.setProperty(`--${property}`, value);\n\n const input = document.querySelector(`#${property}`);\n if (input) {\n value = value.replace('px', '');\n input.value = value;\n }\n }\n };\n\n setValueFromLocalStorage('image-background');\n setValueFromLocalStorage('color-background');\n setValueFromLocalStorage('color-search-background');\n setValueFromLocalStorage('color-text-pri');\n setValueFromLocalStorage('color-text-acc');\n setValueFromLocalStorage('color-border');\n setValueFromLocalStorage('content-display');\n}\n\nfunction handleKeyPress(e) {\n var sindex = 0;\n var cycle = false;\n var key = e.keyCode || e.which;\n var text = e.target.value.replaceAll(\"+\", \"%2B\");\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n if (key == 13) { // Search functions\n search(text);\n }\n if (key == 9) { // Tab Completion Functions\n e.preventDefault();\n e.stopPropagation();\n if (text[0] === ';') {\n switch (option) {\n case 't':\n var streamers = ['admiralbahroo', 'moonmoon_ow', 'witwix'];\n if (!subtext || cycle) {\n cycle = true;\n if (sindex > streamers.length - 1) sindex = 0;\n document.getElementById(\"keywords\").value = ';t ' + streamers[sindex++];\n return;\n }\n for (var streamer of streamers) {\n if (subtext === streamer.substr(0, subtext.length)) {\n document.getElementById(\"keywords\").value = ';t ' + streamer;\n return;\n }\n }\n break;\n }\n }\n }\n if(key == 32){ //Space to go to search\nupdateLabel(text);\n }\n sindex = 0;\n cycle = false;\n updateLabel(text);\n}\n\nfunction updateLabel(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n if (text[0] === '/') {\n// if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n document.getElementById(\"searchType\").innerHTML = \"Allmusic search\";\n break;\n case \"d\":\n document.getElementById(\"searchType\").innerHTML = \"Duck Duck Go search\";\n break;\n case \"di\":\n document.getElementById(\"searchType\").innerHTML = \"Discogs search\";\n break;\n case \"i\":\n document.getElementById(\"searchType\").innerHTML = \"IMDB search\";\n break;\n case \"m\":\n document.getElementById(\"searchType\").innerHTML = \"TheMovieDB search\";\n break;\n case \"r\":\n document.getElementById(\"searchType\").innerHTML = \"Reddit search\";\n break;\n case \"q\":\n document.getElementById(\"searchType\").innerHTML = \"Qwant search\";\n break;\n case \"so\":\n document.getElementById(\"searchType\").innerHTML = \"Soundcloud search\";\n break;\n case \"s\":\n document.getElementById(\"searchType\").innerHTML = \"Spotify search\";\n break;\n case \"tv\":\n document.getElementById(\"searchType\").innerHTML = \"TheTVDB search\";\n break;\n case \"t\":\n document.getElementById(\"searchType\").innerHTML = \"Trakt search\";\n break;\n case \"y\":\n document.getElementById(\"searchType\").innerHTML = \"YouTube search\";\n break;\n case \"w\":\n document.getElementById(\"searchType\").innerHTML = \"Wikipedia search\";\n break;\n case \"p\":\n document.getElementById(\"searchType\").innerHTML = \"Plex search\";\n break;\n case \"rt\":\n document.getElementById(\"searchType\").innerHTML = \"Rotten Tomatoes search\";\n break;\n default:\n document.getElementById(\"searchType\").innerHTML = \"Invalid search\";\n break;\n }\n}else {\n document.getElementById(\"searchType\").innerHTML = \"Google search\";\n }\n}\n\nfunction search(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n if (text[0] === '/') {\n if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n window.location = \"https://www.allmusic.com/search/all/\" + subtext;\n break;\n case \"d\":\n window.location = \"https://duckduckgo.com/?q=\" + subtext;\n break;\n case \"di\":\n window.location = \"https://www.discogs.com/search/?q=\" + subtext;\n break;\n case \"i\":\n window.location = \"https://www.imdb.com/find?q=\" + subtext;\n break;\n case \"m\":\n window.location = \"https://www.themoviedb.org/search?query=\" + subtext;\n break;\n case \"r\":\n window.location = \"https://www.reddit.com/search?q=\" + subtext;\n break;\n case \"q\":\n window.location = \"https://www.qwant.com/?q=\" + subtext;\n break;\n case \"so\":\n window.location = \"https://soundcloud.com/search?q=\" + subtext;\n break;\n case \"s\":\n window.location = \"https://open.spotify.com/search/results/\" + subtext;\n break;\n case \"t\":\n window.location = \"https://trakt.tv/search?query=\" + subtext;\n break;\n case \"tv\":\n window.location = \"https://www.thetvdb.com/search?query=\" + subtext;\n break;\n case \"y\":\n window.location = \"https://www.youtube.com/results?search_query=\" + subtext;\n break;\n case \"w\":\n window.location = \"https://en.wikipedia.org/w/index.php?search=\" + subtext;\n break;\n case \"p\":\n window.location = \"https://app.plex.tv/desktop/#!/search?query=\" + subtext;\n break;\n case \"rt\":\n window.location = \"https://www.rottentomatoes.com/search?search=\" + subtext;\n break;\n }\n } else {\n var option = text.substr(1);\n switch (option) {\n case \"d\":\n window.location = \"https://www.duckduckgo.com\";\n break;\n case \"y\":\n window.location = \"https://www.youtube.com\";\n break;\n case \"r\":\n window.location = \"https://reddit.com\";\n break;\n case \"s\":\n window.location = \"https://open.spotify.com\";\n break;\n }\n }\n } else if (validURL(text)) {\n if (containsProtocol(text))\n window.location = text;\n else\n window.location = \"https://\" + text;\n } else {\n window.location = \"https://www.google.com/search?q=\" + text;\n }\n}\n\n// Source: https://stackoverflow.com/questions/5717093/check-if-a-javascript-string-is-a-url\nfunction validURL(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/)?' + // protocol\n '((([a-z\\\\d]([a-z\\\\d-]*[a-z\\\\d])*)\\\\.)+[a-z]{2,}|' + // domain name\n '((\\\\d{1,3}\\\\.){3}\\\\d{1,3}))' + // OR ip (v4) address\n '(\\\\:\\\\d+)?(\\\\/[-a-z\\\\d%_.~+]*)*' + // port and path\n '(\\\\?[;&a-z\\\\d%_.~+=-]*)?' + // query string\n '(\\\\#[-a-z\\\\d_]*)?$', 'i'); // fragment locator\n return !!pattern.test(str);\n}\n\nfunction containsProtocol(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/){1}.*', 'i');\n return !!pattern.test(str);\n}\n\nString.prototype.replaceAll = function(search, replacement) {\n var target = this;\n return target.split(search).join(replacement);\n};"]},"metadata":{},"sourceType":"module"}
\ No newline at end of file
diff --git a/node_modules/.cache/babel-loader/f5a4d4f83b251297933245fa15751d18.json b/node_modules/.cache/babel-loader/f5a4d4f83b251297933245fa15751d18.json
new file mode 100644
index 00000000..5fc453d8
--- /dev/null
+++ b/node_modules/.cache/babel-loader/f5a4d4f83b251297933245fa15751d18.json
@@ -0,0 +1 @@
+{"ast":null,"code":"var _jsxFileName = \"/home/seanedmunds/dev/home-page/src/index.js\",\n _s = $RefreshSig$();\n\nimport React from 'react';\nimport { useState, useEffect } from 'react';\nimport ReactDOM from 'react-dom'; //import { unstable_createPortal } from 'react-dom';\n\nimport './index.css';\nimport { jsxDEV as _jsxDEV } from \"react/jsx-dev-runtime\";\n\nfunction Homepage() {\n return /*#__PURE__*/_jsxDEV(\"main\", {\n id: \"container\",\n className: \"fade\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Search, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 11,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 10,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Header, {\n date: date(),\n greet: greet()\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 14,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 13,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Applications, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 20,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 19,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Bookmarks, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 23,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 22,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(ModalMenu, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 26,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 25,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(ModalInit, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 29,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 28,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 9,\n columnNumber: 5\n }, this);\n}\n\n_c = Homepage;\n\nfunction Search() {\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"search\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"abackground\",\n children: [/*#__PURE__*/_jsxDEV(\"input\", {\n name: \"keywords\",\n type: \"text\",\n className: \"keyword\",\n id: \"keywords\",\n size: \"50\",\n spellCheck: \"true\",\n placeholder: \"\"\n /*onFocus={this.placeholder = \"\"} onBlur={this.placeholder = ''}*/\n ,\n autoComplete: \"off\",\n autoFocus: true,\n onKeyUp: handleKeyPress\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 39,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n id: \"searchType\",\n className: \"Input-label\",\n children: \"Google search\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 40,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 38,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 37,\n columnNumber: 5\n }, this);\n}\n\n_c2 = Search;\n\nfunction Header(props) {\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"header\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n id: \"greeting_block\",\n children: /*#__PURE__*/_jsxDEV(\"h1\", {\n id: \"header_greet\",\n children: props.greet\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 50,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 49,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"date_block\",\n children: [/*#__PURE__*/_jsxDEV(\"h2\", {\n id: \"header_date\",\n children: props.date\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 53,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(Clock, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 54,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 52,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 48,\n columnNumber: 5\n }, this);\n}\n\n_c3 = Header;\n\nfunction Applications() {\n let appList = getApps();\n var items = [];\n\n for (var i = 0; i < appList.apps.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(App, {\n name: appList.apps[i].name,\n url: appList.apps[i].url,\n icon: appList.apps[i].icon,\n NSFW: appList.apps[i].NSFW\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 65,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"apps\",\n children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n children: \"Applications\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 76,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"apps_loop\",\n children: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 77,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 75,\n columnNumber: 5\n }, this);\n}\n\n_c4 = Applications;\n\nfunction App(props) {\n let classNameType = props.NSFW + \"-content\";\n let hrefUrl = \"https://\" + props.url;\n let iconName = \"mdi-\" + props.icon;\n return /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: hrefUrl,\n className: classNameType,\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_item\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_icon\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify icon\",\n \"data-icon\": iconName\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 93,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 92,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_text\",\n children: [/*#__PURE__*/_jsxDEV(\"span\", {\n id: \"app-name\",\n children: props.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 96,\n columnNumber: 13\n }, this), /*#__PURE__*/_jsxDEV(\"span\", {\n id: \"app-address\",\n children: props.url\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 97,\n columnNumber: 13\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 95,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 91,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 90,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 89,\n columnNumber: 5\n }, this);\n}\n\n_c5 = App;\n\nfunction Bookmarks() {\n let bookmarkList = getLinks();\n var items = [];\n\n for (var i = 0; i < bookmarkList.bookmarks.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(LinkGroups, {\n category: bookmarkList.bookmarks[i].category,\n links: bookmarkList.bookmarks[i].links\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 110,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"links\",\n children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n children: \"Bookmarks\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 119,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"links_loop\",\n children: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 120,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 118,\n columnNumber: 5\n }, this);\n}\n\n_c6 = Bookmarks;\n\nfunction LinkGroups(props) {\n var items = [];\n\n for (var i = 0; i < props.links.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(LinkItem, {\n link: props.links[i]\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 131,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"links_item\",\n children: [/*#__PURE__*/_jsxDEV(\"h4\", {\n children: props.category\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 139,\n columnNumber: 7\n }, this), items]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 138,\n columnNumber: 5\n }, this);\n}\n\n_c7 = LinkGroups;\n\nfunction LinkItem(props) {\n return /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: props.link.url,\n className: \"theme_color-border theme_text-select\",\n children: props.link.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 148,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 147,\n columnNumber: 5\n }, this);\n}\n\n_c8 = LinkItem;\n\nfunction ModalMenu() {\n var providers = getProviders();\n var items = [];\n\n for (var i = 0; i < providers.providers.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(Provider, {\n provider: providers.providers[i]\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 158,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"modal\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n children: [/*#__PURE__*/_jsxDEV(\"header\", {\n id: \"modal-header\",\n children: [/*#__PURE__*/_jsxDEV(\"h1\", {\n children: \"Options\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 168,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n href: \"#\",\n title: \"Close\",\n className: \"modal-close\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-close\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 170,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 169,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 167,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"h2\", {\n children: \"Color themes\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 174,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"modal-theme\",\n children: [/*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"blackboard\",\n className: \"theme-button theme-blackboard\",\n onClick: updateTheme,\n children: \"Blackboard\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 177,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"gazette\",\n className: \"theme-button theme-gazette\",\n children: \"Gazette\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 178,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"espresso\",\n className: \"theme-button theme-espresso\",\n children: \"Espresso\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 179,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cab\",\n className: \"theme-button theme-cab\",\n children: \"Cab\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 180,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cloud\",\n className: \"theme-button theme-cloud\",\n children: \"Cloud\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 181,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"lime\",\n className: \"theme-button theme-lime\",\n children: \"Lime\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 182,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"passion\",\n className: \"theme-button theme-passion\",\n children: \"Passion\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 183,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"blues\",\n className: \"theme-button theme-blues\",\n children: \"Blues\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 184,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"chalk\",\n className: \"theme-button theme-chalk\",\n children: \"Chalk\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 185,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"tron\",\n className: \"theme-button theme-tron\",\n children: \"Tron\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 186,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"paper\",\n className: \"theme-button theme-paper\",\n children: \"Paper\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 187,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cyberpunk\",\n className: \"theme-button theme-cyberpunk\",\n children: \"Cyberpunk\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 188,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"quadra\",\n className: \"theme-button theme-panam\",\n children: \"Quadra\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 189,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"panam\",\n className: \"theme-button theme-panam\",\n children: \"Panam\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 190,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"touch\",\n className: \"theme-button theme-touch\",\n children: \"Touch\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 191,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"peek\",\n className: \"theme-button theme-peek\",\n children: \"Peek\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 192,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 176,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"h2\", {\n children: \"Search options\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 196,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"providers\",\n children: /*#__PURE__*/_jsxDEV(\"table\", {\n children: /*#__PURE__*/_jsxDEV(\"tbody\", {\n children: [/*#__PURE__*/_jsxDEV(\"tr\", {\n children: [/*#__PURE__*/_jsxDEV(\"th\", {\n children: \"Website\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 201,\n columnNumber: 19\n }, this), /*#__PURE__*/_jsxDEV(\"th\", {\n children: \"Prefix\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 202,\n columnNumber: 19\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 200,\n columnNumber: 17\n }, this), items]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 199,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 198,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 197,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"header\", {\n id: \"modal-footer\",\n children: [/*#__PURE__*/_jsxDEV(\"a\", {\n href: \"https://github.com/jeroenpardon/\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-github-box\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 210,\n columnNumber: 54\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 210,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n href: \"https://materialdesignicons.com/\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-material-design\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 211,\n columnNumber: 54\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 211,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"sneaky\",\n children: [/*#__PURE__*/_jsxDEV(\"input\", {\n type: \"checkbox\",\n id: \"contenttype\",\n onChange: \"nsfw(this)\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 212,\n columnNumber: 35\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n for: \"contenttype\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-domino-mask\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 213,\n columnNumber: 36\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 213,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 212,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 209,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 166,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 165,\n columnNumber: 5\n }, this);\n}\n\n_c9 = ModalMenu;\n\nfunction Provider(props) {\n return /*#__PURE__*/_jsxDEV(\"tr\", {\n children: [/*#__PURE__*/_jsxDEV(\"td\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: props.provider.url,\n children: props.provider.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 223,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 223,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"td\", {\n children: props.provider.prefix\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 224,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 222,\n columnNumber: 5\n }, this);\n}\n\n_c10 = Provider;\n\nfunction ModalInit() {\n return /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"modal_init\",\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n className: \"btn\",\n href: \"#modal\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify icon\",\n \"data-icon\": \"mdi-xbox-controller-menu\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 233,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 232,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 231,\n columnNumber: 5\n }, this);\n}\n\n_c11 = ModalInit;\nReactDOM.render( /*#__PURE__*/_jsxDEV(Homepage, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 240,\n columnNumber: 3\n}, this), document.getElementById('root')); //Functions below this line are for calculating data for\n//other functions\n\nfunction date() {\n let currentDate = new Date();\n let dateOptions = {\n weekday: \"long\",\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\"\n };\n let date = currentDate.toLocaleDateString(\"en-GB\", dateOptions);\n return date;\n}\n\nfunction fixDigits(k) {\n if (k < 10) {\n return \"0\" + k;\n } else {\n return k;\n }\n}\n\nfunction greet() {\n let currentTime = new Date();\n let greet = Math.floor(currentTime.getHours() / 6);\n let easterEggChance = Math.floor(Math.random() * 100);\n\n let greetings = require('./messages.json');\n\n let timeBased = [];\n let easterEggs = [];\n\n for (var i = 0; i < greetings.messages.length; i++) {\n if (greetings.messages[i].easteregg === \"FALSE\") {\n timeBased = timeBased.concat(greetings.messages[i]);\n } else {\n easterEggs = easterEggs.concat(greetings.messages[i]);\n }\n }\n\n if (easterEggChance > 10) {\n return timeBased[greet].message;\n } else {\n let easterEggText = Math.floor(Math.random() * easterEggs.length);\n return easterEggs[easterEggText].message;\n }\n}\n\nfunction Clock() {\n _s();\n\n const [date, setDate] = useState(new Date());\n\n function refreshClock() {\n setDate(new Date());\n }\n\n useEffect(() => {\n const timerId = setInterval(refreshClock, 1000);\n return function cleanup() {\n clearInterval(timerId);\n };\n }, []);\n var hour = date.getHours();\n var minutes = date.getMinutes(); //var seconds = date.getSeconds();\n\n var midday = \"AM\";\n midday = hour >= 12 ? \"PM\" : \"AM\";\n hour = hour === 0 ? 12 : hour > 12 ? hour - 12 : hour;\n minutes = fixDigits(minutes); //seconds = fixDigits(seconds);\n\n let time = hour + \":\" + minutes + \" \" + midday;\n return /*#__PURE__*/_jsxDEV(\"h2\", {\n id: \"clock\",\n children: time\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 311,\n columnNumber: 5\n }, this);\n}\n\n_s(Clock, \"Gqi45WOZhU2c0BLYX0HoJeiR0fk=\");\n\n_c12 = Clock;\n\nfunction getApps() {\n let applications = require('./apps.json');\n\n return applications;\n}\n\nfunction getLinks() {\n let links = require('./links.json');\n\n return links;\n}\n\nfunction getProviders() {\n let providers = require('./providers.json');\n\n return providers;\n}\n\nfunction getThemes() {\n let themes = require('./themes.json');\n\n return themes;\n}\n\nfunction updateTheme(e) {\n var themes = getThemes();\n var themeName = e.target.innerHTML.toLowerCase();\n var index = themes.themes.findIndex(function (item, i) {\n return item.name === themeName;\n });\n console.log(themes.themes[index]);\n localStorage.setItem(\"image-background\", themes.themes[index].imagebackground);\n localStorage.setItem(\"color-background\", themes.themes[index].colorbackground);\n localStorage.setItem(\"color-search-background\", themes.themes[index].colorserachbackground);\n localStorage.setItem(\"color-text-pri\", themes.themes[index].colortextpri);\n localStorage.setItem(\"color-text-acc\", themes.themes[index].colortextacc);\n localStorage.setItem(\"color-border\", themes.themes[index].colorborder);\n}\n\nfunction handleKeyPress(e) {\n var sindex = 0;\n var cycle = false;\n var key = e.keyCode || e.which;\n var text = e.target.value.replaceAll(\"+\", \"%2B\");\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n\n if (key == 13) {\n // Search functions\n search(text);\n }\n\n if (key == 9) {\n // Tab Completion Functions\n e.preventDefault();\n e.stopPropagation();\n\n if (text[0] === ';') {\n switch (option) {\n case 't':\n var streamers = ['admiralbahroo', 'moonmoon_ow', 'witwix'];\n\n if (!subtext || cycle) {\n cycle = true;\n if (sindex > streamers.length - 1) sindex = 0;\n document.getElementById(\"keywords\").value = ';t ' + streamers[sindex++];\n return;\n }\n\n for (var streamer of streamers) {\n if (subtext === streamer.substr(0, subtext.length)) {\n document.getElementById(\"keywords\").value = ';t ' + streamer;\n return;\n }\n }\n\n break;\n }\n }\n }\n\n if (key == 32) {\n //Space to go to search\n updateLabel(text);\n }\n\n sindex = 0;\n cycle = false;\n updateLabel(text);\n}\n\nfunction updateLabel(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n\n if (text[0] === '/') {\n // if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n document.getElementById(\"searchType\").innerHTML = \"Allmusic search\";\n break;\n\n case \"d\":\n document.getElementById(\"searchType\").innerHTML = \"Duck Duck Go search\";\n break;\n\n case \"di\":\n document.getElementById(\"searchType\").innerHTML = \"Discogs search\";\n break;\n\n case \"i\":\n document.getElementById(\"searchType\").innerHTML = \"IMDB search\";\n break;\n\n case \"m\":\n document.getElementById(\"searchType\").innerHTML = \"TheMovieDB search\";\n break;\n\n case \"r\":\n document.getElementById(\"searchType\").innerHTML = \"Reddit search\";\n break;\n\n case \"q\":\n document.getElementById(\"searchType\").innerHTML = \"Qwant search\";\n break;\n\n case \"so\":\n document.getElementById(\"searchType\").innerHTML = \"Soundcloud search\";\n break;\n\n case \"s\":\n document.getElementById(\"searchType\").innerHTML = \"Spotify search\";\n break;\n\n case \"tv\":\n document.getElementById(\"searchType\").innerHTML = \"TheTVDB search\";\n break;\n\n case \"t\":\n document.getElementById(\"searchType\").innerHTML = \"Trakt search\";\n break;\n\n case \"y\":\n document.getElementById(\"searchType\").innerHTML = \"YouTube search\";\n break;\n\n case \"w\":\n document.getElementById(\"searchType\").innerHTML = \"Wikipedia search\";\n break;\n\n case \"p\":\n document.getElementById(\"searchType\").innerHTML = \"Plex search\";\n break;\n\n case \"rt\":\n document.getElementById(\"searchType\").innerHTML = \"Rotten Tomatoes search\";\n break;\n\n default:\n document.getElementById(\"searchType\").innerHTML = \"Invalid search\";\n break;\n }\n } else {\n document.getElementById(\"searchType\").innerHTML = \"Google search\";\n }\n}\n\nfunction search(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n\n if (text[0] === '/') {\n if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n window.location = \"https://www.allmusic.com/search/all/\" + subtext;\n break;\n\n case \"d\":\n window.location = \"https://duckduckgo.com/?q=\" + subtext;\n break;\n\n case \"di\":\n window.location = \"https://www.discogs.com/search/?q=\" + subtext;\n break;\n\n case \"i\":\n window.location = \"https://www.imdb.com/find?q=\" + subtext;\n break;\n\n case \"m\":\n window.location = \"https://www.themoviedb.org/search?query=\" + subtext;\n break;\n\n case \"r\":\n window.location = \"https://www.reddit.com/search?q=\" + subtext;\n break;\n\n case \"q\":\n window.location = \"https://www.qwant.com/?q=\" + subtext;\n break;\n\n case \"so\":\n window.location = \"https://soundcloud.com/search?q=\" + subtext;\n break;\n\n case \"s\":\n window.location = \"https://open.spotify.com/search/results/\" + subtext;\n break;\n\n case \"t\":\n window.location = \"https://trakt.tv/search?query=\" + subtext;\n break;\n\n case \"tv\":\n window.location = \"https://www.thetvdb.com/search?query=\" + subtext;\n break;\n\n case \"y\":\n window.location = \"https://www.youtube.com/results?search_query=\" + subtext;\n break;\n\n case \"w\":\n window.location = \"https://en.wikipedia.org/w/index.php?search=\" + subtext;\n break;\n\n case \"p\":\n window.location = \"https://app.plex.tv/desktop/#!/search?query=\" + subtext;\n break;\n\n case \"rt\":\n window.location = \"https://www.rottentomatoes.com/search?search=\" + subtext;\n break;\n }\n } else {\n var option = text.substr(1);\n\n switch (option) {\n case \"d\":\n window.location = \"https://www.duckduckgo.com\";\n break;\n\n case \"y\":\n window.location = \"https://www.youtube.com\";\n break;\n\n case \"r\":\n window.location = \"https://reddit.com\";\n break;\n\n case \"s\":\n window.location = \"https://open.spotify.com\";\n break;\n }\n }\n } else if (validURL(text)) {\n if (containsProtocol(text)) window.location = text;else window.location = \"https://\" + text;\n } else {\n window.location = \"https://www.google.com/search?q=\" + text;\n }\n} // Source: https://stackoverflow.com/questions/5717093/check-if-a-javascript-string-is-a-url\n\n\nfunction validURL(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/)?' + // protocol\n '((([a-z\\\\d]([a-z\\\\d-]*[a-z\\\\d])*)\\\\.)+[a-z]{2,}|' + // domain name\n '((\\\\d{1,3}\\\\.){3}\\\\d{1,3}))' + // OR ip (v4) address\n '(\\\\:\\\\d+)?(\\\\/[-a-z\\\\d%_.~+]*)*' + // port and path\n '(\\\\?[;&a-z\\\\d%_.~+=-]*)?' + // query string\n '(\\\\#[-a-z\\\\d_]*)?$', 'i'); // fragment locator\n\n return !!pattern.test(str);\n}\n\nfunction containsProtocol(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/){1}.*', 'i');\n return !!pattern.test(str);\n}\n\nString.prototype.replaceAll = function (search, replacement) {\n var target = this;\n return target.split(search).join(replacement);\n};\n\nvar _c, _c2, _c3, _c4, _c5, _c6, _c7, _c8, _c9, _c10, _c11, _c12;\n\n$RefreshReg$(_c, \"Homepage\");\n$RefreshReg$(_c2, \"Search\");\n$RefreshReg$(_c3, \"Header\");\n$RefreshReg$(_c4, \"Applications\");\n$RefreshReg$(_c5, \"App\");\n$RefreshReg$(_c6, \"Bookmarks\");\n$RefreshReg$(_c7, \"LinkGroups\");\n$RefreshReg$(_c8, \"LinkItem\");\n$RefreshReg$(_c9, \"ModalMenu\");\n$RefreshReg$(_c10, \"Provider\");\n$RefreshReg$(_c11, \"ModalInit\");\n$RefreshReg$(_c12, \"Clock\");","map":{"version":3,"sources":["/home/seanedmunds/dev/home-page/src/index.js"],"names":["React","useState","useEffect","ReactDOM","Homepage","date","greet","Search","handleKeyPress","Header","props","Applications","appList","getApps","items","i","apps","length","push","name","url","icon","NSFW","App","classNameType","hrefUrl","iconName","Bookmarks","bookmarkList","getLinks","bookmarks","category","links","LinkGroups","LinkItem","link","ModalMenu","providers","getProviders","updateTheme","Provider","provider","prefix","ModalInit","render","document","getElementById","currentDate","Date","dateOptions","weekday","year","month","day","toLocaleDateString","fixDigits","k","currentTime","Math","floor","getHours","easterEggChance","random","greetings","require","timeBased","easterEggs","messages","easteregg","concat","message","easterEggText","Clock","setDate","refreshClock","timerId","setInterval","cleanup","clearInterval","hour","minutes","getMinutes","midday","time","applications","getThemes","themes","e","themeName","target","innerHTML","toLowerCase","index","findIndex","item","console","log","localStorage","setItem","imagebackground","colorbackground","colorserachbackground","colortextpri","colortextacc","colorborder","sindex","cycle","key","keyCode","which","text","value","replaceAll","option","substr","indexOf","subtext","search","preventDefault","stopPropagation","streamers","streamer","updateLabel","window","location","validURL","containsProtocol","str","pattern","RegExp","test","String","prototype","replacement","split","join"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { useState, useEffect } from 'react';\nimport ReactDOM from 'react-dom';\n//import { unstable_createPortal } from 'react-dom';\nimport './index.css';\n\nfunction Homepage() {\n return (\n \n \n \n
\n \n \n
\n \n \n \n
\n \n \n
\n \n \n
\n \n );\n}\n\nfunction Search() {\n return (\n \n )\n}\n\nfunction Header(props) {\n return (\n \n );\n}\n\nfunction Applications() {\n let appList = getApps();\n var items = [];\n for (var i = 0; i < appList.apps.length; i++) {\n items.push(\n \n );\n }\n return (\n \n Applications
\n \n {items}\n
\n \n );\n}\n\nfunction App(props) {\n let classNameType = props.NSFW + \"-content\";\n let hrefUrl = \"https://\" + props.url;\n let iconName = \"mdi-\" + props.icon;\n return (\n \n );\n}\n\nfunction Bookmarks() {\n let bookmarkList = getLinks();\n var items = [];\n for (var i = 0; i < bookmarkList.bookmarks.length; i++) {\n items.push(\n \n );\n }\n return (\n \n Bookmarks
\n \n {items}\n
\n \n );\n}\n\nfunction LinkGroups(props) {\n var items = [];\n for (var i = 0; i < props.links.length; i++) {\n items.push(\n \n );\n }\n return (\n \n
{props.category}
\n {items}\n \n );\n}\n\nfunction LinkItem(props) {\n return (\n \n );\n}\n\nfunction ModalMenu() {\n var providers = getProviders();\n var items = [];\n for (var i = 0; i < providers.providers.length; i++) {\n items.push(\n \n );\n }\n return (\n \n \n \n\n
Color themes
\n\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n\n\n
Search options
\n
\n \n \n \n | Website | \n Prefix | \n
\n {items}\n \n
\n \n\n \n
\n \n );\n}\n\nfunction Provider(props) {\n return (\n \n | {props.provider.name} | \n {props.provider.prefix} | \n
\n );\n}\n\nfunction ModalInit() {\n return (\n \n );\n}\n\nReactDOM.render(\n ,\n document.getElementById('root')\n);\n\n//Functions below this line are for calculating data for\n//other functions\n\nfunction date() {\n let currentDate = new Date();\n let dateOptions = {\n weekday: \"long\",\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\"\n };\n let date = currentDate.toLocaleDateString(\"en-GB\", dateOptions);\n return date;\n}\nfunction fixDigits(k) {\n if (k < 10) {\n return \"0\" + k;\n }\n else {\n return k;\n }\n}\nfunction greet() {\n let currentTime = new Date();\n let greet = Math.floor(currentTime.getHours() / 6);\n let easterEggChance = Math.floor(Math.random() * 100);\n let greetings = require('./messages.json');\n let timeBased = [];\n let easterEggs = [];\n for (var i = 0; i < greetings.messages.length; i++) {\n if (greetings.messages[i].easteregg === \"FALSE\") {\n timeBased = timeBased.concat(greetings.messages[i]);\n } else {\n easterEggs = easterEggs.concat(greetings.messages[i]);\n }\n }\n if (easterEggChance > 10) {\n return timeBased[greet].message;\n } else {\n let easterEggText = Math.floor(Math.random() * easterEggs.length);\n return easterEggs[easterEggText].message;\n }\n}\nfunction Clock() {\n const [date, setDate] = useState(new Date());\n\n function refreshClock() {\n setDate(new Date());\n }\n useEffect(() => {\n const timerId = setInterval(refreshClock, 1000);\n return function cleanup() {\n clearInterval(timerId);\n };\n }, []);\n\n var hour = date.getHours();\n var minutes = date.getMinutes();\n //var seconds = date.getSeconds();\n var midday = \"AM\";\n midday = (hour >= 12) ? \"PM\" : \"AM\";\n hour = (hour === 0) ? 12 : ((hour > 12) ? (hour - 12) : hour);\n minutes = fixDigits(minutes);\n //seconds = fixDigits(seconds);\n let time = hour + \":\" + minutes + \" \" + midday;\n\n return (\n {time}
\n\n );\n}\nfunction getApps() {\n let applications = require('./apps.json');\n return applications;\n}\nfunction getLinks() {\n let links = require('./links.json');\n return links;\n}\nfunction getProviders() {\n let providers = require('./providers.json');\n return providers;\n}\nfunction getThemes() {\n let themes = require('./themes.json');\n return themes;\n}\n\nfunction updateTheme(e) {\n var themes = getThemes();\n var themeName = e.target.innerHTML.toLowerCase();\n var index = themes.themes.findIndex(function(item, i){\n return item.name === themeName\n });\n console.log(themes.themes[index]);\n localStorage.setItem(\"image-background\", themes.themes[index].imagebackground);\n localStorage.setItem(\"color-background\", themes.themes[index].colorbackground);\n localStorage.setItem(\"color-search-background\", themes.themes[index].colorserachbackground);\n localStorage.setItem(\"color-text-pri\",themes.themes[index].colortextpri);\n localStorage.setItem(\"color-text-acc\", themes.themes[index].colortextacc);\n localStorage.setItem(\"color-border\", themes.themes[index].colorborder);\n}\n\nfunction handleKeyPress(e) {\n var sindex = 0;\n var cycle = false;\n var key = e.keyCode || e.which;\n var text = e.target.value.replaceAll(\"+\", \"%2B\");\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n if (key == 13) { // Search functions\n search(text);\n }\n if (key == 9) { // Tab Completion Functions\n e.preventDefault();\n e.stopPropagation();\n if (text[0] === ';') {\n switch (option) {\n case 't':\n var streamers = ['admiralbahroo', 'moonmoon_ow', 'witwix'];\n if (!subtext || cycle) {\n cycle = true;\n if (sindex > streamers.length - 1) sindex = 0;\n document.getElementById(\"keywords\").value = ';t ' + streamers[sindex++];\n return;\n }\n for (var streamer of streamers) {\n if (subtext === streamer.substr(0, subtext.length)) {\n document.getElementById(\"keywords\").value = ';t ' + streamer;\n return;\n }\n }\n break;\n }\n }\n }\n if(key == 32){ //Space to go to search\nupdateLabel(text);\n }\n sindex = 0;\n cycle = false;\n updateLabel(text);\n}\n\nfunction updateLabel(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n if (text[0] === '/') {\n// if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n document.getElementById(\"searchType\").innerHTML = \"Allmusic search\";\n break;\n case \"d\":\n document.getElementById(\"searchType\").innerHTML = \"Duck Duck Go search\";\n break;\n case \"di\":\n document.getElementById(\"searchType\").innerHTML = \"Discogs search\";\n break;\n case \"i\":\n document.getElementById(\"searchType\").innerHTML = \"IMDB search\";\n break;\n case \"m\":\n document.getElementById(\"searchType\").innerHTML = \"TheMovieDB search\";\n break;\n case \"r\":\n document.getElementById(\"searchType\").innerHTML = \"Reddit search\";\n break;\n case \"q\":\n document.getElementById(\"searchType\").innerHTML = \"Qwant search\";\n break;\n case \"so\":\n document.getElementById(\"searchType\").innerHTML = \"Soundcloud search\";\n break;\n case \"s\":\n document.getElementById(\"searchType\").innerHTML = \"Spotify search\";\n break;\n case \"tv\":\n document.getElementById(\"searchType\").innerHTML = \"TheTVDB search\";\n break;\n case \"t\":\n document.getElementById(\"searchType\").innerHTML = \"Trakt search\";\n break;\n case \"y\":\n document.getElementById(\"searchType\").innerHTML = \"YouTube search\";\n break;\n case \"w\":\n document.getElementById(\"searchType\").innerHTML = \"Wikipedia search\";\n break;\n case \"p\":\n document.getElementById(\"searchType\").innerHTML = \"Plex search\";\n break;\n case \"rt\":\n document.getElementById(\"searchType\").innerHTML = \"Rotten Tomatoes search\";\n break;\n default:\n document.getElementById(\"searchType\").innerHTML = \"Invalid search\";\n break;\n }\n}else {\n document.getElementById(\"searchType\").innerHTML = \"Google search\";\n }\n}\n\nfunction search(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n if (text[0] === '/') {\n if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n window.location = \"https://www.allmusic.com/search/all/\" + subtext;\n break;\n case \"d\":\n window.location = \"https://duckduckgo.com/?q=\" + subtext;\n break;\n case \"di\":\n window.location = \"https://www.discogs.com/search/?q=\" + subtext;\n break;\n case \"i\":\n window.location = \"https://www.imdb.com/find?q=\" + subtext;\n break;\n case \"m\":\n window.location = \"https://www.themoviedb.org/search?query=\" + subtext;\n break;\n case \"r\":\n window.location = \"https://www.reddit.com/search?q=\" + subtext;\n break;\n case \"q\":\n window.location = \"https://www.qwant.com/?q=\" + subtext;\n break;\n case \"so\":\n window.location = \"https://soundcloud.com/search?q=\" + subtext;\n break;\n case \"s\":\n window.location = \"https://open.spotify.com/search/results/\" + subtext;\n break;\n case \"t\":\n window.location = \"https://trakt.tv/search?query=\" + subtext;\n break;\n case \"tv\":\n window.location = \"https://www.thetvdb.com/search?query=\" + subtext;\n break;\n case \"y\":\n window.location = \"https://www.youtube.com/results?search_query=\" + subtext;\n break;\n case \"w\":\n window.location = \"https://en.wikipedia.org/w/index.php?search=\" + subtext;\n break;\n case \"p\":\n window.location = \"https://app.plex.tv/desktop/#!/search?query=\" + subtext;\n break;\n case \"rt\":\n window.location = \"https://www.rottentomatoes.com/search?search=\" + subtext;\n break;\n }\n } else {\n var option = text.substr(1);\n switch (option) {\n case \"d\":\n window.location = \"https://www.duckduckgo.com\";\n break;\n case \"y\":\n window.location = \"https://www.youtube.com\";\n break;\n case \"r\":\n window.location = \"https://reddit.com\";\n break;\n case \"s\":\n window.location = \"https://open.spotify.com\";\n break;\n }\n }\n } else if (validURL(text)) {\n if (containsProtocol(text))\n window.location = text;\n else\n window.location = \"https://\" + text;\n } else {\n window.location = \"https://www.google.com/search?q=\" + text;\n }\n}\n\n// Source: https://stackoverflow.com/questions/5717093/check-if-a-javascript-string-is-a-url\nfunction validURL(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/)?' + // protocol\n '((([a-z\\\\d]([a-z\\\\d-]*[a-z\\\\d])*)\\\\.)+[a-z]{2,}|' + // domain name\n '((\\\\d{1,3}\\\\.){3}\\\\d{1,3}))' + // OR ip (v4) address\n '(\\\\:\\\\d+)?(\\\\/[-a-z\\\\d%_.~+]*)*' + // port and path\n '(\\\\?[;&a-z\\\\d%_.~+=-]*)?' + // query string\n '(\\\\#[-a-z\\\\d_]*)?$', 'i'); // fragment locator\n return !!pattern.test(str);\n}\n\nfunction containsProtocol(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/){1}.*', 'i');\n return !!pattern.test(str);\n}\n\nString.prototype.replaceAll = function(search, replacement) {\n var target = this;\n return target.split(search).join(replacement);\n};"]},"metadata":{},"sourceType":"module"}
\ No newline at end of file
diff --git a/node_modules/.cache/babel-loader/f5f4e00959fbaef5d012d5acc21ee9ca.json b/node_modules/.cache/babel-loader/f5f4e00959fbaef5d012d5acc21ee9ca.json
new file mode 100644
index 00000000..81b1aa8c
--- /dev/null
+++ b/node_modules/.cache/babel-loader/f5f4e00959fbaef5d012d5acc21ee9ca.json
@@ -0,0 +1 @@
+{"ast":null,"code":"var _jsxFileName = \"/home/seanedmunds/dev/home-page/src/index.js\",\n _s = $RefreshSig$();\n\nimport React from 'react';\nimport { useState, useEffect } from 'react';\nimport ReactDOM from 'react-dom'; //import { unstable_createPortal } from 'react-dom';\n\nimport './index.css';\nimport { jsxDEV as _jsxDEV } from \"react/jsx-dev-runtime\";\n\nconst setValueFromLocalStorage = property => {\n let value = localStorage.getItem(property);\n setValue(property, value);\n};\n\nconst setValue = (property, value) => {\n if (value) {\n document.documentElement.style.setProperty(`--${property}`, value);\n const input = document.querySelector(`#${property}`);\n\n if (input) {\n value = value.replace('px', '');\n input.value = value;\n }\n }\n};\n\nfunction Homepage() {\n setTheme();\n var checked = localStorage.getItem(\"contenttype\");\n console.log(\"Checked is \" + checked);\n return /*#__PURE__*/_jsxDEV(\"main\", {\n id: \"container\",\n className: \"fade\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Search, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 30,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 29,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Header, {\n date: date(),\n greet: greet()\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 33,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 32,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Applications, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 39,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 38,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Bookmarks, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 42,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 41,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(ModalMenu, {\n boxChecked: checked\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 45,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 44,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(ModalInit, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 50,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 49,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 28,\n columnNumber: 5\n }, this);\n}\n\n_c = Homepage;\n\nfunction Search() {\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"search\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"abackground\",\n children: [/*#__PURE__*/_jsxDEV(\"input\", {\n name: \"keywords\",\n type: \"text\",\n className: \"keyword\",\n id: \"keywords\",\n size: \"50\",\n spellCheck: \"true\",\n placeholder: \"\"\n /*onFocus={this.placeholder = \"\"} onBlur={this.placeholder = ''}*/\n ,\n autoComplete: \"off\",\n autoFocus: true,\n onKeyUp: handleKeyPress\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 60,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n id: \"searchType\",\n className: \"Input-label\",\n children: \"Google search\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 61,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 59,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 58,\n columnNumber: 5\n }, this);\n}\n\n_c2 = Search;\n\nfunction Header(props) {\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"header\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n id: \"greeting_block\",\n children: /*#__PURE__*/_jsxDEV(\"h1\", {\n id: \"header_greet\",\n children: props.greet\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 71,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 70,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"date_block\",\n children: [/*#__PURE__*/_jsxDEV(\"h2\", {\n id: \"header_date\",\n children: props.date\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 74,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(Clock, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 75,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 73,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 69,\n columnNumber: 5\n }, this);\n}\n\n_c3 = Header;\n\nfunction Applications() {\n let appList = getApps();\n var items = [];\n\n for (var i = 0; i < appList.apps.length; i++) {\n var safe = appList.apps[i].NSFW;\n var NSFWEnabled = localStorage.getItem(\"contenttype\");\n\n if (safe === \"SAFE\") {\n items.push( /*#__PURE__*/_jsxDEV(App, {\n name: appList.apps[i].name,\n url: appList.apps[i].url,\n icon: appList.apps[i].icon,\n NSFW: appList.apps[i].NSFW\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 89,\n columnNumber: 9\n }, this));\n } else if (safe === \"NSFW\" && NSFWEnabled) {\n items.push( /*#__PURE__*/_jsxDEV(App, {\n name: appList.apps[i].name,\n url: appList.apps[i].url,\n icon: appList.apps[i].icon,\n NSFW: appList.apps[i].NSFW\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 99,\n columnNumber: 9\n }, this));\n } else {}\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"apps\",\n children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n children: \"Applications\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 114,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"apps_loop\",\n children: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 115,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 113,\n columnNumber: 5\n }, this);\n}\n\n_c4 = Applications;\n\nfunction App(props) {\n let classNameType = props.NSFW + \"-content\";\n let hrefUrl = \"https://\" + props.url;\n let iconName = \"mdi-\" + props.icon;\n return /*#__PURE__*/_jsxDEV(\"div\", {\n className: classNameType,\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: hrefUrl,\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_item\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_icon\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify icon\",\n \"data-icon\": iconName\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 132,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 131,\n columnNumber: 13\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_text\",\n children: [/*#__PURE__*/_jsxDEV(\"span\", {\n id: \"app-name\",\n children: props.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 135,\n columnNumber: 15\n }, this), /*#__PURE__*/_jsxDEV(\"span\", {\n id: \"app-address\",\n children: props.url\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 136,\n columnNumber: 15\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 134,\n columnNumber: 13\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 130,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 129,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 128,\n columnNumber: 7\n }, this);\n}\n\n_c5 = App;\n\nfunction Bookmarks() {\n let bookmarkList = getLinks();\n var items = [];\n\n for (var i = 0; i < bookmarkList.bookmarks.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(LinkGroups, {\n category: bookmarkList.bookmarks[i].category,\n links: bookmarkList.bookmarks[i].links\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 149,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"links\",\n children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n children: \"Bookmarks\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 158,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"links_loop\",\n children: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 159,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 157,\n columnNumber: 5\n }, this);\n}\n\n_c6 = Bookmarks;\n\nfunction LinkGroups(props) {\n var items = [];\n\n for (var i = 0; i < props.links.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(LinkItem, {\n link: props.links[i]\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 170,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"links_item\",\n children: [/*#__PURE__*/_jsxDEV(\"h4\", {\n children: props.category\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 178,\n columnNumber: 7\n }, this), items]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 177,\n columnNumber: 5\n }, this);\n}\n\n_c7 = LinkGroups;\n\nfunction LinkItem(props) {\n return /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: props.link.url,\n className: \"theme_color-border theme_text-select\",\n children: props.link.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 187,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 186,\n columnNumber: 5\n }, this);\n}\n\n_c8 = LinkItem;\n\nfunction ModalMenu() {\n var providers = getProviders();\n var items = [];\n\n for (var i = 0; i < providers.providers.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(Provider, {\n provider: providers.providers[i]\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 197,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"modal\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n children: [/*#__PURE__*/_jsxDEV(\"header\", {\n id: \"modal-header\",\n children: [/*#__PURE__*/_jsxDEV(\"h1\", {\n children: \"Options\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 207,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n href: \"#\",\n title: \"Close\",\n className: \"modal-close\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-close\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 209,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 208,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 206,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"h2\", {\n children: \"Color themes\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 213,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"modal-theme\",\n children: [/*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"blackboard\",\n className: \"theme-button theme-blackboard\",\n onClick: updateTheme,\n children: \"Blackboard\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 216,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"gazette\",\n className: \"theme-button theme-gazette\",\n onClick: updateTheme,\n children: \"Gazette\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 217,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"espresso\",\n className: \"theme-button theme-espresso\",\n onClick: updateTheme,\n children: \"Espresso\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 218,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cab\",\n className: \"theme-button theme-cab\",\n onClick: updateTheme,\n children: \"Cab\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 219,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cloud\",\n className: \"theme-button theme-cloud\",\n onClick: updateTheme,\n children: \"Cloud\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 220,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"lime\",\n className: \"theme-button theme-lime\",\n onClick: updateTheme,\n children: \"Lime\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 221,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"passion\",\n className: \"theme-button theme-passion\",\n onClick: updateTheme,\n children: \"Passion\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 222,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"blues\",\n className: \"theme-button theme-blues\",\n onClick: updateTheme,\n children: \"Blues\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 223,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"chalk\",\n className: \"theme-button theme-chalk\",\n onClick: updateTheme,\n children: \"Chalk\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 224,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"tron\",\n className: \"theme-button theme-tron\",\n onClick: updateTheme,\n children: \"Tron\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 225,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"paper\",\n className: \"theme-button theme-paper\",\n onClick: updateTheme,\n children: \"Paper\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 226,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cyberpunk\",\n className: \"theme-button theme-cyberpunk\",\n onClick: updateTheme,\n children: \"Cyberpunk\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 227,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"quadra\",\n className: \"theme-button theme-panam\",\n onClick: updateTheme,\n children: \"Quadra\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 228,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"panam\",\n className: \"theme-button theme-panam\",\n onClick: updateTheme,\n children: \"Panam\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 229,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"touch\",\n className: \"theme-button theme-touch\",\n onClick: updateTheme,\n children: \"Touch\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 230,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"peek\",\n className: \"theme-button theme-peek\",\n onClick: updateTheme,\n children: \"Peek\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 231,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 215,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"h2\", {\n children: \"Search options\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 235,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"providers\",\n children: /*#__PURE__*/_jsxDEV(\"table\", {\n children: /*#__PURE__*/_jsxDEV(\"tbody\", {\n children: [/*#__PURE__*/_jsxDEV(\"tr\", {\n children: [/*#__PURE__*/_jsxDEV(\"th\", {\n children: \"Website\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 240,\n columnNumber: 19\n }, this), /*#__PURE__*/_jsxDEV(\"th\", {\n children: \"Prefix\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 241,\n columnNumber: 19\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 239,\n columnNumber: 17\n }, this), items]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 238,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 237,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 236,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"header\", {\n id: \"modal-footer\",\n children: [/*#__PURE__*/_jsxDEV(\"a\", {\n href: \"https://github.com/jeroenpardon/\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-github-box\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 249,\n columnNumber: 54\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 249,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n href: \"https://materialdesignicons.com/\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-material-design\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 250,\n columnNumber: 54\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 250,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"sneaky\",\n children: [/*#__PURE__*/_jsxDEV(\"input\", {\n type: \"checkbox\",\n id: \"contenttype\",\n onChange: udpateDisplayedItems\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 251,\n columnNumber: 35\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n for: \"contenttype\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-domino-mask\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 252,\n columnNumber: 36\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 252,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 251,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 248,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 205,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 204,\n columnNumber: 5\n }, this);\n}\n\n_c9 = ModalMenu;\n\nfunction Provider(props) {\n return /*#__PURE__*/_jsxDEV(\"tr\", {\n children: [/*#__PURE__*/_jsxDEV(\"td\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: props.provider.url,\n children: props.provider.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 262,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 262,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"td\", {\n children: props.provider.prefix\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 263,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 261,\n columnNumber: 5\n }, this);\n}\n\n_c10 = Provider;\n\nfunction ModalInit() {\n setDisplayedItems();\n return /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"modal_init\",\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n className: \"btn\",\n href: \"#modal\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify icon\",\n \"data-icon\": \"mdi-xbox-controller-menu\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 273,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 272,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 271,\n columnNumber: 5\n }, this);\n}\n\n_c11 = ModalInit;\nReactDOM.render( /*#__PURE__*/_jsxDEV(Homepage, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 280,\n columnNumber: 3\n}, this), document.getElementById('root')); //Functions below this line are for calculating data for\n//other functions\n\nfunction date() {\n let currentDate = new Date();\n let dateOptions = {\n weekday: \"long\",\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\"\n };\n let date = currentDate.toLocaleDateString(\"en-GB\", dateOptions);\n return date;\n}\n\nfunction fixDigits(k) {\n if (k < 10) {\n return \"0\" + k;\n } else {\n return k;\n }\n}\n\nfunction greet() {\n let currentTime = new Date();\n let greet = Math.floor(currentTime.getHours() / 6);\n let easterEggChance = Math.floor(Math.random() * 100);\n\n let greetings = require('./messages.json');\n\n let timeBased = [];\n let easterEggs = [];\n\n for (var i = 0; i < greetings.messages.length; i++) {\n if (greetings.messages[i].easteregg === \"FALSE\") {\n timeBased = timeBased.concat(greetings.messages[i]);\n } else {\n easterEggs = easterEggs.concat(greetings.messages[i]);\n }\n }\n\n if (easterEggChance > 10) {\n return timeBased[greet].message;\n } else {\n let easterEggText = Math.floor(Math.random() * easterEggs.length);\n return easterEggs[easterEggText].message;\n }\n}\n\nfunction Clock() {\n _s();\n\n const [date, setDate] = useState(new Date());\n\n function refreshClock() {\n setDate(new Date());\n }\n\n useEffect(() => {\n const timerId = setInterval(refreshClock, 1000);\n return function cleanup() {\n clearInterval(timerId);\n };\n }, []);\n var hour = date.getHours();\n var minutes = date.getMinutes(); //var seconds = date.getSeconds();\n\n var midday = \"AM\";\n midday = hour >= 12 ? \"PM\" : \"AM\";\n hour = hour === 0 ? 12 : hour > 12 ? hour - 12 : hour;\n minutes = fixDigits(minutes); //seconds = fixDigits(seconds);\n\n let time = hour + \":\" + minutes + \" \" + midday;\n return /*#__PURE__*/_jsxDEV(\"h2\", {\n id: \"clock\",\n children: time\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 351,\n columnNumber: 5\n }, this);\n}\n\n_s(Clock, \"Gqi45WOZhU2c0BLYX0HoJeiR0fk=\");\n\n_c12 = Clock;\n\nfunction getApps() {\n let applications = require('./apps.json');\n\n return applications;\n}\n\nfunction getLinks() {\n let links = require('./links.json');\n\n return links;\n}\n\nfunction getProviders() {\n let providers = require('./providers.json');\n\n return providers;\n}\n\nfunction getThemes() {\n let themes = require('./themes.json');\n\n return themes;\n}\n\nfunction updateTheme(e) {\n var themes = getThemes();\n var themeName = e.target.innerHTML.toLowerCase();\n var index = themes.themes.findIndex(function (item, i) {\n return item.name === themeName;\n });\n localStorage.setItem(\"image-background\", themes.themes[index].imagebackground);\n localStorage.setItem(\"color-background\", themes.themes[index].colorbackground);\n localStorage.setItem(\"color-search-background\", themes.themes[index].colorserachbackground);\n localStorage.setItem(\"color-text-pri\", themes.themes[index].colortextpri);\n localStorage.setItem(\"color-text-acc\", themes.themes[index].colortextacc);\n localStorage.setItem(\"color-border\", themes.themes[index].colorborder); //document.documentElement.style.setProperty(prop, `var(--${themeName}${prop.substring(10)})`);\n\n setTheme();\n}\n\nfunction setTheme() {\n setValueFromLocalStorage('image-background');\n setValueFromLocalStorage('color-background');\n setValueFromLocalStorage('color-search-background');\n setValueFromLocalStorage('color-text-pri');\n setValueFromLocalStorage('color-text-acc');\n setValueFromLocalStorage('color-border');\n setValueFromLocalStorage('content-display');\n}\n\nfunction handleKeyPress(e) {\n var sindex = 0;\n var cycle = false;\n var key = e.keyCode || e.which;\n var text = e.target.value.replaceAll(\"+\", \"%2B\");\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n\n if (key == 13) {\n // Search functions\n search(text);\n }\n\n if (key == 9) {\n // Tab Completion Functions\n e.preventDefault();\n e.stopPropagation();\n\n if (text[0] === ';') {\n switch (option) {\n case 't':\n var streamers = ['admiralbahroo', 'moonmoon_ow', 'witwix'];\n\n if (!subtext || cycle) {\n cycle = true;\n if (sindex > streamers.length - 1) sindex = 0;\n document.getElementById(\"keywords\").value = ';t ' + streamers[sindex++];\n return;\n }\n\n for (var streamer of streamers) {\n if (subtext === streamer.substr(0, subtext.length)) {\n document.getElementById(\"keywords\").value = ';t ' + streamer;\n return;\n }\n }\n\n break;\n }\n }\n }\n\n if (key == 32) {\n //Space to go to search\n updateLabel(text);\n }\n\n sindex = 0;\n cycle = false;\n updateLabel(text);\n}\n\nfunction updateLabel(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n\n if (text[0] === '/') {\n // if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n document.getElementById(\"searchType\").innerHTML = \"Allmusic search\";\n break;\n\n case \"d\":\n document.getElementById(\"searchType\").innerHTML = \"Duck Duck Go search\";\n break;\n\n case \"di\":\n document.getElementById(\"searchType\").innerHTML = \"Discogs search\";\n break;\n\n case \"i\":\n document.getElementById(\"searchType\").innerHTML = \"IMDB search\";\n break;\n\n case \"m\":\n document.getElementById(\"searchType\").innerHTML = \"TheMovieDB search\";\n break;\n\n case \"r\":\n document.getElementById(\"searchType\").innerHTML = \"Reddit search\";\n break;\n\n case \"q\":\n document.getElementById(\"searchType\").innerHTML = \"Qwant search\";\n break;\n\n case \"so\":\n document.getElementById(\"searchType\").innerHTML = \"Soundcloud search\";\n break;\n\n case \"s\":\n document.getElementById(\"searchType\").innerHTML = \"Spotify search\";\n break;\n\n case \"tv\":\n document.getElementById(\"searchType\").innerHTML = \"TheTVDB search\";\n break;\n\n case \"t\":\n document.getElementById(\"searchType\").innerHTML = \"Trakt search\";\n break;\n\n case \"y\":\n document.getElementById(\"searchType\").innerHTML = \"YouTube search\";\n break;\n\n case \"w\":\n document.getElementById(\"searchType\").innerHTML = \"Wikipedia search\";\n break;\n\n case \"p\":\n document.getElementById(\"searchType\").innerHTML = \"Plex search\";\n break;\n\n case \"rt\":\n document.getElementById(\"searchType\").innerHTML = \"Rotten Tomatoes search\";\n break;\n\n default:\n document.getElementById(\"searchType\").innerHTML = \"Invalid search\";\n break;\n }\n } else {\n document.getElementById(\"searchType\").innerHTML = \"Google search\";\n }\n}\n\nfunction search(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n\n if (text[0] === '/') {\n if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n window.location = \"https://www.allmusic.com/search/all/\" + subtext;\n break;\n\n case \"d\":\n window.location = \"https://duckduckgo.com/?q=\" + subtext;\n break;\n\n case \"di\":\n window.location = \"https://www.discogs.com/search/?q=\" + subtext;\n break;\n\n case \"i\":\n window.location = \"https://www.imdb.com/find?q=\" + subtext;\n break;\n\n case \"m\":\n window.location = \"https://www.themoviedb.org/search?query=\" + subtext;\n break;\n\n case \"r\":\n window.location = \"https://www.reddit.com/search?q=\" + subtext;\n break;\n\n case \"q\":\n window.location = \"https://www.qwant.com/?q=\" + subtext;\n break;\n\n case \"so\":\n window.location = \"https://soundcloud.com/search?q=\" + subtext;\n break;\n\n case \"s\":\n window.location = \"https://open.spotify.com/search/results/\" + subtext;\n break;\n\n case \"t\":\n window.location = \"https://trakt.tv/search?query=\" + subtext;\n break;\n\n case \"tv\":\n window.location = \"https://www.thetvdb.com/search?query=\" + subtext;\n break;\n\n case \"y\":\n window.location = \"https://www.youtube.com/results?search_query=\" + subtext;\n break;\n\n case \"w\":\n window.location = \"https://en.wikipedia.org/w/index.php?search=\" + subtext;\n break;\n\n case \"p\":\n window.location = \"https://app.plex.tv/desktop/#!/search?query=\" + subtext;\n break;\n\n case \"rt\":\n window.location = \"https://www.rottentomatoes.com/search?search=\" + subtext;\n break;\n }\n } else {\n var option = text.substr(1);\n\n switch (option) {\n case \"d\":\n window.location = \"https://www.duckduckgo.com\";\n break;\n\n case \"y\":\n window.location = \"https://www.youtube.com\";\n break;\n\n case \"r\":\n window.location = \"https://reddit.com\";\n break;\n\n case \"s\":\n window.location = \"https://open.spotify.com\";\n break;\n }\n }\n } else if (validURL(text)) {\n if (containsProtocol(text)) window.location = text;else window.location = \"https://\" + text;\n } else {\n window.location = \"https://www.google.com/search?q=\" + text;\n }\n}\n\nfunction validURL(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/)?' + // protocol\n '((([a-z\\\\d]([a-z\\\\d-]*[a-z\\\\d])*)\\\\.)+[a-z]{2,}|' + // domain name\n '((\\\\d{1,3}\\\\.){3}\\\\d{1,3}))' + // OR ip (v4) address\n '(\\\\:\\\\d+)?(\\\\/[-a-z\\\\d%_.~+]*)*' + // port and path\n '(\\\\?[;&a-z\\\\d%_.~+=-]*)?' + // query string\n '(\\\\#[-a-z\\\\d_]*)?$', 'i'); // fragment locator\n\n return !!pattern.test(str);\n}\n\nfunction containsProtocol(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/){1}.*', 'i');\n return !!pattern.test(str);\n}\n\nString.prototype.replaceAll = function (search, replacement) {\n var target = this;\n return target.split(search).join(replacement);\n};\n\nfunction udpateDisplayedItems(e) {\n localStorage.setItem('contenttype', e.target.checked);\n\n if (e.target.checked) {\n localStorage.setItem('content-display', 'none');\n } else {\n localStorage.setItem('content-display', 'block');\n }\n\n setDisplayedItems();\n}\n\nfunction setDisplayedItems() {\n setValueFromLocalStorage('contenttype');\n setValueFromLocalStorage('content-display');\n}\n\nvar _c, _c2, _c3, _c4, _c5, _c6, _c7, _c8, _c9, _c10, _c11, _c12;\n\n$RefreshReg$(_c, \"Homepage\");\n$RefreshReg$(_c2, \"Search\");\n$RefreshReg$(_c3, \"Header\");\n$RefreshReg$(_c4, \"Applications\");\n$RefreshReg$(_c5, \"App\");\n$RefreshReg$(_c6, \"Bookmarks\");\n$RefreshReg$(_c7, \"LinkGroups\");\n$RefreshReg$(_c8, \"LinkItem\");\n$RefreshReg$(_c9, \"ModalMenu\");\n$RefreshReg$(_c10, \"Provider\");\n$RefreshReg$(_c11, \"ModalInit\");\n$RefreshReg$(_c12, \"Clock\");","map":{"version":3,"sources":["/home/seanedmunds/dev/home-page/src/index.js"],"names":["React","useState","useEffect","ReactDOM","setValueFromLocalStorage","property","value","localStorage","getItem","setValue","document","documentElement","style","setProperty","input","querySelector","replace","Homepage","setTheme","checked","console","log","date","greet","Search","handleKeyPress","Header","props","Applications","appList","getApps","items","i","apps","length","safe","NSFW","NSFWEnabled","push","name","url","icon","App","classNameType","hrefUrl","iconName","Bookmarks","bookmarkList","getLinks","bookmarks","category","links","LinkGroups","LinkItem","link","ModalMenu","providers","getProviders","updateTheme","udpateDisplayedItems","Provider","provider","prefix","ModalInit","setDisplayedItems","render","getElementById","currentDate","Date","dateOptions","weekday","year","month","day","toLocaleDateString","fixDigits","k","currentTime","Math","floor","getHours","easterEggChance","random","greetings","require","timeBased","easterEggs","messages","easteregg","concat","message","easterEggText","Clock","setDate","refreshClock","timerId","setInterval","cleanup","clearInterval","hour","minutes","getMinutes","midday","time","applications","getThemes","themes","e","themeName","target","innerHTML","toLowerCase","index","findIndex","item","setItem","imagebackground","colorbackground","colorserachbackground","colortextpri","colortextacc","colorborder","sindex","cycle","key","keyCode","which","text","replaceAll","option","substr","indexOf","subtext","search","preventDefault","stopPropagation","streamers","streamer","updateLabel","window","location","validURL","containsProtocol","str","pattern","RegExp","test","String","prototype","replacement","split","join"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { useState, useEffect } from 'react';\nimport ReactDOM from 'react-dom';\n//import { unstable_createPortal } from 'react-dom';\nimport './index.css';\n\nconst setValueFromLocalStorage = property => {\n let value = localStorage.getItem(property);\n setValue(property, value);\n};\nconst setValue = (property, value) => {\n if (value) {\n document.documentElement.style.setProperty(`--${property}`, value);\n\n const input = document.querySelector(`#${property}`);\n if (input) {\n value = value.replace('px', '');\n input.value = value;\n }\n }\n};\n\nfunction Homepage() {\n setTheme();\n var checked = localStorage.getItem(\"contenttype\");\n console.log(\"Checked is \" + checked);\n return (\n \n \n \n
\n \n \n
\n \n \n \n
\n \n \n
\n \n \n
\n \n );\n}\n\nfunction Search() {\n return (\n \n )\n}\n\nfunction Header(props) {\n return (\n \n );\n}\n\nfunction Applications() {\n let appList = getApps();\n var items = [];\n for (var i = 0; i < appList.apps.length; i++) {\n var safe = appList.apps[i].NSFW;\n var NSFWEnabled = localStorage.getItem(\"contenttype\");\n if (safe === \"SAFE\") {\n items.push(\n \n );\n } else if (safe === \"NSFW\" && NSFWEnabled) {\n items.push(\n \n );\n } else {\n \n }\n \n }\n return (\n \n Applications
\n \n {items}\n
\n \n );\n}\n\nfunction App(props) {\n \n let classNameType = props.NSFW + \"-content\";\n let hrefUrl = \"https://\" + props.url;\n let iconName = \"mdi-\" + props.icon;\n return (\n \n );\n}\n\nfunction Bookmarks() {\n let bookmarkList = getLinks();\n var items = [];\n for (var i = 0; i < bookmarkList.bookmarks.length; i++) {\n items.push(\n \n );\n }\n return (\n \n Bookmarks
\n \n {items}\n
\n \n );\n}\n\nfunction LinkGroups(props) {\n var items = [];\n for (var i = 0; i < props.links.length; i++) {\n items.push(\n \n );\n }\n return (\n \n
{props.category}
\n {items}\n \n );\n}\n\nfunction LinkItem(props) {\n return (\n \n );\n}\n\nfunction ModalMenu() {\n var providers = getProviders();\n var items = [];\n for (var i = 0; i < providers.providers.length; i++) {\n items.push(\n \n );\n }\n return (\n \n \n \n\n
Color themes
\n\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n\n\n
Search options
\n
\n \n \n \n | Website | \n Prefix | \n
\n {items}\n \n
\n \n\n \n
\n \n );\n}\n\nfunction Provider(props) {\n return (\n \n | {props.provider.name} | \n {props.provider.prefix} | \n
\n );\n}\n\nfunction ModalInit() {\n setDisplayedItems();\n return (\n \n );\n}\n\nReactDOM.render(\n ,\n document.getElementById('root')\n);\n\n//Functions below this line are for calculating data for\n//other functions\n\nfunction date() {\n let currentDate = new Date();\n let dateOptions = {\n weekday: \"long\",\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\"\n };\n let date = currentDate.toLocaleDateString(\"en-GB\", dateOptions);\n return date;\n}\nfunction fixDigits(k) {\n if (k < 10) {\n return \"0\" + k;\n }\n else {\n return k;\n }\n}\nfunction greet() {\n let currentTime = new Date();\n let greet = Math.floor(currentTime.getHours() / 6);\n let easterEggChance = Math.floor(Math.random() * 100);\n let greetings = require('./messages.json');\n let timeBased = [];\n let easterEggs = [];\n for (var i = 0; i < greetings.messages.length; i++) {\n if (greetings.messages[i].easteregg === \"FALSE\") {\n timeBased = timeBased.concat(greetings.messages[i]);\n } else {\n easterEggs = easterEggs.concat(greetings.messages[i]);\n }\n }\n if (easterEggChance > 10) {\n return timeBased[greet].message;\n } else {\n let easterEggText = Math.floor(Math.random() * easterEggs.length);\n return easterEggs[easterEggText].message;\n }\n}\nfunction Clock() {\n const [date, setDate] = useState(new Date());\n\n function refreshClock() {\n setDate(new Date());\n }\n useEffect(() => {\n const timerId = setInterval(refreshClock, 1000);\n return function cleanup() {\n clearInterval(timerId);\n };\n }, []);\n\n var hour = date.getHours();\n var minutes = date.getMinutes();\n //var seconds = date.getSeconds();\n var midday = \"AM\";\n midday = (hour >= 12) ? \"PM\" : \"AM\";\n hour = (hour === 0) ? 12 : ((hour > 12) ? (hour - 12) : hour);\n minutes = fixDigits(minutes);\n //seconds = fixDigits(seconds);\n let time = hour + \":\" + minutes + \" \" + midday;\n\n return (\n {time}
\n\n );\n}\nfunction getApps() {\n let applications = require('./apps.json');\n return applications;\n}\nfunction getLinks() {\n let links = require('./links.json');\n return links;\n}\nfunction getProviders() {\n let providers = require('./providers.json');\n return providers;\n}\nfunction getThemes() {\n let themes = require('./themes.json');\n return themes;\n}\nfunction updateTheme(e) {\n var themes = getThemes();\n var themeName = e.target.innerHTML.toLowerCase();\n var index = themes.themes.findIndex(function(item, i){\n return item.name === themeName\n });\n localStorage.setItem(\"image-background\", themes.themes[index].imagebackground);\n localStorage.setItem(\"color-background\", themes.themes[index].colorbackground);\n localStorage.setItem(\"color-search-background\", themes.themes[index].colorserachbackground);\n localStorage.setItem(\"color-text-pri\",themes.themes[index].colortextpri);\n localStorage.setItem(\"color-text-acc\", themes.themes[index].colortextacc);\n localStorage.setItem(\"color-border\", themes.themes[index].colorborder);\n \n //document.documentElement.style.setProperty(prop, `var(--${themeName}${prop.substring(10)})`);\n setTheme();\n}\nfunction setTheme() {\n setValueFromLocalStorage('image-background');\n setValueFromLocalStorage('color-background');\n setValueFromLocalStorage('color-search-background');\n setValueFromLocalStorage('color-text-pri');\n setValueFromLocalStorage('color-text-acc');\n setValueFromLocalStorage('color-border');\n setValueFromLocalStorage('content-display');\n}\nfunction handleKeyPress(e) {\n var sindex = 0;\n var cycle = false;\n var key = e.keyCode || e.which;\n var text = e.target.value.replaceAll(\"+\", \"%2B\");\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n if (key == 13) { // Search functions\n search(text);\n }\n if (key == 9) { // Tab Completion Functions\n e.preventDefault();\n e.stopPropagation();\n if (text[0] === ';') {\n switch (option) {\n case 't':\n var streamers = ['admiralbahroo', 'moonmoon_ow', 'witwix'];\n if (!subtext || cycle) {\n cycle = true;\n if (sindex > streamers.length - 1) sindex = 0;\n document.getElementById(\"keywords\").value = ';t ' + streamers[sindex++];\n return;\n }\n for (var streamer of streamers) {\n if (subtext === streamer.substr(0, subtext.length)) {\n document.getElementById(\"keywords\").value = ';t ' + streamer;\n return;\n }\n }\n break;\n }\n }\n }\n if(key == 32){ //Space to go to search\nupdateLabel(text);\n }\n sindex = 0;\n cycle = false;\n updateLabel(text);\n}\nfunction updateLabel(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n if (text[0] === '/') {\n// if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n document.getElementById(\"searchType\").innerHTML = \"Allmusic search\";\n break;\n case \"d\":\n document.getElementById(\"searchType\").innerHTML = \"Duck Duck Go search\";\n break;\n case \"di\":\n document.getElementById(\"searchType\").innerHTML = \"Discogs search\";\n break;\n case \"i\":\n document.getElementById(\"searchType\").innerHTML = \"IMDB search\";\n break;\n case \"m\":\n document.getElementById(\"searchType\").innerHTML = \"TheMovieDB search\";\n break;\n case \"r\":\n document.getElementById(\"searchType\").innerHTML = \"Reddit search\";\n break;\n case \"q\":\n document.getElementById(\"searchType\").innerHTML = \"Qwant search\";\n break;\n case \"so\":\n document.getElementById(\"searchType\").innerHTML = \"Soundcloud search\";\n break;\n case \"s\":\n document.getElementById(\"searchType\").innerHTML = \"Spotify search\";\n break;\n case \"tv\":\n document.getElementById(\"searchType\").innerHTML = \"TheTVDB search\";\n break;\n case \"t\":\n document.getElementById(\"searchType\").innerHTML = \"Trakt search\";\n break;\n case \"y\":\n document.getElementById(\"searchType\").innerHTML = \"YouTube search\";\n break;\n case \"w\":\n document.getElementById(\"searchType\").innerHTML = \"Wikipedia search\";\n break;\n case \"p\":\n document.getElementById(\"searchType\").innerHTML = \"Plex search\";\n break;\n case \"rt\":\n document.getElementById(\"searchType\").innerHTML = \"Rotten Tomatoes search\";\n break;\n default:\n document.getElementById(\"searchType\").innerHTML = \"Invalid search\";\n break;\n }\n}else {\n document.getElementById(\"searchType\").innerHTML = \"Google search\";\n }\n}\nfunction search(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n if (text[0] === '/') {\n if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n window.location = \"https://www.allmusic.com/search/all/\" + subtext;\n break;\n case \"d\":\n window.location = \"https://duckduckgo.com/?q=\" + subtext;\n break;\n case \"di\":\n window.location = \"https://www.discogs.com/search/?q=\" + subtext;\n break;\n case \"i\":\n window.location = \"https://www.imdb.com/find?q=\" + subtext;\n break;\n case \"m\":\n window.location = \"https://www.themoviedb.org/search?query=\" + subtext;\n break;\n case \"r\":\n window.location = \"https://www.reddit.com/search?q=\" + subtext;\n break;\n case \"q\":\n window.location = \"https://www.qwant.com/?q=\" + subtext;\n break;\n case \"so\":\n window.location = \"https://soundcloud.com/search?q=\" + subtext;\n break;\n case \"s\":\n window.location = \"https://open.spotify.com/search/results/\" + subtext;\n break;\n case \"t\":\n window.location = \"https://trakt.tv/search?query=\" + subtext;\n break;\n case \"tv\":\n window.location = \"https://www.thetvdb.com/search?query=\" + subtext;\n break;\n case \"y\":\n window.location = \"https://www.youtube.com/results?search_query=\" + subtext;\n break;\n case \"w\":\n window.location = \"https://en.wikipedia.org/w/index.php?search=\" + subtext;\n break;\n case \"p\":\n window.location = \"https://app.plex.tv/desktop/#!/search?query=\" + subtext;\n break;\n case \"rt\":\n window.location = \"https://www.rottentomatoes.com/search?search=\" + subtext;\n break;\n }\n } else {\n var option = text.substr(1);\n switch (option) {\n case \"d\":\n window.location = \"https://www.duckduckgo.com\";\n break;\n case \"y\":\n window.location = \"https://www.youtube.com\";\n break;\n case \"r\":\n window.location = \"https://reddit.com\";\n break;\n case \"s\":\n window.location = \"https://open.spotify.com\";\n break;\n }\n }\n } else if (validURL(text)) {\n if (containsProtocol(text))\n window.location = text;\n else\n window.location = \"https://\" + text;\n } else {\n window.location = \"https://www.google.com/search?q=\" + text;\n }\n}\nfunction validURL(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/)?' + // protocol\n '((([a-z\\\\d]([a-z\\\\d-]*[a-z\\\\d])*)\\\\.)+[a-z]{2,}|' + // domain name\n '((\\\\d{1,3}\\\\.){3}\\\\d{1,3}))' + // OR ip (v4) address\n '(\\\\:\\\\d+)?(\\\\/[-a-z\\\\d%_.~+]*)*' + // port and path\n '(\\\\?[;&a-z\\\\d%_.~+=-]*)?' + // query string\n '(\\\\#[-a-z\\\\d_]*)?$', 'i'); // fragment locator\n return !!pattern.test(str);\n}\nfunction containsProtocol(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/){1}.*', 'i');\n return !!pattern.test(str);\n}\nString.prototype.replaceAll = function(search, replacement) {\n var target = this;\n return target.split(search).join(replacement);\n};\nfunction udpateDisplayedItems(e) {\n localStorage.setItem('contenttype', e.target.checked);\n if (e.target.checked) {\n localStorage.setItem('content-display', 'none');\n } else {\n localStorage.setItem('content-display', 'block');\n }\n setDisplayedItems();\n}\nfunction setDisplayedItems() {\n setValueFromLocalStorage('contenttype');\n setValueFromLocalStorage('content-display');\n}"]},"metadata":{},"sourceType":"module"}
\ No newline at end of file
diff --git a/node_modules/.cache/babel-loader/f7112fe6148994fc1c26aa249f948655.json b/node_modules/.cache/babel-loader/f7112fe6148994fc1c26aa249f948655.json
new file mode 100644
index 00000000..0c53eb13
--- /dev/null
+++ b/node_modules/.cache/babel-loader/f7112fe6148994fc1c26aa249f948655.json
@@ -0,0 +1 @@
+{"ast":null,"code":"const setValue = (property, value) => {\n if (value) {\n document.documentElement.style.setProperty(`--${property}`, value);\n const input = document.querySelector(`#${property}`);\n\n if (input) {\n value = value.replace('px', '');\n input.value = value;\n }\n }\n};\n\nconst setValueFromLocalStorage = property => {\n let value = localStorage.getItem(property);\n setValue(property, value);\n};\n\nconst setTheme = options => {\n for (let option of Object.keys(options)) {\n const property = option;\n const value = options[option];\n setValue(property, value);\n localStorage.setItem(property, value);\n }\n};\n\ndocument.addEventListener('DOMContentLoaded', () => {\n setValueFromLocalStorage('image-background');\n setValueFromLocalStorage('color-background');\n setValueFromLocalStorage('color-search-background');\n setValueFromLocalStorage('color-text-pri');\n setValueFromLocalStorage('color-text-acc');\n setValueFromLocalStorage('color-border');\n setValueFromLocalStorage('content-display');\n});\nconst dataThemeButtons = document.querySelectorAll('[data-theme]');\n\nfor (let i = 0; i < dataThemeButtons.length; i++) {\n dataThemeButtons[i].addEventListener('click', () => {\n const theme = dataThemeButtons[i].dataset.theme;\n\n switch (theme) {\n case 'blackboard':\n setTheme({\n 'image-background': 'none',\n 'color-background': '#1a1a1a',\n 'color-search-background': '#FFFDEA20',\n 'color-text-pri': '#FFFDEA',\n 'color-text-acc': '#5c5c5c',\n 'color-border': '#5c5c5c'\n });\n return;\n\n case 'gazette':\n setTheme({\n 'image-background': 'none',\n 'color-background': '#F2F7FF',\n 'color-search-background': '#00000020',\n 'color-text-pri': '#000000',\n 'color-text-acc': '#5c5c5c',\n 'color-border': '#5c5c5c'\n });\n return;\n\n case 'espresso':\n setTheme({\n 'image-background': 'none',\n 'color-background': '#21211F',\n 'color-search-background': '#D1B59A20',\n 'color-text-pri': '#D1B59A',\n 'color-text-acc': '#4E4E4E',\n 'color-border': '#4E4E4E'\n });\n return;\n\n case 'cab':\n setTheme({\n 'image-background': 'none',\n 'color-background': '#F6D305',\n 'color-search-background': '#1F1F1F20',\n 'color-text-pri': '#1F1F1F',\n 'color-text-acc': '#424242',\n 'color-border': '#424242'\n });\n return;\n\n case 'cloud':\n setTheme({\n 'image-background': 'none',\n 'color-background': '#f1f2f0',\n 'color-search-background': '#35342F20',\n 'color-text-pri': '#35342f',\n 'color-text-acc': '#37bbe4',\n 'color-border': '#37bbe4'\n });\n return;\n\n case 'lime':\n setTheme({\n 'image-background': 'none',\n 'color-background': '#263238',\n 'color-search-background': '#AABBC320',\n 'color-text-pri': '#AABBC3',\n 'color-text-acc': '#aeea00',\n 'color-border': '#aeea00'\n });\n return;\n\n case 'white':\n setTheme({\n 'image-background': 'none',\n 'color-background': '#ffffff',\n 'color-search-background': '#22222220',\n 'color-text-pri': '#222222',\n 'color-text-acc': '#dddddd',\n 'color-border': '#dddddd'\n });\n return;\n\n case 'tron':\n setTheme({\n 'image-background': 'none',\n 'color-background': '#242B33',\n 'color-search-background': '#EFFBFF20',\n 'color-text-pri': '#EFFBFF',\n 'color-text-acc': '#6EE2FF',\n 'color-border': '#6EE2FF'\n });\n return;\n\n case 'blues':\n setTheme({\n 'image-background': 'none',\n 'color-background': '#2B2C56',\n 'color-search-background': '#EFF1FC20',\n 'color-text-pri': '#EFF1FC',\n 'color-text-acc': '#6677EB',\n 'color-border': '#6677EB'\n });\n return;\n\n case 'passion':\n setTheme({\n 'image-background': 'none',\n 'color-background': '#f5f5f5',\n 'color-search-background': '#12005E20',\n 'color-text-pri': '#12005e',\n 'color-text-acc': '#8e24aa',\n 'color-border': '#8e24aa'\n });\n return;\n\n case 'chalk':\n setTheme({\n 'image-background': 'none',\n 'color-background': '#263238',\n 'color-search-background': '#AABBC320',\n 'color-text-pri': '#AABBC3',\n 'color-text-acc': '#FF869A',\n 'color-border': '#FF869A'\n });\n return;\n\n case 'paper':\n setTheme({\n 'image-background': 'none',\n 'color-background': '#F8F6F1',\n 'color-search-background': '#4C432E20',\n 'color-text-pri': '#4C432E',\n 'color-text-acc': '#AA9A73',\n 'color-border': '#AA9A73'\n });\n return;\n\n case 'cyberpunk':\n setTheme({\n 'image-background': 'none',\n 'color-background': '#010115',\n 'color-search-background': '#FF2A6D59',\n 'color-text-pri': '#FF2A6D',\n 'color-text-acc': '#09D5E8',\n 'color-border': '#F3E600'\n });\n return;\n\n case 'quadra':\n setTheme({\n 'image-background': \"url('../images/quadra.jpg')\",\n 'color-background': '#01011550',\n 'color-search-background': '#FF2A6D59',\n 'color-text-pri': '#FF2A6DBF',\n 'color-text-acc': '#09D5E8',\n 'color-border': '#F3E600BF'\n });\n return;\n\n case 'panam':\n setTheme({\n 'image-background': \"url('../images/panam.png')\",\n 'color-background': '#010115BF',\n 'color-search-background': '#FF2A6D59',\n 'color-text-pri': '#FF2A6D',\n 'color-text-acc': '#09d5e8',\n 'color-border': '#F3E600'\n });\n return;\n\n case 'touch':\n setTheme({\n 'image-background': \"url('../images/touch.jpg')\",\n 'color-background': '#FFFFFF30',\n 'color-search-background': '#FF709C39',\n 'color-text-pri': '#840D1D',\n 'color-text-acc': '#2F4766',\n 'color-border': '#840D1D'\n });\n return;\n\n case 'peek':\n setTheme({\n 'image-background': \"url('../images/img30.jpg')\",\n 'color-background': '#FFFFFF60',\n 'color-search-background': '#487B7F59',\n 'color-text-pri': '#1C3032',\n 'color-text-acc': '#737642',\n 'color-border': '#D6B79E'\n });\n return;\n }\n });\n}","map":{"version":3,"sources":["/home/seanedmunds/dev/home-page/src/themer.js"],"names":["setValue","property","value","document","documentElement","style","setProperty","input","querySelector","replace","setValueFromLocalStorage","localStorage","getItem","setTheme","options","option","Object","keys","setItem","addEventListener","dataThemeButtons","querySelectorAll","i","length","theme","dataset"],"mappings":"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","sourcesContent":["const setValue = (property, value) => {\n if (value) {\n document.documentElement.style.setProperty(`--${property}`, value);\n\n const input = document.querySelector(`#${property}`);\n if (input) {\n value = value.replace('px', '');\n input.value = value;\n }\n }\n};\n\nconst setValueFromLocalStorage = property => {\n let value = localStorage.getItem(property);\n setValue(property, value);\n};\n\nconst setTheme = options => {\n for (let option of Object.keys(options)) {\n const property = option;\n const value = options[option];\n\n setValue(property, value);\n localStorage.setItem(property, value);\n }\n}\n\ndocument.addEventListener('DOMContentLoaded', () => {\n setValueFromLocalStorage('image-background');\n setValueFromLocalStorage('color-background');\n setValueFromLocalStorage('color-search-background');\n setValueFromLocalStorage('color-text-pri');\n setValueFromLocalStorage('color-text-acc');\n setValueFromLocalStorage('color-border');\n setValueFromLocalStorage('content-display');\n});\n\nconst dataThemeButtons = document.querySelectorAll('[data-theme]');\n\nfor (let i = 0; i < dataThemeButtons.length; i++) {\n dataThemeButtons[i].addEventListener('click', () => {\n const theme = dataThemeButtons[i].dataset.theme;\n\n switch (theme) {\n case 'blackboard':\n setTheme({\n\t\t 'image-background': 'none',\n 'color-background': '#1a1a1a',\n 'color-search-background': '#FFFDEA20',\n 'color-text-pri': '#FFFDEA',\n 'color-text-acc': '#5c5c5c',\n 'color-border': '#5c5c5c'\n });\n return;\n\n case 'gazette':\n setTheme({\n\t\t 'image-background': 'none',\n 'color-background': '#F2F7FF',\n 'color-search-background': '#00000020',\n 'color-text-pri': '#000000',\n 'color-text-acc': '#5c5c5c',\n 'color-border': '#5c5c5c'\n });\n return;\n\n case 'espresso':\n setTheme({\n\t\t 'image-background': 'none',\n 'color-background': '#21211F',\n 'color-search-background': '#D1B59A20',\n 'color-text-pri': '#D1B59A',\n 'color-text-acc': '#4E4E4E',\n 'color-border': '#4E4E4E'\n });\n return;\n\n case 'cab':\n setTheme({\n\t\t 'image-background': 'none',\n 'color-background': '#F6D305',\n 'color-search-background': '#1F1F1F20',\n 'color-text-pri': '#1F1F1F',\n 'color-text-acc': '#424242',\n 'color-border': '#424242'\n });\n return;\n\n case 'cloud':\n setTheme({\n\t\t 'image-background': 'none',\n 'color-background': '#f1f2f0',\n 'color-search-background': '#35342F20',\n 'color-text-pri': '#35342f',\n 'color-text-acc': '#37bbe4',\n 'color-border': '#37bbe4'\n });\n return;\n\n case 'lime':\n setTheme({\n\t\t 'image-background': 'none',\n 'color-background': '#263238',\n 'color-search-background': '#AABBC320',\n 'color-text-pri': '#AABBC3',\n 'color-text-acc': '#aeea00',\n 'color-border': '#aeea00'\n });\n return;\n\n case 'white':\n setTheme({\n\t\t 'image-background': 'none',\n 'color-background': '#ffffff',\n 'color-search-background': '#22222220',\n 'color-text-pri': '#222222',\n 'color-text-acc': '#dddddd',\n 'color-border': '#dddddd'\n });\n return;\n\n case 'tron':\n setTheme({\n\t\t 'image-background': 'none',\n 'color-background': '#242B33',\n 'color-search-background': '#EFFBFF20',\n 'color-text-pri': '#EFFBFF',\n 'color-text-acc': '#6EE2FF',\n 'color-border': '#6EE2FF'\n });\n return;\n\n case 'blues':\n setTheme({\n\t\t 'image-background': 'none',\n 'color-background': '#2B2C56',\n 'color-search-background': '#EFF1FC20',\n 'color-text-pri': '#EFF1FC',\n 'color-text-acc': '#6677EB',\n 'color-border': '#6677EB'\n });\n return;\n\n case 'passion':\n setTheme({\n\t\t 'image-background': 'none',\n 'color-background': '#f5f5f5',\n 'color-search-background': '#12005E20',\n 'color-text-pri': '#12005e',\n 'color-text-acc': '#8e24aa',\n 'color-border': '#8e24aa'\n });\n return;\n\n case 'chalk':\n setTheme({\n\t\t 'image-background': 'none',\n 'color-background': '#263238',\n 'color-search-background': '#AABBC320',\n 'color-text-pri': '#AABBC3',\n 'color-text-acc': '#FF869A',\n 'color-border': '#FF869A'\n });\n return;\n\n case 'paper':\n setTheme({\n\t\t 'image-background': 'none',\n 'color-background': '#F8F6F1',\n 'color-search-background': '#4C432E20',\n 'color-text-pri': '#4C432E',\n 'color-text-acc': '#AA9A73',\n 'color-border': '#AA9A73'\n });\n return;\n\n\t case 'cyberpunk':\n\t\tsetTheme({\n\t\t 'image-background': 'none',\n\t\t 'color-background': '#010115',\n\t\t 'color-search-background': '#FF2A6D59',\n\t\t 'color-text-pri': '#FF2A6D',\n\t\t 'color-text-acc': '#09D5E8',\n\t\t 'color-border': '#F3E600',\n\t\t});\n\t\treturn;\n\n\t case 'quadra':\n\t\tsetTheme({\n\t\t 'image-background': \"url('../images/quadra.jpg')\",\n\t\t 'color-background': '#01011550',\n\t\t 'color-search-background': '#FF2A6D59',\n\t\t 'color-text-pri': '#FF2A6DBF',\n\t\t 'color-text-acc': '#09D5E8',\n\t\t 'color-border': '#F3E600BF',\n\t\t});\n\t\treturn;\n\n\t case 'panam':\n\t\tsetTheme({\n\t\t 'image-background': \"url('../images/panam.png')\",\n\t\t 'color-background': '#010115BF',\n\t\t 'color-search-background': '#FF2A6D59',\n\t\t 'color-text-pri': '#FF2A6D',\n\t\t 'color-text-acc': '#09d5e8',\n\t\t 'color-border': '#F3E600',\n\t\t});\n\t return;\n\n\t case 'touch':\n\t\tsetTheme({\n\t\t 'image-background': \"url('../images/touch.jpg')\",\n\t\t 'color-background': '#FFFFFF30',\n\t\t 'color-search-background': '#FF709C39',\n\t\t 'color-text-pri': '#840D1D',\n\t\t 'color-text-acc': '#2F4766',\n\t\t 'color-border': '#840D1D'\n\t\t});\n\t\treturn;\n\t case 'peek':\n\t\tsetTheme({\n\t\t 'image-background': \"url('../images/img30.jpg')\",\n\t\t 'color-background': '#FFFFFF60',\n\t\t 'color-search-background': '#487B7F59',\n\t\t 'color-text-pri': '#1C3032',\n\t\t 'color-text-acc': '#737642',\n\t\t 'color-border': '#D6B79E'\n\t\t});\n\t\treturn;\n }\n })\n}\n"]},"metadata":{},"sourceType":"module"}
\ No newline at end of file
diff --git a/node_modules/.cache/babel-loader/f79b8a9f492587a84b16286cae245a30.json b/node_modules/.cache/babel-loader/f79b8a9f492587a84b16286cae245a30.json
new file mode 100644
index 00000000..8b52f950
--- /dev/null
+++ b/node_modules/.cache/babel-loader/f79b8a9f492587a84b16286cae245a30.json
@@ -0,0 +1 @@
+{"ast":null,"code":"var _jsxFileName = \"/home/seanedmunds/dev/home-page/src/index.js\",\n _s = $RefreshSig$();\n\nimport React from 'react';\nimport { useState, useEffect } from 'react';\nimport ReactDOM from 'react-dom'; //import { unstable_createPortal } from 'react-dom';\n\nimport './index.css';\nimport { jsxDEV as _jsxDEV } from \"react/jsx-dev-runtime\";\n\nfunction Homepage() {\n return /*#__PURE__*/_jsxDEV(\"main\", {\n id: \"container\",\n className: \"fade\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Search, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 11,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 10,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Header, {\n date: date(),\n greet: greet()\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 14,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 13,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Applications, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 20,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 19,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Bookmarks, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 23,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 22,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(ModalMenu, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 26,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 25,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(ModalInit, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 29,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 28,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 9,\n columnNumber: 5\n }, this);\n}\n\n_c = Homepage;\n\nfunction Search() {\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"search\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"abackground\",\n children: [/*#__PURE__*/_jsxDEV(\"input\", {\n name: \"keywords\",\n type: \"text\",\n className: \"keyword\",\n id: \"keywords\",\n size: \"50\",\n spellCheck: \"true\",\n placeholder: \"\"\n /*onFocus={this.placeholder = \"\"} onBlur={this.placeholder = ''}*/\n ,\n autoComplete: \"off\",\n autoFocus: true,\n onKeyUp: handleKeyPress\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 39,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n id: \"searchType\",\n className: \"Input-label\",\n children: \"Google search\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 40,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 38,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 37,\n columnNumber: 5\n }, this);\n}\n\n_c2 = Search;\n\nfunction Header(props) {\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"header\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n id: \"greeting_block\",\n children: /*#__PURE__*/_jsxDEV(\"h1\", {\n id: \"header_greet\",\n children: props.greet\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 50,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 49,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"date_block\",\n children: [/*#__PURE__*/_jsxDEV(\"h2\", {\n id: \"header_date\",\n children: props.date\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 53,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(Clock, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 54,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 52,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 48,\n columnNumber: 5\n }, this);\n}\n\n_c3 = Header;\n\nfunction Applications() {\n let appList = getApps();\n var items = [];\n\n for (var i = 0; i < appList.apps.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(App, {\n name: appList.apps[i].name,\n url: appList.apps[i].url,\n icon: appList.apps[i].icon,\n NSFW: appList.apps[i].NSFW\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 65,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"apps\",\n children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n children: \"Applications\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 76,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"apps_loop\",\n children: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 77,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 75,\n columnNumber: 5\n }, this);\n}\n\n_c4 = Applications;\n\nfunction App(props) {\n let classNameType = props.NSFW + \"-content\";\n let hrefUrl = \"https://\" + props.url;\n let iconName = \"mdi-\" + props.icon;\n return /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: hrefUrl,\n className: classNameType,\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_item\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_icon\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify icon\",\n \"data-icon\": iconName\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 93,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 92,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_text\",\n children: [/*#__PURE__*/_jsxDEV(\"span\", {\n id: \"app-name\",\n children: props.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 96,\n columnNumber: 13\n }, this), /*#__PURE__*/_jsxDEV(\"span\", {\n id: \"app-address\",\n children: props.url\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 97,\n columnNumber: 13\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 95,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 91,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 90,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 89,\n columnNumber: 5\n }, this);\n}\n\n_c5 = App;\n\nfunction Bookmarks() {\n let bookmarkList = getLinks();\n var items = [];\n\n for (var i = 0; i < bookmarkList.bookmarks.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(LinkGroups, {\n category: bookmarkList.bookmarks[i].category,\n links: bookmarkList.bookmarks[i].links\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 110,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"links\",\n children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n children: \"Bookmarks\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 119,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"links_loop\",\n children: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 120,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 118,\n columnNumber: 5\n }, this);\n}\n\n_c6 = Bookmarks;\n\nfunction LinkGroups(props) {\n var items = [];\n\n for (var i = 0; i < props.links.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(LinkItem, {\n link: props.links[i]\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 131,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"links_item\",\n children: [/*#__PURE__*/_jsxDEV(\"h4\", {\n children: props.category\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 139,\n columnNumber: 7\n }, this), items]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 138,\n columnNumber: 5\n }, this);\n}\n\n_c7 = LinkGroups;\n\nfunction LinkItem(props) {\n return /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: props.link.url,\n className: \"theme_color-border theme_text-select\",\n children: props.link.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 148,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 147,\n columnNumber: 5\n }, this);\n}\n\n_c8 = LinkItem;\n\nfunction ModalMenu() {\n var providers = getProviders();\n var items = [];\n\n for (var i = 0; i < providers.providers.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(Provider, {\n provider: providers.providers[i]\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 158,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"modal\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n children: [/*#__PURE__*/_jsxDEV(\"header\", {\n id: \"modal-header\",\n children: [/*#__PURE__*/_jsxDEV(\"h1\", {\n children: \"Options\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 168,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n href: \"#\",\n title: \"Close\",\n className: \"modal-close\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-close\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 170,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 169,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 167,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"h2\", {\n children: \"Color themes\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 174,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"modal-theme\",\n children: [/*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"blackboard\",\n className: \"theme-button theme-blackboard\",\n onClick: updateTheme,\n children: \"Blackboard\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 177,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"gazette\",\n className: \"theme-button theme-gazette\",\n children: \"Gazette\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 178,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"espresso\",\n className: \"theme-button theme-espresso\",\n children: \"Espresso\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 179,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cab\",\n className: \"theme-button theme-cab\",\n children: \"Cab\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 180,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cloud\",\n className: \"theme-button theme-cloud\",\n children: \"Cloud\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 181,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"lime\",\n className: \"theme-button theme-lime\",\n children: \"Lime\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 182,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"passion\",\n className: \"theme-button theme-passion\",\n children: \"Passion\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 183,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"blues\",\n className: \"theme-button theme-blues\",\n children: \"Blues\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 184,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"chalk\",\n className: \"theme-button theme-chalk\",\n children: \"Chalk\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 185,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"tron\",\n className: \"theme-button theme-tron\",\n children: \"Tron\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 186,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"paper\",\n className: \"theme-button theme-paper\",\n children: \"Paper\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 187,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cyberpunk\",\n className: \"theme-button theme-cyberpunk\",\n children: \"Cyberpunk\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 188,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"quadra\",\n className: \"theme-button theme-panam\",\n children: \"Quadra\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 189,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"panam\",\n className: \"theme-button theme-panam\",\n children: \"Panam\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 190,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"touch\",\n className: \"theme-button theme-touch\",\n children: \"Touch\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 191,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"peek\",\n className: \"theme-button theme-peek\",\n children: \"Peek\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 192,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 176,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"h2\", {\n children: \"Search options\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 196,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"providers\",\n children: /*#__PURE__*/_jsxDEV(\"table\", {\n children: /*#__PURE__*/_jsxDEV(\"tbody\", {\n children: [/*#__PURE__*/_jsxDEV(\"tr\", {\n children: [/*#__PURE__*/_jsxDEV(\"th\", {\n children: \"Website\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 201,\n columnNumber: 19\n }, this), /*#__PURE__*/_jsxDEV(\"th\", {\n children: \"Prefix\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 202,\n columnNumber: 19\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 200,\n columnNumber: 17\n }, this), items]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 199,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 198,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 197,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"header\", {\n id: \"modal-footer\",\n children: [/*#__PURE__*/_jsxDEV(\"a\", {\n href: \"https://github.com/jeroenpardon/\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-github-box\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 210,\n columnNumber: 54\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 210,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n href: \"https://materialdesignicons.com/\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-material-design\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 211,\n columnNumber: 54\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 211,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"sneaky\",\n children: [/*#__PURE__*/_jsxDEV(\"input\", {\n type: \"checkbox\",\n id: \"contenttype\",\n onChange: \"nsfw(this)\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 212,\n columnNumber: 35\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n for: \"contenttype\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-domino-mask\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 213,\n columnNumber: 36\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 213,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 212,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 209,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 166,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 165,\n columnNumber: 5\n }, this);\n}\n\n_c9 = ModalMenu;\n\nfunction Provider(props) {\n return /*#__PURE__*/_jsxDEV(\"tr\", {\n children: [/*#__PURE__*/_jsxDEV(\"td\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: props.provider.url,\n children: props.provider.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 223,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 223,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"td\", {\n children: props.provider.prefix\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 224,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 222,\n columnNumber: 5\n }, this);\n}\n\n_c10 = Provider;\n\nfunction ModalInit() {\n return /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"modal_init\",\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n className: \"btn\",\n href: \"#modal\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify icon\",\n \"data-icon\": \"mdi-xbox-controller-menu\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 233,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 232,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 231,\n columnNumber: 5\n }, this);\n}\n\n_c11 = ModalInit;\nReactDOM.render( /*#__PURE__*/_jsxDEV(Homepage, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 240,\n columnNumber: 3\n}, this), document.getElementById('root')); //Functions below this line are for calculating data for\n//other functions\n\nfunction date() {\n let currentDate = new Date();\n let dateOptions = {\n weekday: \"long\",\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\"\n };\n let date = currentDate.toLocaleDateString(\"en-GB\", dateOptions);\n return date;\n}\n\nfunction fixDigits(k) {\n if (k < 10) {\n return \"0\" + k;\n } else {\n return k;\n }\n}\n\nfunction greet() {\n let currentTime = new Date();\n let greet = Math.floor(currentTime.getHours() / 6);\n let easterEggChance = Math.floor(Math.random() * 100);\n\n let greetings = require('./messages.json');\n\n let timeBased = [];\n let easterEggs = [];\n\n for (var i = 0; i < greetings.messages.length; i++) {\n if (greetings.messages[i].easteregg === \"FALSE\") {\n timeBased = timeBased.concat(greetings.messages[i]);\n } else {\n easterEggs = easterEggs.concat(greetings.messages[i]);\n }\n }\n\n if (easterEggChance > 10) {\n return timeBased[greet].message;\n } else {\n let easterEggText = Math.floor(Math.random() * easterEggs.length);\n return easterEggs[easterEggText].message;\n }\n}\n\nfunction Clock() {\n _s();\n\n const [date, setDate] = useState(new Date());\n\n function refreshClock() {\n setDate(new Date());\n }\n\n useEffect(() => {\n const timerId = setInterval(refreshClock, 1000);\n return function cleanup() {\n clearInterval(timerId);\n };\n }, []);\n var hour = date.getHours();\n var minutes = date.getMinutes(); //var seconds = date.getSeconds();\n\n var midday = \"AM\";\n midday = hour >= 12 ? \"PM\" : \"AM\";\n hour = hour === 0 ? 12 : hour > 12 ? hour - 12 : hour;\n minutes = fixDigits(minutes); //seconds = fixDigits(seconds);\n\n let time = hour + \":\" + minutes + \" \" + midday;\n return /*#__PURE__*/_jsxDEV(\"h2\", {\n id: \"clock\",\n children: time\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 311,\n columnNumber: 5\n }, this);\n}\n\n_s(Clock, \"Gqi45WOZhU2c0BLYX0HoJeiR0fk=\");\n\n_c12 = Clock;\n\nfunction getApps() {\n let applications = require('./apps.json');\n\n return applications;\n}\n\nfunction getLinks() {\n let links = require('./links.json');\n\n return links;\n}\n\nfunction getProviders() {\n let providers = require('./providers.json');\n\n return providers;\n}\n\nfunction getThemes() {\n let themes = require('./themes.json');\n\n return themes;\n}\n\nfunction updateTheme(e) {\n var themes = getThemes();\n var themeName = e.target.innerHTML.toLowerCase();\n console.log(themes);\n}\n\nfunction handleKeyPress(e) {\n var sindex = 0;\n var cycle = false;\n var key = e.keyCode || e.which;\n var text = e.target.value.replaceAll(\"+\", \"%2B\");\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n\n if (key == 13) {\n // Search functions\n search(text);\n }\n\n if (key == 9) {\n // Tab Completion Functions\n e.preventDefault();\n e.stopPropagation();\n\n if (text[0] === ';') {\n switch (option) {\n case 't':\n var streamers = ['admiralbahroo', 'moonmoon_ow', 'witwix'];\n\n if (!subtext || cycle) {\n cycle = true;\n if (sindex > streamers.length - 1) sindex = 0;\n document.getElementById(\"keywords\").value = ';t ' + streamers[sindex++];\n return;\n }\n\n for (var streamer of streamers) {\n if (subtext === streamer.substr(0, subtext.length)) {\n document.getElementById(\"keywords\").value = ';t ' + streamer;\n return;\n }\n }\n\n break;\n }\n }\n }\n\n if (key == 32) {\n //Space to go to search\n updateLabel(text);\n }\n\n sindex = 0;\n cycle = false;\n updateLabel(text);\n}\n\nfunction updateLabel(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n\n if (text[0] === '/') {\n // if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n document.getElementById(\"searchType\").innerHTML = \"Allmusic search\";\n break;\n\n case \"d\":\n document.getElementById(\"searchType\").innerHTML = \"Duck Duck Go search\";\n break;\n\n case \"di\":\n document.getElementById(\"searchType\").innerHTML = \"Discogs search\";\n break;\n\n case \"i\":\n document.getElementById(\"searchType\").innerHTML = \"IMDB search\";\n break;\n\n case \"m\":\n document.getElementById(\"searchType\").innerHTML = \"TheMovieDB search\";\n break;\n\n case \"r\":\n document.getElementById(\"searchType\").innerHTML = \"Reddit search\";\n break;\n\n case \"q\":\n document.getElementById(\"searchType\").innerHTML = \"Qwant search\";\n break;\n\n case \"so\":\n document.getElementById(\"searchType\").innerHTML = \"Soundcloud search\";\n break;\n\n case \"s\":\n document.getElementById(\"searchType\").innerHTML = \"Spotify search\";\n break;\n\n case \"tv\":\n document.getElementById(\"searchType\").innerHTML = \"TheTVDB search\";\n break;\n\n case \"t\":\n document.getElementById(\"searchType\").innerHTML = \"Trakt search\";\n break;\n\n case \"y\":\n document.getElementById(\"searchType\").innerHTML = \"YouTube search\";\n break;\n\n case \"w\":\n document.getElementById(\"searchType\").innerHTML = \"Wikipedia search\";\n break;\n\n case \"p\":\n document.getElementById(\"searchType\").innerHTML = \"Plex search\";\n break;\n\n case \"rt\":\n document.getElementById(\"searchType\").innerHTML = \"Rotten Tomatoes search\";\n break;\n\n default:\n document.getElementById(\"searchType\").innerHTML = \"Invalid search\";\n break;\n }\n } else {\n document.getElementById(\"searchType\").innerHTML = \"Google search\";\n }\n}\n\nfunction search(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n\n if (text[0] === '/') {\n if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n window.location = \"https://www.allmusic.com/search/all/\" + subtext;\n break;\n\n case \"d\":\n window.location = \"https://duckduckgo.com/?q=\" + subtext;\n break;\n\n case \"di\":\n window.location = \"https://www.discogs.com/search/?q=\" + subtext;\n break;\n\n case \"i\":\n window.location = \"https://www.imdb.com/find?q=\" + subtext;\n break;\n\n case \"m\":\n window.location = \"https://www.themoviedb.org/search?query=\" + subtext;\n break;\n\n case \"r\":\n window.location = \"https://www.reddit.com/search?q=\" + subtext;\n break;\n\n case \"q\":\n window.location = \"https://www.qwant.com/?q=\" + subtext;\n break;\n\n case \"so\":\n window.location = \"https://soundcloud.com/search?q=\" + subtext;\n break;\n\n case \"s\":\n window.location = \"https://open.spotify.com/search/results/\" + subtext;\n break;\n\n case \"t\":\n window.location = \"https://trakt.tv/search?query=\" + subtext;\n break;\n\n case \"tv\":\n window.location = \"https://www.thetvdb.com/search?query=\" + subtext;\n break;\n\n case \"y\":\n window.location = \"https://www.youtube.com/results?search_query=\" + subtext;\n break;\n\n case \"w\":\n window.location = \"https://en.wikipedia.org/w/index.php?search=\" + subtext;\n break;\n\n case \"p\":\n window.location = \"https://app.plex.tv/desktop/#!/search?query=\" + subtext;\n break;\n\n case \"rt\":\n window.location = \"https://www.rottentomatoes.com/search?search=\" + subtext;\n break;\n }\n } else {\n var option = text.substr(1);\n\n switch (option) {\n case \"d\":\n window.location = \"https://www.duckduckgo.com\";\n break;\n\n case \"y\":\n window.location = \"https://www.youtube.com\";\n break;\n\n case \"r\":\n window.location = \"https://reddit.com\";\n break;\n\n case \"s\":\n window.location = \"https://open.spotify.com\";\n break;\n }\n }\n } else if (validURL(text)) {\n if (containsProtocol(text)) window.location = text;else window.location = \"https://\" + text;\n } else {\n window.location = \"https://www.google.com/search?q=\" + text;\n }\n} // Source: https://stackoverflow.com/questions/5717093/check-if-a-javascript-string-is-a-url\n\n\nfunction validURL(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/)?' + // protocol\n '((([a-z\\\\d]([a-z\\\\d-]*[a-z\\\\d])*)\\\\.)+[a-z]{2,}|' + // domain name\n '((\\\\d{1,3}\\\\.){3}\\\\d{1,3}))' + // OR ip (v4) address\n '(\\\\:\\\\d+)?(\\\\/[-a-z\\\\d%_.~+]*)*' + // port and path\n '(\\\\?[;&a-z\\\\d%_.~+=-]*)?' + // query string\n '(\\\\#[-a-z\\\\d_]*)?$', 'i'); // fragment locator\n\n return !!pattern.test(str);\n}\n\nfunction containsProtocol(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/){1}.*', 'i');\n return !!pattern.test(str);\n}\n\nString.prototype.replaceAll = function (search, replacement) {\n var target = this;\n return target.split(search).join(replacement);\n};\n\nvar _c, _c2, _c3, _c4, _c5, _c6, _c7, _c8, _c9, _c10, _c11, _c12;\n\n$RefreshReg$(_c, \"Homepage\");\n$RefreshReg$(_c2, \"Search\");\n$RefreshReg$(_c3, \"Header\");\n$RefreshReg$(_c4, \"Applications\");\n$RefreshReg$(_c5, \"App\");\n$RefreshReg$(_c6, \"Bookmarks\");\n$RefreshReg$(_c7, \"LinkGroups\");\n$RefreshReg$(_c8, \"LinkItem\");\n$RefreshReg$(_c9, \"ModalMenu\");\n$RefreshReg$(_c10, \"Provider\");\n$RefreshReg$(_c11, \"ModalInit\");\n$RefreshReg$(_c12, \"Clock\");","map":{"version":3,"sources":["/home/seanedmunds/dev/home-page/src/index.js"],"names":["React","useState","useEffect","ReactDOM","Homepage","date","greet","Search","handleKeyPress","Header","props","Applications","appList","getApps","items","i","apps","length","push","name","url","icon","NSFW","App","classNameType","hrefUrl","iconName","Bookmarks","bookmarkList","getLinks","bookmarks","category","links","LinkGroups","LinkItem","link","ModalMenu","providers","getProviders","updateTheme","Provider","provider","prefix","ModalInit","render","document","getElementById","currentDate","Date","dateOptions","weekday","year","month","day","toLocaleDateString","fixDigits","k","currentTime","Math","floor","getHours","easterEggChance","random","greetings","require","timeBased","easterEggs","messages","easteregg","concat","message","easterEggText","Clock","setDate","refreshClock","timerId","setInterval","cleanup","clearInterval","hour","minutes","getMinutes","midday","time","applications","getThemes","themes","e","themeName","target","innerHTML","toLowerCase","console","log","sindex","cycle","key","keyCode","which","text","value","replaceAll","option","substr","indexOf","subtext","search","preventDefault","stopPropagation","streamers","streamer","updateLabel","window","location","validURL","containsProtocol","str","pattern","RegExp","test","String","prototype","replacement","split","join"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { useState, useEffect } from 'react';\nimport ReactDOM from 'react-dom';\n//import { unstable_createPortal } from 'react-dom';\nimport './index.css';\n\nfunction Homepage() {\n return (\n \n \n \n
\n \n \n
\n \n \n \n
\n \n \n
\n \n \n
\n \n );\n}\n\nfunction Search() {\n return (\n \n )\n}\n\nfunction Header(props) {\n return (\n \n );\n}\n\nfunction Applications() {\n let appList = getApps();\n var items = [];\n for (var i = 0; i < appList.apps.length; i++) {\n items.push(\n \n );\n }\n return (\n \n Applications
\n \n {items}\n
\n \n );\n}\n\nfunction App(props) {\n let classNameType = props.NSFW + \"-content\";\n let hrefUrl = \"https://\" + props.url;\n let iconName = \"mdi-\" + props.icon;\n return (\n \n );\n}\n\nfunction Bookmarks() {\n let bookmarkList = getLinks();\n var items = [];\n for (var i = 0; i < bookmarkList.bookmarks.length; i++) {\n items.push(\n \n );\n }\n return (\n \n Bookmarks
\n \n {items}\n
\n \n );\n}\n\nfunction LinkGroups(props) {\n var items = [];\n for (var i = 0; i < props.links.length; i++) {\n items.push(\n \n );\n }\n return (\n \n
{props.category}
\n {items}\n \n );\n}\n\nfunction LinkItem(props) {\n return (\n \n );\n}\n\nfunction ModalMenu() {\n var providers = getProviders();\n var items = [];\n for (var i = 0; i < providers.providers.length; i++) {\n items.push(\n \n );\n }\n return (\n \n \n \n\n
Color themes
\n\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n\n\n
Search options
\n
\n \n \n \n | Website | \n Prefix | \n
\n {items}\n \n
\n \n\n \n
\n \n );\n}\n\nfunction Provider(props) {\n return (\n \n | {props.provider.name} | \n {props.provider.prefix} | \n
\n );\n}\n\nfunction ModalInit() {\n return (\n \n );\n}\n\nReactDOM.render(\n ,\n document.getElementById('root')\n);\n\n//Functions below this line are for calculating data for\n//other functions\n\nfunction date() {\n let currentDate = new Date();\n let dateOptions = {\n weekday: \"long\",\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\"\n };\n let date = currentDate.toLocaleDateString(\"en-GB\", dateOptions);\n return date;\n}\nfunction fixDigits(k) {\n if (k < 10) {\n return \"0\" + k;\n }\n else {\n return k;\n }\n}\nfunction greet() {\n let currentTime = new Date();\n let greet = Math.floor(currentTime.getHours() / 6);\n let easterEggChance = Math.floor(Math.random() * 100);\n let greetings = require('./messages.json');\n let timeBased = [];\n let easterEggs = [];\n for (var i = 0; i < greetings.messages.length; i++) {\n if (greetings.messages[i].easteregg === \"FALSE\") {\n timeBased = timeBased.concat(greetings.messages[i]);\n } else {\n easterEggs = easterEggs.concat(greetings.messages[i]);\n }\n }\n if (easterEggChance > 10) {\n return timeBased[greet].message;\n } else {\n let easterEggText = Math.floor(Math.random() * easterEggs.length);\n return easterEggs[easterEggText].message;\n }\n}\nfunction Clock() {\n const [date, setDate] = useState(new Date());\n\n function refreshClock() {\n setDate(new Date());\n }\n useEffect(() => {\n const timerId = setInterval(refreshClock, 1000);\n return function cleanup() {\n clearInterval(timerId);\n };\n }, []);\n\n var hour = date.getHours();\n var minutes = date.getMinutes();\n //var seconds = date.getSeconds();\n var midday = \"AM\";\n midday = (hour >= 12) ? \"PM\" : \"AM\";\n hour = (hour === 0) ? 12 : ((hour > 12) ? (hour - 12) : hour);\n minutes = fixDigits(minutes);\n //seconds = fixDigits(seconds);\n let time = hour + \":\" + minutes + \" \" + midday;\n\n return (\n {time}
\n\n );\n}\nfunction getApps() {\n let applications = require('./apps.json');\n return applications;\n}\nfunction getLinks() {\n let links = require('./links.json');\n return links;\n}\nfunction getProviders() {\n let providers = require('./providers.json');\n return providers;\n}\nfunction getThemes() {\n let themes = require('./themes.json');\n return themes;\n}\n\nfunction updateTheme(e) {\n var themes = getThemes();\n var themeName = e.target.innerHTML.toLowerCase();\n console.log(themes);\n}\n\nfunction handleKeyPress(e) {\n var sindex = 0;\n var cycle = false;\n var key = e.keyCode || e.which;\n var text = e.target.value.replaceAll(\"+\", \"%2B\");\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n if (key == 13) { // Search functions\n search(text);\n }\n if (key == 9) { // Tab Completion Functions\n e.preventDefault();\n e.stopPropagation();\n if (text[0] === ';') {\n switch (option) {\n case 't':\n var streamers = ['admiralbahroo', 'moonmoon_ow', 'witwix'];\n if (!subtext || cycle) {\n cycle = true;\n if (sindex > streamers.length - 1) sindex = 0;\n document.getElementById(\"keywords\").value = ';t ' + streamers[sindex++];\n return;\n }\n for (var streamer of streamers) {\n if (subtext === streamer.substr(0, subtext.length)) {\n document.getElementById(\"keywords\").value = ';t ' + streamer;\n return;\n }\n }\n break;\n }\n }\n }\n if(key == 32){ //Space to go to search\nupdateLabel(text);\n }\n sindex = 0;\n cycle = false;\n updateLabel(text);\n}\n\nfunction updateLabel(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n if (text[0] === '/') {\n// if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n document.getElementById(\"searchType\").innerHTML = \"Allmusic search\";\n break;\n case \"d\":\n document.getElementById(\"searchType\").innerHTML = \"Duck Duck Go search\";\n break;\n case \"di\":\n document.getElementById(\"searchType\").innerHTML = \"Discogs search\";\n break;\n case \"i\":\n document.getElementById(\"searchType\").innerHTML = \"IMDB search\";\n break;\n case \"m\":\n document.getElementById(\"searchType\").innerHTML = \"TheMovieDB search\";\n break;\n case \"r\":\n document.getElementById(\"searchType\").innerHTML = \"Reddit search\";\n break;\n case \"q\":\n document.getElementById(\"searchType\").innerHTML = \"Qwant search\";\n break;\n case \"so\":\n document.getElementById(\"searchType\").innerHTML = \"Soundcloud search\";\n break;\n case \"s\":\n document.getElementById(\"searchType\").innerHTML = \"Spotify search\";\n break;\n case \"tv\":\n document.getElementById(\"searchType\").innerHTML = \"TheTVDB search\";\n break;\n case \"t\":\n document.getElementById(\"searchType\").innerHTML = \"Trakt search\";\n break;\n case \"y\":\n document.getElementById(\"searchType\").innerHTML = \"YouTube search\";\n break;\n case \"w\":\n document.getElementById(\"searchType\").innerHTML = \"Wikipedia search\";\n break;\n case \"p\":\n document.getElementById(\"searchType\").innerHTML = \"Plex search\";\n break;\n case \"rt\":\n document.getElementById(\"searchType\").innerHTML = \"Rotten Tomatoes search\";\n break;\n default:\n document.getElementById(\"searchType\").innerHTML = \"Invalid search\";\n break;\n }\n}else {\n document.getElementById(\"searchType\").innerHTML = \"Google search\";\n }\n}\n\nfunction search(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n if (text[0] === '/') {\n if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n window.location = \"https://www.allmusic.com/search/all/\" + subtext;\n break;\n case \"d\":\n window.location = \"https://duckduckgo.com/?q=\" + subtext;\n break;\n case \"di\":\n window.location = \"https://www.discogs.com/search/?q=\" + subtext;\n break;\n case \"i\":\n window.location = \"https://www.imdb.com/find?q=\" + subtext;\n break;\n case \"m\":\n window.location = \"https://www.themoviedb.org/search?query=\" + subtext;\n break;\n case \"r\":\n window.location = \"https://www.reddit.com/search?q=\" + subtext;\n break;\n case \"q\":\n window.location = \"https://www.qwant.com/?q=\" + subtext;\n break;\n case \"so\":\n window.location = \"https://soundcloud.com/search?q=\" + subtext;\n break;\n case \"s\":\n window.location = \"https://open.spotify.com/search/results/\" + subtext;\n break;\n case \"t\":\n window.location = \"https://trakt.tv/search?query=\" + subtext;\n break;\n case \"tv\":\n window.location = \"https://www.thetvdb.com/search?query=\" + subtext;\n break;\n case \"y\":\n window.location = \"https://www.youtube.com/results?search_query=\" + subtext;\n break;\n case \"w\":\n window.location = \"https://en.wikipedia.org/w/index.php?search=\" + subtext;\n break;\n case \"p\":\n window.location = \"https://app.plex.tv/desktop/#!/search?query=\" + subtext;\n break;\n case \"rt\":\n window.location = \"https://www.rottentomatoes.com/search?search=\" + subtext;\n break;\n }\n } else {\n var option = text.substr(1);\n switch (option) {\n case \"d\":\n window.location = \"https://www.duckduckgo.com\";\n break;\n case \"y\":\n window.location = \"https://www.youtube.com\";\n break;\n case \"r\":\n window.location = \"https://reddit.com\";\n break;\n case \"s\":\n window.location = \"https://open.spotify.com\";\n break;\n }\n }\n } else if (validURL(text)) {\n if (containsProtocol(text))\n window.location = text;\n else\n window.location = \"https://\" + text;\n } else {\n window.location = \"https://www.google.com/search?q=\" + text;\n }\n}\n\n// Source: https://stackoverflow.com/questions/5717093/check-if-a-javascript-string-is-a-url\nfunction validURL(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/)?' + // protocol\n '((([a-z\\\\d]([a-z\\\\d-]*[a-z\\\\d])*)\\\\.)+[a-z]{2,}|' + // domain name\n '((\\\\d{1,3}\\\\.){3}\\\\d{1,3}))' + // OR ip (v4) address\n '(\\\\:\\\\d+)?(\\\\/[-a-z\\\\d%_.~+]*)*' + // port and path\n '(\\\\?[;&a-z\\\\d%_.~+=-]*)?' + // query string\n '(\\\\#[-a-z\\\\d_]*)?$', 'i'); // fragment locator\n return !!pattern.test(str);\n}\n\nfunction containsProtocol(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/){1}.*', 'i');\n return !!pattern.test(str);\n}\n\nString.prototype.replaceAll = function(search, replacement) {\n var target = this;\n return target.split(search).join(replacement);\n};"]},"metadata":{},"sourceType":"module"}
\ No newline at end of file
diff --git a/node_modules/.cache/babel-loader/f88dacdd7c5b4fd87d28407d883e3672.json b/node_modules/.cache/babel-loader/f88dacdd7c5b4fd87d28407d883e3672.json
new file mode 100644
index 00000000..2e0665a2
--- /dev/null
+++ b/node_modules/.cache/babel-loader/f88dacdd7c5b4fd87d28407d883e3672.json
@@ -0,0 +1 @@
+{"ast":null,"code":"var _jsxFileName = \"/home/seanedmunds/dev/home-page/src/index.js\",\n _s = $RefreshSig$();\n\nimport React from 'react';\nimport { useState, useEffect } from 'react';\nimport ReactDOM from 'react-dom';\nimport './index.css';\nimport { jsxDEV as _jsxDEV } from \"react/jsx-dev-runtime\";\n\nconst setValueFromLocalStorage = property => {\n let value = localStorage.getItem(property);\n setValue(property, value);\n};\n\nconst setValue = (property, value) => {\n if (value) {\n document.documentElement.style.setProperty(`--${property}`, value);\n const input = document.querySelector(`#${property}`);\n\n if (input) {\n value = value.replace('px', '');\n input.value = value;\n }\n }\n};\n\nfunction Homepage() {\n setTheme();\n return /*#__PURE__*/_jsxDEV(\"main\", {\n id: \"container\",\n className: \"fade\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Search, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 28,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 27,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Header, {\n date: date(),\n greet: greet()\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 31,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 30,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Applications, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 37,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 36,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Bookmarks, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 40,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 39,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(ModalMenu, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 43,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 42,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(ModalInit, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 46,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 45,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 26,\n columnNumber: 5\n }, this);\n}\n\n_c = Homepage;\n\nfunction Search() {\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"search\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"abackground\",\n children: [/*#__PURE__*/_jsxDEV(\"input\", {\n name: \"keywords\",\n type: \"text\",\n className: \"keyword\",\n id: \"keywords\",\n size: \"50\",\n spellCheck: \"true\",\n placeholder: \"\"\n /*onFocus={this.placeholder = \"\"} onBlur={this.placeholder = ''}*/\n ,\n autoComplete: \"off\",\n autoFocus: true,\n onKeyUp: handleKeyPress\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 56,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n id: \"searchType\",\n className: \"Input-label\",\n children: \"Google search\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 57,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 55,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 54,\n columnNumber: 5\n }, this);\n}\n\n_c2 = Search;\n\nfunction Header(props) {\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"header\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n id: \"greeting_block\",\n children: /*#__PURE__*/_jsxDEV(\"h1\", {\n id: \"header_greet\",\n children: props.greet\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 67,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 66,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"date_block\",\n children: [/*#__PURE__*/_jsxDEV(\"h2\", {\n id: \"header_date\",\n children: props.date\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 70,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(Clock, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 71,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 69,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 65,\n columnNumber: 5\n }, this);\n}\n\n_c3 = Header;\n\nfunction Applications() {\n let appList = getApps();\n var items = [];\n\n for (var i = 0; i < appList.apps.length; i++) {\n var safe = appList.apps[i].NSFW;\n var NSFWEnabled = localStorage.getItem(\"contenttype\");\n\n if (safe === \"SAFE\") {\n items.push( /*#__PURE__*/_jsxDEV(App, {\n name: appList.apps[i].name,\n url: appList.apps[i].url,\n icon: appList.apps[i].icon,\n NSFW: appList.apps[i].NSFW\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 85,\n columnNumber: 9\n }, this));\n } else if (safe === \"NSFW\" && NSFWEnabled) {\n items.push( /*#__PURE__*/_jsxDEV(App, {\n name: appList.apps[i].name,\n url: appList.apps[i].url,\n icon: appList.apps[i].icon,\n NSFW: appList.apps[i].NSFW\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 95,\n columnNumber: 9\n }, this));\n } else {}\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"apps\",\n children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n children: \"Applications\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 110,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"apps_loop\",\n children: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 111,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 109,\n columnNumber: 5\n }, this);\n}\n\n_c4 = Applications;\n\nfunction App(props) {\n let classNameType = props.NSFW + \"-content\";\n let hrefUrl = \"https://\" + props.url;\n let iconName = \"mdi-\" + props.icon;\n return /*#__PURE__*/_jsxDEV(\"div\", {\n className: classNameType,\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: hrefUrl,\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_item\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_icon\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify icon\",\n \"data-icon\": iconName\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 128,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 127,\n columnNumber: 13\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_text\",\n children: [/*#__PURE__*/_jsxDEV(\"span\", {\n id: \"app-name\",\n children: props.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 131,\n columnNumber: 15\n }, this), /*#__PURE__*/_jsxDEV(\"span\", {\n id: \"app-address\",\n children: props.url\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 132,\n columnNumber: 15\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 130,\n columnNumber: 13\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 126,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 125,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 124,\n columnNumber: 7\n }, this);\n}\n\n_c5 = App;\n\nfunction Bookmarks() {\n let bookmarkList = getLinks();\n var items = [];\n\n for (var i = 0; i < bookmarkList.bookmarks.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(LinkGroups, {\n category: bookmarkList.bookmarks[i].category,\n links: bookmarkList.bookmarks[i].links\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 145,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"links\",\n children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n children: \"Bookmarks\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 154,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"links_loop\",\n children: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 155,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 153,\n columnNumber: 5\n }, this);\n}\n\n_c6 = Bookmarks;\n\nfunction LinkGroups(props) {\n var items = [];\n\n for (var i = 0; i < props.links.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(LinkItem, {\n link: props.links[i]\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 166,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"links_item\",\n children: [/*#__PURE__*/_jsxDEV(\"h4\", {\n children: props.category\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 174,\n columnNumber: 7\n }, this), items]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 173,\n columnNumber: 5\n }, this);\n}\n\n_c7 = LinkGroups;\n\nfunction LinkItem(props) {\n return /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: props.link.url,\n className: \"theme_color-border theme_text-select\",\n children: props.link.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 183,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 182,\n columnNumber: 5\n }, this);\n}\n\n_c8 = LinkItem;\n\nfunction ModalMenu() {\n var providers = getProviders();\n var items = [];\n var isChecked = localStorage.getItem(\"contenttype\");\n\n for (var i = 0; i < providers.providers.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(Provider, {\n provider: providers.providers[i]\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 194,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"modal\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n children: [/*#__PURE__*/_jsxDEV(\"header\", {\n id: \"modal-header\",\n children: [/*#__PURE__*/_jsxDEV(\"h1\", {\n children: \"Options\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 204,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n href: \"#\",\n title: \"Close\",\n className: \"modal-close\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-close\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 206,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 205,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 203,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"h2\", {\n children: \"Color themes\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 210,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"modal-theme\",\n children: [/*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"blackboard\",\n className: \"theme-button theme-blackboard\",\n onClick: updateTheme,\n children: \"Blackboard\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 213,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"gazette\",\n className: \"theme-button theme-gazette\",\n onClick: updateTheme,\n children: \"Gazette\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 214,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"espresso\",\n className: \"theme-button theme-espresso\",\n onClick: updateTheme,\n children: \"Espresso\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 215,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cab\",\n className: \"theme-button theme-cab\",\n onClick: updateTheme,\n children: \"Cab\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 216,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cloud\",\n className: \"theme-button theme-cloud\",\n onClick: updateTheme,\n children: \"Cloud\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 217,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"lime\",\n className: \"theme-button theme-lime\",\n onClick: updateTheme,\n children: \"Lime\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 218,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"passion\",\n className: \"theme-button theme-passion\",\n onClick: updateTheme,\n children: \"Passion\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 219,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"blues\",\n className: \"theme-button theme-blues\",\n onClick: updateTheme,\n children: \"Blues\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 220,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"chalk\",\n className: \"theme-button theme-chalk\",\n onClick: updateTheme,\n children: \"Chalk\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 221,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"tron\",\n className: \"theme-button theme-tron\",\n onClick: updateTheme,\n children: \"Tron\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 222,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"paper\",\n className: \"theme-button theme-paper\",\n onClick: updateTheme,\n children: \"Paper\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 223,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cyberpunk\",\n className: \"theme-button theme-cyberpunk\",\n onClick: updateTheme,\n children: \"Cyberpunk\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 224,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"quadra\",\n className: \"theme-button theme-panam\",\n onClick: updateTheme,\n children: \"Quadra\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 225,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"panam\",\n className: \"theme-button theme-panam\",\n onClick: updateTheme,\n children: \"Panam\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 226,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"touch\",\n className: \"theme-button theme-touch\",\n onClick: updateTheme,\n children: \"Touch\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 227,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"peek\",\n className: \"theme-button theme-peek\",\n onClick: updateTheme,\n children: \"Peek\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 228,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 212,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"h2\", {\n children: \"Search options\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 232,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"providers\",\n children: /*#__PURE__*/_jsxDEV(\"table\", {\n children: /*#__PURE__*/_jsxDEV(\"tbody\", {\n children: [/*#__PURE__*/_jsxDEV(\"tr\", {\n children: [/*#__PURE__*/_jsxDEV(\"th\", {\n children: \"Website\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 237,\n columnNumber: 19\n }, this), /*#__PURE__*/_jsxDEV(\"th\", {\n children: \"Prefix\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 238,\n columnNumber: 19\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 236,\n columnNumber: 17\n }, this), items]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 235,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 234,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 233,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"header\", {\n id: \"modal-footer\",\n children: [/*#__PURE__*/_jsxDEV(\"a\", {\n href: \"https://github.com/jeroenpardon/\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-github-box\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 246,\n columnNumber: 54\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 246,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n href: \"https://materialdesignicons.com/\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-material-design\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 247,\n columnNumber: 54\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 247,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(HideButton, {\n checked: isChecked\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 248,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 245,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 202,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 201,\n columnNumber: 5\n }, this);\n}\n\n_c9 = ModalMenu;\n\nfunction HideButton(props) {\n console.log(props.checked);\n return /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"sneaky\",\n children: [/*#__PURE__*/_jsxDEV(\"input\", {\n type: \"checkbox\",\n id: \"contenttype\",\n onChange: udpateDisplayedItems,\n defaultChecked: false\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 260,\n columnNumber: 29\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n for: \"contenttype\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-domino-mask\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 261,\n columnNumber: 30\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 261,\n columnNumber: 5\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 260,\n columnNumber: 5\n }, this);\n}\n\n_c10 = HideButton;\n\nfunction Provider(props) {\n return /*#__PURE__*/_jsxDEV(\"tr\", {\n children: [/*#__PURE__*/_jsxDEV(\"td\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: props.provider.url,\n children: props.provider.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 268,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 268,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"td\", {\n children: props.provider.prefix\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 269,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 267,\n columnNumber: 5\n }, this);\n}\n\n_c11 = Provider;\n\nfunction ModalInit() {\n setDisplayedItems();\n return /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"modal_init\",\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n className: \"btn\",\n href: \"#modal\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify icon\",\n \"data-icon\": \"mdi-xbox-controller-menu\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 279,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 278,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 277,\n columnNumber: 5\n }, this);\n}\n\n_c12 = ModalInit;\nReactDOM.render( /*#__PURE__*/_jsxDEV(Homepage, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 286,\n columnNumber: 3\n}, this), document.getElementById('root')); //Functions below this line are for calculating data for\n//other functions\n\nfunction date() {\n let currentDate = new Date();\n let dateOptions = {\n weekday: \"long\",\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\"\n };\n let date = currentDate.toLocaleDateString(\"en-GB\", dateOptions);\n return date;\n}\n\nfunction fixDigits(k) {\n if (k < 10) {\n return \"0\" + k;\n } else {\n return k;\n }\n}\n\nfunction greet() {\n let currentTime = new Date();\n let greet = Math.floor(currentTime.getHours() / 6);\n let easterEggChance = Math.floor(Math.random() * 100);\n\n let greetings = require('./messages.json');\n\n let timeBased = [];\n let easterEggs = [];\n\n for (var i = 0; i < greetings.messages.length; i++) {\n if (greetings.messages[i].easteregg === \"FALSE\") {\n timeBased = timeBased.concat(greetings.messages[i]);\n } else {\n easterEggs = easterEggs.concat(greetings.messages[i]);\n }\n }\n\n if (easterEggChance > 10) {\n return timeBased[greet].message;\n } else {\n let easterEggText = Math.floor(Math.random() * easterEggs.length);\n return easterEggs[easterEggText].message;\n }\n}\n\nfunction Clock() {\n _s();\n\n const [date, setDate] = useState(new Date());\n\n function refreshClock() {\n setDate(new Date());\n }\n\n useEffect(() => {\n const timerId = setInterval(refreshClock, 1000);\n return function cleanup() {\n clearInterval(timerId);\n };\n }, []);\n var hour = date.getHours();\n var minutes = date.getMinutes(); //var seconds = date.getSeconds();\n\n var midday = \"AM\";\n midday = hour >= 12 ? \"PM\" : \"AM\";\n hour = hour === 0 ? 12 : hour > 12 ? hour - 12 : hour;\n minutes = fixDigits(minutes); //seconds = fixDigits(seconds);\n\n let time = hour + \":\" + minutes + \" \" + midday;\n return /*#__PURE__*/_jsxDEV(\"h2\", {\n id: \"clock\",\n children: time\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 357,\n columnNumber: 5\n }, this);\n}\n\n_s(Clock, \"Gqi45WOZhU2c0BLYX0HoJeiR0fk=\");\n\n_c13 = Clock;\n\nfunction getApps() {\n let applications = require('./apps.json');\n\n return applications;\n}\n\nfunction getLinks() {\n let links = require('./links.json');\n\n return links;\n}\n\nfunction getProviders() {\n let providers = require('./providers.json');\n\n return providers;\n}\n\nfunction getThemes() {\n let themes = require('./themes.json');\n\n return themes;\n}\n\nfunction updateTheme(e) {\n var themes = getThemes();\n var themeName = e.target.innerHTML.toLowerCase();\n var index = themes.themes.findIndex(function (item, i) {\n return item.name === themeName;\n });\n localStorage.setItem(\"image-background\", themes.themes[index].imagebackground);\n localStorage.setItem(\"color-background\", themes.themes[index].colorbackground);\n localStorage.setItem(\"color-search-background\", themes.themes[index].colorserachbackground);\n localStorage.setItem(\"color-text-pri\", themes.themes[index].colortextpri);\n localStorage.setItem(\"color-text-acc\", themes.themes[index].colortextacc);\n localStorage.setItem(\"color-border\", themes.themes[index].colorborder); //document.documentElement.style.setProperty(prop, `var(--${themeName}${prop.substring(10)})`);\n\n setTheme();\n}\n\nfunction setTheme() {\n setValueFromLocalStorage('image-background');\n setValueFromLocalStorage('color-background');\n setValueFromLocalStorage('color-search-background');\n setValueFromLocalStorage('color-text-pri');\n setValueFromLocalStorage('color-text-acc');\n setValueFromLocalStorage('color-border');\n setValueFromLocalStorage('content-display');\n}\n\nfunction handleKeyPress(e) {\n var sindex = 0;\n var cycle = false;\n var key = e.keyCode || e.which;\n var text = e.target.value.replaceAll(\"+\", \"%2B\");\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n\n if (key == 13) {\n // Search functions\n search(text);\n }\n\n if (key == 9) {\n // Tab Completion Functions\n e.preventDefault();\n e.stopPropagation();\n\n if (text[0] === ';') {\n switch (option) {\n case 't':\n var streamers = ['admiralbahroo', 'moonmoon_ow', 'witwix'];\n\n if (!subtext || cycle) {\n cycle = true;\n if (sindex > streamers.length - 1) sindex = 0;\n document.getElementById(\"keywords\").value = ';t ' + streamers[sindex++];\n return;\n }\n\n for (var streamer of streamers) {\n if (subtext === streamer.substr(0, subtext.length)) {\n document.getElementById(\"keywords\").value = ';t ' + streamer;\n return;\n }\n }\n\n break;\n }\n }\n }\n\n if (key == 32) {\n //Space to go to search\n updateLabel(text);\n }\n\n sindex = 0;\n cycle = false;\n updateLabel(text);\n}\n\nfunction updateLabel(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n\n if (text[0] === '/') {\n // if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n document.getElementById(\"searchType\").innerHTML = \"Allmusic search\";\n break;\n\n case \"d\":\n document.getElementById(\"searchType\").innerHTML = \"Duck Duck Go search\";\n break;\n\n case \"di\":\n document.getElementById(\"searchType\").innerHTML = \"Discogs search\";\n break;\n\n case \"i\":\n document.getElementById(\"searchType\").innerHTML = \"IMDB search\";\n break;\n\n case \"m\":\n document.getElementById(\"searchType\").innerHTML = \"TheMovieDB search\";\n break;\n\n case \"r\":\n document.getElementById(\"searchType\").innerHTML = \"Reddit search\";\n break;\n\n case \"q\":\n document.getElementById(\"searchType\").innerHTML = \"Qwant search\";\n break;\n\n case \"so\":\n document.getElementById(\"searchType\").innerHTML = \"Soundcloud search\";\n break;\n\n case \"s\":\n document.getElementById(\"searchType\").innerHTML = \"Spotify search\";\n break;\n\n case \"tv\":\n document.getElementById(\"searchType\").innerHTML = \"TheTVDB search\";\n break;\n\n case \"t\":\n document.getElementById(\"searchType\").innerHTML = \"Trakt search\";\n break;\n\n case \"y\":\n document.getElementById(\"searchType\").innerHTML = \"YouTube search\";\n break;\n\n case \"w\":\n document.getElementById(\"searchType\").innerHTML = \"Wikipedia search\";\n break;\n\n case \"p\":\n document.getElementById(\"searchType\").innerHTML = \"Plex search\";\n break;\n\n case \"rt\":\n document.getElementById(\"searchType\").innerHTML = \"Rotten Tomatoes search\";\n break;\n\n default:\n document.getElementById(\"searchType\").innerHTML = \"Invalid search\";\n break;\n }\n } else {\n document.getElementById(\"searchType\").innerHTML = \"Google search\";\n }\n}\n\nfunction search(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n\n if (text[0] === '/') {\n if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n window.location = \"https://www.allmusic.com/search/all/\" + subtext;\n break;\n\n case \"d\":\n window.location = \"https://duckduckgo.com/?q=\" + subtext;\n break;\n\n case \"di\":\n window.location = \"https://www.discogs.com/search/?q=\" + subtext;\n break;\n\n case \"i\":\n window.location = \"https://www.imdb.com/find?q=\" + subtext;\n break;\n\n case \"m\":\n window.location = \"https://www.themoviedb.org/search?query=\" + subtext;\n break;\n\n case \"r\":\n window.location = \"https://www.reddit.com/search?q=\" + subtext;\n break;\n\n case \"q\":\n window.location = \"https://www.qwant.com/?q=\" + subtext;\n break;\n\n case \"so\":\n window.location = \"https://soundcloud.com/search?q=\" + subtext;\n break;\n\n case \"s\":\n window.location = \"https://open.spotify.com/search/results/\" + subtext;\n break;\n\n case \"t\":\n window.location = \"https://trakt.tv/search?query=\" + subtext;\n break;\n\n case \"tv\":\n window.location = \"https://www.thetvdb.com/search?query=\" + subtext;\n break;\n\n case \"y\":\n window.location = \"https://www.youtube.com/results?search_query=\" + subtext;\n break;\n\n case \"w\":\n window.location = \"https://en.wikipedia.org/w/index.php?search=\" + subtext;\n break;\n\n case \"p\":\n window.location = \"https://app.plex.tv/desktop/#!/search?query=\" + subtext;\n break;\n\n case \"rt\":\n window.location = \"https://www.rottentomatoes.com/search?search=\" + subtext;\n break;\n }\n } else {\n var option = text.substr(1);\n\n switch (option) {\n case \"d\":\n window.location = \"https://www.duckduckgo.com\";\n break;\n\n case \"y\":\n window.location = \"https://www.youtube.com\";\n break;\n\n case \"r\":\n window.location = \"https://reddit.com\";\n break;\n\n case \"s\":\n window.location = \"https://open.spotify.com\";\n break;\n }\n }\n } else if (validURL(text)) {\n if (containsProtocol(text)) window.location = text;else window.location = \"https://\" + text;\n } else {\n window.location = \"https://www.google.com/search?q=\" + text;\n }\n}\n\nfunction validURL(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/)?' + // protocol\n '((([a-z\\\\d]([a-z\\\\d-]*[a-z\\\\d])*)\\\\.)+[a-z]{2,}|' + // domain name\n '((\\\\d{1,3}\\\\.){3}\\\\d{1,3}))' + // OR ip (v4) address\n '(\\\\:\\\\d+)?(\\\\/[-a-z\\\\d%_.~+]*)*' + // port and path\n '(\\\\?[;&a-z\\\\d%_.~+=-]*)?' + // query string\n '(\\\\#[-a-z\\\\d_]*)?$', 'i'); // fragment locator\n\n return !!pattern.test(str);\n}\n\nfunction containsProtocol(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/){1}.*', 'i');\n return !!pattern.test(str);\n}\n\nString.prototype.replaceAll = function (search, replacement) {\n var target = this;\n return target.split(search).join(replacement);\n};\n\nfunction udpateDisplayedItems(e) {\n localStorage.setItem('contenttype', e.target.checked);\n\n if (e.target.checked) {\n localStorage.setItem('content-display', 'none');\n } else {\n localStorage.setItem('content-display', 'block');\n }\n\n setDisplayedItems();\n}\n\nfunction setDisplayedItems() {\n setValueFromLocalStorage('contenttype');\n setValueFromLocalStorage('content-display');\n}\n\nvar _c, _c2, _c3, _c4, _c5, _c6, _c7, _c8, _c9, _c10, _c11, _c12, _c13;\n\n$RefreshReg$(_c, \"Homepage\");\n$RefreshReg$(_c2, \"Search\");\n$RefreshReg$(_c3, \"Header\");\n$RefreshReg$(_c4, \"Applications\");\n$RefreshReg$(_c5, \"App\");\n$RefreshReg$(_c6, \"Bookmarks\");\n$RefreshReg$(_c7, \"LinkGroups\");\n$RefreshReg$(_c8, \"LinkItem\");\n$RefreshReg$(_c9, \"ModalMenu\");\n$RefreshReg$(_c10, \"HideButton\");\n$RefreshReg$(_c11, \"Provider\");\n$RefreshReg$(_c12, \"ModalInit\");\n$RefreshReg$(_c13, \"Clock\");","map":{"version":3,"sources":["/home/seanedmunds/dev/home-page/src/index.js"],"names":["React","useState","useEffect","ReactDOM","setValueFromLocalStorage","property","value","localStorage","getItem","setValue","document","documentElement","style","setProperty","input","querySelector","replace","Homepage","setTheme","date","greet","Search","handleKeyPress","Header","props","Applications","appList","getApps","items","i","apps","length","safe","NSFW","NSFWEnabled","push","name","url","icon","App","classNameType","hrefUrl","iconName","Bookmarks","bookmarkList","getLinks","bookmarks","category","links","LinkGroups","LinkItem","link","ModalMenu","providers","getProviders","isChecked","updateTheme","HideButton","console","log","checked","udpateDisplayedItems","Provider","provider","prefix","ModalInit","setDisplayedItems","render","getElementById","currentDate","Date","dateOptions","weekday","year","month","day","toLocaleDateString","fixDigits","k","currentTime","Math","floor","getHours","easterEggChance","random","greetings","require","timeBased","easterEggs","messages","easteregg","concat","message","easterEggText","Clock","setDate","refreshClock","timerId","setInterval","cleanup","clearInterval","hour","minutes","getMinutes","midday","time","applications","getThemes","themes","e","themeName","target","innerHTML","toLowerCase","index","findIndex","item","setItem","imagebackground","colorbackground","colorserachbackground","colortextpri","colortextacc","colorborder","sindex","cycle","key","keyCode","which","text","replaceAll","option","substr","indexOf","subtext","search","preventDefault","stopPropagation","streamers","streamer","updateLabel","window","location","validURL","containsProtocol","str","pattern","RegExp","test","String","prototype","replacement","split","join"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { useState, useEffect } from 'react';\nimport ReactDOM from 'react-dom';\nimport './index.css';\n\nconst setValueFromLocalStorage = property => {\n let value = localStorage.getItem(property);\n setValue(property, value);\n};\nconst setValue = (property, value) => {\n if (value) {\n document.documentElement.style.setProperty(`--${property}`, value);\n\n const input = document.querySelector(`#${property}`);\n if (input) {\n value = value.replace('px', '');\n input.value = value;\n }\n }\n};\n\nfunction Homepage() {\n setTheme();\n \n return (\n \n \n \n
\n \n \n
\n \n \n \n
\n \n \n
\n \n \n
\n \n );\n}\n\nfunction Search() {\n return (\n \n )\n}\n\nfunction Header(props) {\n return (\n \n );\n}\n\nfunction Applications() {\n let appList = getApps();\n var items = [];\n for (var i = 0; i < appList.apps.length; i++) {\n var safe = appList.apps[i].NSFW;\n var NSFWEnabled = localStorage.getItem(\"contenttype\");\n if (safe === \"SAFE\") {\n items.push(\n \n );\n } else if (safe === \"NSFW\" && NSFWEnabled) {\n items.push(\n \n );\n } else {\n \n }\n \n }\n return (\n \n Applications
\n \n {items}\n
\n \n );\n}\n\nfunction App(props) {\n \n let classNameType = props.NSFW + \"-content\";\n let hrefUrl = \"https://\" + props.url;\n let iconName = \"mdi-\" + props.icon;\n return (\n \n );\n}\n\nfunction Bookmarks() {\n let bookmarkList = getLinks();\n var items = [];\n for (var i = 0; i < bookmarkList.bookmarks.length; i++) {\n items.push(\n \n );\n }\n return (\n \n Bookmarks
\n \n {items}\n
\n \n );\n}\n\nfunction LinkGroups(props) {\n var items = [];\n for (var i = 0; i < props.links.length; i++) {\n items.push(\n \n );\n }\n return (\n \n
{props.category}
\n {items}\n \n );\n}\n\nfunction LinkItem(props) {\n return (\n \n );\n}\n\nfunction ModalMenu() {\n var providers = getProviders();\n var items = [];\n var isChecked = localStorage.getItem(\"contenttype\");\n for (var i = 0; i < providers.providers.length; i++) {\n items.push(\n \n );\n }\n return (\n \n \n \n\n
Color themes
\n\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n\n\n
Search options
\n
\n \n \n \n | Website | \n Prefix | \n
\n {items}\n \n
\n \n\n \n
\n \n );\n}\n\nfunction HideButton(props) {\n console.log(props.checked);\n return (\n \n
\n );\n}\n\nfunction Provider(props) {\n return (\n \n | {props.provider.name} | \n {props.provider.prefix} | \n
\n );\n}\n\nfunction ModalInit() {\n setDisplayedItems();\n return (\n \n );\n}\n\nReactDOM.render(\n ,\n document.getElementById('root')\n);\n\n//Functions below this line are for calculating data for\n//other functions\n\nfunction date() {\n let currentDate = new Date();\n let dateOptions = {\n weekday: \"long\",\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\"\n };\n let date = currentDate.toLocaleDateString(\"en-GB\", dateOptions);\n return date;\n}\nfunction fixDigits(k) {\n if (k < 10) {\n return \"0\" + k;\n }\n else {\n return k;\n }\n}\nfunction greet() {\n let currentTime = new Date();\n let greet = Math.floor(currentTime.getHours() / 6);\n let easterEggChance = Math.floor(Math.random() * 100);\n let greetings = require('./messages.json');\n let timeBased = [];\n let easterEggs = [];\n for (var i = 0; i < greetings.messages.length; i++) {\n if (greetings.messages[i].easteregg === \"FALSE\") {\n timeBased = timeBased.concat(greetings.messages[i]);\n } else {\n easterEggs = easterEggs.concat(greetings.messages[i]);\n }\n }\n if (easterEggChance > 10) {\n return timeBased[greet].message;\n } else {\n let easterEggText = Math.floor(Math.random() * easterEggs.length);\n return easterEggs[easterEggText].message;\n }\n}\nfunction Clock() {\n const [date, setDate] = useState(new Date());\n\n function refreshClock() {\n setDate(new Date());\n }\n useEffect(() => {\n const timerId = setInterval(refreshClock, 1000);\n return function cleanup() {\n clearInterval(timerId);\n };\n }, []);\n\n var hour = date.getHours();\n var minutes = date.getMinutes();\n //var seconds = date.getSeconds();\n var midday = \"AM\";\n midday = (hour >= 12) ? \"PM\" : \"AM\";\n hour = (hour === 0) ? 12 : ((hour > 12) ? (hour - 12) : hour);\n minutes = fixDigits(minutes);\n //seconds = fixDigits(seconds);\n let time = hour + \":\" + minutes + \" \" + midday;\n\n return (\n {time}
\n\n );\n}\nfunction getApps() {\n let applications = require('./apps.json');\n return applications;\n}\nfunction getLinks() {\n let links = require('./links.json');\n return links;\n}\nfunction getProviders() {\n let providers = require('./providers.json');\n return providers;\n}\nfunction getThemes() {\n let themes = require('./themes.json');\n return themes;\n}\nfunction updateTheme(e) {\n var themes = getThemes();\n var themeName = e.target.innerHTML.toLowerCase();\n var index = themes.themes.findIndex(function(item, i){\n return item.name === themeName;\n });\n localStorage.setItem(\"image-background\", themes.themes[index].imagebackground);\n localStorage.setItem(\"color-background\", themes.themes[index].colorbackground);\n localStorage.setItem(\"color-search-background\", themes.themes[index].colorserachbackground);\n localStorage.setItem(\"color-text-pri\",themes.themes[index].colortextpri);\n localStorage.setItem(\"color-text-acc\", themes.themes[index].colortextacc);\n localStorage.setItem(\"color-border\", themes.themes[index].colorborder);\n \n //document.documentElement.style.setProperty(prop, `var(--${themeName}${prop.substring(10)})`);\n setTheme();\n}\nfunction setTheme() {\n setValueFromLocalStorage('image-background');\n setValueFromLocalStorage('color-background');\n setValueFromLocalStorage('color-search-background');\n setValueFromLocalStorage('color-text-pri');\n setValueFromLocalStorage('color-text-acc');\n setValueFromLocalStorage('color-border');\n setValueFromLocalStorage('content-display');\n}\nfunction handleKeyPress(e) {\n var sindex = 0;\n var cycle = false;\n var key = e.keyCode || e.which;\n var text = e.target.value.replaceAll(\"+\", \"%2B\");\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n if (key == 13) { // Search functions\n search(text);\n }\n if (key == 9) { // Tab Completion Functions\n e.preventDefault();\n e.stopPropagation();\n if (text[0] === ';') {\n switch (option) {\n case 't':\n var streamers = ['admiralbahroo', 'moonmoon_ow', 'witwix'];\n if (!subtext || cycle) {\n cycle = true;\n if (sindex > streamers.length - 1) sindex = 0;\n document.getElementById(\"keywords\").value = ';t ' + streamers[sindex++];\n return;\n }\n for (var streamer of streamers) {\n if (subtext === streamer.substr(0, subtext.length)) {\n document.getElementById(\"keywords\").value = ';t ' + streamer;\n return;\n }\n }\n break;\n }\n }\n }\n if(key == 32){ //Space to go to search\nupdateLabel(text);\n }\n sindex = 0;\n cycle = false;\n updateLabel(text);\n}\nfunction updateLabel(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n if (text[0] === '/') {\n// if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n document.getElementById(\"searchType\").innerHTML = \"Allmusic search\";\n break;\n case \"d\":\n document.getElementById(\"searchType\").innerHTML = \"Duck Duck Go search\";\n break;\n case \"di\":\n document.getElementById(\"searchType\").innerHTML = \"Discogs search\";\n break;\n case \"i\":\n document.getElementById(\"searchType\").innerHTML = \"IMDB search\";\n break;\n case \"m\":\n document.getElementById(\"searchType\").innerHTML = \"TheMovieDB search\";\n break;\n case \"r\":\n document.getElementById(\"searchType\").innerHTML = \"Reddit search\";\n break;\n case \"q\":\n document.getElementById(\"searchType\").innerHTML = \"Qwant search\";\n break;\n case \"so\":\n document.getElementById(\"searchType\").innerHTML = \"Soundcloud search\";\n break;\n case \"s\":\n document.getElementById(\"searchType\").innerHTML = \"Spotify search\";\n break;\n case \"tv\":\n document.getElementById(\"searchType\").innerHTML = \"TheTVDB search\";\n break;\n case \"t\":\n document.getElementById(\"searchType\").innerHTML = \"Trakt search\";\n break;\n case \"y\":\n document.getElementById(\"searchType\").innerHTML = \"YouTube search\";\n break;\n case \"w\":\n document.getElementById(\"searchType\").innerHTML = \"Wikipedia search\";\n break;\n case \"p\":\n document.getElementById(\"searchType\").innerHTML = \"Plex search\";\n break;\n case \"rt\":\n document.getElementById(\"searchType\").innerHTML = \"Rotten Tomatoes search\";\n break;\n default:\n document.getElementById(\"searchType\").innerHTML = \"Invalid search\";\n break;\n }\n}else {\n document.getElementById(\"searchType\").innerHTML = \"Google search\";\n }\n}\nfunction search(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n if (text[0] === '/') {\n if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n window.location = \"https://www.allmusic.com/search/all/\" + subtext;\n break;\n case \"d\":\n window.location = \"https://duckduckgo.com/?q=\" + subtext;\n break;\n case \"di\":\n window.location = \"https://www.discogs.com/search/?q=\" + subtext;\n break;\n case \"i\":\n window.location = \"https://www.imdb.com/find?q=\" + subtext;\n break;\n case \"m\":\n window.location = \"https://www.themoviedb.org/search?query=\" + subtext;\n break;\n case \"r\":\n window.location = \"https://www.reddit.com/search?q=\" + subtext;\n break;\n case \"q\":\n window.location = \"https://www.qwant.com/?q=\" + subtext;\n break;\n case \"so\":\n window.location = \"https://soundcloud.com/search?q=\" + subtext;\n break;\n case \"s\":\n window.location = \"https://open.spotify.com/search/results/\" + subtext;\n break;\n case \"t\":\n window.location = \"https://trakt.tv/search?query=\" + subtext;\n break;\n case \"tv\":\n window.location = \"https://www.thetvdb.com/search?query=\" + subtext;\n break;\n case \"y\":\n window.location = \"https://www.youtube.com/results?search_query=\" + subtext;\n break;\n case \"w\":\n window.location = \"https://en.wikipedia.org/w/index.php?search=\" + subtext;\n break;\n case \"p\":\n window.location = \"https://app.plex.tv/desktop/#!/search?query=\" + subtext;\n break;\n case \"rt\":\n window.location = \"https://www.rottentomatoes.com/search?search=\" + subtext;\n break;\n }\n } else {\n var option = text.substr(1);\n switch (option) {\n case \"d\":\n window.location = \"https://www.duckduckgo.com\";\n break;\n case \"y\":\n window.location = \"https://www.youtube.com\";\n break;\n case \"r\":\n window.location = \"https://reddit.com\";\n break;\n case \"s\":\n window.location = \"https://open.spotify.com\";\n break;\n }\n }\n } else if (validURL(text)) {\n if (containsProtocol(text))\n window.location = text;\n else\n window.location = \"https://\" + text;\n } else {\n window.location = \"https://www.google.com/search?q=\" + text;\n }\n}\nfunction validURL(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/)?' + // protocol\n '((([a-z\\\\d]([a-z\\\\d-]*[a-z\\\\d])*)\\\\.)+[a-z]{2,}|' + // domain name\n '((\\\\d{1,3}\\\\.){3}\\\\d{1,3}))' + // OR ip (v4) address\n '(\\\\:\\\\d+)?(\\\\/[-a-z\\\\d%_.~+]*)*' + // port and path\n '(\\\\?[;&a-z\\\\d%_.~+=-]*)?' + // query string\n '(\\\\#[-a-z\\\\d_]*)?$', 'i'); // fragment locator\n return !!pattern.test(str);\n}\nfunction containsProtocol(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/){1}.*', 'i');\n return !!pattern.test(str);\n}\nString.prototype.replaceAll = function(search, replacement) {\n var target = this;\n return target.split(search).join(replacement);\n};\nfunction udpateDisplayedItems(e) {\n localStorage.setItem('contenttype', e.target.checked);\n if (e.target.checked) {\n localStorage.setItem('content-display', 'none');\n } else {\n localStorage.setItem('content-display', 'block');\n }\n setDisplayedItems();\n}\nfunction setDisplayedItems() {\n setValueFromLocalStorage('contenttype');\n setValueFromLocalStorage('content-display');\n}"]},"metadata":{},"sourceType":"module"}
\ No newline at end of file
diff --git a/node_modules/.cache/babel-loader/f8b7e4c62a386ce24ab120504fb9d774.json b/node_modules/.cache/babel-loader/f8b7e4c62a386ce24ab120504fb9d774.json
new file mode 100644
index 00000000..f5f01ff0
--- /dev/null
+++ b/node_modules/.cache/babel-loader/f8b7e4c62a386ce24ab120504fb9d774.json
@@ -0,0 +1 @@
+{"ast":null,"code":"var _jsxFileName = \"/home/seanedmunds/dev/home-page/src/index.js\",\n _s = $RefreshSig$();\n\nimport React from 'react';\nimport { useState, useEffect } from 'react';\nimport ReactDOM from 'react-dom'; //import { unstable_createPortal } from 'react-dom';\n\nimport './index.css';\nimport { jsxDEV as _jsxDEV } from \"react/jsx-dev-runtime\";\n\nfunction Homepage() {\n return /*#__PURE__*/_jsxDEV(\"main\", {\n id: \"container\",\n className: \"fade\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Search, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 11,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 10,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Header, {\n date: date(),\n greet: greet()\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 14,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 13,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Applications, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 20,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 19,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Bookmarks, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 23,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 22,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(ModalMenu, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 26,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 25,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(ModalInit, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 29,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 28,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 9,\n columnNumber: 5\n }, this);\n}\n\n_c = Homepage;\n\nfunction Search() {\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"search\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"abackground\",\n children: [/*#__PURE__*/_jsxDEV(\"input\", {\n name: \"keywords\",\n type: \"text\",\n className: \"keyword\",\n id: \"keywords\",\n size: \"50\",\n spellCheck: \"true\",\n placeholder: \"\"\n /*onFocus={this.placeholder = \"\"} onBlur={this.placeholder = ''}*/\n ,\n autoComplete: \"off\",\n autoFocus: \"true\",\n onKeyUp: handleKeyPress(this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 39,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n id: \"searchType\",\n className: \"Input-label\",\n children: \"Google search\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 40,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 38,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 37,\n columnNumber: 5\n }, this);\n}\n\n_c2 = Search;\n\nfunction Header(props) {\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"header\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n id: \"greeting_block\",\n children: /*#__PURE__*/_jsxDEV(\"h1\", {\n id: \"header_greet\",\n children: props.greet\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 50,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 49,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"date_block\",\n children: [/*#__PURE__*/_jsxDEV(\"h2\", {\n id: \"header_date\",\n children: props.date\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 53,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(Clock, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 54,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 52,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 48,\n columnNumber: 5\n }, this);\n}\n\n_c3 = Header;\n\nfunction Applications() {\n let appList = getApps();\n var items = [];\n\n for (var i = 0; i < appList.apps.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(App, {\n name: appList.apps[i].name,\n url: appList.apps[i].url,\n icon: appList.apps[i].icon,\n NSFW: appList.apps[i].NSFW\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 65,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"apps\",\n children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n children: \"Applications\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 76,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"apps_loop\",\n children: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 77,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 75,\n columnNumber: 5\n }, this);\n}\n\n_c4 = Applications;\n\nfunction App(props) {\n let classNameType = props.NSFW + \"-content\";\n let hrefUrl = \"https://\" + props.url;\n let iconName = \"mdi-\" + props.icon;\n return /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: hrefUrl,\n className: classNameType,\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_item\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_icon\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify icon\",\n \"data-icon\": iconName\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 93,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 92,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_text\",\n children: [/*#__PURE__*/_jsxDEV(\"span\", {\n id: \"app-name\",\n children: props.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 96,\n columnNumber: 13\n }, this), /*#__PURE__*/_jsxDEV(\"span\", {\n id: \"app-address\",\n children: props.url\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 97,\n columnNumber: 13\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 95,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 91,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 90,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 89,\n columnNumber: 5\n }, this);\n}\n\n_c5 = App;\n\nfunction Bookmarks() {\n let bookmarkList = getLinks();\n var items = [];\n\n for (var i = 0; i < bookmarkList.bookmarks.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(LinkGroups, {\n category: bookmarkList.bookmarks[i].category,\n links: bookmarkList.bookmarks[i].links\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 110,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"links\",\n children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n children: \"Bookmarks\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 119,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"links_loop\",\n children: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 120,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 118,\n columnNumber: 5\n }, this);\n}\n\n_c6 = Bookmarks;\n\nfunction LinkGroups(props) {\n var items = [];\n\n for (var i = 0; i < props.links.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(LinkItem, {\n link: props.links[i]\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 131,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"links_item\",\n children: [/*#__PURE__*/_jsxDEV(\"h4\", {\n children: props.category\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 139,\n columnNumber: 7\n }, this), items]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 138,\n columnNumber: 5\n }, this);\n}\n\n_c7 = LinkGroups;\n\nfunction LinkItem(props) {\n return /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: props.link.url,\n className: \"theme_color-border theme_text-select\",\n children: props.link.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 148,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 147,\n columnNumber: 5\n }, this);\n}\n\n_c8 = LinkItem;\n\nfunction ModalMenu() {\n var providers = getProviders();\n var items = [];\n\n for (var i = 0; i < providers.providers.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(Provider, {\n provider: providers.providers[i]\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 158,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"modal\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n children: [/*#__PURE__*/_jsxDEV(\"header\", {\n id: \"modal-header\",\n children: [/*#__PURE__*/_jsxDEV(\"h1\", {\n children: \"Options\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 168,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n href: \"#\",\n title: \"Close\",\n className: \"modal-close\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-close\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 170,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 169,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 167,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"h2\", {\n children: \"Color themes\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 174,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"modal-theme\",\n children: [/*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"blackboard\",\n className: \"theme-button theme-blackboard\",\n children: \"Blackboard\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 177,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"gazette\",\n className: \"theme-button theme-gazette\",\n children: \"Gazette\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 178,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"espresso\",\n className: \"theme-button theme-espresso\",\n children: \"Espresso\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 179,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cab\",\n className: \"theme-button theme-cab\",\n children: \"Cab\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 180,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cloud\",\n className: \"theme-button theme-cloud\",\n children: \"Cloud\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 181,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"lime\",\n className: \"theme-button theme-lime\",\n children: \"Lime\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 182,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"passion\",\n className: \"theme-button theme-passion\",\n children: \"Passion\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 183,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"blues\",\n className: \"theme-button theme-blues\",\n children: \"Blues\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 184,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"chalk\",\n className: \"theme-button theme-chalk\",\n children: \"Chalk\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 185,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"tron\",\n className: \"theme-button theme-tron\",\n children: \"Tron\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 186,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"paper\",\n className: \"theme-button theme-paper\",\n children: \"Paper\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 187,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cyberpunk\",\n className: \"theme-button theme-cyberpunk\",\n children: \"Cyberpunk\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 188,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"quadra\",\n className: \"theme-button theme-panam\",\n children: \"Quadra\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 189,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"panam\",\n className: \"theme-button theme-panam\",\n children: \"Panam\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 190,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"touch\",\n className: \"theme-button theme-touch\",\n children: \"Touch\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 191,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"peek\",\n className: \"theme-button theme-peek\",\n children: \"Peek\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 192,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 176,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"h2\", {\n children: \"Search options\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 196,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"providers\",\n children: /*#__PURE__*/_jsxDEV(\"table\", {\n children: /*#__PURE__*/_jsxDEV(\"tbody\", {\n children: [/*#__PURE__*/_jsxDEV(\"tr\", {\n children: [/*#__PURE__*/_jsxDEV(\"th\", {\n children: \"Website\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 201,\n columnNumber: 19\n }, this), /*#__PURE__*/_jsxDEV(\"th\", {\n children: \"Prefix\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 202,\n columnNumber: 19\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 200,\n columnNumber: 17\n }, this), items]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 199,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 198,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 197,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"header\", {\n id: \"modal-footer\",\n children: [/*#__PURE__*/_jsxDEV(\"a\", {\n href: \"https://github.com/jeroenpardon/\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-github-box\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 210,\n columnNumber: 54\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 210,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n href: \"https://materialdesignicons.com/\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-material-design\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 211,\n columnNumber: 54\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 211,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"sneaky\",\n children: [/*#__PURE__*/_jsxDEV(\"input\", {\n type: \"checkbox\",\n id: \"contenttype\",\n onChange: \"nsfw(this)\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 212,\n columnNumber: 35\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n for: \"contenttype\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-domino-mask\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 213,\n columnNumber: 36\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 213,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 212,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 209,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 166,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 165,\n columnNumber: 5\n }, this);\n}\n\n_c9 = ModalMenu;\n\nfunction Provider(props) {\n return /*#__PURE__*/_jsxDEV(\"tr\", {\n children: [/*#__PURE__*/_jsxDEV(\"td\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: props.provider.url,\n children: props.provider.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 223,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 223,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"td\", {\n children: props.provider.prefix\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 224,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 222,\n columnNumber: 5\n }, this);\n}\n\n_c10 = Provider;\n\nfunction ModalInit() {\n return /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"modal_init\",\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n className: \"btn\",\n href: \"#modal\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify icon\",\n \"data-icon\": \"mdi-xbox-controller-menu\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 233,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 232,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 231,\n columnNumber: 5\n }, this);\n}\n\n_c11 = ModalInit;\nReactDOM.render( /*#__PURE__*/_jsxDEV(Homepage, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 240,\n columnNumber: 3\n}, this), document.getElementById('root')); //Functions below this line are for calculating data for\n//other functions\n\nfunction date() {\n let currentDate = new Date();\n let dateOptions = {\n weekday: \"long\",\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\"\n };\n let date = currentDate.toLocaleDateString(\"en-GB\", dateOptions);\n return date;\n}\n\nfunction fixDigits(k) {\n if (k < 10) {\n return \"0\" + k;\n } else {\n return k;\n }\n}\n\nfunction greet() {\n let currentTime = new Date();\n let greet = Math.floor(currentTime.getHours() / 6);\n let easterEggChance = Math.floor(Math.random() * 100);\n\n let greetings = require('./messages.json');\n\n let timeBased = [];\n let easterEggs = [];\n\n for (var i = 0; i < greetings.messages.length; i++) {\n if (greetings.messages[i].easteregg === \"FALSE\") {\n timeBased = timeBased.concat(greetings.messages[i]);\n } else {\n easterEggs = easterEggs.concat(greetings.messages[i]);\n }\n }\n\n if (easterEggChance > 10) {\n return timeBased[greet].message;\n } else {\n let easterEggText = Math.floor(Math.random() * easterEggs.length);\n return easterEggs[easterEggText].message;\n }\n}\n\nfunction Clock() {\n _s();\n\n const [date, setDate] = useState(new Date());\n\n function refreshClock() {\n setDate(new Date());\n }\n\n useEffect(() => {\n const timerId = setInterval(refreshClock, 1000);\n return function cleanup() {\n clearInterval(timerId);\n };\n }, []);\n var hour = date.getHours();\n var minutes = date.getMinutes(); //var seconds = date.getSeconds();\n\n var midday = \"AM\";\n midday = hour >= 12 ? \"PM\" : \"AM\";\n hour = hour === 0 ? 12 : hour > 12 ? hour - 12 : hour;\n minutes = fixDigits(minutes); //seconds = fixDigits(seconds);\n\n let time = hour + \":\" + minutes + \" \" + midday;\n return /*#__PURE__*/_jsxDEV(\"h2\", {\n id: \"clock\",\n children: time\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 311,\n columnNumber: 5\n }, this);\n}\n\n_s(Clock, \"Gqi45WOZhU2c0BLYX0HoJeiR0fk=\");\n\n_c12 = Clock;\n\nfunction getApps() {\n let applications = require('./apps.json');\n\n return applications;\n}\n\nfunction getLinks() {\n let links = require('./links.json');\n\n return links;\n}\n\nfunction getProviders() {\n let providers = require('./providers.json');\n\n return providers;\n}\n\nfunction handleKeyPress(e) {\n var sindex = 0;\n var cycle = false;\n var key = e.keyCode || e.which;\n var text = document.getElementById(\"keywords\").value.replaceAll(\"+\", \"%2B\");\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n\n if (key == 13) {\n // Search functions\n search(text);\n }\n\n if (key == 9) {\n // Tab Completion Functions\n e.preventDefault();\n e.stopPropagation();\n\n if (text[0] === ';') {\n switch (option) {\n case 't':\n var streamers = ['admiralbahroo', 'moonmoon_ow', 'witwix'];\n\n if (!subtext || cycle) {\n cycle = true;\n if (sindex > streamers.length - 1) sindex = 0;\n document.getElementById(\"keywords\").value = ';t ' + streamers[sindex++];\n return;\n }\n\n for (var streamer of streamers) {\n if (subtext === streamer.substr(0, subtext.length)) {\n document.getElementById(\"keywords\").value = ';t ' + streamer;\n return;\n }\n }\n\n break;\n }\n }\n }\n\n if (key == 32) {\n //Space to go to search\n updateLabel(text);\n }\n\n sindex = 0;\n cycle = false;\n updateLabel(text);\n}\n\nfunction updateLabel(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n\n if (text[0] === '/') {\n // if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n document.getElementById(\"searchType\").innerHTML = \"Allmusic search\";\n break;\n\n case \"d\":\n document.getElementById(\"searchType\").innerHTML = \"Duck Duck Go search\";\n break;\n\n case \"di\":\n document.getElementById(\"searchType\").innerHTML = \"Discogs search\";\n break;\n\n case \"i\":\n document.getElementById(\"searchType\").innerHTML = \"IMDB search\";\n break;\n\n case \"m\":\n document.getElementById(\"searchType\").innerHTML = \"TheMovieDB search\";\n break;\n\n case \"r\":\n document.getElementById(\"searchType\").innerHTML = \"Reddit search\";\n break;\n\n case \"q\":\n document.getElementById(\"searchType\").innerHTML = \"Qwant search\";\n break;\n\n case \"so\":\n document.getElementById(\"searchType\").innerHTML = \"Soundcloud search\";\n break;\n\n case \"s\":\n document.getElementById(\"searchType\").innerHTML = \"Spotify search\";\n break;\n\n case \"tv\":\n document.getElementById(\"searchType\").innerHTML = \"TheTVDB search\";\n break;\n\n case \"t\":\n document.getElementById(\"searchType\").innerHTML = \"Trakt search\";\n break;\n\n case \"y\":\n document.getElementById(\"searchType\").innerHTML = \"YouTube search\";\n break;\n\n case \"w\":\n document.getElementById(\"searchType\").innerHTML = \"Wikipedia search\";\n break;\n\n case \"p\":\n document.getElementById(\"searchType\").innerHTML = \"Plex search\";\n break;\n\n case \"rt\":\n document.getElementById(\"searchType\").innerHTML = \"Rotten Tomatoes search\";\n break;\n\n default:\n document.getElementById(\"searchType\").innerHTML = \"Invalid search\";\n break;\n }\n } else {\n document.getElementById(\"searchType\").innerHTML = \"Google search\";\n }\n}\n\nfunction search(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n\n if (text[0] === '/') {\n if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n window.location = \"https://www.allmusic.com/search/all/\" + subtext;\n break;\n\n case \"d\":\n window.location = \"https://duckduckgo.com/?q=\" + subtext;\n break;\n\n case \"di\":\n window.location = \"https://www.discogs.com/search/?q=\" + subtext;\n break;\n\n case \"i\":\n window.location = \"https://www.imdb.com/find?q=\" + subtext;\n break;\n\n case \"m\":\n window.location = \"https://www.themoviedb.org/search?query=\" + subtext;\n break;\n\n case \"r\":\n window.location = \"https://www.reddit.com/search?q=\" + subtext;\n break;\n\n case \"q\":\n window.location = \"https://www.qwant.com/?q=\" + subtext;\n break;\n\n case \"so\":\n window.location = \"https://soundcloud.com/search?q=\" + subtext;\n break;\n\n case \"s\":\n window.location = \"https://open.spotify.com/search/results/\" + subtext;\n break;\n\n case \"t\":\n window.location = \"https://trakt.tv/search?query=\" + subtext;\n break;\n\n case \"tv\":\n window.location = \"https://www.thetvdb.com/search?query=\" + subtext;\n break;\n\n case \"y\":\n window.location = \"https://www.youtube.com/results?search_query=\" + subtext;\n break;\n\n case \"w\":\n window.location = \"https://en.wikipedia.org/w/index.php?search=\" + subtext;\n break;\n\n case \"p\":\n window.location = \"https://app.plex.tv/desktop/#!/search?query=\" + subtext;\n break;\n\n case \"rt\":\n window.location = \"https://www.rottentomatoes.com/search?search=\" + subtext;\n break;\n }\n } else {\n var option = text.substr(1);\n\n switch (option) {\n case \"d\":\n window.location = \"https://www.duckduckgo.com\";\n break;\n\n case \"y\":\n window.location = \"https://www.youtube.com\";\n break;\n\n case \"r\":\n window.location = \"https://reddit.com\";\n break;\n\n case \"s\":\n window.location = \"https://open.spotify.com\";\n break;\n }\n }\n } else if (validURL(text)) {\n if (containsProtocol(text)) window.location = text;else window.location = \"https://\" + text;\n } else {\n window.location = \"https://www.google.com/search?q=\" + text;\n }\n} // Source: https://stackoverflow.com/questions/5717093/check-if-a-javascript-string-is-a-url\n\n\nfunction validURL(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/)?' + // protocol\n '((([a-z\\\\d]([a-z\\\\d-]*[a-z\\\\d])*)\\\\.)+[a-z]{2,}|' + // domain name\n '((\\\\d{1,3}\\\\.){3}\\\\d{1,3}))' + // OR ip (v4) address\n '(\\\\:\\\\d+)?(\\\\/[-a-z\\\\d%_.~+]*)*' + // port and path\n '(\\\\?[;&a-z\\\\d%_.~+=-]*)?' + // query string\n '(\\\\#[-a-z\\\\d_]*)?$', 'i'); // fragment locator\n\n return !!pattern.test(str);\n}\n\nfunction containsProtocol(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/){1}.*', 'i');\n return !!pattern.test(str);\n}\n\nString.prototype.replaceAll = function (search, replacement) {\n var target = this;\n return target.split(search).join(replacement);\n};\n\nvar _c, _c2, _c3, _c4, _c5, _c6, _c7, _c8, _c9, _c10, _c11, _c12;\n\n$RefreshReg$(_c, \"Homepage\");\n$RefreshReg$(_c2, \"Search\");\n$RefreshReg$(_c3, \"Header\");\n$RefreshReg$(_c4, \"Applications\");\n$RefreshReg$(_c5, \"App\");\n$RefreshReg$(_c6, \"Bookmarks\");\n$RefreshReg$(_c7, \"LinkGroups\");\n$RefreshReg$(_c8, \"LinkItem\");\n$RefreshReg$(_c9, \"ModalMenu\");\n$RefreshReg$(_c10, \"Provider\");\n$RefreshReg$(_c11, \"ModalInit\");\n$RefreshReg$(_c12, \"Clock\");","map":{"version":3,"sources":["/home/seanedmunds/dev/home-page/src/index.js"],"names":["React","useState","useEffect","ReactDOM","Homepage","date","greet","Search","handleKeyPress","Header","props","Applications","appList","getApps","items","i","apps","length","push","name","url","icon","NSFW","App","classNameType","hrefUrl","iconName","Bookmarks","bookmarkList","getLinks","bookmarks","category","links","LinkGroups","LinkItem","link","ModalMenu","providers","getProviders","Provider","provider","prefix","ModalInit","render","document","getElementById","currentDate","Date","dateOptions","weekday","year","month","day","toLocaleDateString","fixDigits","k","currentTime","Math","floor","getHours","easterEggChance","random","greetings","require","timeBased","easterEggs","messages","easteregg","concat","message","easterEggText","Clock","setDate","refreshClock","timerId","setInterval","cleanup","clearInterval","hour","minutes","getMinutes","midday","time","applications","e","sindex","cycle","key","keyCode","which","text","value","replaceAll","option","substr","indexOf","subtext","search","preventDefault","stopPropagation","streamers","streamer","updateLabel","innerHTML","window","location","validURL","containsProtocol","str","pattern","RegExp","test","String","prototype","replacement","target","split","join"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { useState, useEffect } from 'react';\nimport ReactDOM from 'react-dom';\n//import { unstable_createPortal } from 'react-dom';\nimport './index.css';\n\nfunction Homepage() {\n return (\n \n \n \n
\n \n \n
\n \n \n \n
\n \n \n
\n \n \n
\n \n );\n}\n\nfunction Search() {\n return (\n \n )\n}\n\nfunction Header(props) {\n return (\n \n );\n}\n\nfunction Applications() {\n let appList = getApps();\n var items = [];\n for (var i = 0; i < appList.apps.length; i++) {\n items.push(\n \n );\n }\n return (\n \n Applications
\n \n {items}\n
\n \n );\n}\n\nfunction App(props) {\n let classNameType = props.NSFW + \"-content\";\n let hrefUrl = \"https://\" + props.url;\n let iconName = \"mdi-\" + props.icon;\n return (\n \n );\n}\n\nfunction Bookmarks() {\n let bookmarkList = getLinks();\n var items = [];\n for (var i = 0; i < bookmarkList.bookmarks.length; i++) {\n items.push(\n \n );\n }\n return (\n \n Bookmarks
\n \n {items}\n
\n \n );\n}\n\nfunction LinkGroups(props) {\n var items = [];\n for (var i = 0; i < props.links.length; i++) {\n items.push(\n \n );\n }\n return (\n \n
{props.category}
\n {items}\n \n );\n}\n\nfunction LinkItem(props) {\n return (\n \n );\n}\n\nfunction ModalMenu() {\n var providers = getProviders();\n var items = [];\n for (var i = 0; i < providers.providers.length; i++) {\n items.push(\n \n );\n }\n return (\n \n \n \n\n
Color themes
\n\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n\n\n
Search options
\n
\n \n \n \n | Website | \n Prefix | \n
\n {items}\n \n
\n \n\n \n
\n \n );\n}\n\nfunction Provider(props) {\n return (\n \n | {props.provider.name} | \n {props.provider.prefix} | \n
\n );\n}\n\nfunction ModalInit() {\n return (\n \n );\n}\n\nReactDOM.render(\n ,\n document.getElementById('root')\n);\n\n//Functions below this line are for calculating data for\n//other functions\n\nfunction date() {\n let currentDate = new Date();\n let dateOptions = {\n weekday: \"long\",\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\"\n };\n let date = currentDate.toLocaleDateString(\"en-GB\", dateOptions);\n return date;\n}\nfunction fixDigits(k) {\n if (k < 10) {\n return \"0\" + k;\n }\n else {\n return k;\n }\n}\nfunction greet() {\n let currentTime = new Date();\n let greet = Math.floor(currentTime.getHours() / 6);\n let easterEggChance = Math.floor(Math.random() * 100);\n let greetings = require('./messages.json');\n let timeBased = [];\n let easterEggs = [];\n for (var i = 0; i < greetings.messages.length; i++) {\n if (greetings.messages[i].easteregg === \"FALSE\") {\n timeBased = timeBased.concat(greetings.messages[i]);\n } else {\n easterEggs = easterEggs.concat(greetings.messages[i]);\n }\n }\n if (easterEggChance > 10) {\n return timeBased[greet].message;\n } else {\n let easterEggText = Math.floor(Math.random() * easterEggs.length);\n return easterEggs[easterEggText].message;\n }\n}\nfunction Clock() {\n const [date, setDate] = useState(new Date());\n\n function refreshClock() {\n setDate(new Date());\n }\n useEffect(() => {\n const timerId = setInterval(refreshClock, 1000);\n return function cleanup() {\n clearInterval(timerId);\n };\n }, []);\n\n var hour = date.getHours();\n var minutes = date.getMinutes();\n //var seconds = date.getSeconds();\n var midday = \"AM\";\n midday = (hour >= 12) ? \"PM\" : \"AM\";\n hour = (hour === 0) ? 12 : ((hour > 12) ? (hour - 12) : hour);\n minutes = fixDigits(minutes);\n //seconds = fixDigits(seconds);\n let time = hour + \":\" + minutes + \" \" + midday;\n\n return (\n {time}
\n\n );\n}\nfunction getApps() {\n let applications = require('./apps.json');\n return applications;\n}\nfunction getLinks() {\n let links = require('./links.json');\n return links;\n}\nfunction getProviders() {\n let providers = require('./providers.json');\n return providers;\n}\n\nfunction handleKeyPress(e) {\n var sindex = 0;\n var cycle = false;\n var key = e.keyCode || e.which;\n var text = document.getElementById(\"keywords\").value.replaceAll(\"+\", \"%2B\");\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n if (key == 13) { // Search functions\n search(text);\n }\n if (key == 9) { // Tab Completion Functions\n e.preventDefault();\n e.stopPropagation();\n if (text[0] === ';') {\n switch (option) {\n case 't':\n var streamers = ['admiralbahroo', 'moonmoon_ow', 'witwix'];\n if (!subtext || cycle) {\n cycle = true;\n if (sindex > streamers.length - 1) sindex = 0;\n document.getElementById(\"keywords\").value = ';t ' + streamers[sindex++];\n return;\n }\n for (var streamer of streamers) {\n if (subtext === streamer.substr(0, subtext.length)) {\n document.getElementById(\"keywords\").value = ';t ' + streamer;\n return;\n }\n }\n break;\n }\n }\n }\n if(key == 32){ //Space to go to search\nupdateLabel(text);\n }\n sindex = 0;\n cycle = false;\n updateLabel(text);\n}\n\nfunction updateLabel(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n if (text[0] === '/') {\n// if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n document.getElementById(\"searchType\").innerHTML = \"Allmusic search\";\n break;\n case \"d\":\n document.getElementById(\"searchType\").innerHTML = \"Duck Duck Go search\";\n break;\n case \"di\":\n document.getElementById(\"searchType\").innerHTML = \"Discogs search\";\n break;\n case \"i\":\n document.getElementById(\"searchType\").innerHTML = \"IMDB search\";\n break;\n case \"m\":\n document.getElementById(\"searchType\").innerHTML = \"TheMovieDB search\";\n break;\n case \"r\":\n document.getElementById(\"searchType\").innerHTML = \"Reddit search\";\n break;\n case \"q\":\n document.getElementById(\"searchType\").innerHTML = \"Qwant search\";\n break;\n case \"so\":\n document.getElementById(\"searchType\").innerHTML = \"Soundcloud search\";\n break;\n case \"s\":\n document.getElementById(\"searchType\").innerHTML = \"Spotify search\";\n break;\n case \"tv\":\n document.getElementById(\"searchType\").innerHTML = \"TheTVDB search\";\n break;\n case \"t\":\n document.getElementById(\"searchType\").innerHTML = \"Trakt search\";\n break;\n case \"y\":\n document.getElementById(\"searchType\").innerHTML = \"YouTube search\";\n break;\n case \"w\":\n document.getElementById(\"searchType\").innerHTML = \"Wikipedia search\";\n break;\n case \"p\":\n document.getElementById(\"searchType\").innerHTML = \"Plex search\";\n break;\n case \"rt\":\n document.getElementById(\"searchType\").innerHTML = \"Rotten Tomatoes search\";\n break;\n default:\n document.getElementById(\"searchType\").innerHTML = \"Invalid search\";\n break;\n }\n}else {\n document.getElementById(\"searchType\").innerHTML = \"Google search\";\n }\n}\n\nfunction search(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n if (text[0] === '/') {\n if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n window.location = \"https://www.allmusic.com/search/all/\" + subtext;\n break;\n case \"d\":\n window.location = \"https://duckduckgo.com/?q=\" + subtext;\n break;\n case \"di\":\n window.location = \"https://www.discogs.com/search/?q=\" + subtext;\n break;\n case \"i\":\n window.location = \"https://www.imdb.com/find?q=\" + subtext;\n break;\n case \"m\":\n window.location = \"https://www.themoviedb.org/search?query=\" + subtext;\n break;\n case \"r\":\n window.location = \"https://www.reddit.com/search?q=\" + subtext;\n break;\n case \"q\":\n window.location = \"https://www.qwant.com/?q=\" + subtext;\n break;\n case \"so\":\n window.location = \"https://soundcloud.com/search?q=\" + subtext;\n break;\n case \"s\":\n window.location = \"https://open.spotify.com/search/results/\" + subtext;\n break;\n case \"t\":\n window.location = \"https://trakt.tv/search?query=\" + subtext;\n break;\n case \"tv\":\n window.location = \"https://www.thetvdb.com/search?query=\" + subtext;\n break;\n case \"y\":\n window.location = \"https://www.youtube.com/results?search_query=\" + subtext;\n break;\n case \"w\":\n window.location = \"https://en.wikipedia.org/w/index.php?search=\" + subtext;\n break;\n case \"p\":\n window.location = \"https://app.plex.tv/desktop/#!/search?query=\" + subtext;\n break;\n case \"rt\":\n window.location = \"https://www.rottentomatoes.com/search?search=\" + subtext;\n break;\n }\n } else {\n var option = text.substr(1);\n switch (option) {\n case \"d\":\n window.location = \"https://www.duckduckgo.com\";\n break;\n case \"y\":\n window.location = \"https://www.youtube.com\";\n break;\n case \"r\":\n window.location = \"https://reddit.com\";\n break;\n case \"s\":\n window.location = \"https://open.spotify.com\";\n break;\n }\n }\n } else if (validURL(text)) {\n if (containsProtocol(text))\n window.location = text;\n else\n window.location = \"https://\" + text;\n } else {\n window.location = \"https://www.google.com/search?q=\" + text;\n }\n}\n\n// Source: https://stackoverflow.com/questions/5717093/check-if-a-javascript-string-is-a-url\nfunction validURL(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/)?' + // protocol\n '((([a-z\\\\d]([a-z\\\\d-]*[a-z\\\\d])*)\\\\.)+[a-z]{2,}|' + // domain name\n '((\\\\d{1,3}\\\\.){3}\\\\d{1,3}))' + // OR ip (v4) address\n '(\\\\:\\\\d+)?(\\\\/[-a-z\\\\d%_.~+]*)*' + // port and path\n '(\\\\?[;&a-z\\\\d%_.~+=-]*)?' + // query string\n '(\\\\#[-a-z\\\\d_]*)?$', 'i'); // fragment locator\n return !!pattern.test(str);\n}\n\nfunction containsProtocol(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/){1}.*', 'i');\n return !!pattern.test(str);\n}\n\nString.prototype.replaceAll = function(search, replacement) {\n var target = this;\n return target.split(search).join(replacement);\n};"]},"metadata":{},"sourceType":"module"}
\ No newline at end of file
diff --git a/node_modules/.cache/babel-loader/fa70b27622c7854f3d047a458b76c482.json b/node_modules/.cache/babel-loader/fa70b27622c7854f3d047a458b76c482.json
new file mode 100644
index 00000000..bd799207
--- /dev/null
+++ b/node_modules/.cache/babel-loader/fa70b27622c7854f3d047a458b76c482.json
@@ -0,0 +1 @@
+{"ast":null,"code":"var _jsxFileName = \"/home/seanedmunds/dev/home-page/src/index.js\",\n _s = $RefreshSig$();\n\nimport React from 'react';\nimport { useState, useEffect } from 'react';\nimport ReactDOM from 'react-dom'; //import { unstable_createPortal } from 'react-dom';\n\nimport './index.css';\nimport './themer';\nimport { jsxDEV as _jsxDEV } from \"react/jsx-dev-runtime\";\n\nfunction Homepage() {\n return /*#__PURE__*/_jsxDEV(\"main\", {\n id: \"container\",\n className: \"fade\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Search, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 12,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 11,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Header, {\n date: date(),\n greet: greet()\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 15,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 14,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Applications, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 21,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 20,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Bookmarks, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 24,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 23,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(ModalMenu, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 27,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 26,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(ModalInit, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 30,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 29,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 10,\n columnNumber: 5\n }, this);\n}\n\n_c = Homepage;\n\nfunction Search() {\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"search\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"abackground\",\n children: [/*#__PURE__*/_jsxDEV(\"input\", {\n name: \"keywords\",\n type: \"text\",\n className: \"keyword\",\n id: \"keywords\",\n size: \"50\",\n spellCheck: \"true\",\n placeholder: \"\"\n /*onFocus={this.placeholder = \"\"} onBlur={this.placeholder = ''}*/\n ,\n autoComplete: \"off\",\n autoFocus: true,\n onKeyUp: handleKeyPress\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 40,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n id: \"searchType\",\n className: \"Input-label\",\n children: \"Google search\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 41,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 39,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 38,\n columnNumber: 5\n }, this);\n}\n\n_c2 = Search;\n\nfunction Header(props) {\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"header\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n id: \"greeting_block\",\n children: /*#__PURE__*/_jsxDEV(\"h1\", {\n id: \"header_greet\",\n children: props.greet\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 51,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 50,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"date_block\",\n children: [/*#__PURE__*/_jsxDEV(\"h2\", {\n id: \"header_date\",\n children: props.date\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 54,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(Clock, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 55,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 53,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 49,\n columnNumber: 5\n }, this);\n}\n\n_c3 = Header;\n\nfunction Applications() {\n let appList = getApps();\n var items = [];\n\n for (var i = 0; i < appList.apps.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(App, {\n name: appList.apps[i].name,\n url: appList.apps[i].url,\n icon: appList.apps[i].icon,\n NSFW: appList.apps[i].NSFW\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 66,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"apps\",\n children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n children: \"Applications\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 77,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"apps_loop\",\n children: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 78,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 76,\n columnNumber: 5\n }, this);\n}\n\n_c4 = Applications;\n\nfunction App(props) {\n let classNameType = props.NSFW + \"-content\";\n let hrefUrl = \"https://\" + props.url;\n let iconName = \"mdi-\" + props.icon;\n return /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: hrefUrl,\n className: classNameType,\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_item\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_icon\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify icon\",\n \"data-icon\": iconName\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 94,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 93,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_text\",\n children: [/*#__PURE__*/_jsxDEV(\"span\", {\n id: \"app-name\",\n children: props.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 97,\n columnNumber: 13\n }, this), /*#__PURE__*/_jsxDEV(\"span\", {\n id: \"app-address\",\n children: props.url\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 98,\n columnNumber: 13\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 96,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 92,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 91,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 90,\n columnNumber: 5\n }, this);\n}\n\n_c5 = App;\n\nfunction Bookmarks() {\n let bookmarkList = getLinks();\n var items = [];\n\n for (var i = 0; i < bookmarkList.bookmarks.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(LinkGroups, {\n category: bookmarkList.bookmarks[i].category,\n links: bookmarkList.bookmarks[i].links\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 111,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"links\",\n children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n children: \"Bookmarks\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 120,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"links_loop\",\n children: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 121,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 119,\n columnNumber: 5\n }, this);\n}\n\n_c6 = Bookmarks;\n\nfunction LinkGroups(props) {\n var items = [];\n\n for (var i = 0; i < props.links.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(LinkItem, {\n link: props.links[i]\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 132,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"links_item\",\n children: [/*#__PURE__*/_jsxDEV(\"h4\", {\n children: props.category\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 140,\n columnNumber: 7\n }, this), items]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 139,\n columnNumber: 5\n }, this);\n}\n\n_c7 = LinkGroups;\n\nfunction LinkItem(props) {\n return /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: props.link.url,\n className: \"theme_color-border theme_text-select\",\n children: props.link.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 149,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 148,\n columnNumber: 5\n }, this);\n}\n\n_c8 = LinkItem;\n\nfunction ModalMenu() {\n var providers = getProviders();\n var items = [];\n\n for (var i = 0; i < providers.providers.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(Provider, {\n provider: providers.providers[i]\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 159,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"modal\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n children: [/*#__PURE__*/_jsxDEV(\"header\", {\n id: \"modal-header\",\n children: [/*#__PURE__*/_jsxDEV(\"h1\", {\n children: \"Options\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 169,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n href: \"#\",\n title: \"Close\",\n className: \"modal-close\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-close\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 171,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 170,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 168,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"h2\", {\n children: \"Color themes\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 175,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"modal-theme\",\n children: [/*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"blackboard\",\n className: \"theme-button theme-blackboard\",\n onClick: updateTheme,\n children: \"Blackboard\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 178,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"gazette\",\n className: \"theme-button theme-gazette\",\n children: \"Gazette\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 179,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"espresso\",\n className: \"theme-button theme-espresso\",\n children: \"Espresso\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 180,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cab\",\n className: \"theme-button theme-cab\",\n children: \"Cab\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 181,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cloud\",\n className: \"theme-button theme-cloud\",\n children: \"Cloud\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 182,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"lime\",\n className: \"theme-button theme-lime\",\n children: \"Lime\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 183,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"passion\",\n className: \"theme-button theme-passion\",\n children: \"Passion\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 184,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"blues\",\n className: \"theme-button theme-blues\",\n children: \"Blues\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 185,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"chalk\",\n className: \"theme-button theme-chalk\",\n children: \"Chalk\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 186,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"tron\",\n className: \"theme-button theme-tron\",\n children: \"Tron\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 187,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"paper\",\n className: \"theme-button theme-paper\",\n children: \"Paper\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 188,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cyberpunk\",\n className: \"theme-button theme-cyberpunk\",\n children: \"Cyberpunk\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 189,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"quadra\",\n className: \"theme-button theme-panam\",\n children: \"Quadra\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 190,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"panam\",\n className: \"theme-button theme-panam\",\n children: \"Panam\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 191,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"touch\",\n className: \"theme-button theme-touch\",\n children: \"Touch\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 192,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"peek\",\n className: \"theme-button theme-peek\",\n children: \"Peek\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 193,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 177,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"h2\", {\n children: \"Search options\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 197,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"providers\",\n children: /*#__PURE__*/_jsxDEV(\"table\", {\n children: /*#__PURE__*/_jsxDEV(\"tbody\", {\n children: [/*#__PURE__*/_jsxDEV(\"tr\", {\n children: [/*#__PURE__*/_jsxDEV(\"th\", {\n children: \"Website\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 202,\n columnNumber: 19\n }, this), /*#__PURE__*/_jsxDEV(\"th\", {\n children: \"Prefix\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 203,\n columnNumber: 19\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 201,\n columnNumber: 17\n }, this), items]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 200,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 199,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 198,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"header\", {\n id: \"modal-footer\",\n children: [/*#__PURE__*/_jsxDEV(\"a\", {\n href: \"https://github.com/jeroenpardon/\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-github-box\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 211,\n columnNumber: 54\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 211,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n href: \"https://materialdesignicons.com/\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-material-design\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 212,\n columnNumber: 54\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 212,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"sneaky\",\n children: [/*#__PURE__*/_jsxDEV(\"input\", {\n type: \"checkbox\",\n id: \"contenttype\",\n onChange: \"nsfw(this)\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 213,\n columnNumber: 35\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n for: \"contenttype\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-domino-mask\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 214,\n columnNumber: 36\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 214,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 213,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 210,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 167,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 166,\n columnNumber: 5\n }, this);\n}\n\n_c9 = ModalMenu;\n\nfunction Provider(props) {\n return /*#__PURE__*/_jsxDEV(\"tr\", {\n children: [/*#__PURE__*/_jsxDEV(\"td\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: props.provider.url,\n children: props.provider.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 224,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 224,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"td\", {\n children: props.provider.prefix\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 225,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 223,\n columnNumber: 5\n }, this);\n}\n\n_c10 = Provider;\n\nfunction ModalInit() {\n return /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"modal_init\",\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n className: \"btn\",\n href: \"#modal\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify icon\",\n \"data-icon\": \"mdi-xbox-controller-menu\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 234,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 233,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 232,\n columnNumber: 5\n }, this);\n}\n\n_c11 = ModalInit;\nReactDOM.render( /*#__PURE__*/_jsxDEV(Homepage, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 241,\n columnNumber: 3\n}, this), document.getElementById('root')); //Functions below this line are for calculating data for\n//other functions\n\nfunction date() {\n let currentDate = new Date();\n let dateOptions = {\n weekday: \"long\",\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\"\n };\n let date = currentDate.toLocaleDateString(\"en-GB\", dateOptions);\n return date;\n}\n\nfunction fixDigits(k) {\n if (k < 10) {\n return \"0\" + k;\n } else {\n return k;\n }\n}\n\nfunction greet() {\n let currentTime = new Date();\n let greet = Math.floor(currentTime.getHours() / 6);\n let easterEggChance = Math.floor(Math.random() * 100);\n\n let greetings = require('./messages.json');\n\n let timeBased = [];\n let easterEggs = [];\n\n for (var i = 0; i < greetings.messages.length; i++) {\n if (greetings.messages[i].easteregg === \"FALSE\") {\n timeBased = timeBased.concat(greetings.messages[i]);\n } else {\n easterEggs = easterEggs.concat(greetings.messages[i]);\n }\n }\n\n if (easterEggChance > 10) {\n return timeBased[greet].message;\n } else {\n let easterEggText = Math.floor(Math.random() * easterEggs.length);\n return easterEggs[easterEggText].message;\n }\n}\n\nfunction Clock() {\n _s();\n\n const [date, setDate] = useState(new Date());\n\n function refreshClock() {\n setDate(new Date());\n }\n\n useEffect(() => {\n const timerId = setInterval(refreshClock, 1000);\n return function cleanup() {\n clearInterval(timerId);\n };\n }, []);\n var hour = date.getHours();\n var minutes = date.getMinutes(); //var seconds = date.getSeconds();\n\n var midday = \"AM\";\n midday = hour >= 12 ? \"PM\" : \"AM\";\n hour = hour === 0 ? 12 : hour > 12 ? hour - 12 : hour;\n minutes = fixDigits(minutes); //seconds = fixDigits(seconds);\n\n let time = hour + \":\" + minutes + \" \" + midday;\n return /*#__PURE__*/_jsxDEV(\"h2\", {\n id: \"clock\",\n children: time\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 312,\n columnNumber: 5\n }, this);\n}\n\n_s(Clock, \"Gqi45WOZhU2c0BLYX0HoJeiR0fk=\");\n\n_c12 = Clock;\n\nfunction getApps() {\n let applications = require('./apps.json');\n\n return applications;\n}\n\nfunction getLinks() {\n let links = require('./links.json');\n\n return links;\n}\n\nfunction getProviders() {\n let providers = require('./providers.json');\n\n return providers;\n}\n\nfunction getThemes() {\n let providers = require('./themes.json');\n\n return themes;\n}\n\nfunction handleKeyPress(e) {\n var sindex = 0;\n var cycle = false;\n var key = e.keyCode || e.which;\n var text = e.target.value.replaceAll(\"+\", \"%2B\");\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n\n if (key == 13) {\n // Search functions\n search(text);\n }\n\n if (key == 9) {\n // Tab Completion Functions\n e.preventDefault();\n e.stopPropagation();\n\n if (text[0] === ';') {\n switch (option) {\n case 't':\n var streamers = ['admiralbahroo', 'moonmoon_ow', 'witwix'];\n\n if (!subtext || cycle) {\n cycle = true;\n if (sindex > streamers.length - 1) sindex = 0;\n document.getElementById(\"keywords\").value = ';t ' + streamers[sindex++];\n return;\n }\n\n for (var streamer of streamers) {\n if (subtext === streamer.substr(0, subtext.length)) {\n document.getElementById(\"keywords\").value = ';t ' + streamer;\n return;\n }\n }\n\n break;\n }\n }\n }\n\n if (key == 32) {\n //Space to go to search\n updateLabel(text);\n }\n\n sindex = 0;\n cycle = false;\n updateLabel(text);\n}\n\nfunction updateLabel(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n\n if (text[0] === '/') {\n // if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n document.getElementById(\"searchType\").innerHTML = \"Allmusic search\";\n break;\n\n case \"d\":\n document.getElementById(\"searchType\").innerHTML = \"Duck Duck Go search\";\n break;\n\n case \"di\":\n document.getElementById(\"searchType\").innerHTML = \"Discogs search\";\n break;\n\n case \"i\":\n document.getElementById(\"searchType\").innerHTML = \"IMDB search\";\n break;\n\n case \"m\":\n document.getElementById(\"searchType\").innerHTML = \"TheMovieDB search\";\n break;\n\n case \"r\":\n document.getElementById(\"searchType\").innerHTML = \"Reddit search\";\n break;\n\n case \"q\":\n document.getElementById(\"searchType\").innerHTML = \"Qwant search\";\n break;\n\n case \"so\":\n document.getElementById(\"searchType\").innerHTML = \"Soundcloud search\";\n break;\n\n case \"s\":\n document.getElementById(\"searchType\").innerHTML = \"Spotify search\";\n break;\n\n case \"tv\":\n document.getElementById(\"searchType\").innerHTML = \"TheTVDB search\";\n break;\n\n case \"t\":\n document.getElementById(\"searchType\").innerHTML = \"Trakt search\";\n break;\n\n case \"y\":\n document.getElementById(\"searchType\").innerHTML = \"YouTube search\";\n break;\n\n case \"w\":\n document.getElementById(\"searchType\").innerHTML = \"Wikipedia search\";\n break;\n\n case \"p\":\n document.getElementById(\"searchType\").innerHTML = \"Plex search\";\n break;\n\n case \"rt\":\n document.getElementById(\"searchType\").innerHTML = \"Rotten Tomatoes search\";\n break;\n\n default:\n document.getElementById(\"searchType\").innerHTML = \"Invalid search\";\n break;\n }\n } else {\n document.getElementById(\"searchType\").innerHTML = \"Google search\";\n }\n}\n\nfunction search(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n\n if (text[0] === '/') {\n if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n window.location = \"https://www.allmusic.com/search/all/\" + subtext;\n break;\n\n case \"d\":\n window.location = \"https://duckduckgo.com/?q=\" + subtext;\n break;\n\n case \"di\":\n window.location = \"https://www.discogs.com/search/?q=\" + subtext;\n break;\n\n case \"i\":\n window.location = \"https://www.imdb.com/find?q=\" + subtext;\n break;\n\n case \"m\":\n window.location = \"https://www.themoviedb.org/search?query=\" + subtext;\n break;\n\n case \"r\":\n window.location = \"https://www.reddit.com/search?q=\" + subtext;\n break;\n\n case \"q\":\n window.location = \"https://www.qwant.com/?q=\" + subtext;\n break;\n\n case \"so\":\n window.location = \"https://soundcloud.com/search?q=\" + subtext;\n break;\n\n case \"s\":\n window.location = \"https://open.spotify.com/search/results/\" + subtext;\n break;\n\n case \"t\":\n window.location = \"https://trakt.tv/search?query=\" + subtext;\n break;\n\n case \"tv\":\n window.location = \"https://www.thetvdb.com/search?query=\" + subtext;\n break;\n\n case \"y\":\n window.location = \"https://www.youtube.com/results?search_query=\" + subtext;\n break;\n\n case \"w\":\n window.location = \"https://en.wikipedia.org/w/index.php?search=\" + subtext;\n break;\n\n case \"p\":\n window.location = \"https://app.plex.tv/desktop/#!/search?query=\" + subtext;\n break;\n\n case \"rt\":\n window.location = \"https://www.rottentomatoes.com/search?search=\" + subtext;\n break;\n }\n } else {\n var option = text.substr(1);\n\n switch (option) {\n case \"d\":\n window.location = \"https://www.duckduckgo.com\";\n break;\n\n case \"y\":\n window.location = \"https://www.youtube.com\";\n break;\n\n case \"r\":\n window.location = \"https://reddit.com\";\n break;\n\n case \"s\":\n window.location = \"https://open.spotify.com\";\n break;\n }\n }\n } else if (validURL(text)) {\n if (containsProtocol(text)) window.location = text;else window.location = \"https://\" + text;\n } else {\n window.location = \"https://www.google.com/search?q=\" + text;\n }\n} // Source: https://stackoverflow.com/questions/5717093/check-if-a-javascript-string-is-a-url\n\n\nfunction validURL(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/)?' + // protocol\n '((([a-z\\\\d]([a-z\\\\d-]*[a-z\\\\d])*)\\\\.)+[a-z]{2,}|' + // domain name\n '((\\\\d{1,3}\\\\.){3}\\\\d{1,3}))' + // OR ip (v4) address\n '(\\\\:\\\\d+)?(\\\\/[-a-z\\\\d%_.~+]*)*' + // port and path\n '(\\\\?[;&a-z\\\\d%_.~+=-]*)?' + // query string\n '(\\\\#[-a-z\\\\d_]*)?$', 'i'); // fragment locator\n\n return !!pattern.test(str);\n}\n\nfunction containsProtocol(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/){1}.*', 'i');\n return !!pattern.test(str);\n}\n\nString.prototype.replaceAll = function (search, replacement) {\n var target = this;\n return target.split(search).join(replacement);\n};\n\nvar _c, _c2, _c3, _c4, _c5, _c6, _c7, _c8, _c9, _c10, _c11, _c12;\n\n$RefreshReg$(_c, \"Homepage\");\n$RefreshReg$(_c2, \"Search\");\n$RefreshReg$(_c3, \"Header\");\n$RefreshReg$(_c4, \"Applications\");\n$RefreshReg$(_c5, \"App\");\n$RefreshReg$(_c6, \"Bookmarks\");\n$RefreshReg$(_c7, \"LinkGroups\");\n$RefreshReg$(_c8, \"LinkItem\");\n$RefreshReg$(_c9, \"ModalMenu\");\n$RefreshReg$(_c10, \"Provider\");\n$RefreshReg$(_c11, \"ModalInit\");\n$RefreshReg$(_c12, \"Clock\");","map":{"version":3,"sources":["/home/seanedmunds/dev/home-page/src/index.js"],"names":["React","useState","useEffect","ReactDOM","Homepage","date","greet","Search","handleKeyPress","Header","props","Applications","appList","getApps","items","i","apps","length","push","name","url","icon","NSFW","App","classNameType","hrefUrl","iconName","Bookmarks","bookmarkList","getLinks","bookmarks","category","links","LinkGroups","LinkItem","link","ModalMenu","providers","getProviders","updateTheme","Provider","provider","prefix","ModalInit","render","document","getElementById","currentDate","Date","dateOptions","weekday","year","month","day","toLocaleDateString","fixDigits","k","currentTime","Math","floor","getHours","easterEggChance","random","greetings","require","timeBased","easterEggs","messages","easteregg","concat","message","easterEggText","Clock","setDate","refreshClock","timerId","setInterval","cleanup","clearInterval","hour","minutes","getMinutes","midday","time","applications","getThemes","themes","e","sindex","cycle","key","keyCode","which","text","target","value","replaceAll","option","substr","indexOf","subtext","search","preventDefault","stopPropagation","streamers","streamer","updateLabel","innerHTML","window","location","validURL","containsProtocol","str","pattern","RegExp","test","String","prototype","replacement","split","join"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { useState, useEffect } from 'react';\nimport ReactDOM from 'react-dom';\n//import { unstable_createPortal } from 'react-dom';\nimport './index.css';\nimport './themer';\n\nfunction Homepage() {\n return (\n \n \n \n
\n \n \n
\n \n \n \n
\n \n \n
\n \n \n
\n \n );\n}\n\nfunction Search() {\n return (\n \n )\n}\n\nfunction Header(props) {\n return (\n \n );\n}\n\nfunction Applications() {\n let appList = getApps();\n var items = [];\n for (var i = 0; i < appList.apps.length; i++) {\n items.push(\n \n );\n }\n return (\n \n Applications
\n \n {items}\n
\n \n );\n}\n\nfunction App(props) {\n let classNameType = props.NSFW + \"-content\";\n let hrefUrl = \"https://\" + props.url;\n let iconName = \"mdi-\" + props.icon;\n return (\n \n );\n}\n\nfunction Bookmarks() {\n let bookmarkList = getLinks();\n var items = [];\n for (var i = 0; i < bookmarkList.bookmarks.length; i++) {\n items.push(\n \n );\n }\n return (\n \n Bookmarks
\n \n {items}\n
\n \n );\n}\n\nfunction LinkGroups(props) {\n var items = [];\n for (var i = 0; i < props.links.length; i++) {\n items.push(\n \n );\n }\n return (\n \n
{props.category}
\n {items}\n \n );\n}\n\nfunction LinkItem(props) {\n return (\n \n );\n}\n\nfunction ModalMenu() {\n var providers = getProviders();\n var items = [];\n for (var i = 0; i < providers.providers.length; i++) {\n items.push(\n \n );\n }\n return (\n \n \n \n\n
Color themes
\n\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n\n\n
Search options
\n
\n \n \n \n | Website | \n Prefix | \n
\n {items}\n \n
\n \n\n \n
\n \n );\n}\n\nfunction Provider(props) {\n return (\n \n | {props.provider.name} | \n {props.provider.prefix} | \n
\n );\n}\n\nfunction ModalInit() {\n return (\n \n );\n}\n\nReactDOM.render(\n ,\n document.getElementById('root')\n);\n\n//Functions below this line are for calculating data for\n//other functions\n\nfunction date() {\n let currentDate = new Date();\n let dateOptions = {\n weekday: \"long\",\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\"\n };\n let date = currentDate.toLocaleDateString(\"en-GB\", dateOptions);\n return date;\n}\nfunction fixDigits(k) {\n if (k < 10) {\n return \"0\" + k;\n }\n else {\n return k;\n }\n}\nfunction greet() {\n let currentTime = new Date();\n let greet = Math.floor(currentTime.getHours() / 6);\n let easterEggChance = Math.floor(Math.random() * 100);\n let greetings = require('./messages.json');\n let timeBased = [];\n let easterEggs = [];\n for (var i = 0; i < greetings.messages.length; i++) {\n if (greetings.messages[i].easteregg === \"FALSE\") {\n timeBased = timeBased.concat(greetings.messages[i]);\n } else {\n easterEggs = easterEggs.concat(greetings.messages[i]);\n }\n }\n if (easterEggChance > 10) {\n return timeBased[greet].message;\n } else {\n let easterEggText = Math.floor(Math.random() * easterEggs.length);\n return easterEggs[easterEggText].message;\n }\n}\nfunction Clock() {\n const [date, setDate] = useState(new Date());\n\n function refreshClock() {\n setDate(new Date());\n }\n useEffect(() => {\n const timerId = setInterval(refreshClock, 1000);\n return function cleanup() {\n clearInterval(timerId);\n };\n }, []);\n\n var hour = date.getHours();\n var minutes = date.getMinutes();\n //var seconds = date.getSeconds();\n var midday = \"AM\";\n midday = (hour >= 12) ? \"PM\" : \"AM\";\n hour = (hour === 0) ? 12 : ((hour > 12) ? (hour - 12) : hour);\n minutes = fixDigits(minutes);\n //seconds = fixDigits(seconds);\n let time = hour + \":\" + minutes + \" \" + midday;\n\n return (\n {time}
\n\n );\n}\nfunction getApps() {\n let applications = require('./apps.json');\n return applications;\n}\nfunction getLinks() {\n let links = require('./links.json');\n return links;\n}\nfunction getProviders() {\n let providers = require('./providers.json');\n return providers;\n}\nfunction getThemes() {\n let providers = require('./themes.json');\n return themes;\n}\n\nfunction handleKeyPress(e) {\n var sindex = 0;\n var cycle = false;\n var key = e.keyCode || e.which;\n var text = e.target.value.replaceAll(\"+\", \"%2B\");\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n if (key == 13) { // Search functions\n search(text);\n }\n if (key == 9) { // Tab Completion Functions\n e.preventDefault();\n e.stopPropagation();\n if (text[0] === ';') {\n switch (option) {\n case 't':\n var streamers = ['admiralbahroo', 'moonmoon_ow', 'witwix'];\n if (!subtext || cycle) {\n cycle = true;\n if (sindex > streamers.length - 1) sindex = 0;\n document.getElementById(\"keywords\").value = ';t ' + streamers[sindex++];\n return;\n }\n for (var streamer of streamers) {\n if (subtext === streamer.substr(0, subtext.length)) {\n document.getElementById(\"keywords\").value = ';t ' + streamer;\n return;\n }\n }\n break;\n }\n }\n }\n if(key == 32){ //Space to go to search\nupdateLabel(text);\n }\n sindex = 0;\n cycle = false;\n updateLabel(text);\n}\n\nfunction updateLabel(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n if (text[0] === '/') {\n// if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n document.getElementById(\"searchType\").innerHTML = \"Allmusic search\";\n break;\n case \"d\":\n document.getElementById(\"searchType\").innerHTML = \"Duck Duck Go search\";\n break;\n case \"di\":\n document.getElementById(\"searchType\").innerHTML = \"Discogs search\";\n break;\n case \"i\":\n document.getElementById(\"searchType\").innerHTML = \"IMDB search\";\n break;\n case \"m\":\n document.getElementById(\"searchType\").innerHTML = \"TheMovieDB search\";\n break;\n case \"r\":\n document.getElementById(\"searchType\").innerHTML = \"Reddit search\";\n break;\n case \"q\":\n document.getElementById(\"searchType\").innerHTML = \"Qwant search\";\n break;\n case \"so\":\n document.getElementById(\"searchType\").innerHTML = \"Soundcloud search\";\n break;\n case \"s\":\n document.getElementById(\"searchType\").innerHTML = \"Spotify search\";\n break;\n case \"tv\":\n document.getElementById(\"searchType\").innerHTML = \"TheTVDB search\";\n break;\n case \"t\":\n document.getElementById(\"searchType\").innerHTML = \"Trakt search\";\n break;\n case \"y\":\n document.getElementById(\"searchType\").innerHTML = \"YouTube search\";\n break;\n case \"w\":\n document.getElementById(\"searchType\").innerHTML = \"Wikipedia search\";\n break;\n case \"p\":\n document.getElementById(\"searchType\").innerHTML = \"Plex search\";\n break;\n case \"rt\":\n document.getElementById(\"searchType\").innerHTML = \"Rotten Tomatoes search\";\n break;\n default:\n document.getElementById(\"searchType\").innerHTML = \"Invalid search\";\n break;\n }\n}else {\n document.getElementById(\"searchType\").innerHTML = \"Google search\";\n }\n}\n\nfunction search(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n if (text[0] === '/') {\n if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n window.location = \"https://www.allmusic.com/search/all/\" + subtext;\n break;\n case \"d\":\n window.location = \"https://duckduckgo.com/?q=\" + subtext;\n break;\n case \"di\":\n window.location = \"https://www.discogs.com/search/?q=\" + subtext;\n break;\n case \"i\":\n window.location = \"https://www.imdb.com/find?q=\" + subtext;\n break;\n case \"m\":\n window.location = \"https://www.themoviedb.org/search?query=\" + subtext;\n break;\n case \"r\":\n window.location = \"https://www.reddit.com/search?q=\" + subtext;\n break;\n case \"q\":\n window.location = \"https://www.qwant.com/?q=\" + subtext;\n break;\n case \"so\":\n window.location = \"https://soundcloud.com/search?q=\" + subtext;\n break;\n case \"s\":\n window.location = \"https://open.spotify.com/search/results/\" + subtext;\n break;\n case \"t\":\n window.location = \"https://trakt.tv/search?query=\" + subtext;\n break;\n case \"tv\":\n window.location = \"https://www.thetvdb.com/search?query=\" + subtext;\n break;\n case \"y\":\n window.location = \"https://www.youtube.com/results?search_query=\" + subtext;\n break;\n case \"w\":\n window.location = \"https://en.wikipedia.org/w/index.php?search=\" + subtext;\n break;\n case \"p\":\n window.location = \"https://app.plex.tv/desktop/#!/search?query=\" + subtext;\n break;\n case \"rt\":\n window.location = \"https://www.rottentomatoes.com/search?search=\" + subtext;\n break;\n }\n } else {\n var option = text.substr(1);\n switch (option) {\n case \"d\":\n window.location = \"https://www.duckduckgo.com\";\n break;\n case \"y\":\n window.location = \"https://www.youtube.com\";\n break;\n case \"r\":\n window.location = \"https://reddit.com\";\n break;\n case \"s\":\n window.location = \"https://open.spotify.com\";\n break;\n }\n }\n } else if (validURL(text)) {\n if (containsProtocol(text))\n window.location = text;\n else\n window.location = \"https://\" + text;\n } else {\n window.location = \"https://www.google.com/search?q=\" + text;\n }\n}\n\n// Source: https://stackoverflow.com/questions/5717093/check-if-a-javascript-string-is-a-url\nfunction validURL(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/)?' + // protocol\n '((([a-z\\\\d]([a-z\\\\d-]*[a-z\\\\d])*)\\\\.)+[a-z]{2,}|' + // domain name\n '((\\\\d{1,3}\\\\.){3}\\\\d{1,3}))' + // OR ip (v4) address\n '(\\\\:\\\\d+)?(\\\\/[-a-z\\\\d%_.~+]*)*' + // port and path\n '(\\\\?[;&a-z\\\\d%_.~+=-]*)?' + // query string\n '(\\\\#[-a-z\\\\d_]*)?$', 'i'); // fragment locator\n return !!pattern.test(str);\n}\n\nfunction containsProtocol(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/){1}.*', 'i');\n return !!pattern.test(str);\n}\n\nString.prototype.replaceAll = function(search, replacement) {\n var target = this;\n return target.split(search).join(replacement);\n};"]},"metadata":{},"sourceType":"module"}
\ No newline at end of file
diff --git a/node_modules/.cache/babel-loader/fbfa86f23962477667ade4a23eb4411d.json b/node_modules/.cache/babel-loader/fbfa86f23962477667ade4a23eb4411d.json
new file mode 100644
index 00000000..037f4e2c
--- /dev/null
+++ b/node_modules/.cache/babel-loader/fbfa86f23962477667ade4a23eb4411d.json
@@ -0,0 +1 @@
+{"ast":null,"code":"var _jsxFileName = \"/home/seanedmunds/dev/home-page/src/index.js\",\n _s = $RefreshSig$();\n\nimport React from 'react';\nimport { useState, useEffect } from 'react';\nimport ReactDOM from 'react-dom'; //import { unstable_createPortal } from 'react-dom';\n\nimport './index.css';\nimport { jsxDEV as _jsxDEV } from \"react/jsx-dev-runtime\";\n\nconst setValueFromLocalStorage = property => {\n let value = localStorage.getItem(property);\n setValue(property, value);\n};\n\nconst setValue = (property, value) => {\n if (value) {\n document.documentElement.style.setProperty(`--${property}`, value);\n const input = document.querySelector(`#${property}`);\n\n if (input) {\n value = value.replace('px', '');\n input.value = value;\n }\n }\n};\n\nfunction Homepage() {\n setTheme();\n return /*#__PURE__*/_jsxDEV(\"main\", {\n id: \"container\",\n className: \"fade\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Search, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 28,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 27,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Header, {\n date: date(),\n greet: greet()\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 31,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 30,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Applications, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 37,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 36,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Bookmarks, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 40,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 39,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(ModalMenu, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 43,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 42,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(ModalInit, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 46,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 45,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 26,\n columnNumber: 5\n }, this);\n}\n\n_c = Homepage;\n\nfunction Search() {\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"search\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"abackground\",\n children: [/*#__PURE__*/_jsxDEV(\"input\", {\n name: \"keywords\",\n type: \"text\",\n className: \"keyword\",\n id: \"keywords\",\n size: \"50\",\n spellCheck: \"true\",\n placeholder: \"\"\n /*onFocus={this.placeholder = \"\"} onBlur={this.placeholder = ''}*/\n ,\n autoComplete: \"off\",\n autoFocus: true,\n onKeyUp: handleKeyPress\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 56,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n id: \"searchType\",\n className: \"Input-label\",\n children: \"Google search\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 57,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 55,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 54,\n columnNumber: 5\n }, this);\n}\n\n_c2 = Search;\n\nfunction Header(props) {\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"header\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n id: \"greeting_block\",\n children: /*#__PURE__*/_jsxDEV(\"h1\", {\n id: \"header_greet\",\n children: props.greet\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 67,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 66,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"date_block\",\n children: [/*#__PURE__*/_jsxDEV(\"h2\", {\n id: \"header_date\",\n children: props.date\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 70,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(Clock, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 71,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 69,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 65,\n columnNumber: 5\n }, this);\n}\n\n_c3 = Header;\n\nfunction Applications() {\n let appList = getApps();\n var items = [];\n\n for (var i = 0; i < appList.apps.length; i++) {\n var safe = appList.apps[i].NSFW;\n var NSFWEnabled = localStorage.getItem(\"contenttype\");\n\n if (safe === \"SAFE\") {\n items.push( /*#__PURE__*/_jsxDEV(App, {\n name: appList.apps[i].name,\n url: appList.apps[i].url,\n icon: appList.apps[i].icon,\n NSFW: appList.apps[i].NSFW\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 85,\n columnNumber: 9\n }, this));\n } else if (safe === \"NSFW\" && NSFWEnabled) {\n items.push( /*#__PURE__*/_jsxDEV(App, {\n name: appList.apps[i].name,\n url: appList.apps[i].url,\n icon: appList.apps[i].icon,\n NSFW: appList.apps[i].NSFW\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 95,\n columnNumber: 9\n }, this));\n } else {}\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"apps\",\n children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n children: \"Applications\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 110,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"apps_loop\",\n children: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 111,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 109,\n columnNumber: 5\n }, this);\n}\n\n_c4 = Applications;\n\nfunction App(props) {\n let classNameType = props.NSFW + \"-content\";\n let hrefUrl = \"https://\" + props.url;\n let iconName = \"mdi-\" + props.icon;\n return /*#__PURE__*/_jsxDEV(\"div\", {\n className: classNameType,\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: hrefUrl,\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_item\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_icon\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify icon\",\n \"data-icon\": iconName\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 128,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 127,\n columnNumber: 13\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_text\",\n children: [/*#__PURE__*/_jsxDEV(\"span\", {\n id: \"app-name\",\n children: props.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 131,\n columnNumber: 15\n }, this), /*#__PURE__*/_jsxDEV(\"span\", {\n id: \"app-address\",\n children: props.url\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 132,\n columnNumber: 15\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 130,\n columnNumber: 13\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 126,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 125,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 124,\n columnNumber: 7\n }, this);\n}\n\n_c5 = App;\n\nfunction Bookmarks() {\n let bookmarkList = getLinks();\n var items = [];\n\n for (var i = 0; i < bookmarkList.bookmarks.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(LinkGroups, {\n category: bookmarkList.bookmarks[i].category,\n links: bookmarkList.bookmarks[i].links\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 145,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"links\",\n children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n children: \"Bookmarks\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 154,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"links_loop\",\n children: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 155,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 153,\n columnNumber: 5\n }, this);\n}\n\n_c6 = Bookmarks;\n\nfunction LinkGroups(props) {\n var items = [];\n\n for (var i = 0; i < props.links.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(LinkItem, {\n link: props.links[i]\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 166,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"links_item\",\n children: [/*#__PURE__*/_jsxDEV(\"h4\", {\n children: props.category\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 174,\n columnNumber: 7\n }, this), items]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 173,\n columnNumber: 5\n }, this);\n}\n\n_c7 = LinkGroups;\n\nfunction LinkItem(props) {\n return /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: props.link.url,\n className: \"theme_color-border theme_text-select\",\n children: props.link.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 183,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 182,\n columnNumber: 5\n }, this);\n}\n\n_c8 = LinkItem;\n\nfunction ModalMenu() {\n var providers = getProviders();\n var items = [];\n\n for (var i = 0; i < providers.providers.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(Provider, {\n provider: providers.providers[i]\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 193,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"modal\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n children: [/*#__PURE__*/_jsxDEV(\"header\", {\n id: \"modal-header\",\n children: [/*#__PURE__*/_jsxDEV(\"h1\", {\n children: \"Options\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 203,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n href: \"#\",\n title: \"Close\",\n className: \"modal-close\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-close\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 205,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 204,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 202,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"h2\", {\n children: \"Color themes\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 209,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"modal-theme\",\n children: [/*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"blackboard\",\n className: \"theme-button theme-blackboard\",\n onClick: updateTheme,\n children: \"Blackboard\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 212,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"gazette\",\n className: \"theme-button theme-gazette\",\n onClick: updateTheme,\n children: \"Gazette\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 213,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"espresso\",\n className: \"theme-button theme-espresso\",\n onClick: updateTheme,\n children: \"Espresso\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 214,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cab\",\n className: \"theme-button theme-cab\",\n onClick: updateTheme,\n children: \"Cab\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 215,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cloud\",\n className: \"theme-button theme-cloud\",\n onClick: updateTheme,\n children: \"Cloud\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 216,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"lime\",\n className: \"theme-button theme-lime\",\n onClick: updateTheme,\n children: \"Lime\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 217,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"passion\",\n className: \"theme-button theme-passion\",\n onClick: updateTheme,\n children: \"Passion\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 218,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"blues\",\n className: \"theme-button theme-blues\",\n onClick: updateTheme,\n children: \"Blues\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 219,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"chalk\",\n className: \"theme-button theme-chalk\",\n onClick: updateTheme,\n children: \"Chalk\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 220,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"tron\",\n className: \"theme-button theme-tron\",\n onClick: updateTheme,\n children: \"Tron\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 221,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"paper\",\n className: \"theme-button theme-paper\",\n onClick: updateTheme,\n children: \"Paper\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 222,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cyberpunk\",\n className: \"theme-button theme-cyberpunk\",\n onClick: updateTheme,\n children: \"Cyberpunk\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 223,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"quadra\",\n className: \"theme-button theme-panam\",\n onClick: updateTheme,\n children: \"Quadra\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 224,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"panam\",\n className: \"theme-button theme-panam\",\n onClick: updateTheme,\n children: \"Panam\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 225,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"touch\",\n className: \"theme-button theme-touch\",\n onClick: updateTheme,\n children: \"Touch\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 226,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"peek\",\n className: \"theme-button theme-peek\",\n onClick: updateTheme,\n children: \"Peek\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 227,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 211,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"h2\", {\n children: \"Search options\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 231,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"providers\",\n children: /*#__PURE__*/_jsxDEV(\"table\", {\n children: /*#__PURE__*/_jsxDEV(\"tbody\", {\n children: [/*#__PURE__*/_jsxDEV(\"tr\", {\n children: [/*#__PURE__*/_jsxDEV(\"th\", {\n children: \"Website\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 236,\n columnNumber: 19\n }, this), /*#__PURE__*/_jsxDEV(\"th\", {\n children: \"Prefix\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 237,\n columnNumber: 19\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 235,\n columnNumber: 17\n }, this), items]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 234,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 233,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 232,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"header\", {\n id: \"modal-footer\",\n children: [/*#__PURE__*/_jsxDEV(\"a\", {\n href: \"https://github.com/jeroenpardon/\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-github-box\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 245,\n columnNumber: 54\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 245,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n href: \"https://materialdesignicons.com/\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-material-design\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 246,\n columnNumber: 54\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 246,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"sneaky\",\n children: [/*#__PURE__*/_jsxDEV(\"input\", {\n type: \"checkbox\",\n id: \"contenttype\",\n onChange: udpateDisplayedItems\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 247,\n columnNumber: 35\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n for: \"contenttype\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-domino-mask\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 248,\n columnNumber: 36\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 248,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 247,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 244,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 201,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 200,\n columnNumber: 5\n }, this);\n}\n\n_c9 = ModalMenu;\n\nfunction Provider(props) {\n return /*#__PURE__*/_jsxDEV(\"tr\", {\n children: [/*#__PURE__*/_jsxDEV(\"td\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: props.provider.url,\n children: props.provider.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 258,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 258,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"td\", {\n children: props.provider.prefix\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 259,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 257,\n columnNumber: 5\n }, this);\n}\n\n_c10 = Provider;\n\nfunction ModalInit() {\n setDisplayedItems();\n return /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"modal_init\",\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n className: \"btn\",\n href: \"#modal\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify icon\",\n \"data-icon\": \"mdi-xbox-controller-menu\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 269,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 268,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 267,\n columnNumber: 5\n }, this);\n}\n\n_c11 = ModalInit;\nReactDOM.render( /*#__PURE__*/_jsxDEV(Homepage, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 276,\n columnNumber: 3\n}, this), document.getElementById('root')); //Functions below this line are for calculating data for\n//other functions\n\nfunction date() {\n let currentDate = new Date();\n let dateOptions = {\n weekday: \"long\",\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\"\n };\n let date = currentDate.toLocaleDateString(\"en-GB\", dateOptions);\n return date;\n}\n\nfunction fixDigits(k) {\n if (k < 10) {\n return \"0\" + k;\n } else {\n return k;\n }\n}\n\nfunction greet() {\n let currentTime = new Date();\n let greet = Math.floor(currentTime.getHours() / 6);\n let easterEggChance = Math.floor(Math.random() * 100);\n\n let greetings = require('./messages.json');\n\n let timeBased = [];\n let easterEggs = [];\n\n for (var i = 0; i < greetings.messages.length; i++) {\n if (greetings.messages[i].easteregg === \"FALSE\") {\n timeBased = timeBased.concat(greetings.messages[i]);\n } else {\n easterEggs = easterEggs.concat(greetings.messages[i]);\n }\n }\n\n if (easterEggChance > 10) {\n return timeBased[greet].message;\n } else {\n let easterEggText = Math.floor(Math.random() * easterEggs.length);\n return easterEggs[easterEggText].message;\n }\n}\n\nfunction Clock() {\n _s();\n\n const [date, setDate] = useState(new Date());\n\n function refreshClock() {\n setDate(new Date());\n }\n\n useEffect(() => {\n const timerId = setInterval(refreshClock, 1000);\n return function cleanup() {\n clearInterval(timerId);\n };\n }, []);\n var hour = date.getHours();\n var minutes = date.getMinutes(); //var seconds = date.getSeconds();\n\n var midday = \"AM\";\n midday = hour >= 12 ? \"PM\" : \"AM\";\n hour = hour === 0 ? 12 : hour > 12 ? hour - 12 : hour;\n minutes = fixDigits(minutes); //seconds = fixDigits(seconds);\n\n let time = hour + \":\" + minutes + \" \" + midday;\n return /*#__PURE__*/_jsxDEV(\"h2\", {\n id: \"clock\",\n children: time\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 347,\n columnNumber: 5\n }, this);\n}\n\n_s(Clock, \"Gqi45WOZhU2c0BLYX0HoJeiR0fk=\");\n\n_c12 = Clock;\n\nfunction getApps() {\n let applications = require('./apps.json');\n\n return applications;\n}\n\nfunction getLinks() {\n let links = require('./links.json');\n\n return links;\n}\n\nfunction getProviders() {\n let providers = require('./providers.json');\n\n return providers;\n}\n\nfunction getThemes() {\n let themes = require('./themes.json');\n\n return themes;\n}\n\nfunction updateTheme(e) {\n var themes = getThemes();\n var themeName = e.target.innerHTML.toLowerCase();\n var index = themes.themes.findIndex(function (item, i) {\n return item.name === themeName;\n });\n localStorage.setItem(\"image-background\", themes.themes[index].imagebackground);\n localStorage.setItem(\"color-background\", themes.themes[index].colorbackground);\n localStorage.setItem(\"color-search-background\", themes.themes[index].colorserachbackground);\n localStorage.setItem(\"color-text-pri\", themes.themes[index].colortextpri);\n localStorage.setItem(\"color-text-acc\", themes.themes[index].colortextacc);\n localStorage.setItem(\"color-border\", themes.themes[index].colorborder); //document.documentElement.style.setProperty(prop, `var(--${themeName}${prop.substring(10)})`);\n\n setTheme();\n}\n\nfunction setTheme() {\n setValueFromLocalStorage('image-background');\n setValueFromLocalStorage('color-background');\n setValueFromLocalStorage('color-search-background');\n setValueFromLocalStorage('color-text-pri');\n setValueFromLocalStorage('color-text-acc');\n setValueFromLocalStorage('color-border');\n setValueFromLocalStorage('content-display');\n}\n\nfunction handleKeyPress(e) {\n var sindex = 0;\n var cycle = false;\n var key = e.keyCode || e.which;\n var text = e.target.value.replaceAll(\"+\", \"%2B\");\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n\n if (key == 13) {\n // Search functions\n search(text);\n }\n\n if (key == 9) {\n // Tab Completion Functions\n e.preventDefault();\n e.stopPropagation();\n\n if (text[0] === ';') {\n switch (option) {\n case 't':\n var streamers = ['admiralbahroo', 'moonmoon_ow', 'witwix'];\n\n if (!subtext || cycle) {\n cycle = true;\n if (sindex > streamers.length - 1) sindex = 0;\n document.getElementById(\"keywords\").value = ';t ' + streamers[sindex++];\n return;\n }\n\n for (var streamer of streamers) {\n if (subtext === streamer.substr(0, subtext.length)) {\n document.getElementById(\"keywords\").value = ';t ' + streamer;\n return;\n }\n }\n\n break;\n }\n }\n }\n\n if (key == 32) {\n //Space to go to search\n updateLabel(text);\n }\n\n sindex = 0;\n cycle = false;\n updateLabel(text);\n}\n\nfunction updateLabel(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n\n if (text[0] === '/') {\n // if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n document.getElementById(\"searchType\").innerHTML = \"Allmusic search\";\n break;\n\n case \"d\":\n document.getElementById(\"searchType\").innerHTML = \"Duck Duck Go search\";\n break;\n\n case \"di\":\n document.getElementById(\"searchType\").innerHTML = \"Discogs search\";\n break;\n\n case \"i\":\n document.getElementById(\"searchType\").innerHTML = \"IMDB search\";\n break;\n\n case \"m\":\n document.getElementById(\"searchType\").innerHTML = \"TheMovieDB search\";\n break;\n\n case \"r\":\n document.getElementById(\"searchType\").innerHTML = \"Reddit search\";\n break;\n\n case \"q\":\n document.getElementById(\"searchType\").innerHTML = \"Qwant search\";\n break;\n\n case \"so\":\n document.getElementById(\"searchType\").innerHTML = \"Soundcloud search\";\n break;\n\n case \"s\":\n document.getElementById(\"searchType\").innerHTML = \"Spotify search\";\n break;\n\n case \"tv\":\n document.getElementById(\"searchType\").innerHTML = \"TheTVDB search\";\n break;\n\n case \"t\":\n document.getElementById(\"searchType\").innerHTML = \"Trakt search\";\n break;\n\n case \"y\":\n document.getElementById(\"searchType\").innerHTML = \"YouTube search\";\n break;\n\n case \"w\":\n document.getElementById(\"searchType\").innerHTML = \"Wikipedia search\";\n break;\n\n case \"p\":\n document.getElementById(\"searchType\").innerHTML = \"Plex search\";\n break;\n\n case \"rt\":\n document.getElementById(\"searchType\").innerHTML = \"Rotten Tomatoes search\";\n break;\n\n default:\n document.getElementById(\"searchType\").innerHTML = \"Invalid search\";\n break;\n }\n } else {\n document.getElementById(\"searchType\").innerHTML = \"Google search\";\n }\n}\n\nfunction search(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n\n if (text[0] === '/') {\n if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n window.location = \"https://www.allmusic.com/search/all/\" + subtext;\n break;\n\n case \"d\":\n window.location = \"https://duckduckgo.com/?q=\" + subtext;\n break;\n\n case \"di\":\n window.location = \"https://www.discogs.com/search/?q=\" + subtext;\n break;\n\n case \"i\":\n window.location = \"https://www.imdb.com/find?q=\" + subtext;\n break;\n\n case \"m\":\n window.location = \"https://www.themoviedb.org/search?query=\" + subtext;\n break;\n\n case \"r\":\n window.location = \"https://www.reddit.com/search?q=\" + subtext;\n break;\n\n case \"q\":\n window.location = \"https://www.qwant.com/?q=\" + subtext;\n break;\n\n case \"so\":\n window.location = \"https://soundcloud.com/search?q=\" + subtext;\n break;\n\n case \"s\":\n window.location = \"https://open.spotify.com/search/results/\" + subtext;\n break;\n\n case \"t\":\n window.location = \"https://trakt.tv/search?query=\" + subtext;\n break;\n\n case \"tv\":\n window.location = \"https://www.thetvdb.com/search?query=\" + subtext;\n break;\n\n case \"y\":\n window.location = \"https://www.youtube.com/results?search_query=\" + subtext;\n break;\n\n case \"w\":\n window.location = \"https://en.wikipedia.org/w/index.php?search=\" + subtext;\n break;\n\n case \"p\":\n window.location = \"https://app.plex.tv/desktop/#!/search?query=\" + subtext;\n break;\n\n case \"rt\":\n window.location = \"https://www.rottentomatoes.com/search?search=\" + subtext;\n break;\n }\n } else {\n var option = text.substr(1);\n\n switch (option) {\n case \"d\":\n window.location = \"https://www.duckduckgo.com\";\n break;\n\n case \"y\":\n window.location = \"https://www.youtube.com\";\n break;\n\n case \"r\":\n window.location = \"https://reddit.com\";\n break;\n\n case \"s\":\n window.location = \"https://open.spotify.com\";\n break;\n }\n }\n } else if (validURL(text)) {\n if (containsProtocol(text)) window.location = text;else window.location = \"https://\" + text;\n } else {\n window.location = \"https://www.google.com/search?q=\" + text;\n }\n} // Source: https://stackoverflow.com/questions/5717093/check-if-a-javascript-string-is-a-url\n\n\nfunction validURL(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/)?' + // protocol\n '((([a-z\\\\d]([a-z\\\\d-]*[a-z\\\\d])*)\\\\.)+[a-z]{2,}|' + // domain name\n '((\\\\d{1,3}\\\\.){3}\\\\d{1,3}))' + // OR ip (v4) address\n '(\\\\:\\\\d+)?(\\\\/[-a-z\\\\d%_.~+]*)*' + // port and path\n '(\\\\?[;&a-z\\\\d%_.~+=-]*)?' + // query string\n '(\\\\#[-a-z\\\\d_]*)?$', 'i'); // fragment locator\n\n return !!pattern.test(str);\n}\n\nfunction containsProtocol(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/){1}.*', 'i');\n return !!pattern.test(str);\n}\n\nString.prototype.replaceAll = function (search, replacement) {\n var target = this;\n return target.split(search).join(replacement);\n};\n\nfunction udpateDisplayedItems(e) {\n localStorage.setItem('contenttype', e.target.checked);\n\n if (e.target.checked) {\n localStorage.setItem('content-display', 'none');\n } else {\n localStorage.setItem('content-display', 'block');\n }\n\n setDisplayedItems();\n}\n\nfunction setDisplayedItems() {\n setValueFromLocalStorage('contenttype');\n setValueFromLocalStorage('content-display');\n var checked = localStorage.getItem(\"contenttype\"); //document.getElementById('contenttype').checked = checked;\n}\n\nvar _c, _c2, _c3, _c4, _c5, _c6, _c7, _c8, _c9, _c10, _c11, _c12;\n\n$RefreshReg$(_c, \"Homepage\");\n$RefreshReg$(_c2, \"Search\");\n$RefreshReg$(_c3, \"Header\");\n$RefreshReg$(_c4, \"Applications\");\n$RefreshReg$(_c5, \"App\");\n$RefreshReg$(_c6, \"Bookmarks\");\n$RefreshReg$(_c7, \"LinkGroups\");\n$RefreshReg$(_c8, \"LinkItem\");\n$RefreshReg$(_c9, \"ModalMenu\");\n$RefreshReg$(_c10, \"Provider\");\n$RefreshReg$(_c11, \"ModalInit\");\n$RefreshReg$(_c12, \"Clock\");","map":{"version":3,"sources":["/home/seanedmunds/dev/home-page/src/index.js"],"names":["React","useState","useEffect","ReactDOM","setValueFromLocalStorage","property","value","localStorage","getItem","setValue","document","documentElement","style","setProperty","input","querySelector","replace","Homepage","setTheme","date","greet","Search","handleKeyPress","Header","props","Applications","appList","getApps","items","i","apps","length","safe","NSFW","NSFWEnabled","push","name","url","icon","App","classNameType","hrefUrl","iconName","Bookmarks","bookmarkList","getLinks","bookmarks","category","links","LinkGroups","LinkItem","link","ModalMenu","providers","getProviders","updateTheme","udpateDisplayedItems","Provider","provider","prefix","ModalInit","setDisplayedItems","render","getElementById","currentDate","Date","dateOptions","weekday","year","month","day","toLocaleDateString","fixDigits","k","currentTime","Math","floor","getHours","easterEggChance","random","greetings","require","timeBased","easterEggs","messages","easteregg","concat","message","easterEggText","Clock","setDate","refreshClock","timerId","setInterval","cleanup","clearInterval","hour","minutes","getMinutes","midday","time","applications","getThemes","themes","e","themeName","target","innerHTML","toLowerCase","index","findIndex","item","setItem","imagebackground","colorbackground","colorserachbackground","colortextpri","colortextacc","colorborder","sindex","cycle","key","keyCode","which","text","replaceAll","option","substr","indexOf","subtext","search","preventDefault","stopPropagation","streamers","streamer","updateLabel","window","location","validURL","containsProtocol","str","pattern","RegExp","test","String","prototype","replacement","split","join","checked"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { useState, useEffect } from 'react';\nimport ReactDOM from 'react-dom';\n//import { unstable_createPortal } from 'react-dom';\nimport './index.css';\n\nconst setValueFromLocalStorage = property => {\n let value = localStorage.getItem(property);\n setValue(property, value);\n};\nconst setValue = (property, value) => {\n if (value) {\n document.documentElement.style.setProperty(`--${property}`, value);\n\n const input = document.querySelector(`#${property}`);\n if (input) {\n value = value.replace('px', '');\n input.value = value;\n }\n }\n};\n\nfunction Homepage() {\n setTheme();\n return (\n \n \n \n
\n \n \n
\n \n \n \n
\n \n \n
\n \n \n
\n \n );\n}\n\nfunction Search() {\n return (\n \n )\n}\n\nfunction Header(props) {\n return (\n \n );\n}\n\nfunction Applications() {\n let appList = getApps();\n var items = [];\n for (var i = 0; i < appList.apps.length; i++) {\n var safe = appList.apps[i].NSFW;\n var NSFWEnabled = localStorage.getItem(\"contenttype\");\n if (safe === \"SAFE\") {\n items.push(\n \n );\n } else if (safe === \"NSFW\" && NSFWEnabled) {\n items.push(\n \n );\n } else {\n \n }\n \n }\n return (\n \n Applications
\n \n {items}\n
\n \n );\n}\n\nfunction App(props) {\n \n let classNameType = props.NSFW + \"-content\";\n let hrefUrl = \"https://\" + props.url;\n let iconName = \"mdi-\" + props.icon;\n return (\n \n );\n}\n\nfunction Bookmarks() {\n let bookmarkList = getLinks();\n var items = [];\n for (var i = 0; i < bookmarkList.bookmarks.length; i++) {\n items.push(\n \n );\n }\n return (\n \n Bookmarks
\n \n {items}\n
\n \n );\n}\n\nfunction LinkGroups(props) {\n var items = [];\n for (var i = 0; i < props.links.length; i++) {\n items.push(\n \n );\n }\n return (\n \n
{props.category}
\n {items}\n \n );\n}\n\nfunction LinkItem(props) {\n return (\n \n );\n}\n\nfunction ModalMenu() {\n var providers = getProviders();\n var items = [];\n for (var i = 0; i < providers.providers.length; i++) {\n items.push(\n \n );\n }\n return (\n \n \n \n\n
Color themes
\n\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n\n\n
Search options
\n
\n \n \n \n | Website | \n Prefix | \n
\n {items}\n \n
\n \n\n \n
\n \n );\n}\n\nfunction Provider(props) {\n return (\n \n | {props.provider.name} | \n {props.provider.prefix} | \n
\n );\n}\n\nfunction ModalInit() {\n setDisplayedItems();\n return (\n \n );\n}\n\nReactDOM.render(\n ,\n document.getElementById('root')\n);\n\n//Functions below this line are for calculating data for\n//other functions\n\nfunction date() {\n let currentDate = new Date();\n let dateOptions = {\n weekday: \"long\",\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\"\n };\n let date = currentDate.toLocaleDateString(\"en-GB\", dateOptions);\n return date;\n}\nfunction fixDigits(k) {\n if (k < 10) {\n return \"0\" + k;\n }\n else {\n return k;\n }\n}\nfunction greet() {\n let currentTime = new Date();\n let greet = Math.floor(currentTime.getHours() / 6);\n let easterEggChance = Math.floor(Math.random() * 100);\n let greetings = require('./messages.json');\n let timeBased = [];\n let easterEggs = [];\n for (var i = 0; i < greetings.messages.length; i++) {\n if (greetings.messages[i].easteregg === \"FALSE\") {\n timeBased = timeBased.concat(greetings.messages[i]);\n } else {\n easterEggs = easterEggs.concat(greetings.messages[i]);\n }\n }\n if (easterEggChance > 10) {\n return timeBased[greet].message;\n } else {\n let easterEggText = Math.floor(Math.random() * easterEggs.length);\n return easterEggs[easterEggText].message;\n }\n}\nfunction Clock() {\n const [date, setDate] = useState(new Date());\n\n function refreshClock() {\n setDate(new Date());\n }\n useEffect(() => {\n const timerId = setInterval(refreshClock, 1000);\n return function cleanup() {\n clearInterval(timerId);\n };\n }, []);\n\n var hour = date.getHours();\n var minutes = date.getMinutes();\n //var seconds = date.getSeconds();\n var midday = \"AM\";\n midday = (hour >= 12) ? \"PM\" : \"AM\";\n hour = (hour === 0) ? 12 : ((hour > 12) ? (hour - 12) : hour);\n minutes = fixDigits(minutes);\n //seconds = fixDigits(seconds);\n let time = hour + \":\" + minutes + \" \" + midday;\n\n return (\n {time}
\n\n );\n}\nfunction getApps() {\n let applications = require('./apps.json');\n return applications;\n}\nfunction getLinks() {\n let links = require('./links.json');\n return links;\n}\nfunction getProviders() {\n let providers = require('./providers.json');\n return providers;\n}\nfunction getThemes() {\n let themes = require('./themes.json');\n return themes;\n}\n\nfunction updateTheme(e) {\n var themes = getThemes();\n var themeName = e.target.innerHTML.toLowerCase();\n var index = themes.themes.findIndex(function(item, i){\n return item.name === themeName\n });\n localStorage.setItem(\"image-background\", themes.themes[index].imagebackground);\n localStorage.setItem(\"color-background\", themes.themes[index].colorbackground);\n localStorage.setItem(\"color-search-background\", themes.themes[index].colorserachbackground);\n localStorage.setItem(\"color-text-pri\",themes.themes[index].colortextpri);\n localStorage.setItem(\"color-text-acc\", themes.themes[index].colortextacc);\n localStorage.setItem(\"color-border\", themes.themes[index].colorborder);\n \n //document.documentElement.style.setProperty(prop, `var(--${themeName}${prop.substring(10)})`);\n setTheme();\n}\n\nfunction setTheme() {\n setValueFromLocalStorage('image-background');\n setValueFromLocalStorage('color-background');\n setValueFromLocalStorage('color-search-background');\n setValueFromLocalStorage('color-text-pri');\n setValueFromLocalStorage('color-text-acc');\n setValueFromLocalStorage('color-border');\n setValueFromLocalStorage('content-display');\n}\n\nfunction handleKeyPress(e) {\n var sindex = 0;\n var cycle = false;\n var key = e.keyCode || e.which;\n var text = e.target.value.replaceAll(\"+\", \"%2B\");\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n if (key == 13) { // Search functions\n search(text);\n }\n if (key == 9) { // Tab Completion Functions\n e.preventDefault();\n e.stopPropagation();\n if (text[0] === ';') {\n switch (option) {\n case 't':\n var streamers = ['admiralbahroo', 'moonmoon_ow', 'witwix'];\n if (!subtext || cycle) {\n cycle = true;\n if (sindex > streamers.length - 1) sindex = 0;\n document.getElementById(\"keywords\").value = ';t ' + streamers[sindex++];\n return;\n }\n for (var streamer of streamers) {\n if (subtext === streamer.substr(0, subtext.length)) {\n document.getElementById(\"keywords\").value = ';t ' + streamer;\n return;\n }\n }\n break;\n }\n }\n }\n if(key == 32){ //Space to go to search\nupdateLabel(text);\n }\n sindex = 0;\n cycle = false;\n updateLabel(text);\n}\n\nfunction updateLabel(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n if (text[0] === '/') {\n// if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n document.getElementById(\"searchType\").innerHTML = \"Allmusic search\";\n break;\n case \"d\":\n document.getElementById(\"searchType\").innerHTML = \"Duck Duck Go search\";\n break;\n case \"di\":\n document.getElementById(\"searchType\").innerHTML = \"Discogs search\";\n break;\n case \"i\":\n document.getElementById(\"searchType\").innerHTML = \"IMDB search\";\n break;\n case \"m\":\n document.getElementById(\"searchType\").innerHTML = \"TheMovieDB search\";\n break;\n case \"r\":\n document.getElementById(\"searchType\").innerHTML = \"Reddit search\";\n break;\n case \"q\":\n document.getElementById(\"searchType\").innerHTML = \"Qwant search\";\n break;\n case \"so\":\n document.getElementById(\"searchType\").innerHTML = \"Soundcloud search\";\n break;\n case \"s\":\n document.getElementById(\"searchType\").innerHTML = \"Spotify search\";\n break;\n case \"tv\":\n document.getElementById(\"searchType\").innerHTML = \"TheTVDB search\";\n break;\n case \"t\":\n document.getElementById(\"searchType\").innerHTML = \"Trakt search\";\n break;\n case \"y\":\n document.getElementById(\"searchType\").innerHTML = \"YouTube search\";\n break;\n case \"w\":\n document.getElementById(\"searchType\").innerHTML = \"Wikipedia search\";\n break;\n case \"p\":\n document.getElementById(\"searchType\").innerHTML = \"Plex search\";\n break;\n case \"rt\":\n document.getElementById(\"searchType\").innerHTML = \"Rotten Tomatoes search\";\n break;\n default:\n document.getElementById(\"searchType\").innerHTML = \"Invalid search\";\n break;\n }\n}else {\n document.getElementById(\"searchType\").innerHTML = \"Google search\";\n }\n}\n\nfunction search(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n if (text[0] === '/') {\n if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n window.location = \"https://www.allmusic.com/search/all/\" + subtext;\n break;\n case \"d\":\n window.location = \"https://duckduckgo.com/?q=\" + subtext;\n break;\n case \"di\":\n window.location = \"https://www.discogs.com/search/?q=\" + subtext;\n break;\n case \"i\":\n window.location = \"https://www.imdb.com/find?q=\" + subtext;\n break;\n case \"m\":\n window.location = \"https://www.themoviedb.org/search?query=\" + subtext;\n break;\n case \"r\":\n window.location = \"https://www.reddit.com/search?q=\" + subtext;\n break;\n case \"q\":\n window.location = \"https://www.qwant.com/?q=\" + subtext;\n break;\n case \"so\":\n window.location = \"https://soundcloud.com/search?q=\" + subtext;\n break;\n case \"s\":\n window.location = \"https://open.spotify.com/search/results/\" + subtext;\n break;\n case \"t\":\n window.location = \"https://trakt.tv/search?query=\" + subtext;\n break;\n case \"tv\":\n window.location = \"https://www.thetvdb.com/search?query=\" + subtext;\n break;\n case \"y\":\n window.location = \"https://www.youtube.com/results?search_query=\" + subtext;\n break;\n case \"w\":\n window.location = \"https://en.wikipedia.org/w/index.php?search=\" + subtext;\n break;\n case \"p\":\n window.location = \"https://app.plex.tv/desktop/#!/search?query=\" + subtext;\n break;\n case \"rt\":\n window.location = \"https://www.rottentomatoes.com/search?search=\" + subtext;\n break;\n }\n } else {\n var option = text.substr(1);\n switch (option) {\n case \"d\":\n window.location = \"https://www.duckduckgo.com\";\n break;\n case \"y\":\n window.location = \"https://www.youtube.com\";\n break;\n case \"r\":\n window.location = \"https://reddit.com\";\n break;\n case \"s\":\n window.location = \"https://open.spotify.com\";\n break;\n }\n }\n } else if (validURL(text)) {\n if (containsProtocol(text))\n window.location = text;\n else\n window.location = \"https://\" + text;\n } else {\n window.location = \"https://www.google.com/search?q=\" + text;\n }\n}\n\n// Source: https://stackoverflow.com/questions/5717093/check-if-a-javascript-string-is-a-url\nfunction validURL(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/)?' + // protocol\n '((([a-z\\\\d]([a-z\\\\d-]*[a-z\\\\d])*)\\\\.)+[a-z]{2,}|' + // domain name\n '((\\\\d{1,3}\\\\.){3}\\\\d{1,3}))' + // OR ip (v4) address\n '(\\\\:\\\\d+)?(\\\\/[-a-z\\\\d%_.~+]*)*' + // port and path\n '(\\\\?[;&a-z\\\\d%_.~+=-]*)?' + // query string\n '(\\\\#[-a-z\\\\d_]*)?$', 'i'); // fragment locator\n return !!pattern.test(str);\n}\n\nfunction containsProtocol(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/){1}.*', 'i');\n return !!pattern.test(str);\n}\n\nString.prototype.replaceAll = function(search, replacement) {\n var target = this;\n return target.split(search).join(replacement);\n};\n\nfunction udpateDisplayedItems(e) {\n localStorage.setItem('contenttype', e.target.checked);\n if (e.target.checked) {\n localStorage.setItem('content-display', 'none');\n } else {\n localStorage.setItem('content-display', 'block');\n }\n setDisplayedItems();\n}\nfunction setDisplayedItems() {\n setValueFromLocalStorage('contenttype');\n setValueFromLocalStorage('content-display');\n var checked = localStorage.getItem(\"contenttype\");\n //document.getElementById('contenttype').checked = checked;\n}"]},"metadata":{},"sourceType":"module"}
\ No newline at end of file
diff --git a/node_modules/.cache/babel-loader/fca1f46fd831764e1219a9c1418d591f.json b/node_modules/.cache/babel-loader/fca1f46fd831764e1219a9c1418d591f.json
new file mode 100644
index 00000000..79f0ca81
--- /dev/null
+++ b/node_modules/.cache/babel-loader/fca1f46fd831764e1219a9c1418d591f.json
@@ -0,0 +1 @@
+{"ast":null,"code":"var _jsxFileName = \"/home/seanedmunds/dev/home-page/src/index.js\",\n _s = $RefreshSig$();\n\nimport React from 'react';\nimport { useState, useEffect } from 'react';\nimport ReactDOM from 'react-dom'; //import { unstable_createPortal } from 'react-dom';\n\nimport './index.css';\nimport { jsxDEV as _jsxDEV } from \"react/jsx-dev-runtime\";\n\nconst setValueFromLocalStorage = property => {\n let value = localStorage.getItem(property);\n setValue(property, value);\n};\n\nconst setValue = (property, value) => {\n if (value) {\n document.documentElement.style.setProperty(`--${property}`, value);\n const input = document.querySelector(`#${property}`);\n\n if (input) {\n value = value.replace('px', '');\n input.value = value;\n }\n }\n};\n\nfunction Homepage() {\n setTheme();\n return /*#__PURE__*/_jsxDEV(\"main\", {\n id: \"container\",\n className: \"fade\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Search, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 28,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 27,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Header, {\n date: date(),\n greet: greet()\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 31,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 30,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Applications, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 37,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 36,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Bookmarks, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 40,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 39,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(ModalMenu, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 43,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 42,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(ModalInit, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 46,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 45,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 26,\n columnNumber: 5\n }, this);\n}\n\n_c = Homepage;\n\nfunction Search() {\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"search\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"abackground\",\n children: [/*#__PURE__*/_jsxDEV(\"input\", {\n name: \"keywords\",\n type: \"text\",\n className: \"keyword\",\n id: \"keywords\",\n size: \"50\",\n spellCheck: \"true\",\n placeholder: \"\"\n /*onFocus={this.placeholder = \"\"} onBlur={this.placeholder = ''}*/\n ,\n autoComplete: \"off\",\n autoFocus: true,\n onKeyUp: handleKeyPress\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 56,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n id: \"searchType\",\n className: \"Input-label\",\n children: \"Google search\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 57,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 55,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 54,\n columnNumber: 5\n }, this);\n}\n\n_c2 = Search;\n\nfunction Header(props) {\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"header\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n id: \"greeting_block\",\n children: /*#__PURE__*/_jsxDEV(\"h1\", {\n id: \"header_greet\",\n children: props.greet\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 67,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 66,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"date_block\",\n children: [/*#__PURE__*/_jsxDEV(\"h2\", {\n id: \"header_date\",\n children: props.date\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 70,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(Clock, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 71,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 69,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 65,\n columnNumber: 5\n }, this);\n}\n\n_c3 = Header;\n\nfunction Applications() {\n let appList = getApps();\n var items = [];\n\n for (var i = 0; i < appList.apps.length; i++) {\n var safe = appList.apps[i].NSFW;\n var NSFWEnabled = localStorage.getItem(\"contenttype\");\n\n if (safe === \"SAFE\") {\n items.push( /*#__PURE__*/_jsxDEV(App, {\n name: appList.apps[i].name,\n url: appList.apps[i].url,\n icon: appList.apps[i].icon,\n NSFW: appList.apps[i].NSFW\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 85,\n columnNumber: 9\n }, this));\n } else if (safe === \"NSFW\" && NSFWEnabled) {\n items.push( /*#__PURE__*/_jsxDEV(App, {\n name: appList.apps[i].name,\n url: appList.apps[i].url,\n icon: appList.apps[i].icon,\n NSFW: appList.apps[i].NSFW\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 95,\n columnNumber: 9\n }, this));\n } else {}\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"apps\",\n children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n children: \"Applications\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 110,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"apps_loop\",\n children: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 111,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 109,\n columnNumber: 5\n }, this);\n}\n\n_c4 = Applications;\n\nfunction App(props) {\n let classNameType = props.NSFW + \"-content\";\n let hrefUrl = \"https://\" + props.url;\n let iconName = \"mdi-\" + props.icon;\n return /*#__PURE__*/_jsxDEV(\"div\", {\n className: classNameType,\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: hrefUrl,\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_item\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_icon\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify icon\",\n \"data-icon\": iconName\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 128,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 127,\n columnNumber: 13\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_text\",\n children: [/*#__PURE__*/_jsxDEV(\"span\", {\n id: \"app-name\",\n children: props.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 131,\n columnNumber: 15\n }, this), /*#__PURE__*/_jsxDEV(\"span\", {\n id: \"app-address\",\n children: props.url\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 132,\n columnNumber: 15\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 130,\n columnNumber: 13\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 126,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 125,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 124,\n columnNumber: 7\n }, this);\n}\n\n_c5 = App;\n\nfunction Bookmarks() {\n let bookmarkList = getLinks();\n var items = [];\n\n for (var i = 0; i < bookmarkList.bookmarks.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(LinkGroups, {\n category: bookmarkList.bookmarks[i].category,\n links: bookmarkList.bookmarks[i].links\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 145,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"links\",\n children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n children: \"Bookmarks\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 154,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"links_loop\",\n children: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 155,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 153,\n columnNumber: 5\n }, this);\n}\n\n_c6 = Bookmarks;\n\nfunction LinkGroups(props) {\n var items = [];\n\n for (var i = 0; i < props.links.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(LinkItem, {\n link: props.links[i]\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 166,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"links_item\",\n children: [/*#__PURE__*/_jsxDEV(\"h4\", {\n children: props.category\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 174,\n columnNumber: 7\n }, this), items]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 173,\n columnNumber: 5\n }, this);\n}\n\n_c7 = LinkGroups;\n\nfunction LinkItem(props) {\n return /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: props.link.url,\n className: \"theme_color-border theme_text-select\",\n children: props.link.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 183,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 182,\n columnNumber: 5\n }, this);\n}\n\n_c8 = LinkItem;\n\nfunction ModalMenu() {\n var providers = getProviders();\n var items = [];\n\n for (var i = 0; i < providers.providers.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(Provider, {\n provider: providers.providers[i]\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 193,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"modal\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n children: [/*#__PURE__*/_jsxDEV(\"header\", {\n id: \"modal-header\",\n children: [/*#__PURE__*/_jsxDEV(\"h1\", {\n children: \"Options\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 203,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n href: \"#\",\n title: \"Close\",\n className: \"modal-close\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-close\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 205,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 204,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 202,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"h2\", {\n children: \"Color themes\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 209,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"modal-theme\",\n children: [/*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"blackboard\",\n className: \"theme-button theme-blackboard\",\n onClick: updateTheme,\n children: \"Blackboard\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 212,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"gazette\",\n className: \"theme-button theme-gazette\",\n onClick: updateTheme,\n children: \"Gazette\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 213,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"espresso\",\n className: \"theme-button theme-espresso\",\n onClick: updateTheme,\n children: \"Espresso\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 214,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cab\",\n className: \"theme-button theme-cab\",\n onClick: updateTheme,\n children: \"Cab\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 215,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cloud\",\n className: \"theme-button theme-cloud\",\n onClick: updateTheme,\n children: \"Cloud\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 216,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"lime\",\n className: \"theme-button theme-lime\",\n onClick: updateTheme,\n children: \"Lime\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 217,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"passion\",\n className: \"theme-button theme-passion\",\n onClick: updateTheme,\n children: \"Passion\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 218,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"blues\",\n className: \"theme-button theme-blues\",\n onClick: updateTheme,\n children: \"Blues\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 219,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"chalk\",\n className: \"theme-button theme-chalk\",\n onClick: updateTheme,\n children: \"Chalk\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 220,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"tron\",\n className: \"theme-button theme-tron\",\n onClick: updateTheme,\n children: \"Tron\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 221,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"paper\",\n className: \"theme-button theme-paper\",\n onClick: updateTheme,\n children: \"Paper\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 222,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cyberpunk\",\n className: \"theme-button theme-cyberpunk\",\n onClick: updateTheme,\n children: \"Cyberpunk\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 223,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"quadra\",\n className: \"theme-button theme-panam\",\n onClick: updateTheme,\n children: \"Quadra\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 224,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"panam\",\n className: \"theme-button theme-panam\",\n onClick: updateTheme,\n children: \"Panam\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 225,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"touch\",\n className: \"theme-button theme-touch\",\n onClick: updateTheme,\n children: \"Touch\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 226,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"peek\",\n className: \"theme-button theme-peek\",\n onClick: updateTheme,\n children: \"Peek\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 227,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 211,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"h2\", {\n children: \"Search options\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 231,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"providers\",\n children: /*#__PURE__*/_jsxDEV(\"table\", {\n children: /*#__PURE__*/_jsxDEV(\"tbody\", {\n children: [/*#__PURE__*/_jsxDEV(\"tr\", {\n children: [/*#__PURE__*/_jsxDEV(\"th\", {\n children: \"Website\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 236,\n columnNumber: 19\n }, this), /*#__PURE__*/_jsxDEV(\"th\", {\n children: \"Prefix\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 237,\n columnNumber: 19\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 235,\n columnNumber: 17\n }, this), items]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 234,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 233,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 232,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"header\", {\n id: \"modal-footer\",\n children: [/*#__PURE__*/_jsxDEV(\"a\", {\n href: \"https://github.com/jeroenpardon/\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-github-box\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 245,\n columnNumber: 54\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 245,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n href: \"https://materialdesignicons.com/\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-material-design\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 246,\n columnNumber: 54\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 246,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"sneaky\",\n children: [/*#__PURE__*/_jsxDEV(\"input\", {\n type: \"checkbox\",\n id: \"contenttype\",\n onChange: udpateDisplayedItems\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 247,\n columnNumber: 35\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n for: \"contenttype\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-domino-mask\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 248,\n columnNumber: 36\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 248,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 247,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 244,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 201,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 200,\n columnNumber: 5\n }, this);\n}\n\n_c9 = ModalMenu;\n\nfunction Provider(props) {\n return /*#__PURE__*/_jsxDEV(\"tr\", {\n children: [/*#__PURE__*/_jsxDEV(\"td\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: props.provider.url,\n children: props.provider.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 258,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 258,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"td\", {\n children: props.provider.prefix\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 259,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 257,\n columnNumber: 5\n }, this);\n}\n\n_c10 = Provider;\n\nfunction ModalInit() {\n setDisplayedItems();\n return /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"modal_init\",\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n className: \"btn\",\n href: \"#modal\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify icon\",\n \"data-icon\": \"mdi-xbox-controller-menu\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 269,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 268,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 267,\n columnNumber: 5\n }, this);\n}\n\n_c11 = ModalInit;\nReactDOM.render( /*#__PURE__*/_jsxDEV(Homepage, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 276,\n columnNumber: 3\n}, this), document.getElementById('root')); //Functions below this line are for calculating data for\n//other functions\n\nfunction date() {\n let currentDate = new Date();\n let dateOptions = {\n weekday: \"long\",\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\"\n };\n let date = currentDate.toLocaleDateString(\"en-GB\", dateOptions);\n return date;\n}\n\nfunction fixDigits(k) {\n if (k < 10) {\n return \"0\" + k;\n } else {\n return k;\n }\n}\n\nfunction greet() {\n let currentTime = new Date();\n let greet = Math.floor(currentTime.getHours() / 6);\n let easterEggChance = Math.floor(Math.random() * 100);\n\n let greetings = require('./messages.json');\n\n let timeBased = [];\n let easterEggs = [];\n\n for (var i = 0; i < greetings.messages.length; i++) {\n if (greetings.messages[i].easteregg === \"FALSE\") {\n timeBased = timeBased.concat(greetings.messages[i]);\n } else {\n easterEggs = easterEggs.concat(greetings.messages[i]);\n }\n }\n\n if (easterEggChance > 10) {\n return timeBased[greet].message;\n } else {\n let easterEggText = Math.floor(Math.random() * easterEggs.length);\n return easterEggs[easterEggText].message;\n }\n}\n\nfunction Clock() {\n _s();\n\n const [date, setDate] = useState(new Date());\n\n function refreshClock() {\n setDate(new Date());\n }\n\n useEffect(() => {\n const timerId = setInterval(refreshClock, 1000);\n return function cleanup() {\n clearInterval(timerId);\n };\n }, []);\n var hour = date.getHours();\n var minutes = date.getMinutes(); //var seconds = date.getSeconds();\n\n var midday = \"AM\";\n midday = hour >= 12 ? \"PM\" : \"AM\";\n hour = hour === 0 ? 12 : hour > 12 ? hour - 12 : hour;\n minutes = fixDigits(minutes); //seconds = fixDigits(seconds);\n\n let time = hour + \":\" + minutes + \" \" + midday;\n return /*#__PURE__*/_jsxDEV(\"h2\", {\n id: \"clock\",\n children: time\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 347,\n columnNumber: 5\n }, this);\n}\n\n_s(Clock, \"Gqi45WOZhU2c0BLYX0HoJeiR0fk=\");\n\n_c12 = Clock;\n\nfunction getApps() {\n let applications = require('./apps.json');\n\n return applications;\n}\n\nfunction getLinks() {\n let links = require('./links.json');\n\n return links;\n}\n\nfunction getProviders() {\n let providers = require('./providers.json');\n\n return providers;\n}\n\nfunction getThemes() {\n let themes = require('./themes.json');\n\n return themes;\n}\n\nfunction updateTheme(e) {\n var themes = getThemes();\n var themeName = e.target.innerHTML.toLowerCase();\n var index = themes.themes.findIndex(function (item, i) {\n return item.name === themeName;\n });\n localStorage.setItem(\"image-background\", themes.themes[index].imagebackground);\n localStorage.setItem(\"color-background\", themes.themes[index].colorbackground);\n localStorage.setItem(\"color-search-background\", themes.themes[index].colorserachbackground);\n localStorage.setItem(\"color-text-pri\", themes.themes[index].colortextpri);\n localStorage.setItem(\"color-text-acc\", themes.themes[index].colortextacc);\n localStorage.setItem(\"color-border\", themes.themes[index].colorborder); //document.documentElement.style.setProperty(prop, `var(--${themeName}${prop.substring(10)})`);\n\n setTheme();\n}\n\nfunction setTheme() {\n setValueFromLocalStorage('image-background');\n setValueFromLocalStorage('color-background');\n setValueFromLocalStorage('color-search-background');\n setValueFromLocalStorage('color-text-pri');\n setValueFromLocalStorage('color-text-acc');\n setValueFromLocalStorage('color-border');\n setValueFromLocalStorage('content-display');\n}\n\nfunction handleKeyPress(e) {\n var sindex = 0;\n var cycle = false;\n var key = e.keyCode || e.which;\n var text = e.target.value.replaceAll(\"+\", \"%2B\");\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n\n if (key == 13) {\n // Search functions\n search(text);\n }\n\n if (key == 9) {\n // Tab Completion Functions\n e.preventDefault();\n e.stopPropagation();\n\n if (text[0] === ';') {\n switch (option) {\n case 't':\n var streamers = ['admiralbahroo', 'moonmoon_ow', 'witwix'];\n\n if (!subtext || cycle) {\n cycle = true;\n if (sindex > streamers.length - 1) sindex = 0;\n document.getElementById(\"keywords\").value = ';t ' + streamers[sindex++];\n return;\n }\n\n for (var streamer of streamers) {\n if (subtext === streamer.substr(0, subtext.length)) {\n document.getElementById(\"keywords\").value = ';t ' + streamer;\n return;\n }\n }\n\n break;\n }\n }\n }\n\n if (key == 32) {\n //Space to go to search\n updateLabel(text);\n }\n\n sindex = 0;\n cycle = false;\n updateLabel(text);\n}\n\nfunction updateLabel(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n\n if (text[0] === '/') {\n // if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n document.getElementById(\"searchType\").innerHTML = \"Allmusic search\";\n break;\n\n case \"d\":\n document.getElementById(\"searchType\").innerHTML = \"Duck Duck Go search\";\n break;\n\n case \"di\":\n document.getElementById(\"searchType\").innerHTML = \"Discogs search\";\n break;\n\n case \"i\":\n document.getElementById(\"searchType\").innerHTML = \"IMDB search\";\n break;\n\n case \"m\":\n document.getElementById(\"searchType\").innerHTML = \"TheMovieDB search\";\n break;\n\n case \"r\":\n document.getElementById(\"searchType\").innerHTML = \"Reddit search\";\n break;\n\n case \"q\":\n document.getElementById(\"searchType\").innerHTML = \"Qwant search\";\n break;\n\n case \"so\":\n document.getElementById(\"searchType\").innerHTML = \"Soundcloud search\";\n break;\n\n case \"s\":\n document.getElementById(\"searchType\").innerHTML = \"Spotify search\";\n break;\n\n case \"tv\":\n document.getElementById(\"searchType\").innerHTML = \"TheTVDB search\";\n break;\n\n case \"t\":\n document.getElementById(\"searchType\").innerHTML = \"Trakt search\";\n break;\n\n case \"y\":\n document.getElementById(\"searchType\").innerHTML = \"YouTube search\";\n break;\n\n case \"w\":\n document.getElementById(\"searchType\").innerHTML = \"Wikipedia search\";\n break;\n\n case \"p\":\n document.getElementById(\"searchType\").innerHTML = \"Plex search\";\n break;\n\n case \"rt\":\n document.getElementById(\"searchType\").innerHTML = \"Rotten Tomatoes search\";\n break;\n\n default:\n document.getElementById(\"searchType\").innerHTML = \"Invalid search\";\n break;\n }\n } else {\n document.getElementById(\"searchType\").innerHTML = \"Google search\";\n }\n}\n\nfunction search(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n\n if (text[0] === '/') {\n if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n window.location = \"https://www.allmusic.com/search/all/\" + subtext;\n break;\n\n case \"d\":\n window.location = \"https://duckduckgo.com/?q=\" + subtext;\n break;\n\n case \"di\":\n window.location = \"https://www.discogs.com/search/?q=\" + subtext;\n break;\n\n case \"i\":\n window.location = \"https://www.imdb.com/find?q=\" + subtext;\n break;\n\n case \"m\":\n window.location = \"https://www.themoviedb.org/search?query=\" + subtext;\n break;\n\n case \"r\":\n window.location = \"https://www.reddit.com/search?q=\" + subtext;\n break;\n\n case \"q\":\n window.location = \"https://www.qwant.com/?q=\" + subtext;\n break;\n\n case \"so\":\n window.location = \"https://soundcloud.com/search?q=\" + subtext;\n break;\n\n case \"s\":\n window.location = \"https://open.spotify.com/search/results/\" + subtext;\n break;\n\n case \"t\":\n window.location = \"https://trakt.tv/search?query=\" + subtext;\n break;\n\n case \"tv\":\n window.location = \"https://www.thetvdb.com/search?query=\" + subtext;\n break;\n\n case \"y\":\n window.location = \"https://www.youtube.com/results?search_query=\" + subtext;\n break;\n\n case \"w\":\n window.location = \"https://en.wikipedia.org/w/index.php?search=\" + subtext;\n break;\n\n case \"p\":\n window.location = \"https://app.plex.tv/desktop/#!/search?query=\" + subtext;\n break;\n\n case \"rt\":\n window.location = \"https://www.rottentomatoes.com/search?search=\" + subtext;\n break;\n }\n } else {\n var option = text.substr(1);\n\n switch (option) {\n case \"d\":\n window.location = \"https://www.duckduckgo.com\";\n break;\n\n case \"y\":\n window.location = \"https://www.youtube.com\";\n break;\n\n case \"r\":\n window.location = \"https://reddit.com\";\n break;\n\n case \"s\":\n window.location = \"https://open.spotify.com\";\n break;\n }\n }\n } else if (validURL(text)) {\n if (containsProtocol(text)) window.location = text;else window.location = \"https://\" + text;\n } else {\n window.location = \"https://www.google.com/search?q=\" + text;\n }\n} // Source: https://stackoverflow.com/questions/5717093/check-if-a-javascript-string-is-a-url\n\n\nfunction validURL(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/)?' + // protocol\n '((([a-z\\\\d]([a-z\\\\d-]*[a-z\\\\d])*)\\\\.)+[a-z]{2,}|' + // domain name\n '((\\\\d{1,3}\\\\.){3}\\\\d{1,3}))' + // OR ip (v4) address\n '(\\\\:\\\\d+)?(\\\\/[-a-z\\\\d%_.~+]*)*' + // port and path\n '(\\\\?[;&a-z\\\\d%_.~+=-]*)?' + // query string\n '(\\\\#[-a-z\\\\d_]*)?$', 'i'); // fragment locator\n\n return !!pattern.test(str);\n}\n\nfunction containsProtocol(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/){1}.*', 'i');\n return !!pattern.test(str);\n}\n\nString.prototype.replaceAll = function (search, replacement) {\n var target = this;\n return target.split(search).join(replacement);\n};\n\nfunction udpateDisplayedItems(e) {\n localStorage.setItem('contenttype', e.target.checked);\n\n if (e.target.checked) {\n localStorage.setItem('content-display', 'none');\n } else {\n localStorage.setItem('content-display', 'block');\n }\n\n setDisplayedItems();\n}\n\nfunction setDisplayedItems() {\n setValueFromLocalStorage('contenttype');\n setValueFromLocalStorage('content-display');\n var checked = localStorage.getItem(\"contenttype\");\n console.log(checked); //document.getElementById('contenttype').checked = checked;\n}\n\nvar _c, _c2, _c3, _c4, _c5, _c6, _c7, _c8, _c9, _c10, _c11, _c12;\n\n$RefreshReg$(_c, \"Homepage\");\n$RefreshReg$(_c2, \"Search\");\n$RefreshReg$(_c3, \"Header\");\n$RefreshReg$(_c4, \"Applications\");\n$RefreshReg$(_c5, \"App\");\n$RefreshReg$(_c6, \"Bookmarks\");\n$RefreshReg$(_c7, \"LinkGroups\");\n$RefreshReg$(_c8, \"LinkItem\");\n$RefreshReg$(_c9, \"ModalMenu\");\n$RefreshReg$(_c10, \"Provider\");\n$RefreshReg$(_c11, \"ModalInit\");\n$RefreshReg$(_c12, \"Clock\");","map":{"version":3,"sources":["/home/seanedmunds/dev/home-page/src/index.js"],"names":["React","useState","useEffect","ReactDOM","setValueFromLocalStorage","property","value","localStorage","getItem","setValue","document","documentElement","style","setProperty","input","querySelector","replace","Homepage","setTheme","date","greet","Search","handleKeyPress","Header","props","Applications","appList","getApps","items","i","apps","length","safe","NSFW","NSFWEnabled","push","name","url","icon","App","classNameType","hrefUrl","iconName","Bookmarks","bookmarkList","getLinks","bookmarks","category","links","LinkGroups","LinkItem","link","ModalMenu","providers","getProviders","updateTheme","udpateDisplayedItems","Provider","provider","prefix","ModalInit","setDisplayedItems","render","getElementById","currentDate","Date","dateOptions","weekday","year","month","day","toLocaleDateString","fixDigits","k","currentTime","Math","floor","getHours","easterEggChance","random","greetings","require","timeBased","easterEggs","messages","easteregg","concat","message","easterEggText","Clock","setDate","refreshClock","timerId","setInterval","cleanup","clearInterval","hour","minutes","getMinutes","midday","time","applications","getThemes","themes","e","themeName","target","innerHTML","toLowerCase","index","findIndex","item","setItem","imagebackground","colorbackground","colorserachbackground","colortextpri","colortextacc","colorborder","sindex","cycle","key","keyCode","which","text","replaceAll","option","substr","indexOf","subtext","search","preventDefault","stopPropagation","streamers","streamer","updateLabel","window","location","validURL","containsProtocol","str","pattern","RegExp","test","String","prototype","replacement","split","join","checked","console","log"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { useState, useEffect } from 'react';\nimport ReactDOM from 'react-dom';\n//import { unstable_createPortal } from 'react-dom';\nimport './index.css';\n\nconst setValueFromLocalStorage = property => {\n let value = localStorage.getItem(property);\n setValue(property, value);\n};\nconst setValue = (property, value) => {\n if (value) {\n document.documentElement.style.setProperty(`--${property}`, value);\n\n const input = document.querySelector(`#${property}`);\n if (input) {\n value = value.replace('px', '');\n input.value = value;\n }\n }\n};\n\nfunction Homepage() {\n setTheme();\n return (\n \n \n \n
\n \n \n
\n \n \n \n
\n \n \n
\n \n \n
\n \n );\n}\n\nfunction Search() {\n return (\n \n )\n}\n\nfunction Header(props) {\n return (\n \n );\n}\n\nfunction Applications() {\n let appList = getApps();\n var items = [];\n for (var i = 0; i < appList.apps.length; i++) {\n var safe = appList.apps[i].NSFW;\n var NSFWEnabled = localStorage.getItem(\"contenttype\");\n if (safe === \"SAFE\") {\n items.push(\n \n );\n } else if (safe === \"NSFW\" && NSFWEnabled) {\n items.push(\n \n );\n } else {\n \n }\n \n }\n return (\n \n Applications
\n \n {items}\n
\n \n );\n}\n\nfunction App(props) {\n \n let classNameType = props.NSFW + \"-content\";\n let hrefUrl = \"https://\" + props.url;\n let iconName = \"mdi-\" + props.icon;\n return (\n \n );\n}\n\nfunction Bookmarks() {\n let bookmarkList = getLinks();\n var items = [];\n for (var i = 0; i < bookmarkList.bookmarks.length; i++) {\n items.push(\n \n );\n }\n return (\n \n Bookmarks
\n \n {items}\n
\n \n );\n}\n\nfunction LinkGroups(props) {\n var items = [];\n for (var i = 0; i < props.links.length; i++) {\n items.push(\n \n );\n }\n return (\n \n
{props.category}
\n {items}\n \n );\n}\n\nfunction LinkItem(props) {\n return (\n \n );\n}\n\nfunction ModalMenu() {\n var providers = getProviders();\n var items = [];\n for (var i = 0; i < providers.providers.length; i++) {\n items.push(\n \n );\n }\n return (\n \n \n \n\n
Color themes
\n\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n\n\n
Search options
\n
\n \n \n \n | Website | \n Prefix | \n
\n {items}\n \n
\n \n\n \n
\n \n );\n}\n\nfunction Provider(props) {\n return (\n \n | {props.provider.name} | \n {props.provider.prefix} | \n
\n );\n}\n\nfunction ModalInit() {\n setDisplayedItems();\n return (\n \n );\n}\n\nReactDOM.render(\n ,\n document.getElementById('root')\n);\n\n//Functions below this line are for calculating data for\n//other functions\n\nfunction date() {\n let currentDate = new Date();\n let dateOptions = {\n weekday: \"long\",\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\"\n };\n let date = currentDate.toLocaleDateString(\"en-GB\", dateOptions);\n return date;\n}\nfunction fixDigits(k) {\n if (k < 10) {\n return \"0\" + k;\n }\n else {\n return k;\n }\n}\nfunction greet() {\n let currentTime = new Date();\n let greet = Math.floor(currentTime.getHours() / 6);\n let easterEggChance = Math.floor(Math.random() * 100);\n let greetings = require('./messages.json');\n let timeBased = [];\n let easterEggs = [];\n for (var i = 0; i < greetings.messages.length; i++) {\n if (greetings.messages[i].easteregg === \"FALSE\") {\n timeBased = timeBased.concat(greetings.messages[i]);\n } else {\n easterEggs = easterEggs.concat(greetings.messages[i]);\n }\n }\n if (easterEggChance > 10) {\n return timeBased[greet].message;\n } else {\n let easterEggText = Math.floor(Math.random() * easterEggs.length);\n return easterEggs[easterEggText].message;\n }\n}\nfunction Clock() {\n const [date, setDate] = useState(new Date());\n\n function refreshClock() {\n setDate(new Date());\n }\n useEffect(() => {\n const timerId = setInterval(refreshClock, 1000);\n return function cleanup() {\n clearInterval(timerId);\n };\n }, []);\n\n var hour = date.getHours();\n var minutes = date.getMinutes();\n //var seconds = date.getSeconds();\n var midday = \"AM\";\n midday = (hour >= 12) ? \"PM\" : \"AM\";\n hour = (hour === 0) ? 12 : ((hour > 12) ? (hour - 12) : hour);\n minutes = fixDigits(minutes);\n //seconds = fixDigits(seconds);\n let time = hour + \":\" + minutes + \" \" + midday;\n\n return (\n {time}
\n\n );\n}\nfunction getApps() {\n let applications = require('./apps.json');\n return applications;\n}\nfunction getLinks() {\n let links = require('./links.json');\n return links;\n}\nfunction getProviders() {\n let providers = require('./providers.json');\n return providers;\n}\nfunction getThemes() {\n let themes = require('./themes.json');\n return themes;\n}\n\nfunction updateTheme(e) {\n var themes = getThemes();\n var themeName = e.target.innerHTML.toLowerCase();\n var index = themes.themes.findIndex(function(item, i){\n return item.name === themeName\n });\n localStorage.setItem(\"image-background\", themes.themes[index].imagebackground);\n localStorage.setItem(\"color-background\", themes.themes[index].colorbackground);\n localStorage.setItem(\"color-search-background\", themes.themes[index].colorserachbackground);\n localStorage.setItem(\"color-text-pri\",themes.themes[index].colortextpri);\n localStorage.setItem(\"color-text-acc\", themes.themes[index].colortextacc);\n localStorage.setItem(\"color-border\", themes.themes[index].colorborder);\n \n //document.documentElement.style.setProperty(prop, `var(--${themeName}${prop.substring(10)})`);\n setTheme();\n}\n\nfunction setTheme() {\n setValueFromLocalStorage('image-background');\n setValueFromLocalStorage('color-background');\n setValueFromLocalStorage('color-search-background');\n setValueFromLocalStorage('color-text-pri');\n setValueFromLocalStorage('color-text-acc');\n setValueFromLocalStorage('color-border');\n setValueFromLocalStorage('content-display');\n}\n\nfunction handleKeyPress(e) {\n var sindex = 0;\n var cycle = false;\n var key = e.keyCode || e.which;\n var text = e.target.value.replaceAll(\"+\", \"%2B\");\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n if (key == 13) { // Search functions\n search(text);\n }\n if (key == 9) { // Tab Completion Functions\n e.preventDefault();\n e.stopPropagation();\n if (text[0] === ';') {\n switch (option) {\n case 't':\n var streamers = ['admiralbahroo', 'moonmoon_ow', 'witwix'];\n if (!subtext || cycle) {\n cycle = true;\n if (sindex > streamers.length - 1) sindex = 0;\n document.getElementById(\"keywords\").value = ';t ' + streamers[sindex++];\n return;\n }\n for (var streamer of streamers) {\n if (subtext === streamer.substr(0, subtext.length)) {\n document.getElementById(\"keywords\").value = ';t ' + streamer;\n return;\n }\n }\n break;\n }\n }\n }\n if(key == 32){ //Space to go to search\nupdateLabel(text);\n }\n sindex = 0;\n cycle = false;\n updateLabel(text);\n}\n\nfunction updateLabel(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n if (text[0] === '/') {\n// if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n document.getElementById(\"searchType\").innerHTML = \"Allmusic search\";\n break;\n case \"d\":\n document.getElementById(\"searchType\").innerHTML = \"Duck Duck Go search\";\n break;\n case \"di\":\n document.getElementById(\"searchType\").innerHTML = \"Discogs search\";\n break;\n case \"i\":\n document.getElementById(\"searchType\").innerHTML = \"IMDB search\";\n break;\n case \"m\":\n document.getElementById(\"searchType\").innerHTML = \"TheMovieDB search\";\n break;\n case \"r\":\n document.getElementById(\"searchType\").innerHTML = \"Reddit search\";\n break;\n case \"q\":\n document.getElementById(\"searchType\").innerHTML = \"Qwant search\";\n break;\n case \"so\":\n document.getElementById(\"searchType\").innerHTML = \"Soundcloud search\";\n break;\n case \"s\":\n document.getElementById(\"searchType\").innerHTML = \"Spotify search\";\n break;\n case \"tv\":\n document.getElementById(\"searchType\").innerHTML = \"TheTVDB search\";\n break;\n case \"t\":\n document.getElementById(\"searchType\").innerHTML = \"Trakt search\";\n break;\n case \"y\":\n document.getElementById(\"searchType\").innerHTML = \"YouTube search\";\n break;\n case \"w\":\n document.getElementById(\"searchType\").innerHTML = \"Wikipedia search\";\n break;\n case \"p\":\n document.getElementById(\"searchType\").innerHTML = \"Plex search\";\n break;\n case \"rt\":\n document.getElementById(\"searchType\").innerHTML = \"Rotten Tomatoes search\";\n break;\n default:\n document.getElementById(\"searchType\").innerHTML = \"Invalid search\";\n break;\n }\n}else {\n document.getElementById(\"searchType\").innerHTML = \"Google search\";\n }\n}\n\nfunction search(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n if (text[0] === '/') {\n if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n window.location = \"https://www.allmusic.com/search/all/\" + subtext;\n break;\n case \"d\":\n window.location = \"https://duckduckgo.com/?q=\" + subtext;\n break;\n case \"di\":\n window.location = \"https://www.discogs.com/search/?q=\" + subtext;\n break;\n case \"i\":\n window.location = \"https://www.imdb.com/find?q=\" + subtext;\n break;\n case \"m\":\n window.location = \"https://www.themoviedb.org/search?query=\" + subtext;\n break;\n case \"r\":\n window.location = \"https://www.reddit.com/search?q=\" + subtext;\n break;\n case \"q\":\n window.location = \"https://www.qwant.com/?q=\" + subtext;\n break;\n case \"so\":\n window.location = \"https://soundcloud.com/search?q=\" + subtext;\n break;\n case \"s\":\n window.location = \"https://open.spotify.com/search/results/\" + subtext;\n break;\n case \"t\":\n window.location = \"https://trakt.tv/search?query=\" + subtext;\n break;\n case \"tv\":\n window.location = \"https://www.thetvdb.com/search?query=\" + subtext;\n break;\n case \"y\":\n window.location = \"https://www.youtube.com/results?search_query=\" + subtext;\n break;\n case \"w\":\n window.location = \"https://en.wikipedia.org/w/index.php?search=\" + subtext;\n break;\n case \"p\":\n window.location = \"https://app.plex.tv/desktop/#!/search?query=\" + subtext;\n break;\n case \"rt\":\n window.location = \"https://www.rottentomatoes.com/search?search=\" + subtext;\n break;\n }\n } else {\n var option = text.substr(1);\n switch (option) {\n case \"d\":\n window.location = \"https://www.duckduckgo.com\";\n break;\n case \"y\":\n window.location = \"https://www.youtube.com\";\n break;\n case \"r\":\n window.location = \"https://reddit.com\";\n break;\n case \"s\":\n window.location = \"https://open.spotify.com\";\n break;\n }\n }\n } else if (validURL(text)) {\n if (containsProtocol(text))\n window.location = text;\n else\n window.location = \"https://\" + text;\n } else {\n window.location = \"https://www.google.com/search?q=\" + text;\n }\n}\n\n// Source: https://stackoverflow.com/questions/5717093/check-if-a-javascript-string-is-a-url\nfunction validURL(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/)?' + // protocol\n '((([a-z\\\\d]([a-z\\\\d-]*[a-z\\\\d])*)\\\\.)+[a-z]{2,}|' + // domain name\n '((\\\\d{1,3}\\\\.){3}\\\\d{1,3}))' + // OR ip (v4) address\n '(\\\\:\\\\d+)?(\\\\/[-a-z\\\\d%_.~+]*)*' + // port and path\n '(\\\\?[;&a-z\\\\d%_.~+=-]*)?' + // query string\n '(\\\\#[-a-z\\\\d_]*)?$', 'i'); // fragment locator\n return !!pattern.test(str);\n}\n\nfunction containsProtocol(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/){1}.*', 'i');\n return !!pattern.test(str);\n}\n\nString.prototype.replaceAll = function(search, replacement) {\n var target = this;\n return target.split(search).join(replacement);\n};\n\nfunction udpateDisplayedItems(e) {\n localStorage.setItem('contenttype', e.target.checked);\n if (e.target.checked) {\n localStorage.setItem('content-display', 'none');\n } else {\n localStorage.setItem('content-display', 'block');\n }\n setDisplayedItems();\n}\nfunction setDisplayedItems() {\n setValueFromLocalStorage('contenttype');\n setValueFromLocalStorage('content-display');\n var checked = localStorage.getItem(\"contenttype\");\n console.log(checked);\n //document.getElementById('contenttype').checked = checked;\n}"]},"metadata":{},"sourceType":"module"}
\ No newline at end of file
diff --git a/node_modules/.cache/babel-loader/fd207424e9b80387263426f1462168f5.json b/node_modules/.cache/babel-loader/fd207424e9b80387263426f1462168f5.json
new file mode 100644
index 00000000..bc67fbba
--- /dev/null
+++ b/node_modules/.cache/babel-loader/fd207424e9b80387263426f1462168f5.json
@@ -0,0 +1 @@
+{"ast":null,"code":"var _jsxFileName = \"/home/seanedmunds/dev/home-page/src/index.js\",\n _s = $RefreshSig$();\n\nimport React from 'react';\nimport { useState, useEffect } from 'react';\nimport ReactDOM from 'react-dom'; //import { unstable_createPortal } from 'react-dom';\n\nimport './index.css';\nimport { jsxDEV as _jsxDEV } from \"react/jsx-dev-runtime\";\n\nconst setValueFromLocalStorage = property => {\n let value = localStorage.getItem(property);\n setValue(property, value);\n};\n\nconst setValue = (property, value) => {\n if (value) {\n document.documentElement.style.setProperty(`--${property}`, value);\n const input = document.querySelector(`#${property}`);\n\n if (input) {\n value = value.replace('px', '');\n input.value = value;\n }\n }\n};\n\nfunction Homepage() {\n setTheme();\n return /*#__PURE__*/_jsxDEV(\"main\", {\n id: \"container\",\n className: \"fade\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Search, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 28,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 27,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Header, {\n date: date(),\n greet: greet()\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 31,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 30,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Applications, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 37,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 36,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Bookmarks, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 40,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 39,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(ModalMenu, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 43,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 42,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(ModalInit, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 46,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 45,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 26,\n columnNumber: 5\n }, this);\n}\n\n_c = Homepage;\n\nfunction Search() {\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"search\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"abackground\",\n children: [/*#__PURE__*/_jsxDEV(\"input\", {\n name: \"keywords\",\n type: \"text\",\n className: \"keyword\",\n id: \"keywords\",\n size: \"50\",\n spellCheck: \"true\",\n placeholder: \"\"\n /*onFocus={this.placeholder = \"\"} onBlur={this.placeholder = ''}*/\n ,\n autoComplete: \"off\",\n autoFocus: true,\n onKeyUp: handleKeyPress\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 56,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n id: \"searchType\",\n className: \"Input-label\",\n children: \"Google search\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 57,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 55,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 54,\n columnNumber: 5\n }, this);\n}\n\n_c2 = Search;\n\nfunction Header(props) {\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"header\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n id: \"greeting_block\",\n children: /*#__PURE__*/_jsxDEV(\"h1\", {\n id: \"header_greet\",\n children: props.greet\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 67,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 66,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"date_block\",\n children: [/*#__PURE__*/_jsxDEV(\"h2\", {\n id: \"header_date\",\n children: props.date\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 70,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(Clock, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 71,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 69,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 65,\n columnNumber: 5\n }, this);\n}\n\n_c3 = Header;\n\nfunction Applications() {\n let appList = getApps();\n var items = [];\n\n for (var i = 0; i < appList.apps.length; i++) {\n var safe = appList.apps[i].NSFW;\n var NSFWEnabled = localStorage.getItem(\"contenttype\");\n console.log(safe);\n\n if (safe === \"SAFE\") {\n items.push( /*#__PURE__*/_jsxDEV(App, {\n name: appList.apps[i].name,\n url: appList.apps[i].url,\n icon: appList.apps[i].icon,\n NSFW: appList.apps[i].NSFW\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 86,\n columnNumber: 9\n }, this));\n } else if (safe === \"NSFW\" && NSFWEnabled) {\n items.push( /*#__PURE__*/_jsxDEV(App, {\n name: appList.apps[i].name,\n url: appList.apps[i].url,\n icon: appList.apps[i].icon,\n NSFW: appList.apps[i].NSFW\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 96,\n columnNumber: 9\n }, this));\n } else {\n console.log(NSFWEnabled);\n }\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"apps\",\n children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n children: \"Applications\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 111,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"apps_loop\",\n children: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 112,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 110,\n columnNumber: 5\n }, this);\n}\n\n_c4 = Applications;\n\nfunction App(props) {\n let classNameType = props.NSFW + \"-content\";\n let hrefUrl = \"https://\" + props.url;\n let iconName = \"mdi-\" + props.icon;\n return /*#__PURE__*/_jsxDEV(\"div\", {\n className: classNameType,\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: hrefUrl,\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_item\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_icon\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify icon\",\n \"data-icon\": iconName\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 129,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 128,\n columnNumber: 13\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_text\",\n children: [/*#__PURE__*/_jsxDEV(\"span\", {\n id: \"app-name\",\n children: props.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 132,\n columnNumber: 15\n }, this), /*#__PURE__*/_jsxDEV(\"span\", {\n id: \"app-address\",\n children: props.url\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 133,\n columnNumber: 15\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 131,\n columnNumber: 13\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 127,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 126,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 125,\n columnNumber: 7\n }, this);\n}\n\n_c5 = App;\n\nfunction Bookmarks() {\n let bookmarkList = getLinks();\n var items = [];\n\n for (var i = 0; i < bookmarkList.bookmarks.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(LinkGroups, {\n category: bookmarkList.bookmarks[i].category,\n links: bookmarkList.bookmarks[i].links\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 146,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"links\",\n children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n children: \"Bookmarks\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 155,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"links_loop\",\n children: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 156,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 154,\n columnNumber: 5\n }, this);\n}\n\n_c6 = Bookmarks;\n\nfunction LinkGroups(props) {\n var items = [];\n\n for (var i = 0; i < props.links.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(LinkItem, {\n link: props.links[i]\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 167,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"links_item\",\n children: [/*#__PURE__*/_jsxDEV(\"h4\", {\n children: props.category\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 175,\n columnNumber: 7\n }, this), items]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 174,\n columnNumber: 5\n }, this);\n}\n\n_c7 = LinkGroups;\n\nfunction LinkItem(props) {\n return /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: props.link.url,\n className: \"theme_color-border theme_text-select\",\n children: props.link.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 184,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 183,\n columnNumber: 5\n }, this);\n}\n\n_c8 = LinkItem;\n\nfunction ModalMenu() {\n var providers = getProviders();\n var items = [];\n\n for (var i = 0; i < providers.providers.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(Provider, {\n provider: providers.providers[i]\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 194,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"modal\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n children: [/*#__PURE__*/_jsxDEV(\"header\", {\n id: \"modal-header\",\n children: [/*#__PURE__*/_jsxDEV(\"h1\", {\n children: \"Options\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 204,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n href: \"#\",\n title: \"Close\",\n className: \"modal-close\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-close\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 206,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 205,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 203,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"h2\", {\n children: \"Color themes\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 210,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"modal-theme\",\n children: [/*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"blackboard\",\n className: \"theme-button theme-blackboard\",\n onClick: updateTheme,\n children: \"Blackboard\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 213,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"gazette\",\n className: \"theme-button theme-gazette\",\n onClick: updateTheme,\n children: \"Gazette\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 214,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"espresso\",\n className: \"theme-button theme-espresso\",\n onClick: updateTheme,\n children: \"Espresso\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 215,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cab\",\n className: \"theme-button theme-cab\",\n onClick: updateTheme,\n children: \"Cab\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 216,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cloud\",\n className: \"theme-button theme-cloud\",\n onClick: updateTheme,\n children: \"Cloud\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 217,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"lime\",\n className: \"theme-button theme-lime\",\n onClick: updateTheme,\n children: \"Lime\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 218,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"passion\",\n className: \"theme-button theme-passion\",\n onClick: updateTheme,\n children: \"Passion\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 219,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"blues\",\n className: \"theme-button theme-blues\",\n onClick: updateTheme,\n children: \"Blues\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 220,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"chalk\",\n className: \"theme-button theme-chalk\",\n onClick: updateTheme,\n children: \"Chalk\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 221,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"tron\",\n className: \"theme-button theme-tron\",\n onClick: updateTheme,\n children: \"Tron\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 222,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"paper\",\n className: \"theme-button theme-paper\",\n onClick: updateTheme,\n children: \"Paper\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 223,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cyberpunk\",\n className: \"theme-button theme-cyberpunk\",\n onClick: updateTheme,\n children: \"Cyberpunk\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 224,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"quadra\",\n className: \"theme-button theme-panam\",\n onClick: updateTheme,\n children: \"Quadra\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 225,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"panam\",\n className: \"theme-button theme-panam\",\n onClick: updateTheme,\n children: \"Panam\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 226,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"touch\",\n className: \"theme-button theme-touch\",\n onClick: updateTheme,\n children: \"Touch\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 227,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"peek\",\n className: \"theme-button theme-peek\",\n onClick: updateTheme,\n children: \"Peek\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 228,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 212,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"h2\", {\n children: \"Search options\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 232,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"providers\",\n children: /*#__PURE__*/_jsxDEV(\"table\", {\n children: /*#__PURE__*/_jsxDEV(\"tbody\", {\n children: [/*#__PURE__*/_jsxDEV(\"tr\", {\n children: [/*#__PURE__*/_jsxDEV(\"th\", {\n children: \"Website\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 237,\n columnNumber: 19\n }, this), /*#__PURE__*/_jsxDEV(\"th\", {\n children: \"Prefix\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 238,\n columnNumber: 19\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 236,\n columnNumber: 17\n }, this), items]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 235,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 234,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 233,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"header\", {\n id: \"modal-footer\",\n children: [/*#__PURE__*/_jsxDEV(\"a\", {\n href: \"https://github.com/jeroenpardon/\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-github-box\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 246,\n columnNumber: 54\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 246,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n href: \"https://materialdesignicons.com/\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-material-design\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 247,\n columnNumber: 54\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 247,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"sneaky\",\n children: [/*#__PURE__*/_jsxDEV(\"input\", {\n type: \"checkbox\",\n id: \"contenttype\",\n onChange: udpateDisplayedItems\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 248,\n columnNumber: 35\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n for: \"contenttype\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-domino-mask\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 249,\n columnNumber: 36\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 249,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 248,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 245,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 202,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 201,\n columnNumber: 5\n }, this);\n}\n\n_c9 = ModalMenu;\n\nfunction Provider(props) {\n return /*#__PURE__*/_jsxDEV(\"tr\", {\n children: [/*#__PURE__*/_jsxDEV(\"td\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: props.provider.url,\n children: props.provider.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 259,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 259,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"td\", {\n children: props.provider.prefix\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 260,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 258,\n columnNumber: 5\n }, this);\n}\n\n_c10 = Provider;\n\nfunction ModalInit() {\n return /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"modal_init\",\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n className: \"btn\",\n href: \"#modal\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify icon\",\n \"data-icon\": \"mdi-xbox-controller-menu\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 269,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 268,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 267,\n columnNumber: 5\n }, this);\n}\n\n_c11 = ModalInit;\nReactDOM.render( /*#__PURE__*/_jsxDEV(Homepage, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 276,\n columnNumber: 3\n}, this), document.getElementById('root')); //Functions below this line are for calculating data for\n//other functions\n\nfunction date() {\n let currentDate = new Date();\n let dateOptions = {\n weekday: \"long\",\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\"\n };\n let date = currentDate.toLocaleDateString(\"en-GB\", dateOptions);\n return date;\n}\n\nfunction fixDigits(k) {\n if (k < 10) {\n return \"0\" + k;\n } else {\n return k;\n }\n}\n\nfunction greet() {\n let currentTime = new Date();\n let greet = Math.floor(currentTime.getHours() / 6);\n let easterEggChance = Math.floor(Math.random() * 100);\n\n let greetings = require('./messages.json');\n\n let timeBased = [];\n let easterEggs = [];\n\n for (var i = 0; i < greetings.messages.length; i++) {\n if (greetings.messages[i].easteregg === \"FALSE\") {\n timeBased = timeBased.concat(greetings.messages[i]);\n } else {\n easterEggs = easterEggs.concat(greetings.messages[i]);\n }\n }\n\n if (easterEggChance > 10) {\n return timeBased[greet].message;\n } else {\n let easterEggText = Math.floor(Math.random() * easterEggs.length);\n return easterEggs[easterEggText].message;\n }\n}\n\nfunction Clock() {\n _s();\n\n const [date, setDate] = useState(new Date());\n\n function refreshClock() {\n setDate(new Date());\n }\n\n useEffect(() => {\n const timerId = setInterval(refreshClock, 1000);\n return function cleanup() {\n clearInterval(timerId);\n };\n }, []);\n var hour = date.getHours();\n var minutes = date.getMinutes(); //var seconds = date.getSeconds();\n\n var midday = \"AM\";\n midday = hour >= 12 ? \"PM\" : \"AM\";\n hour = hour === 0 ? 12 : hour > 12 ? hour - 12 : hour;\n minutes = fixDigits(minutes); //seconds = fixDigits(seconds);\n\n let time = hour + \":\" + minutes + \" \" + midday;\n return /*#__PURE__*/_jsxDEV(\"h2\", {\n id: \"clock\",\n children: time\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 347,\n columnNumber: 5\n }, this);\n}\n\n_s(Clock, \"Gqi45WOZhU2c0BLYX0HoJeiR0fk=\");\n\n_c12 = Clock;\n\nfunction getApps() {\n let applications = require('./apps.json');\n\n return applications;\n}\n\nfunction getLinks() {\n let links = require('./links.json');\n\n return links;\n}\n\nfunction getProviders() {\n let providers = require('./providers.json');\n\n return providers;\n}\n\nfunction getThemes() {\n let themes = require('./themes.json');\n\n return themes;\n}\n\nfunction updateTheme(e) {\n var themes = getThemes();\n var themeName = e.target.innerHTML.toLowerCase();\n var index = themes.themes.findIndex(function (item, i) {\n return item.name === themeName;\n });\n console.log(themes.themes[index]);\n localStorage.setItem(\"image-background\", themes.themes[index].imagebackground);\n localStorage.setItem(\"color-background\", themes.themes[index].colorbackground);\n localStorage.setItem(\"color-search-background\", themes.themes[index].colorserachbackground);\n localStorage.setItem(\"color-text-pri\", themes.themes[index].colortextpri);\n localStorage.setItem(\"color-text-acc\", themes.themes[index].colortextacc);\n localStorage.setItem(\"color-border\", themes.themes[index].colorborder); //document.documentElement.style.setProperty(prop, `var(--${themeName}${prop.substring(10)})`);\n\n setTheme();\n}\n\nfunction setTheme() {\n setValueFromLocalStorage('image-background');\n setValueFromLocalStorage('color-background');\n setValueFromLocalStorage('color-search-background');\n setValueFromLocalStorage('color-text-pri');\n setValueFromLocalStorage('color-text-acc');\n setValueFromLocalStorage('color-border');\n setValueFromLocalStorage('content-display');\n}\n\nfunction handleKeyPress(e) {\n var sindex = 0;\n var cycle = false;\n var key = e.keyCode || e.which;\n var text = e.target.value.replaceAll(\"+\", \"%2B\");\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n\n if (key == 13) {\n // Search functions\n search(text);\n }\n\n if (key == 9) {\n // Tab Completion Functions\n e.preventDefault();\n e.stopPropagation();\n\n if (text[0] === ';') {\n switch (option) {\n case 't':\n var streamers = ['admiralbahroo', 'moonmoon_ow', 'witwix'];\n\n if (!subtext || cycle) {\n cycle = true;\n if (sindex > streamers.length - 1) sindex = 0;\n document.getElementById(\"keywords\").value = ';t ' + streamers[sindex++];\n return;\n }\n\n for (var streamer of streamers) {\n if (subtext === streamer.substr(0, subtext.length)) {\n document.getElementById(\"keywords\").value = ';t ' + streamer;\n return;\n }\n }\n\n break;\n }\n }\n }\n\n if (key == 32) {\n //Space to go to search\n updateLabel(text);\n }\n\n sindex = 0;\n cycle = false;\n updateLabel(text);\n}\n\nfunction updateLabel(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n\n if (text[0] === '/') {\n // if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n document.getElementById(\"searchType\").innerHTML = \"Allmusic search\";\n break;\n\n case \"d\":\n document.getElementById(\"searchType\").innerHTML = \"Duck Duck Go search\";\n break;\n\n case \"di\":\n document.getElementById(\"searchType\").innerHTML = \"Discogs search\";\n break;\n\n case \"i\":\n document.getElementById(\"searchType\").innerHTML = \"IMDB search\";\n break;\n\n case \"m\":\n document.getElementById(\"searchType\").innerHTML = \"TheMovieDB search\";\n break;\n\n case \"r\":\n document.getElementById(\"searchType\").innerHTML = \"Reddit search\";\n break;\n\n case \"q\":\n document.getElementById(\"searchType\").innerHTML = \"Qwant search\";\n break;\n\n case \"so\":\n document.getElementById(\"searchType\").innerHTML = \"Soundcloud search\";\n break;\n\n case \"s\":\n document.getElementById(\"searchType\").innerHTML = \"Spotify search\";\n break;\n\n case \"tv\":\n document.getElementById(\"searchType\").innerHTML = \"TheTVDB search\";\n break;\n\n case \"t\":\n document.getElementById(\"searchType\").innerHTML = \"Trakt search\";\n break;\n\n case \"y\":\n document.getElementById(\"searchType\").innerHTML = \"YouTube search\";\n break;\n\n case \"w\":\n document.getElementById(\"searchType\").innerHTML = \"Wikipedia search\";\n break;\n\n case \"p\":\n document.getElementById(\"searchType\").innerHTML = \"Plex search\";\n break;\n\n case \"rt\":\n document.getElementById(\"searchType\").innerHTML = \"Rotten Tomatoes search\";\n break;\n\n default:\n document.getElementById(\"searchType\").innerHTML = \"Invalid search\";\n break;\n }\n } else {\n document.getElementById(\"searchType\").innerHTML = \"Google search\";\n }\n}\n\nfunction search(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n\n if (text[0] === '/') {\n if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n window.location = \"https://www.allmusic.com/search/all/\" + subtext;\n break;\n\n case \"d\":\n window.location = \"https://duckduckgo.com/?q=\" + subtext;\n break;\n\n case \"di\":\n window.location = \"https://www.discogs.com/search/?q=\" + subtext;\n break;\n\n case \"i\":\n window.location = \"https://www.imdb.com/find?q=\" + subtext;\n break;\n\n case \"m\":\n window.location = \"https://www.themoviedb.org/search?query=\" + subtext;\n break;\n\n case \"r\":\n window.location = \"https://www.reddit.com/search?q=\" + subtext;\n break;\n\n case \"q\":\n window.location = \"https://www.qwant.com/?q=\" + subtext;\n break;\n\n case \"so\":\n window.location = \"https://soundcloud.com/search?q=\" + subtext;\n break;\n\n case \"s\":\n window.location = \"https://open.spotify.com/search/results/\" + subtext;\n break;\n\n case \"t\":\n window.location = \"https://trakt.tv/search?query=\" + subtext;\n break;\n\n case \"tv\":\n window.location = \"https://www.thetvdb.com/search?query=\" + subtext;\n break;\n\n case \"y\":\n window.location = \"https://www.youtube.com/results?search_query=\" + subtext;\n break;\n\n case \"w\":\n window.location = \"https://en.wikipedia.org/w/index.php?search=\" + subtext;\n break;\n\n case \"p\":\n window.location = \"https://app.plex.tv/desktop/#!/search?query=\" + subtext;\n break;\n\n case \"rt\":\n window.location = \"https://www.rottentomatoes.com/search?search=\" + subtext;\n break;\n }\n } else {\n var option = text.substr(1);\n\n switch (option) {\n case \"d\":\n window.location = \"https://www.duckduckgo.com\";\n break;\n\n case \"y\":\n window.location = \"https://www.youtube.com\";\n break;\n\n case \"r\":\n window.location = \"https://reddit.com\";\n break;\n\n case \"s\":\n window.location = \"https://open.spotify.com\";\n break;\n }\n }\n } else if (validURL(text)) {\n if (containsProtocol(text)) window.location = text;else window.location = \"https://\" + text;\n } else {\n window.location = \"https://www.google.com/search?q=\" + text;\n }\n} // Source: https://stackoverflow.com/questions/5717093/check-if-a-javascript-string-is-a-url\n\n\nfunction validURL(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/)?' + // protocol\n '((([a-z\\\\d]([a-z\\\\d-]*[a-z\\\\d])*)\\\\.)+[a-z]{2,}|' + // domain name\n '((\\\\d{1,3}\\\\.){3}\\\\d{1,3}))' + // OR ip (v4) address\n '(\\\\:\\\\d+)?(\\\\/[-a-z\\\\d%_.~+]*)*' + // port and path\n '(\\\\?[;&a-z\\\\d%_.~+=-]*)?' + // query string\n '(\\\\#[-a-z\\\\d_]*)?$', 'i'); // fragment locator\n\n return !!pattern.test(str);\n}\n\nfunction containsProtocol(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/){1}.*', 'i');\n return !!pattern.test(str);\n}\n\nString.prototype.replaceAll = function (search, replacement) {\n var target = this;\n return target.split(search).join(replacement);\n};\n\nfunction udpateDisplayedItems(e) {\n localStorage.setItem('contenttype', e.target.checked);\n\n if (e.target.checked) {\n localStorage.setItem('content-display', 'none');\n } else {\n localStorage.setItem('content-display', 'block');\n }\n\n setDisplayedItems();\n}\n\nfunction setDisplayedItems() {\n setValueFromLocalStorage('contenttype');\n setValueFromLocalStorage('content-display');\n}\n\nvar _c, _c2, _c3, _c4, _c5, _c6, _c7, _c8, _c9, _c10, _c11, _c12;\n\n$RefreshReg$(_c, \"Homepage\");\n$RefreshReg$(_c2, \"Search\");\n$RefreshReg$(_c3, \"Header\");\n$RefreshReg$(_c4, \"Applications\");\n$RefreshReg$(_c5, \"App\");\n$RefreshReg$(_c6, \"Bookmarks\");\n$RefreshReg$(_c7, \"LinkGroups\");\n$RefreshReg$(_c8, \"LinkItem\");\n$RefreshReg$(_c9, \"ModalMenu\");\n$RefreshReg$(_c10, \"Provider\");\n$RefreshReg$(_c11, \"ModalInit\");\n$RefreshReg$(_c12, \"Clock\");","map":{"version":3,"sources":["/home/seanedmunds/dev/home-page/src/index.js"],"names":["React","useState","useEffect","ReactDOM","setValueFromLocalStorage","property","value","localStorage","getItem","setValue","document","documentElement","style","setProperty","input","querySelector","replace","Homepage","setTheme","date","greet","Search","handleKeyPress","Header","props","Applications","appList","getApps","items","i","apps","length","safe","NSFW","NSFWEnabled","console","log","push","name","url","icon","App","classNameType","hrefUrl","iconName","Bookmarks","bookmarkList","getLinks","bookmarks","category","links","LinkGroups","LinkItem","link","ModalMenu","providers","getProviders","updateTheme","udpateDisplayedItems","Provider","provider","prefix","ModalInit","render","getElementById","currentDate","Date","dateOptions","weekday","year","month","day","toLocaleDateString","fixDigits","k","currentTime","Math","floor","getHours","easterEggChance","random","greetings","require","timeBased","easterEggs","messages","easteregg","concat","message","easterEggText","Clock","setDate","refreshClock","timerId","setInterval","cleanup","clearInterval","hour","minutes","getMinutes","midday","time","applications","getThemes","themes","e","themeName","target","innerHTML","toLowerCase","index","findIndex","item","setItem","imagebackground","colorbackground","colorserachbackground","colortextpri","colortextacc","colorborder","sindex","cycle","key","keyCode","which","text","replaceAll","option","substr","indexOf","subtext","search","preventDefault","stopPropagation","streamers","streamer","updateLabel","window","location","validURL","containsProtocol","str","pattern","RegExp","test","String","prototype","replacement","split","join","checked","setDisplayedItems"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { useState, useEffect } from 'react';\nimport ReactDOM from 'react-dom';\n//import { unstable_createPortal } from 'react-dom';\nimport './index.css';\n\nconst setValueFromLocalStorage = property => {\n let value = localStorage.getItem(property);\n setValue(property, value);\n};\nconst setValue = (property, value) => {\n if (value) {\n document.documentElement.style.setProperty(`--${property}`, value);\n\n const input = document.querySelector(`#${property}`);\n if (input) {\n value = value.replace('px', '');\n input.value = value;\n }\n }\n};\n\nfunction Homepage() {\n setTheme();\n return (\n \n \n \n
\n \n \n
\n \n \n \n
\n \n \n
\n \n \n
\n \n );\n}\n\nfunction Search() {\n return (\n \n )\n}\n\nfunction Header(props) {\n return (\n \n );\n}\n\nfunction Applications() {\n let appList = getApps();\n var items = [];\n for (var i = 0; i < appList.apps.length; i++) {\n var safe = appList.apps[i].NSFW;\n var NSFWEnabled = localStorage.getItem(\"contenttype\");\n console.log(safe);\n if (safe === \"SAFE\") {\n items.push(\n \n );\n } else if (safe === \"NSFW\" && NSFWEnabled) {\n items.push(\n \n );\n } else {\n console.log(NSFWEnabled);\n }\n \n }\n return (\n \n Applications
\n \n {items}\n
\n \n );\n}\n\nfunction App(props) {\n \n let classNameType = props.NSFW + \"-content\";\n let hrefUrl = \"https://\" + props.url;\n let iconName = \"mdi-\" + props.icon;\n return (\n \n );\n}\n\nfunction Bookmarks() {\n let bookmarkList = getLinks();\n var items = [];\n for (var i = 0; i < bookmarkList.bookmarks.length; i++) {\n items.push(\n \n );\n }\n return (\n \n Bookmarks
\n \n {items}\n
\n \n );\n}\n\nfunction LinkGroups(props) {\n var items = [];\n for (var i = 0; i < props.links.length; i++) {\n items.push(\n \n );\n }\n return (\n \n
{props.category}
\n {items}\n \n );\n}\n\nfunction LinkItem(props) {\n return (\n \n );\n}\n\nfunction ModalMenu() {\n var providers = getProviders();\n var items = [];\n for (var i = 0; i < providers.providers.length; i++) {\n items.push(\n \n );\n }\n return (\n \n \n \n\n
Color themes
\n\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n\n\n
Search options
\n
\n \n \n \n | Website | \n Prefix | \n
\n {items}\n \n
\n \n\n \n
\n \n );\n}\n\nfunction Provider(props) {\n return (\n \n | {props.provider.name} | \n {props.provider.prefix} | \n
\n );\n}\n\nfunction ModalInit() {\n return (\n \n );\n}\n\nReactDOM.render(\n ,\n document.getElementById('root')\n);\n\n//Functions below this line are for calculating data for\n//other functions\n\nfunction date() {\n let currentDate = new Date();\n let dateOptions = {\n weekday: \"long\",\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\"\n };\n let date = currentDate.toLocaleDateString(\"en-GB\", dateOptions);\n return date;\n}\nfunction fixDigits(k) {\n if (k < 10) {\n return \"0\" + k;\n }\n else {\n return k;\n }\n}\nfunction greet() {\n let currentTime = new Date();\n let greet = Math.floor(currentTime.getHours() / 6);\n let easterEggChance = Math.floor(Math.random() * 100);\n let greetings = require('./messages.json');\n let timeBased = [];\n let easterEggs = [];\n for (var i = 0; i < greetings.messages.length; i++) {\n if (greetings.messages[i].easteregg === \"FALSE\") {\n timeBased = timeBased.concat(greetings.messages[i]);\n } else {\n easterEggs = easterEggs.concat(greetings.messages[i]);\n }\n }\n if (easterEggChance > 10) {\n return timeBased[greet].message;\n } else {\n let easterEggText = Math.floor(Math.random() * easterEggs.length);\n return easterEggs[easterEggText].message;\n }\n}\nfunction Clock() {\n const [date, setDate] = useState(new Date());\n\n function refreshClock() {\n setDate(new Date());\n }\n useEffect(() => {\n const timerId = setInterval(refreshClock, 1000);\n return function cleanup() {\n clearInterval(timerId);\n };\n }, []);\n\n var hour = date.getHours();\n var minutes = date.getMinutes();\n //var seconds = date.getSeconds();\n var midday = \"AM\";\n midday = (hour >= 12) ? \"PM\" : \"AM\";\n hour = (hour === 0) ? 12 : ((hour > 12) ? (hour - 12) : hour);\n minutes = fixDigits(minutes);\n //seconds = fixDigits(seconds);\n let time = hour + \":\" + minutes + \" \" + midday;\n\n return (\n {time}
\n\n );\n}\nfunction getApps() {\n let applications = require('./apps.json');\n return applications;\n}\nfunction getLinks() {\n let links = require('./links.json');\n return links;\n}\nfunction getProviders() {\n let providers = require('./providers.json');\n return providers;\n}\nfunction getThemes() {\n let themes = require('./themes.json');\n return themes;\n}\n\nfunction updateTheme(e) {\n var themes = getThemes();\n var themeName = e.target.innerHTML.toLowerCase();\n var index = themes.themes.findIndex(function(item, i){\n return item.name === themeName\n });\n console.log(themes.themes[index]);\n localStorage.setItem(\"image-background\", themes.themes[index].imagebackground);\n localStorage.setItem(\"color-background\", themes.themes[index].colorbackground);\n localStorage.setItem(\"color-search-background\", themes.themes[index].colorserachbackground);\n localStorage.setItem(\"color-text-pri\",themes.themes[index].colortextpri);\n localStorage.setItem(\"color-text-acc\", themes.themes[index].colortextacc);\n localStorage.setItem(\"color-border\", themes.themes[index].colorborder);\n \n //document.documentElement.style.setProperty(prop, `var(--${themeName}${prop.substring(10)})`);\n setTheme();\n}\n\nfunction setTheme() {\n setValueFromLocalStorage('image-background');\n setValueFromLocalStorage('color-background');\n setValueFromLocalStorage('color-search-background');\n setValueFromLocalStorage('color-text-pri');\n setValueFromLocalStorage('color-text-acc');\n setValueFromLocalStorage('color-border');\n setValueFromLocalStorage('content-display');\n}\n\nfunction handleKeyPress(e) {\n var sindex = 0;\n var cycle = false;\n var key = e.keyCode || e.which;\n var text = e.target.value.replaceAll(\"+\", \"%2B\");\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n if (key == 13) { // Search functions\n search(text);\n }\n if (key == 9) { // Tab Completion Functions\n e.preventDefault();\n e.stopPropagation();\n if (text[0] === ';') {\n switch (option) {\n case 't':\n var streamers = ['admiralbahroo', 'moonmoon_ow', 'witwix'];\n if (!subtext || cycle) {\n cycle = true;\n if (sindex > streamers.length - 1) sindex = 0;\n document.getElementById(\"keywords\").value = ';t ' + streamers[sindex++];\n return;\n }\n for (var streamer of streamers) {\n if (subtext === streamer.substr(0, subtext.length)) {\n document.getElementById(\"keywords\").value = ';t ' + streamer;\n return;\n }\n }\n break;\n }\n }\n }\n if(key == 32){ //Space to go to search\nupdateLabel(text);\n }\n sindex = 0;\n cycle = false;\n updateLabel(text);\n}\n\nfunction updateLabel(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n if (text[0] === '/') {\n// if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n document.getElementById(\"searchType\").innerHTML = \"Allmusic search\";\n break;\n case \"d\":\n document.getElementById(\"searchType\").innerHTML = \"Duck Duck Go search\";\n break;\n case \"di\":\n document.getElementById(\"searchType\").innerHTML = \"Discogs search\";\n break;\n case \"i\":\n document.getElementById(\"searchType\").innerHTML = \"IMDB search\";\n break;\n case \"m\":\n document.getElementById(\"searchType\").innerHTML = \"TheMovieDB search\";\n break;\n case \"r\":\n document.getElementById(\"searchType\").innerHTML = \"Reddit search\";\n break;\n case \"q\":\n document.getElementById(\"searchType\").innerHTML = \"Qwant search\";\n break;\n case \"so\":\n document.getElementById(\"searchType\").innerHTML = \"Soundcloud search\";\n break;\n case \"s\":\n document.getElementById(\"searchType\").innerHTML = \"Spotify search\";\n break;\n case \"tv\":\n document.getElementById(\"searchType\").innerHTML = \"TheTVDB search\";\n break;\n case \"t\":\n document.getElementById(\"searchType\").innerHTML = \"Trakt search\";\n break;\n case \"y\":\n document.getElementById(\"searchType\").innerHTML = \"YouTube search\";\n break;\n case \"w\":\n document.getElementById(\"searchType\").innerHTML = \"Wikipedia search\";\n break;\n case \"p\":\n document.getElementById(\"searchType\").innerHTML = \"Plex search\";\n break;\n case \"rt\":\n document.getElementById(\"searchType\").innerHTML = \"Rotten Tomatoes search\";\n break;\n default:\n document.getElementById(\"searchType\").innerHTML = \"Invalid search\";\n break;\n }\n}else {\n document.getElementById(\"searchType\").innerHTML = \"Google search\";\n }\n}\n\nfunction search(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n if (text[0] === '/') {\n if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n window.location = \"https://www.allmusic.com/search/all/\" + subtext;\n break;\n case \"d\":\n window.location = \"https://duckduckgo.com/?q=\" + subtext;\n break;\n case \"di\":\n window.location = \"https://www.discogs.com/search/?q=\" + subtext;\n break;\n case \"i\":\n window.location = \"https://www.imdb.com/find?q=\" + subtext;\n break;\n case \"m\":\n window.location = \"https://www.themoviedb.org/search?query=\" + subtext;\n break;\n case \"r\":\n window.location = \"https://www.reddit.com/search?q=\" + subtext;\n break;\n case \"q\":\n window.location = \"https://www.qwant.com/?q=\" + subtext;\n break;\n case \"so\":\n window.location = \"https://soundcloud.com/search?q=\" + subtext;\n break;\n case \"s\":\n window.location = \"https://open.spotify.com/search/results/\" + subtext;\n break;\n case \"t\":\n window.location = \"https://trakt.tv/search?query=\" + subtext;\n break;\n case \"tv\":\n window.location = \"https://www.thetvdb.com/search?query=\" + subtext;\n break;\n case \"y\":\n window.location = \"https://www.youtube.com/results?search_query=\" + subtext;\n break;\n case \"w\":\n window.location = \"https://en.wikipedia.org/w/index.php?search=\" + subtext;\n break;\n case \"p\":\n window.location = \"https://app.plex.tv/desktop/#!/search?query=\" + subtext;\n break;\n case \"rt\":\n window.location = \"https://www.rottentomatoes.com/search?search=\" + subtext;\n break;\n }\n } else {\n var option = text.substr(1);\n switch (option) {\n case \"d\":\n window.location = \"https://www.duckduckgo.com\";\n break;\n case \"y\":\n window.location = \"https://www.youtube.com\";\n break;\n case \"r\":\n window.location = \"https://reddit.com\";\n break;\n case \"s\":\n window.location = \"https://open.spotify.com\";\n break;\n }\n }\n } else if (validURL(text)) {\n if (containsProtocol(text))\n window.location = text;\n else\n window.location = \"https://\" + text;\n } else {\n window.location = \"https://www.google.com/search?q=\" + text;\n }\n}\n\n// Source: https://stackoverflow.com/questions/5717093/check-if-a-javascript-string-is-a-url\nfunction validURL(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/)?' + // protocol\n '((([a-z\\\\d]([a-z\\\\d-]*[a-z\\\\d])*)\\\\.)+[a-z]{2,}|' + // domain name\n '((\\\\d{1,3}\\\\.){3}\\\\d{1,3}))' + // OR ip (v4) address\n '(\\\\:\\\\d+)?(\\\\/[-a-z\\\\d%_.~+]*)*' + // port and path\n '(\\\\?[;&a-z\\\\d%_.~+=-]*)?' + // query string\n '(\\\\#[-a-z\\\\d_]*)?$', 'i'); // fragment locator\n return !!pattern.test(str);\n}\n\nfunction containsProtocol(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/){1}.*', 'i');\n return !!pattern.test(str);\n}\n\nString.prototype.replaceAll = function(search, replacement) {\n var target = this;\n return target.split(search).join(replacement);\n};\n\nfunction udpateDisplayedItems(e) {\n localStorage.setItem('contenttype', e.target.checked);\n if (e.target.checked) {\n localStorage.setItem('content-display', 'none');\n } else {\n localStorage.setItem('content-display', 'block');\n }\n setDisplayedItems();\n}\nfunction setDisplayedItems() {\n setValueFromLocalStorage('contenttype');\n setValueFromLocalStorage('content-display');\n}"]},"metadata":{},"sourceType":"module"}
\ No newline at end of file
diff --git a/node_modules/.cache/babel-loader/fd33df3bbfb6567a90f79872c45b0ecd.json b/node_modules/.cache/babel-loader/fd33df3bbfb6567a90f79872c45b0ecd.json
new file mode 100644
index 00000000..7cd97bf1
--- /dev/null
+++ b/node_modules/.cache/babel-loader/fd33df3bbfb6567a90f79872c45b0ecd.json
@@ -0,0 +1 @@
+{"ast":null,"code":"var _jsxFileName = \"/home/seanedmunds/dev/home-page/src/index.js\",\n _s = $RefreshSig$();\n\nimport React from 'react';\nimport { useState, useEffect } from 'react';\nimport ReactDOM from 'react-dom';\nimport './index.css';\nimport { jsxDEV as _jsxDEV } from \"react/jsx-dev-runtime\";\n\nconst setValueFromLocalStorage = property => {\n let value = localStorage.getItem(property);\n setValue(property, value);\n};\n\nconst setValue = (property, value) => {\n if (value) {\n document.documentElement.style.setProperty(`--${property}`, value);\n const input = document.querySelector(`#${property}`);\n\n if (input) {\n value = value.replace('px', '');\n input.value = value;\n }\n }\n};\n\nfunction Homepage() {\n setTheme();\n return /*#__PURE__*/_jsxDEV(\"main\", {\n id: \"container\",\n className: \"fade\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Search, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 28,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 27,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Header, {\n date: date(),\n greet: greet()\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 31,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 30,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Applications, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 37,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 36,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Bookmarks, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 40,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 39,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(ModalMenu, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 43,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 42,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(ModalInit, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 46,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 45,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 26,\n columnNumber: 5\n }, this);\n}\n\n_c = Homepage;\n\nfunction Search() {\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"search\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"abackground\",\n children: [/*#__PURE__*/_jsxDEV(\"input\", {\n name: \"keywords\",\n type: \"text\",\n className: \"keyword\",\n id: \"keywords\",\n size: \"50\",\n spellCheck: \"true\",\n placeholder: \"\"\n /*onFocus={this.placeholder = \"\"} onBlur={this.placeholder = ''}*/\n ,\n autoComplete: \"off\",\n autoFocus: true,\n onKeyUp: handleKeyPress\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 56,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n id: \"searchType\",\n className: \"Input-label\",\n children: \"Google search\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 57,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 55,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 54,\n columnNumber: 5\n }, this);\n}\n\n_c2 = Search;\n\nfunction Header(props) {\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"header\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n id: \"greeting_block\",\n children: /*#__PURE__*/_jsxDEV(\"h1\", {\n id: \"header_greet\",\n children: props.greet\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 67,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 66,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"date_block\",\n children: [/*#__PURE__*/_jsxDEV(\"h2\", {\n id: \"header_date\",\n children: props.date\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 70,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(Clock, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 71,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 69,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 65,\n columnNumber: 5\n }, this);\n}\n\n_c3 = Header;\n\nfunction Applications() {\n let appList = getApps();\n var items = [];\n\n for (var i = 0; i < appList.apps.length; i++) {\n var safe = appList.apps[i].NSFW;\n var NSFWEnabled = localStorage.getItem(\"contenttype\");\n\n if (safe === \"SAFE\") {\n items.push( /*#__PURE__*/_jsxDEV(App, {\n name: appList.apps[i].name,\n url: appList.apps[i].url,\n icon: appList.apps[i].icon,\n NSFW: appList.apps[i].NSFW\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 85,\n columnNumber: 9\n }, this));\n } else if (safe === \"NSFW\" && NSFWEnabled) {\n items.push( /*#__PURE__*/_jsxDEV(App, {\n name: appList.apps[i].name,\n url: appList.apps[i].url,\n icon: appList.apps[i].icon,\n NSFW: appList.apps[i].NSFW\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 95,\n columnNumber: 9\n }, this));\n } else {}\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"apps\",\n children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n children: \"Applications\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 110,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"apps_loop\",\n children: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 111,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 109,\n columnNumber: 5\n }, this);\n}\n\n_c4 = Applications;\n\nfunction App(props) {\n let classNameType = props.NSFW + \"-content\";\n let hrefUrl = \"https://\" + props.url;\n let iconName = \"mdi-\" + props.icon;\n return /*#__PURE__*/_jsxDEV(\"div\", {\n className: classNameType,\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: hrefUrl,\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_item\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_icon\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify icon\",\n \"data-icon\": iconName\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 128,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 127,\n columnNumber: 13\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_text\",\n children: [/*#__PURE__*/_jsxDEV(\"span\", {\n id: \"app-name\",\n children: props.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 131,\n columnNumber: 15\n }, this), /*#__PURE__*/_jsxDEV(\"span\", {\n id: \"app-address\",\n children: props.url\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 132,\n columnNumber: 15\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 130,\n columnNumber: 13\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 126,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 125,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 124,\n columnNumber: 7\n }, this);\n}\n\n_c5 = App;\n\nfunction Bookmarks() {\n let bookmarkList = getLinks();\n var items = [];\n\n for (var i = 0; i < bookmarkList.bookmarks.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(LinkGroups, {\n category: bookmarkList.bookmarks[i].category,\n links: bookmarkList.bookmarks[i].links\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 145,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"links\",\n children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n children: \"Bookmarks\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 154,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"links_loop\",\n children: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 155,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 153,\n columnNumber: 5\n }, this);\n}\n\n_c6 = Bookmarks;\n\nfunction LinkGroups(props) {\n var items = [];\n\n for (var i = 0; i < props.links.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(LinkItem, {\n link: props.links[i]\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 166,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"links_item\",\n children: [/*#__PURE__*/_jsxDEV(\"h4\", {\n children: props.category\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 174,\n columnNumber: 7\n }, this), items]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 173,\n columnNumber: 5\n }, this);\n}\n\n_c7 = LinkGroups;\n\nfunction LinkItem(props) {\n return /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: props.link.url,\n className: \"theme_color-border theme_text-select\",\n children: props.link.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 183,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 182,\n columnNumber: 5\n }, this);\n}\n\n_c8 = LinkItem;\n\nfunction ModalMenu() {\n var providers = getProviders();\n var items = [];\n\n for (var i = 0; i < providers.providers.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(Provider, {\n provider: providers.providers[i]\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 193,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"modal\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n children: [/*#__PURE__*/_jsxDEV(\"header\", {\n id: \"modal-header\",\n children: [/*#__PURE__*/_jsxDEV(\"h1\", {\n children: \"Options\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 203,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n href: \"#\",\n title: \"Close\",\n className: \"modal-close\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-close\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 205,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 204,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 202,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"h2\", {\n children: \"Color themes\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 209,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"modal-theme\",\n children: [/*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"blackboard\",\n className: \"theme-button theme-blackboard\",\n onClick: updateTheme,\n children: \"Blackboard\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 212,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"gazette\",\n className: \"theme-button theme-gazette\",\n onClick: updateTheme,\n children: \"Gazette\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 213,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"espresso\",\n className: \"theme-button theme-espresso\",\n onClick: updateTheme,\n children: \"Espresso\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 214,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cab\",\n className: \"theme-button theme-cab\",\n onClick: updateTheme,\n children: \"Cab\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 215,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cloud\",\n className: \"theme-button theme-cloud\",\n onClick: updateTheme,\n children: \"Cloud\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 216,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"lime\",\n className: \"theme-button theme-lime\",\n onClick: updateTheme,\n children: \"Lime\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 217,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"passion\",\n className: \"theme-button theme-passion\",\n onClick: updateTheme,\n children: \"Passion\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 218,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"blues\",\n className: \"theme-button theme-blues\",\n onClick: updateTheme,\n children: \"Blues\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 219,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"chalk\",\n className: \"theme-button theme-chalk\",\n onClick: updateTheme,\n children: \"Chalk\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 220,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"tron\",\n className: \"theme-button theme-tron\",\n onClick: updateTheme,\n children: \"Tron\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 221,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"paper\",\n className: \"theme-button theme-paper\",\n onClick: updateTheme,\n children: \"Paper\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 222,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cyberpunk\",\n className: \"theme-button theme-cyberpunk\",\n onClick: updateTheme,\n children: \"Cyberpunk\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 223,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"quadra\",\n className: \"theme-button theme-panam\",\n onClick: updateTheme,\n children: \"Quadra\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 224,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"panam\",\n className: \"theme-button theme-panam\",\n onClick: updateTheme,\n children: \"Panam\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 225,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"touch\",\n className: \"theme-button theme-touch\",\n onClick: updateTheme,\n children: \"Touch\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 226,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"peek\",\n className: \"theme-button theme-peek\",\n onClick: updateTheme,\n children: \"Peek\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 227,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 211,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"h2\", {\n children: \"Search options\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 231,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"providers\",\n children: /*#__PURE__*/_jsxDEV(\"table\", {\n children: /*#__PURE__*/_jsxDEV(\"tbody\", {\n children: [/*#__PURE__*/_jsxDEV(\"tr\", {\n children: [/*#__PURE__*/_jsxDEV(\"th\", {\n children: \"Website\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 236,\n columnNumber: 19\n }, this), /*#__PURE__*/_jsxDEV(\"th\", {\n children: \"Prefix\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 237,\n columnNumber: 19\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 235,\n columnNumber: 17\n }, this), items]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 234,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 233,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 232,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"header\", {\n id: \"modal-footer\",\n children: [/*#__PURE__*/_jsxDEV(\"a\", {\n href: \"https://github.com/jeroenpardon/\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-github-box\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 245,\n columnNumber: 54\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 245,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n href: \"https://materialdesignicons.com/\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-material-design\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 246,\n columnNumber: 54\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 246,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(HideButton, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 247,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 244,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 201,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 200,\n columnNumber: 5\n }, this);\n}\n\n_c9 = ModalMenu;\n\nfunction HideButton() {\n return /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"sneaky\",\n children: [/*#__PURE__*/_jsxDEV(\"input\", {\n type: \"checkbox\",\n id: \"contenttype\",\n onClick: udpateDisplayedItems\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 257,\n columnNumber: 29\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n for: \"contenttype\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-domino-mask\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 258,\n columnNumber: 30\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 258,\n columnNumber: 5\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 257,\n columnNumber: 5\n }, this);\n}\n\n_c10 = HideButton;\n\nfunction Provider(props) {\n return /*#__PURE__*/_jsxDEV(\"tr\", {\n children: [/*#__PURE__*/_jsxDEV(\"td\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: props.provider.url,\n children: props.provider.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 265,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 265,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"td\", {\n children: props.provider.prefix\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 266,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 264,\n columnNumber: 5\n }, this);\n}\n\n_c11 = Provider;\n\nfunction ModalInit() {\n setDisplayedItems();\n return /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"modal_init\",\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n className: \"btn\",\n href: \"#modal\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify icon\",\n \"data-icon\": \"mdi-xbox-controller-menu\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 276,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 275,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 274,\n columnNumber: 5\n }, this);\n}\n\n_c12 = ModalInit;\nReactDOM.render( /*#__PURE__*/_jsxDEV(Homepage, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 283,\n columnNumber: 3\n}, this), document.getElementById('root')); //Functions below this line are for calculating data for\n//other functions\n\nfunction date() {\n let currentDate = new Date();\n let dateOptions = {\n weekday: \"long\",\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\"\n };\n let date = currentDate.toLocaleDateString(\"en-GB\", dateOptions);\n return date;\n}\n\nfunction fixDigits(k) {\n if (k < 10) {\n return \"0\" + k;\n } else {\n return k;\n }\n}\n\nfunction greet() {\n let currentTime = new Date();\n let greet = Math.floor(currentTime.getHours() / 6);\n let easterEggChance = Math.floor(Math.random() * 100);\n\n let greetings = require('./messages.json');\n\n let timeBased = [];\n let easterEggs = [];\n\n for (var i = 0; i < greetings.messages.length; i++) {\n if (greetings.messages[i].easteregg === \"FALSE\") {\n timeBased = timeBased.concat(greetings.messages[i]);\n } else {\n easterEggs = easterEggs.concat(greetings.messages[i]);\n }\n }\n\n if (easterEggChance > 10) {\n return timeBased[greet].message;\n } else {\n let easterEggText = Math.floor(Math.random() * easterEggs.length);\n return easterEggs[easterEggText].message;\n }\n}\n\nfunction Clock() {\n _s();\n\n const [date, setDate] = useState(new Date());\n\n function refreshClock() {\n setDate(new Date());\n }\n\n useEffect(() => {\n const timerId = setInterval(refreshClock, 1000);\n return function cleanup() {\n clearInterval(timerId);\n };\n }, []);\n var hour = date.getHours();\n var minutes = date.getMinutes(); //var seconds = date.getSeconds();\n\n var midday = \"AM\";\n midday = hour >= 12 ? \"PM\" : \"AM\";\n hour = hour === 0 ? 12 : hour > 12 ? hour - 12 : hour;\n minutes = fixDigits(minutes); //seconds = fixDigits(seconds);\n\n let time = hour + \":\" + minutes + \" \" + midday;\n return /*#__PURE__*/_jsxDEV(\"h2\", {\n id: \"clock\",\n children: time\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 354,\n columnNumber: 5\n }, this);\n}\n\n_s(Clock, \"Gqi45WOZhU2c0BLYX0HoJeiR0fk=\");\n\n_c13 = Clock;\n\nfunction getApps() {\n let applications = require('./apps.json');\n\n return applications;\n}\n\nfunction getLinks() {\n let links = require('./links.json');\n\n return links;\n}\n\nfunction getProviders() {\n let providers = require('./providers.json');\n\n return providers;\n}\n\nfunction getThemes() {\n let themes = require('./themes.json');\n\n return themes;\n}\n\nfunction updateTheme(e) {\n var themes = getThemes();\n var themeName = e.target.innerHTML.toLowerCase();\n var index = themes.themes.findIndex(function (item, i) {\n return item.name === themeName;\n });\n localStorage.setItem(\"image-background\", themes.themes[index].imagebackground);\n localStorage.setItem(\"color-background\", themes.themes[index].colorbackground);\n localStorage.setItem(\"color-search-background\", themes.themes[index].colorserachbackground);\n localStorage.setItem(\"color-text-pri\", themes.themes[index].colortextpri);\n localStorage.setItem(\"color-text-acc\", themes.themes[index].colortextacc);\n localStorage.setItem(\"color-border\", themes.themes[index].colorborder); //document.documentElement.style.setProperty(prop, `var(--${themeName}${prop.substring(10)})`);\n\n setTheme();\n}\n\nfunction setTheme() {\n setValueFromLocalStorage('image-background');\n setValueFromLocalStorage('color-background');\n setValueFromLocalStorage('color-search-background');\n setValueFromLocalStorage('color-text-pri');\n setValueFromLocalStorage('color-text-acc');\n setValueFromLocalStorage('color-border');\n setValueFromLocalStorage('content-display');\n}\n\nfunction handleKeyPress(e) {\n var sindex = 0;\n var cycle = false;\n var key = e.keyCode || e.which;\n var text = e.target.value.replaceAll(\"+\", \"%2B\");\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n\n if (key == 13) {\n // Search functions\n search(text);\n }\n\n if (key == 9) {\n // Tab Completion Functions\n e.preventDefault();\n e.stopPropagation();\n\n if (text[0] === ';') {\n switch (option) {\n case 't':\n var streamers = ['admiralbahroo', 'moonmoon_ow', 'witwix'];\n\n if (!subtext || cycle) {\n cycle = true;\n if (sindex > streamers.length - 1) sindex = 0;\n document.getElementById(\"keywords\").value = ';t ' + streamers[sindex++];\n return;\n }\n\n for (var streamer of streamers) {\n if (subtext === streamer.substr(0, subtext.length)) {\n document.getElementById(\"keywords\").value = ';t ' + streamer;\n return;\n }\n }\n\n break;\n }\n }\n }\n\n if (key == 32) {\n //Space to go to search\n updateLabel(text);\n }\n\n sindex = 0;\n cycle = false;\n updateLabel(text);\n}\n\nfunction updateLabel(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n\n if (text[0] === '/') {\n // if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n document.getElementById(\"searchType\").innerHTML = \"Allmusic search\";\n break;\n\n case \"d\":\n document.getElementById(\"searchType\").innerHTML = \"Duck Duck Go search\";\n break;\n\n case \"di\":\n document.getElementById(\"searchType\").innerHTML = \"Discogs search\";\n break;\n\n case \"i\":\n document.getElementById(\"searchType\").innerHTML = \"IMDB search\";\n break;\n\n case \"m\":\n document.getElementById(\"searchType\").innerHTML = \"TheMovieDB search\";\n break;\n\n case \"r\":\n document.getElementById(\"searchType\").innerHTML = \"Reddit search\";\n break;\n\n case \"q\":\n document.getElementById(\"searchType\").innerHTML = \"Qwant search\";\n break;\n\n case \"so\":\n document.getElementById(\"searchType\").innerHTML = \"Soundcloud search\";\n break;\n\n case \"s\":\n document.getElementById(\"searchType\").innerHTML = \"Spotify search\";\n break;\n\n case \"tv\":\n document.getElementById(\"searchType\").innerHTML = \"TheTVDB search\";\n break;\n\n case \"t\":\n document.getElementById(\"searchType\").innerHTML = \"Trakt search\";\n break;\n\n case \"y\":\n document.getElementById(\"searchType\").innerHTML = \"YouTube search\";\n break;\n\n case \"w\":\n document.getElementById(\"searchType\").innerHTML = \"Wikipedia search\";\n break;\n\n case \"p\":\n document.getElementById(\"searchType\").innerHTML = \"Plex search\";\n break;\n\n case \"rt\":\n document.getElementById(\"searchType\").innerHTML = \"Rotten Tomatoes search\";\n break;\n\n default:\n document.getElementById(\"searchType\").innerHTML = \"Invalid search\";\n break;\n }\n } else {\n document.getElementById(\"searchType\").innerHTML = \"Google search\";\n }\n}\n\nfunction search(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n\n if (text[0] === '/') {\n if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n window.location = \"https://www.allmusic.com/search/all/\" + subtext;\n break;\n\n case \"d\":\n window.location = \"https://duckduckgo.com/?q=\" + subtext;\n break;\n\n case \"di\":\n window.location = \"https://www.discogs.com/search/?q=\" + subtext;\n break;\n\n case \"i\":\n window.location = \"https://www.imdb.com/find?q=\" + subtext;\n break;\n\n case \"m\":\n window.location = \"https://www.themoviedb.org/search?query=\" + subtext;\n break;\n\n case \"r\":\n window.location = \"https://www.reddit.com/search?q=\" + subtext;\n break;\n\n case \"q\":\n window.location = \"https://www.qwant.com/?q=\" + subtext;\n break;\n\n case \"so\":\n window.location = \"https://soundcloud.com/search?q=\" + subtext;\n break;\n\n case \"s\":\n window.location = \"https://open.spotify.com/search/results/\" + subtext;\n break;\n\n case \"t\":\n window.location = \"https://trakt.tv/search?query=\" + subtext;\n break;\n\n case \"tv\":\n window.location = \"https://www.thetvdb.com/search?query=\" + subtext;\n break;\n\n case \"y\":\n window.location = \"https://www.youtube.com/results?search_query=\" + subtext;\n break;\n\n case \"w\":\n window.location = \"https://en.wikipedia.org/w/index.php?search=\" + subtext;\n break;\n\n case \"p\":\n window.location = \"https://app.plex.tv/desktop/#!/search?query=\" + subtext;\n break;\n\n case \"rt\":\n window.location = \"https://www.rottentomatoes.com/search?search=\" + subtext;\n break;\n }\n } else {\n var option = text.substr(1);\n\n switch (option) {\n case \"d\":\n window.location = \"https://www.duckduckgo.com\";\n break;\n\n case \"y\":\n window.location = \"https://www.youtube.com\";\n break;\n\n case \"r\":\n window.location = \"https://reddit.com\";\n break;\n\n case \"s\":\n window.location = \"https://open.spotify.com\";\n break;\n }\n }\n } else if (validURL(text)) {\n if (containsProtocol(text)) window.location = text;else window.location = \"https://\" + text;\n } else {\n window.location = \"https://www.google.com/search?q=\" + text;\n }\n}\n\nfunction validURL(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/)?' + // protocol\n '((([a-z\\\\d]([a-z\\\\d-]*[a-z\\\\d])*)\\\\.)+[a-z]{2,}|' + // domain name\n '((\\\\d{1,3}\\\\.){3}\\\\d{1,3}))' + // OR ip (v4) address\n '(\\\\:\\\\d+)?(\\\\/[-a-z\\\\d%_.~+]*)*' + // port and path\n '(\\\\?[;&a-z\\\\d%_.~+=-]*)?' + // query string\n '(\\\\#[-a-z\\\\d_]*)?$', 'i'); // fragment locator\n\n return !!pattern.test(str);\n}\n\nfunction containsProtocol(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/){1}.*', 'i');\n return !!pattern.test(str);\n}\n\nString.prototype.replaceAll = function (search, replacement) {\n var target = this;\n return target.split(search).join(replacement);\n};\n\nfunction udpateDisplayedItems(e) {\n console.log(e);\n localStorage.setItem('contenttype', e.target.checked);\n\n if (e.target.checked) {\n localStorage.setItem('content-display', 'none');\n } else {\n localStorage.setItem('content-display', 'block');\n }\n\n setDisplayedItems();\n}\n\nfunction setDisplayedItems() {\n setValueFromLocalStorage('contenttype');\n setValueFromLocalStorage('content-display');\n}\n\nvar _c, _c2, _c3, _c4, _c5, _c6, _c7, _c8, _c9, _c10, _c11, _c12, _c13;\n\n$RefreshReg$(_c, \"Homepage\");\n$RefreshReg$(_c2, \"Search\");\n$RefreshReg$(_c3, \"Header\");\n$RefreshReg$(_c4, \"Applications\");\n$RefreshReg$(_c5, \"App\");\n$RefreshReg$(_c6, \"Bookmarks\");\n$RefreshReg$(_c7, \"LinkGroups\");\n$RefreshReg$(_c8, \"LinkItem\");\n$RefreshReg$(_c9, \"ModalMenu\");\n$RefreshReg$(_c10, \"HideButton\");\n$RefreshReg$(_c11, \"Provider\");\n$RefreshReg$(_c12, \"ModalInit\");\n$RefreshReg$(_c13, \"Clock\");","map":{"version":3,"sources":["/home/seanedmunds/dev/home-page/src/index.js"],"names":["React","useState","useEffect","ReactDOM","setValueFromLocalStorage","property","value","localStorage","getItem","setValue","document","documentElement","style","setProperty","input","querySelector","replace","Homepage","setTheme","date","greet","Search","handleKeyPress","Header","props","Applications","appList","getApps","items","i","apps","length","safe","NSFW","NSFWEnabled","push","name","url","icon","App","classNameType","hrefUrl","iconName","Bookmarks","bookmarkList","getLinks","bookmarks","category","links","LinkGroups","LinkItem","link","ModalMenu","providers","getProviders","updateTheme","HideButton","udpateDisplayedItems","Provider","provider","prefix","ModalInit","setDisplayedItems","render","getElementById","currentDate","Date","dateOptions","weekday","year","month","day","toLocaleDateString","fixDigits","k","currentTime","Math","floor","getHours","easterEggChance","random","greetings","require","timeBased","easterEggs","messages","easteregg","concat","message","easterEggText","Clock","setDate","refreshClock","timerId","setInterval","cleanup","clearInterval","hour","minutes","getMinutes","midday","time","applications","getThemes","themes","e","themeName","target","innerHTML","toLowerCase","index","findIndex","item","setItem","imagebackground","colorbackground","colorserachbackground","colortextpri","colortextacc","colorborder","sindex","cycle","key","keyCode","which","text","replaceAll","option","substr","indexOf","subtext","search","preventDefault","stopPropagation","streamers","streamer","updateLabel","window","location","validURL","containsProtocol","str","pattern","RegExp","test","String","prototype","replacement","split","join","console","log","checked"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { useState, useEffect } from 'react';\nimport ReactDOM from 'react-dom';\nimport './index.css';\n\nconst setValueFromLocalStorage = property => {\n let value = localStorage.getItem(property);\n setValue(property, value);\n};\nconst setValue = (property, value) => {\n if (value) {\n document.documentElement.style.setProperty(`--${property}`, value);\n\n const input = document.querySelector(`#${property}`);\n if (input) {\n value = value.replace('px', '');\n input.value = value;\n }\n }\n};\n\nfunction Homepage() {\n setTheme();\n \n return (\n \n \n \n
\n \n \n
\n \n \n \n
\n \n \n
\n \n \n
\n \n );\n}\n\nfunction Search() {\n return (\n \n )\n}\n\nfunction Header(props) {\n return (\n \n );\n}\n\nfunction Applications() {\n let appList = getApps();\n var items = [];\n for (var i = 0; i < appList.apps.length; i++) {\n var safe = appList.apps[i].NSFW;\n var NSFWEnabled = localStorage.getItem(\"contenttype\");\n if (safe === \"SAFE\") {\n items.push(\n \n );\n } else if (safe === \"NSFW\" && NSFWEnabled) {\n items.push(\n \n );\n } else {\n \n }\n \n }\n return (\n \n Applications
\n \n {items}\n
\n \n );\n}\n\nfunction App(props) {\n \n let classNameType = props.NSFW + \"-content\";\n let hrefUrl = \"https://\" + props.url;\n let iconName = \"mdi-\" + props.icon;\n return (\n \n );\n}\n\nfunction Bookmarks() {\n let bookmarkList = getLinks();\n var items = [];\n for (var i = 0; i < bookmarkList.bookmarks.length; i++) {\n items.push(\n \n );\n }\n return (\n \n Bookmarks
\n \n {items}\n
\n \n );\n}\n\nfunction LinkGroups(props) {\n var items = [];\n for (var i = 0; i < props.links.length; i++) {\n items.push(\n \n );\n }\n return (\n \n
{props.category}
\n {items}\n \n );\n}\n\nfunction LinkItem(props) {\n return (\n \n );\n}\n\nfunction ModalMenu() {\n var providers = getProviders();\n var items = [];\n for (var i = 0; i < providers.providers.length; i++) {\n items.push(\n \n );\n }\n return (\n \n \n \n\n
Color themes
\n\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n\n\n
Search options
\n
\n \n \n \n | Website | \n Prefix | \n
\n {items}\n \n
\n \n\n \n
\n \n );\n}\n\nfunction HideButton() {\n \n return (\n \n
\n );\n}\n\nfunction Provider(props) {\n return (\n \n | {props.provider.name} | \n {props.provider.prefix} | \n
\n );\n}\n\nfunction ModalInit() {\n setDisplayedItems();\n return (\n \n );\n}\n\nReactDOM.render(\n ,\n document.getElementById('root')\n);\n\n//Functions below this line are for calculating data for\n//other functions\n\nfunction date() {\n let currentDate = new Date();\n let dateOptions = {\n weekday: \"long\",\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\"\n };\n let date = currentDate.toLocaleDateString(\"en-GB\", dateOptions);\n return date;\n}\nfunction fixDigits(k) {\n if (k < 10) {\n return \"0\" + k;\n }\n else {\n return k;\n }\n}\nfunction greet() {\n let currentTime = new Date();\n let greet = Math.floor(currentTime.getHours() / 6);\n let easterEggChance = Math.floor(Math.random() * 100);\n let greetings = require('./messages.json');\n let timeBased = [];\n let easterEggs = [];\n for (var i = 0; i < greetings.messages.length; i++) {\n if (greetings.messages[i].easteregg === \"FALSE\") {\n timeBased = timeBased.concat(greetings.messages[i]);\n } else {\n easterEggs = easterEggs.concat(greetings.messages[i]);\n }\n }\n if (easterEggChance > 10) {\n return timeBased[greet].message;\n } else {\n let easterEggText = Math.floor(Math.random() * easterEggs.length);\n return easterEggs[easterEggText].message;\n }\n}\nfunction Clock() {\n const [date, setDate] = useState(new Date());\n\n function refreshClock() {\n setDate(new Date());\n }\n useEffect(() => {\n const timerId = setInterval(refreshClock, 1000);\n return function cleanup() {\n clearInterval(timerId);\n };\n }, []);\n\n var hour = date.getHours();\n var minutes = date.getMinutes();\n //var seconds = date.getSeconds();\n var midday = \"AM\";\n midday = (hour >= 12) ? \"PM\" : \"AM\";\n hour = (hour === 0) ? 12 : ((hour > 12) ? (hour - 12) : hour);\n minutes = fixDigits(minutes);\n //seconds = fixDigits(seconds);\n let time = hour + \":\" + minutes + \" \" + midday;\n\n return (\n {time}
\n\n );\n}\nfunction getApps() {\n let applications = require('./apps.json');\n return applications;\n}\nfunction getLinks() {\n let links = require('./links.json');\n return links;\n}\nfunction getProviders() {\n let providers = require('./providers.json');\n return providers;\n}\nfunction getThemes() {\n let themes = require('./themes.json');\n return themes;\n}\nfunction updateTheme(e) {\n var themes = getThemes();\n var themeName = e.target.innerHTML.toLowerCase();\n var index = themes.themes.findIndex(function(item, i){\n return item.name === themeName\n });\n localStorage.setItem(\"image-background\", themes.themes[index].imagebackground);\n localStorage.setItem(\"color-background\", themes.themes[index].colorbackground);\n localStorage.setItem(\"color-search-background\", themes.themes[index].colorserachbackground);\n localStorage.setItem(\"color-text-pri\",themes.themes[index].colortextpri);\n localStorage.setItem(\"color-text-acc\", themes.themes[index].colortextacc);\n localStorage.setItem(\"color-border\", themes.themes[index].colorborder);\n \n //document.documentElement.style.setProperty(prop, `var(--${themeName}${prop.substring(10)})`);\n setTheme();\n}\nfunction setTheme() {\n setValueFromLocalStorage('image-background');\n setValueFromLocalStorage('color-background');\n setValueFromLocalStorage('color-search-background');\n setValueFromLocalStorage('color-text-pri');\n setValueFromLocalStorage('color-text-acc');\n setValueFromLocalStorage('color-border');\n setValueFromLocalStorage('content-display');\n}\nfunction handleKeyPress(e) {\n var sindex = 0;\n var cycle = false;\n var key = e.keyCode || e.which;\n var text = e.target.value.replaceAll(\"+\", \"%2B\");\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n if (key == 13) { // Search functions\n search(text);\n }\n if (key == 9) { // Tab Completion Functions\n e.preventDefault();\n e.stopPropagation();\n if (text[0] === ';') {\n switch (option) {\n case 't':\n var streamers = ['admiralbahroo', 'moonmoon_ow', 'witwix'];\n if (!subtext || cycle) {\n cycle = true;\n if (sindex > streamers.length - 1) sindex = 0;\n document.getElementById(\"keywords\").value = ';t ' + streamers[sindex++];\n return;\n }\n for (var streamer of streamers) {\n if (subtext === streamer.substr(0, subtext.length)) {\n document.getElementById(\"keywords\").value = ';t ' + streamer;\n return;\n }\n }\n break;\n }\n }\n }\n if(key == 32){ //Space to go to search\nupdateLabel(text);\n }\n sindex = 0;\n cycle = false;\n updateLabel(text);\n}\nfunction updateLabel(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n if (text[0] === '/') {\n// if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n document.getElementById(\"searchType\").innerHTML = \"Allmusic search\";\n break;\n case \"d\":\n document.getElementById(\"searchType\").innerHTML = \"Duck Duck Go search\";\n break;\n case \"di\":\n document.getElementById(\"searchType\").innerHTML = \"Discogs search\";\n break;\n case \"i\":\n document.getElementById(\"searchType\").innerHTML = \"IMDB search\";\n break;\n case \"m\":\n document.getElementById(\"searchType\").innerHTML = \"TheMovieDB search\";\n break;\n case \"r\":\n document.getElementById(\"searchType\").innerHTML = \"Reddit search\";\n break;\n case \"q\":\n document.getElementById(\"searchType\").innerHTML = \"Qwant search\";\n break;\n case \"so\":\n document.getElementById(\"searchType\").innerHTML = \"Soundcloud search\";\n break;\n case \"s\":\n document.getElementById(\"searchType\").innerHTML = \"Spotify search\";\n break;\n case \"tv\":\n document.getElementById(\"searchType\").innerHTML = \"TheTVDB search\";\n break;\n case \"t\":\n document.getElementById(\"searchType\").innerHTML = \"Trakt search\";\n break;\n case \"y\":\n document.getElementById(\"searchType\").innerHTML = \"YouTube search\";\n break;\n case \"w\":\n document.getElementById(\"searchType\").innerHTML = \"Wikipedia search\";\n break;\n case \"p\":\n document.getElementById(\"searchType\").innerHTML = \"Plex search\";\n break;\n case \"rt\":\n document.getElementById(\"searchType\").innerHTML = \"Rotten Tomatoes search\";\n break;\n default:\n document.getElementById(\"searchType\").innerHTML = \"Invalid search\";\n break;\n }\n}else {\n document.getElementById(\"searchType\").innerHTML = \"Google search\";\n }\n}\nfunction search(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n if (text[0] === '/') {\n if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n window.location = \"https://www.allmusic.com/search/all/\" + subtext;\n break;\n case \"d\":\n window.location = \"https://duckduckgo.com/?q=\" + subtext;\n break;\n case \"di\":\n window.location = \"https://www.discogs.com/search/?q=\" + subtext;\n break;\n case \"i\":\n window.location = \"https://www.imdb.com/find?q=\" + subtext;\n break;\n case \"m\":\n window.location = \"https://www.themoviedb.org/search?query=\" + subtext;\n break;\n case \"r\":\n window.location = \"https://www.reddit.com/search?q=\" + subtext;\n break;\n case \"q\":\n window.location = \"https://www.qwant.com/?q=\" + subtext;\n break;\n case \"so\":\n window.location = \"https://soundcloud.com/search?q=\" + subtext;\n break;\n case \"s\":\n window.location = \"https://open.spotify.com/search/results/\" + subtext;\n break;\n case \"t\":\n window.location = \"https://trakt.tv/search?query=\" + subtext;\n break;\n case \"tv\":\n window.location = \"https://www.thetvdb.com/search?query=\" + subtext;\n break;\n case \"y\":\n window.location = \"https://www.youtube.com/results?search_query=\" + subtext;\n break;\n case \"w\":\n window.location = \"https://en.wikipedia.org/w/index.php?search=\" + subtext;\n break;\n case \"p\":\n window.location = \"https://app.plex.tv/desktop/#!/search?query=\" + subtext;\n break;\n case \"rt\":\n window.location = \"https://www.rottentomatoes.com/search?search=\" + subtext;\n break;\n }\n } else {\n var option = text.substr(1);\n switch (option) {\n case \"d\":\n window.location = \"https://www.duckduckgo.com\";\n break;\n case \"y\":\n window.location = \"https://www.youtube.com\";\n break;\n case \"r\":\n window.location = \"https://reddit.com\";\n break;\n case \"s\":\n window.location = \"https://open.spotify.com\";\n break;\n }\n }\n } else if (validURL(text)) {\n if (containsProtocol(text))\n window.location = text;\n else\n window.location = \"https://\" + text;\n } else {\n window.location = \"https://www.google.com/search?q=\" + text;\n }\n}\nfunction validURL(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/)?' + // protocol\n '((([a-z\\\\d]([a-z\\\\d-]*[a-z\\\\d])*)\\\\.)+[a-z]{2,}|' + // domain name\n '((\\\\d{1,3}\\\\.){3}\\\\d{1,3}))' + // OR ip (v4) address\n '(\\\\:\\\\d+)?(\\\\/[-a-z\\\\d%_.~+]*)*' + // port and path\n '(\\\\?[;&a-z\\\\d%_.~+=-]*)?' + // query string\n '(\\\\#[-a-z\\\\d_]*)?$', 'i'); // fragment locator\n return !!pattern.test(str);\n}\nfunction containsProtocol(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/){1}.*', 'i');\n return !!pattern.test(str);\n}\nString.prototype.replaceAll = function(search, replacement) {\n var target = this;\n return target.split(search).join(replacement);\n};\nfunction udpateDisplayedItems(e) {\n console.log(e);\n localStorage.setItem('contenttype', e.target.checked);\n if (e.target.checked) {\n localStorage.setItem('content-display', 'none');\n } else {\n localStorage.setItem('content-display', 'block');\n }\n setDisplayedItems();\n}\nfunction setDisplayedItems() {\n setValueFromLocalStorage('contenttype');\n setValueFromLocalStorage('content-display');\n}"]},"metadata":{},"sourceType":"module"}
\ No newline at end of file
diff --git a/node_modules/.cache/babel-loader/fe0fb2e587f24fc2d41f2b0889aebb3f.json b/node_modules/.cache/babel-loader/fe0fb2e587f24fc2d41f2b0889aebb3f.json
new file mode 100644
index 00000000..40cc1865
--- /dev/null
+++ b/node_modules/.cache/babel-loader/fe0fb2e587f24fc2d41f2b0889aebb3f.json
@@ -0,0 +1 @@
+{"ast":null,"code":"var _jsxFileName = \"/home/seanedmunds/dev/home-page/src/index.js\",\n _s = $RefreshSig$();\n\nimport React from 'react';\nimport { useState, useEffect } from 'react';\nimport ReactDOM from 'react-dom';\nimport './index.css';\nimport { jsxDEV as _jsxDEV } from \"react/jsx-dev-runtime\";\n\nconst setValueFromLocalStorage = property => {\n let value = localStorage.getItem(property);\n setValue(property, value);\n};\n\nconst setValue = (property, value) => {\n if (value) {\n document.documentElement.style.setProperty(`--${property}`, value);\n const input = document.querySelector(`#${property}`);\n\n if (input) {\n value = value.replace('px', '');\n input.value = value;\n }\n }\n};\n\nfunction Homepage() {\n setTheme();\n return /*#__PURE__*/_jsxDEV(\"main\", {\n id: \"container\",\n className: \"fade\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Search, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 28,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 27,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Header, {\n date: date(),\n greet: greet()\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 31,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 30,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Applications, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 37,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 36,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(Bookmarks, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 40,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 39,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(ModalMenu, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 43,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 42,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(ModalInit, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 46,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 45,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 26,\n columnNumber: 5\n }, this);\n}\n\n_c = Homepage;\n\nfunction Search() {\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"search\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"abackground\",\n children: [/*#__PURE__*/_jsxDEV(\"input\", {\n name: \"keywords\",\n type: \"text\",\n className: \"keyword\",\n id: \"keywords\",\n size: \"50\",\n spellCheck: \"true\",\n placeholder: \"\"\n /*onFocus={this.placeholder = \"\"} onBlur={this.placeholder = ''}*/\n ,\n autoComplete: \"off\",\n autoFocus: true,\n onKeyUp: handleKeyPress\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 56,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n id: \"searchType\",\n className: \"Input-label\",\n children: \"Google search\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 57,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 55,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 54,\n columnNumber: 5\n }, this);\n}\n\n_c2 = Search;\n\nfunction Header(props) {\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"header\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n id: \"greeting_block\",\n children: /*#__PURE__*/_jsxDEV(\"h1\", {\n id: \"header_greet\",\n children: props.greet\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 67,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 66,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"date_block\",\n children: [/*#__PURE__*/_jsxDEV(\"h2\", {\n id: \"header_date\",\n children: props.date\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 70,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(Clock, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 71,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 69,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 65,\n columnNumber: 5\n }, this);\n}\n\n_c3 = Header;\n\nfunction Applications() {\n let appList = getApps();\n var items = [];\n\n for (var i = 0; i < appList.apps.length; i++) {\n var safe = appList.apps[i].NSFW;\n var NSFWEnabled = localStorage.getItem(\"contenttype\");\n\n if (safe === \"SAFE\") {\n items.push( /*#__PURE__*/_jsxDEV(App, {\n name: appList.apps[i].name,\n url: appList.apps[i].url,\n icon: appList.apps[i].icon,\n NSFW: appList.apps[i].NSFW\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 85,\n columnNumber: 9\n }, this));\n } else if (safe === \"NSFW\" && NSFWEnabled) {\n items.push( /*#__PURE__*/_jsxDEV(App, {\n name: appList.apps[i].name,\n url: appList.apps[i].url,\n icon: appList.apps[i].icon,\n NSFW: appList.apps[i].NSFW\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 95,\n columnNumber: 9\n }, this));\n } else {}\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"apps\",\n children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n children: \"Applications\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 110,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"apps_loop\",\n children: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 111,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 109,\n columnNumber: 5\n }, this);\n}\n\n_c4 = Applications;\n\nfunction App(props) {\n let classNameType = props.NSFW + \"-content\";\n let hrefUrl = \"https://\" + props.url;\n let iconName = \"mdi-\" + props.icon;\n return /*#__PURE__*/_jsxDEV(\"div\", {\n className: classNameType,\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: hrefUrl,\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_item\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_icon\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify icon\",\n \"data-icon\": iconName\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 128,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 127,\n columnNumber: 13\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"apps_text\",\n children: [/*#__PURE__*/_jsxDEV(\"span\", {\n id: \"app-name\",\n children: props.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 131,\n columnNumber: 15\n }, this), /*#__PURE__*/_jsxDEV(\"span\", {\n id: \"app-address\",\n children: props.url\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 132,\n columnNumber: 15\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 130,\n columnNumber: 13\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 126,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 125,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 124,\n columnNumber: 7\n }, this);\n}\n\n_c5 = App;\n\nfunction Bookmarks() {\n let bookmarkList = getLinks();\n var items = [];\n\n for (var i = 0; i < bookmarkList.bookmarks.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(LinkGroups, {\n category: bookmarkList.bookmarks[i].category,\n links: bookmarkList.bookmarks[i].links\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 145,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"links\",\n children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n children: \"Bookmarks\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 154,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"links_loop\",\n children: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 155,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 153,\n columnNumber: 5\n }, this);\n}\n\n_c6 = Bookmarks;\n\nfunction LinkGroups(props) {\n var items = [];\n\n for (var i = 0; i < props.links.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(LinkItem, {\n link: props.links[i]\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 166,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"links_item\",\n children: [/*#__PURE__*/_jsxDEV(\"h4\", {\n children: props.category\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 174,\n columnNumber: 7\n }, this), items]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 173,\n columnNumber: 5\n }, this);\n}\n\n_c7 = LinkGroups;\n\nfunction LinkItem(props) {\n return /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: props.link.url,\n className: \"theme_color-border theme_text-select\",\n children: props.link.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 183,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 182,\n columnNumber: 5\n }, this);\n}\n\n_c8 = LinkItem;\n\nfunction ModalMenu() {\n var providers = getProviders();\n var items = [];\n var isChecked = localStorage.getItem(\"contenttype\");\n\n for (var i = 0; i < providers.providers.length; i++) {\n items.push( /*#__PURE__*/_jsxDEV(Provider, {\n provider: providers.providers[i]\n }, i, false, {\n fileName: _jsxFileName,\n lineNumber: 194,\n columnNumber: 7\n }, this));\n }\n\n return /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"modal\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n children: [/*#__PURE__*/_jsxDEV(\"header\", {\n id: \"modal-header\",\n children: [/*#__PURE__*/_jsxDEV(\"h1\", {\n children: \"Options\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 204,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n href: \"#\",\n title: \"Close\",\n className: \"modal-close\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-close\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 206,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 205,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 203,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"h2\", {\n children: \"Color themes\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 210,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"modal-theme\",\n children: [/*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"blackboard\",\n className: \"theme-button theme-blackboard\",\n onClick: updateTheme,\n children: \"Blackboard\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 213,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"gazette\",\n className: \"theme-button theme-gazette\",\n onClick: updateTheme,\n children: \"Gazette\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 214,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"espresso\",\n className: \"theme-button theme-espresso\",\n onClick: updateTheme,\n children: \"Espresso\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 215,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cab\",\n className: \"theme-button theme-cab\",\n onClick: updateTheme,\n children: \"Cab\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 216,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cloud\",\n className: \"theme-button theme-cloud\",\n onClick: updateTheme,\n children: \"Cloud\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 217,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"lime\",\n className: \"theme-button theme-lime\",\n onClick: updateTheme,\n children: \"Lime\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 218,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"passion\",\n className: \"theme-button theme-passion\",\n onClick: updateTheme,\n children: \"Passion\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 219,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"blues\",\n className: \"theme-button theme-blues\",\n onClick: updateTheme,\n children: \"Blues\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 220,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"chalk\",\n className: \"theme-button theme-chalk\",\n onClick: updateTheme,\n children: \"Chalk\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 221,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"tron\",\n className: \"theme-button theme-tron\",\n onClick: updateTheme,\n children: \"Tron\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 222,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"paper\",\n className: \"theme-button theme-paper\",\n onClick: updateTheme,\n children: \"Paper\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 223,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"cyberpunk\",\n className: \"theme-button theme-cyberpunk\",\n onClick: updateTheme,\n children: \"Cyberpunk\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 224,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"quadra\",\n className: \"theme-button theme-panam\",\n onClick: updateTheme,\n children: \"Quadra\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 225,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"panam\",\n className: \"theme-button theme-panam\",\n onClick: updateTheme,\n children: \"Panam\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 226,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"touch\",\n className: \"theme-button theme-touch\",\n onClick: updateTheme,\n children: \"Touch\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 227,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n \"data-theme\": \"peek\",\n className: \"theme-button theme-peek\",\n onClick: updateTheme,\n children: \"Peek\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 228,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 212,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"h2\", {\n children: \"Search options\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 232,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"section\", {\n id: \"providers\",\n children: /*#__PURE__*/_jsxDEV(\"table\", {\n children: /*#__PURE__*/_jsxDEV(\"tbody\", {\n children: [/*#__PURE__*/_jsxDEV(\"tr\", {\n children: [/*#__PURE__*/_jsxDEV(\"th\", {\n children: \"Website\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 237,\n columnNumber: 19\n }, this), /*#__PURE__*/_jsxDEV(\"th\", {\n children: \"Prefix\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 238,\n columnNumber: 19\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 236,\n columnNumber: 17\n }, this), items]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 235,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 234,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 233,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"header\", {\n id: \"modal-footer\",\n children: [/*#__PURE__*/_jsxDEV(\"a\", {\n href: \"https://github.com/jeroenpardon/\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-github-box\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 246,\n columnNumber: 54\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 246,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n href: \"https://materialdesignicons.com/\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-material-design\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 247,\n columnNumber: 54\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 247,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(HideButton, {\n checked: isChecked\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 248,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 245,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 202,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 201,\n columnNumber: 5\n }, this);\n}\n\n_c9 = ModalMenu;\n\nfunction HideButton(props) {\n return /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"sneaky\",\n children: [/*#__PURE__*/_jsxDEV(\"input\", {\n type: \"checkbox\",\n id: \"contenttype\",\n onClick: udpateDisplayedItems,\n defaultChecked: checked\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 260,\n columnNumber: 29\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n for: \"contenttype\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify\",\n \"data-icon\": \"mdi-domino-mask\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 261,\n columnNumber: 30\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 261,\n columnNumber: 5\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 260,\n columnNumber: 5\n }, this);\n}\n\n_c10 = HideButton;\n\nfunction Provider(props) {\n return /*#__PURE__*/_jsxDEV(\"tr\", {\n children: [/*#__PURE__*/_jsxDEV(\"td\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n href: props.provider.url,\n children: props.provider.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 268,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 268,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"td\", {\n children: props.provider.prefix\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 269,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 267,\n columnNumber: 5\n }, this);\n}\n\n_c11 = Provider;\n\nfunction ModalInit() {\n setDisplayedItems();\n return /*#__PURE__*/_jsxDEV(\"div\", {\n id: \"modal_init\",\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n className: \"btn\",\n href: \"#modal\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"iconify icon\",\n \"data-icon\": \"mdi-xbox-controller-menu\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 279,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 278,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 277,\n columnNumber: 5\n }, this);\n}\n\n_c12 = ModalInit;\nReactDOM.render( /*#__PURE__*/_jsxDEV(Homepage, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 286,\n columnNumber: 3\n}, this), document.getElementById('root')); //Functions below this line are for calculating data for\n//other functions\n\nfunction date() {\n let currentDate = new Date();\n let dateOptions = {\n weekday: \"long\",\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\"\n };\n let date = currentDate.toLocaleDateString(\"en-GB\", dateOptions);\n return date;\n}\n\nfunction fixDigits(k) {\n if (k < 10) {\n return \"0\" + k;\n } else {\n return k;\n }\n}\n\nfunction greet() {\n let currentTime = new Date();\n let greet = Math.floor(currentTime.getHours() / 6);\n let easterEggChance = Math.floor(Math.random() * 100);\n\n let greetings = require('./messages.json');\n\n let timeBased = [];\n let easterEggs = [];\n\n for (var i = 0; i < greetings.messages.length; i++) {\n if (greetings.messages[i].easteregg === \"FALSE\") {\n timeBased = timeBased.concat(greetings.messages[i]);\n } else {\n easterEggs = easterEggs.concat(greetings.messages[i]);\n }\n }\n\n if (easterEggChance > 10) {\n return timeBased[greet].message;\n } else {\n let easterEggText = Math.floor(Math.random() * easterEggs.length);\n return easterEggs[easterEggText].message;\n }\n}\n\nfunction Clock() {\n _s();\n\n const [date, setDate] = useState(new Date());\n\n function refreshClock() {\n setDate(new Date());\n }\n\n useEffect(() => {\n const timerId = setInterval(refreshClock, 1000);\n return function cleanup() {\n clearInterval(timerId);\n };\n }, []);\n var hour = date.getHours();\n var minutes = date.getMinutes(); //var seconds = date.getSeconds();\n\n var midday = \"AM\";\n midday = hour >= 12 ? \"PM\" : \"AM\";\n hour = hour === 0 ? 12 : hour > 12 ? hour - 12 : hour;\n minutes = fixDigits(minutes); //seconds = fixDigits(seconds);\n\n let time = hour + \":\" + minutes + \" \" + midday;\n return /*#__PURE__*/_jsxDEV(\"h2\", {\n id: \"clock\",\n children: time\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 357,\n columnNumber: 5\n }, this);\n}\n\n_s(Clock, \"Gqi45WOZhU2c0BLYX0HoJeiR0fk=\");\n\n_c13 = Clock;\n\nfunction getApps() {\n let applications = require('./apps.json');\n\n return applications;\n}\n\nfunction getLinks() {\n let links = require('./links.json');\n\n return links;\n}\n\nfunction getProviders() {\n let providers = require('./providers.json');\n\n return providers;\n}\n\nfunction getThemes() {\n let themes = require('./themes.json');\n\n return themes;\n}\n\nfunction updateTheme(e) {\n var themes = getThemes();\n var themeName = e.target.innerHTML.toLowerCase();\n var index = themes.themes.findIndex(function (item, i) {\n return item.name === themeName;\n });\n localStorage.setItem(\"image-background\", themes.themes[index].imagebackground);\n localStorage.setItem(\"color-background\", themes.themes[index].colorbackground);\n localStorage.setItem(\"color-search-background\", themes.themes[index].colorserachbackground);\n localStorage.setItem(\"color-text-pri\", themes.themes[index].colortextpri);\n localStorage.setItem(\"color-text-acc\", themes.themes[index].colortextacc);\n localStorage.setItem(\"color-border\", themes.themes[index].colorborder); //document.documentElement.style.setProperty(prop, `var(--${themeName}${prop.substring(10)})`);\n\n setTheme();\n}\n\nfunction setTheme() {\n setValueFromLocalStorage('image-background');\n setValueFromLocalStorage('color-background');\n setValueFromLocalStorage('color-search-background');\n setValueFromLocalStorage('color-text-pri');\n setValueFromLocalStorage('color-text-acc');\n setValueFromLocalStorage('color-border');\n setValueFromLocalStorage('content-display');\n}\n\nfunction handleKeyPress(e) {\n var sindex = 0;\n var cycle = false;\n var key = e.keyCode || e.which;\n var text = e.target.value.replaceAll(\"+\", \"%2B\");\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n\n if (key == 13) {\n // Search functions\n search(text);\n }\n\n if (key == 9) {\n // Tab Completion Functions\n e.preventDefault();\n e.stopPropagation();\n\n if (text[0] === ';') {\n switch (option) {\n case 't':\n var streamers = ['admiralbahroo', 'moonmoon_ow', 'witwix'];\n\n if (!subtext || cycle) {\n cycle = true;\n if (sindex > streamers.length - 1) sindex = 0;\n document.getElementById(\"keywords\").value = ';t ' + streamers[sindex++];\n return;\n }\n\n for (var streamer of streamers) {\n if (subtext === streamer.substr(0, subtext.length)) {\n document.getElementById(\"keywords\").value = ';t ' + streamer;\n return;\n }\n }\n\n break;\n }\n }\n }\n\n if (key == 32) {\n //Space to go to search\n updateLabel(text);\n }\n\n sindex = 0;\n cycle = false;\n updateLabel(text);\n}\n\nfunction updateLabel(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n\n if (text[0] === '/') {\n // if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n document.getElementById(\"searchType\").innerHTML = \"Allmusic search\";\n break;\n\n case \"d\":\n document.getElementById(\"searchType\").innerHTML = \"Duck Duck Go search\";\n break;\n\n case \"di\":\n document.getElementById(\"searchType\").innerHTML = \"Discogs search\";\n break;\n\n case \"i\":\n document.getElementById(\"searchType\").innerHTML = \"IMDB search\";\n break;\n\n case \"m\":\n document.getElementById(\"searchType\").innerHTML = \"TheMovieDB search\";\n break;\n\n case \"r\":\n document.getElementById(\"searchType\").innerHTML = \"Reddit search\";\n break;\n\n case \"q\":\n document.getElementById(\"searchType\").innerHTML = \"Qwant search\";\n break;\n\n case \"so\":\n document.getElementById(\"searchType\").innerHTML = \"Soundcloud search\";\n break;\n\n case \"s\":\n document.getElementById(\"searchType\").innerHTML = \"Spotify search\";\n break;\n\n case \"tv\":\n document.getElementById(\"searchType\").innerHTML = \"TheTVDB search\";\n break;\n\n case \"t\":\n document.getElementById(\"searchType\").innerHTML = \"Trakt search\";\n break;\n\n case \"y\":\n document.getElementById(\"searchType\").innerHTML = \"YouTube search\";\n break;\n\n case \"w\":\n document.getElementById(\"searchType\").innerHTML = \"Wikipedia search\";\n break;\n\n case \"p\":\n document.getElementById(\"searchType\").innerHTML = \"Plex search\";\n break;\n\n case \"rt\":\n document.getElementById(\"searchType\").innerHTML = \"Rotten Tomatoes search\";\n break;\n\n default:\n document.getElementById(\"searchType\").innerHTML = \"Invalid search\";\n break;\n }\n } else {\n document.getElementById(\"searchType\").innerHTML = \"Google search\";\n }\n}\n\nfunction search(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n\n if (text[0] === '/') {\n if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n window.location = \"https://www.allmusic.com/search/all/\" + subtext;\n break;\n\n case \"d\":\n window.location = \"https://duckduckgo.com/?q=\" + subtext;\n break;\n\n case \"di\":\n window.location = \"https://www.discogs.com/search/?q=\" + subtext;\n break;\n\n case \"i\":\n window.location = \"https://www.imdb.com/find?q=\" + subtext;\n break;\n\n case \"m\":\n window.location = \"https://www.themoviedb.org/search?query=\" + subtext;\n break;\n\n case \"r\":\n window.location = \"https://www.reddit.com/search?q=\" + subtext;\n break;\n\n case \"q\":\n window.location = \"https://www.qwant.com/?q=\" + subtext;\n break;\n\n case \"so\":\n window.location = \"https://soundcloud.com/search?q=\" + subtext;\n break;\n\n case \"s\":\n window.location = \"https://open.spotify.com/search/results/\" + subtext;\n break;\n\n case \"t\":\n window.location = \"https://trakt.tv/search?query=\" + subtext;\n break;\n\n case \"tv\":\n window.location = \"https://www.thetvdb.com/search?query=\" + subtext;\n break;\n\n case \"y\":\n window.location = \"https://www.youtube.com/results?search_query=\" + subtext;\n break;\n\n case \"w\":\n window.location = \"https://en.wikipedia.org/w/index.php?search=\" + subtext;\n break;\n\n case \"p\":\n window.location = \"https://app.plex.tv/desktop/#!/search?query=\" + subtext;\n break;\n\n case \"rt\":\n window.location = \"https://www.rottentomatoes.com/search?search=\" + subtext;\n break;\n }\n } else {\n var option = text.substr(1);\n\n switch (option) {\n case \"d\":\n window.location = \"https://www.duckduckgo.com\";\n break;\n\n case \"y\":\n window.location = \"https://www.youtube.com\";\n break;\n\n case \"r\":\n window.location = \"https://reddit.com\";\n break;\n\n case \"s\":\n window.location = \"https://open.spotify.com\";\n break;\n }\n }\n } else if (validURL(text)) {\n if (containsProtocol(text)) window.location = text;else window.location = \"https://\" + text;\n } else {\n window.location = \"https://www.google.com/search?q=\" + text;\n }\n}\n\nfunction validURL(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/)?' + // protocol\n '((([a-z\\\\d]([a-z\\\\d-]*[a-z\\\\d])*)\\\\.)+[a-z]{2,}|' + // domain name\n '((\\\\d{1,3}\\\\.){3}\\\\d{1,3}))' + // OR ip (v4) address\n '(\\\\:\\\\d+)?(\\\\/[-a-z\\\\d%_.~+]*)*' + // port and path\n '(\\\\?[;&a-z\\\\d%_.~+=-]*)?' + // query string\n '(\\\\#[-a-z\\\\d_]*)?$', 'i'); // fragment locator\n\n return !!pattern.test(str);\n}\n\nfunction containsProtocol(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/){1}.*', 'i');\n return !!pattern.test(str);\n}\n\nString.prototype.replaceAll = function (search, replacement) {\n var target = this;\n return target.split(search).join(replacement);\n};\n\nfunction udpateDisplayedItems(e) {\n localStorage.setItem('contenttype', e.target.checked);\n\n if (e.target.checked) {\n localStorage.setItem('content-display', 'none');\n } else {\n localStorage.setItem('content-display', 'block');\n }\n\n setDisplayedItems();\n}\n\nfunction setDisplayedItems() {\n setValueFromLocalStorage('contenttype');\n setValueFromLocalStorage('content-display');\n}\n\nvar _c, _c2, _c3, _c4, _c5, _c6, _c7, _c8, _c9, _c10, _c11, _c12, _c13;\n\n$RefreshReg$(_c, \"Homepage\");\n$RefreshReg$(_c2, \"Search\");\n$RefreshReg$(_c3, \"Header\");\n$RefreshReg$(_c4, \"Applications\");\n$RefreshReg$(_c5, \"App\");\n$RefreshReg$(_c6, \"Bookmarks\");\n$RefreshReg$(_c7, \"LinkGroups\");\n$RefreshReg$(_c8, \"LinkItem\");\n$RefreshReg$(_c9, \"ModalMenu\");\n$RefreshReg$(_c10, \"HideButton\");\n$RefreshReg$(_c11, \"Provider\");\n$RefreshReg$(_c12, \"ModalInit\");\n$RefreshReg$(_c13, \"Clock\");","map":{"version":3,"sources":["/home/seanedmunds/dev/home-page/src/index.js"],"names":["React","useState","useEffect","ReactDOM","setValueFromLocalStorage","property","value","localStorage","getItem","setValue","document","documentElement","style","setProperty","input","querySelector","replace","Homepage","setTheme","date","greet","Search","handleKeyPress","Header","props","Applications","appList","getApps","items","i","apps","length","safe","NSFW","NSFWEnabled","push","name","url","icon","App","classNameType","hrefUrl","iconName","Bookmarks","bookmarkList","getLinks","bookmarks","category","links","LinkGroups","LinkItem","link","ModalMenu","providers","getProviders","isChecked","updateTheme","HideButton","udpateDisplayedItems","checked","Provider","provider","prefix","ModalInit","setDisplayedItems","render","getElementById","currentDate","Date","dateOptions","weekday","year","month","day","toLocaleDateString","fixDigits","k","currentTime","Math","floor","getHours","easterEggChance","random","greetings","require","timeBased","easterEggs","messages","easteregg","concat","message","easterEggText","Clock","setDate","refreshClock","timerId","setInterval","cleanup","clearInterval","hour","minutes","getMinutes","midday","time","applications","getThemes","themes","e","themeName","target","innerHTML","toLowerCase","index","findIndex","item","setItem","imagebackground","colorbackground","colorserachbackground","colortextpri","colortextacc","colorborder","sindex","cycle","key","keyCode","which","text","replaceAll","option","substr","indexOf","subtext","search","preventDefault","stopPropagation","streamers","streamer","updateLabel","window","location","validURL","containsProtocol","str","pattern","RegExp","test","String","prototype","replacement","split","join"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { useState, useEffect } from 'react';\nimport ReactDOM from 'react-dom';\nimport './index.css';\n\nconst setValueFromLocalStorage = property => {\n let value = localStorage.getItem(property);\n setValue(property, value);\n};\nconst setValue = (property, value) => {\n if (value) {\n document.documentElement.style.setProperty(`--${property}`, value);\n\n const input = document.querySelector(`#${property}`);\n if (input) {\n value = value.replace('px', '');\n input.value = value;\n }\n }\n};\n\nfunction Homepage() {\n setTheme();\n \n return (\n \n \n \n
\n \n \n
\n \n \n \n
\n \n \n
\n \n \n
\n \n );\n}\n\nfunction Search() {\n return (\n \n )\n}\n\nfunction Header(props) {\n return (\n \n );\n}\n\nfunction Applications() {\n let appList = getApps();\n var items = [];\n for (var i = 0; i < appList.apps.length; i++) {\n var safe = appList.apps[i].NSFW;\n var NSFWEnabled = localStorage.getItem(\"contenttype\");\n if (safe === \"SAFE\") {\n items.push(\n \n );\n } else if (safe === \"NSFW\" && NSFWEnabled) {\n items.push(\n \n );\n } else {\n \n }\n \n }\n return (\n \n Applications
\n \n {items}\n
\n \n );\n}\n\nfunction App(props) {\n \n let classNameType = props.NSFW + \"-content\";\n let hrefUrl = \"https://\" + props.url;\n let iconName = \"mdi-\" + props.icon;\n return (\n \n );\n}\n\nfunction Bookmarks() {\n let bookmarkList = getLinks();\n var items = [];\n for (var i = 0; i < bookmarkList.bookmarks.length; i++) {\n items.push(\n \n );\n }\n return (\n \n Bookmarks
\n \n {items}\n
\n \n );\n}\n\nfunction LinkGroups(props) {\n var items = [];\n for (var i = 0; i < props.links.length; i++) {\n items.push(\n \n );\n }\n return (\n \n
{props.category}
\n {items}\n \n );\n}\n\nfunction LinkItem(props) {\n return (\n \n );\n}\n\nfunction ModalMenu() {\n var providers = getProviders();\n var items = [];\n var isChecked = localStorage.getItem(\"contenttype\");\n for (var i = 0; i < providers.providers.length; i++) {\n items.push(\n \n );\n }\n return (\n \n \n \n\n
Color themes
\n\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n\n\n
Search options
\n
\n \n \n \n | Website | \n Prefix | \n
\n {items}\n \n
\n \n\n \n
\n \n );\n}\n\nfunction HideButton(props) {\n \n return (\n \n
\n );\n}\n\nfunction Provider(props) {\n return (\n \n | {props.provider.name} | \n {props.provider.prefix} | \n
\n );\n}\n\nfunction ModalInit() {\n setDisplayedItems();\n return (\n \n );\n}\n\nReactDOM.render(\n ,\n document.getElementById('root')\n);\n\n//Functions below this line are for calculating data for\n//other functions\n\nfunction date() {\n let currentDate = new Date();\n let dateOptions = {\n weekday: \"long\",\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\"\n };\n let date = currentDate.toLocaleDateString(\"en-GB\", dateOptions);\n return date;\n}\nfunction fixDigits(k) {\n if (k < 10) {\n return \"0\" + k;\n }\n else {\n return k;\n }\n}\nfunction greet() {\n let currentTime = new Date();\n let greet = Math.floor(currentTime.getHours() / 6);\n let easterEggChance = Math.floor(Math.random() * 100);\n let greetings = require('./messages.json');\n let timeBased = [];\n let easterEggs = [];\n for (var i = 0; i < greetings.messages.length; i++) {\n if (greetings.messages[i].easteregg === \"FALSE\") {\n timeBased = timeBased.concat(greetings.messages[i]);\n } else {\n easterEggs = easterEggs.concat(greetings.messages[i]);\n }\n }\n if (easterEggChance > 10) {\n return timeBased[greet].message;\n } else {\n let easterEggText = Math.floor(Math.random() * easterEggs.length);\n return easterEggs[easterEggText].message;\n }\n}\nfunction Clock() {\n const [date, setDate] = useState(new Date());\n\n function refreshClock() {\n setDate(new Date());\n }\n useEffect(() => {\n const timerId = setInterval(refreshClock, 1000);\n return function cleanup() {\n clearInterval(timerId);\n };\n }, []);\n\n var hour = date.getHours();\n var minutes = date.getMinutes();\n //var seconds = date.getSeconds();\n var midday = \"AM\";\n midday = (hour >= 12) ? \"PM\" : \"AM\";\n hour = (hour === 0) ? 12 : ((hour > 12) ? (hour - 12) : hour);\n minutes = fixDigits(minutes);\n //seconds = fixDigits(seconds);\n let time = hour + \":\" + minutes + \" \" + midday;\n\n return (\n {time}
\n\n );\n}\nfunction getApps() {\n let applications = require('./apps.json');\n return applications;\n}\nfunction getLinks() {\n let links = require('./links.json');\n return links;\n}\nfunction getProviders() {\n let providers = require('./providers.json');\n return providers;\n}\nfunction getThemes() {\n let themes = require('./themes.json');\n return themes;\n}\nfunction updateTheme(e) {\n var themes = getThemes();\n var themeName = e.target.innerHTML.toLowerCase();\n var index = themes.themes.findIndex(function(item, i){\n return item.name === themeName\n });\n localStorage.setItem(\"image-background\", themes.themes[index].imagebackground);\n localStorage.setItem(\"color-background\", themes.themes[index].colorbackground);\n localStorage.setItem(\"color-search-background\", themes.themes[index].colorserachbackground);\n localStorage.setItem(\"color-text-pri\",themes.themes[index].colortextpri);\n localStorage.setItem(\"color-text-acc\", themes.themes[index].colortextacc);\n localStorage.setItem(\"color-border\", themes.themes[index].colorborder);\n \n //document.documentElement.style.setProperty(prop, `var(--${themeName}${prop.substring(10)})`);\n setTheme();\n}\nfunction setTheme() {\n setValueFromLocalStorage('image-background');\n setValueFromLocalStorage('color-background');\n setValueFromLocalStorage('color-search-background');\n setValueFromLocalStorage('color-text-pri');\n setValueFromLocalStorage('color-text-acc');\n setValueFromLocalStorage('color-border');\n setValueFromLocalStorage('content-display');\n}\nfunction handleKeyPress(e) {\n var sindex = 0;\n var cycle = false;\n var key = e.keyCode || e.which;\n var text = e.target.value.replaceAll(\"+\", \"%2B\");\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n if (key == 13) { // Search functions\n search(text);\n }\n if (key == 9) { // Tab Completion Functions\n e.preventDefault();\n e.stopPropagation();\n if (text[0] === ';') {\n switch (option) {\n case 't':\n var streamers = ['admiralbahroo', 'moonmoon_ow', 'witwix'];\n if (!subtext || cycle) {\n cycle = true;\n if (sindex > streamers.length - 1) sindex = 0;\n document.getElementById(\"keywords\").value = ';t ' + streamers[sindex++];\n return;\n }\n for (var streamer of streamers) {\n if (subtext === streamer.substr(0, subtext.length)) {\n document.getElementById(\"keywords\").value = ';t ' + streamer;\n return;\n }\n }\n break;\n }\n }\n }\n if(key == 32){ //Space to go to search\nupdateLabel(text);\n }\n sindex = 0;\n cycle = false;\n updateLabel(text);\n}\nfunction updateLabel(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n if (text[0] === '/') {\n// if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n document.getElementById(\"searchType\").innerHTML = \"Allmusic search\";\n break;\n case \"d\":\n document.getElementById(\"searchType\").innerHTML = \"Duck Duck Go search\";\n break;\n case \"di\":\n document.getElementById(\"searchType\").innerHTML = \"Discogs search\";\n break;\n case \"i\":\n document.getElementById(\"searchType\").innerHTML = \"IMDB search\";\n break;\n case \"m\":\n document.getElementById(\"searchType\").innerHTML = \"TheMovieDB search\";\n break;\n case \"r\":\n document.getElementById(\"searchType\").innerHTML = \"Reddit search\";\n break;\n case \"q\":\n document.getElementById(\"searchType\").innerHTML = \"Qwant search\";\n break;\n case \"so\":\n document.getElementById(\"searchType\").innerHTML = \"Soundcloud search\";\n break;\n case \"s\":\n document.getElementById(\"searchType\").innerHTML = \"Spotify search\";\n break;\n case \"tv\":\n document.getElementById(\"searchType\").innerHTML = \"TheTVDB search\";\n break;\n case \"t\":\n document.getElementById(\"searchType\").innerHTML = \"Trakt search\";\n break;\n case \"y\":\n document.getElementById(\"searchType\").innerHTML = \"YouTube search\";\n break;\n case \"w\":\n document.getElementById(\"searchType\").innerHTML = \"Wikipedia search\";\n break;\n case \"p\":\n document.getElementById(\"searchType\").innerHTML = \"Plex search\";\n break;\n case \"rt\":\n document.getElementById(\"searchType\").innerHTML = \"Rotten Tomatoes search\";\n break;\n default:\n document.getElementById(\"searchType\").innerHTML = \"Invalid search\";\n break;\n }\n}else {\n document.getElementById(\"searchType\").innerHTML = \"Google search\";\n }\n}\nfunction search(text) {\n var option = text.substr(1, text.indexOf(' ') - 1) || text.substr(1);\n var subtext = text.substr(2 + option.length);\n if (text[0] === '/') {\n if (text.indexOf(' ') > -1) {\n switch (option) {\n case \"am\":\n window.location = \"https://www.allmusic.com/search/all/\" + subtext;\n break;\n case \"d\":\n window.location = \"https://duckduckgo.com/?q=\" + subtext;\n break;\n case \"di\":\n window.location = \"https://www.discogs.com/search/?q=\" + subtext;\n break;\n case \"i\":\n window.location = \"https://www.imdb.com/find?q=\" + subtext;\n break;\n case \"m\":\n window.location = \"https://www.themoviedb.org/search?query=\" + subtext;\n break;\n case \"r\":\n window.location = \"https://www.reddit.com/search?q=\" + subtext;\n break;\n case \"q\":\n window.location = \"https://www.qwant.com/?q=\" + subtext;\n break;\n case \"so\":\n window.location = \"https://soundcloud.com/search?q=\" + subtext;\n break;\n case \"s\":\n window.location = \"https://open.spotify.com/search/results/\" + subtext;\n break;\n case \"t\":\n window.location = \"https://trakt.tv/search?query=\" + subtext;\n break;\n case \"tv\":\n window.location = \"https://www.thetvdb.com/search?query=\" + subtext;\n break;\n case \"y\":\n window.location = \"https://www.youtube.com/results?search_query=\" + subtext;\n break;\n case \"w\":\n window.location = \"https://en.wikipedia.org/w/index.php?search=\" + subtext;\n break;\n case \"p\":\n window.location = \"https://app.plex.tv/desktop/#!/search?query=\" + subtext;\n break;\n case \"rt\":\n window.location = \"https://www.rottentomatoes.com/search?search=\" + subtext;\n break;\n }\n } else {\n var option = text.substr(1);\n switch (option) {\n case \"d\":\n window.location = \"https://www.duckduckgo.com\";\n break;\n case \"y\":\n window.location = \"https://www.youtube.com\";\n break;\n case \"r\":\n window.location = \"https://reddit.com\";\n break;\n case \"s\":\n window.location = \"https://open.spotify.com\";\n break;\n }\n }\n } else if (validURL(text)) {\n if (containsProtocol(text))\n window.location = text;\n else\n window.location = \"https://\" + text;\n } else {\n window.location = \"https://www.google.com/search?q=\" + text;\n }\n}\nfunction validURL(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/)?' + // protocol\n '((([a-z\\\\d]([a-z\\\\d-]*[a-z\\\\d])*)\\\\.)+[a-z]{2,}|' + // domain name\n '((\\\\d{1,3}\\\\.){3}\\\\d{1,3}))' + // OR ip (v4) address\n '(\\\\:\\\\d+)?(\\\\/[-a-z\\\\d%_.~+]*)*' + // port and path\n '(\\\\?[;&a-z\\\\d%_.~+=-]*)?' + // query string\n '(\\\\#[-a-z\\\\d_]*)?$', 'i'); // fragment locator\n return !!pattern.test(str);\n}\nfunction containsProtocol(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/){1}.*', 'i');\n return !!pattern.test(str);\n}\nString.prototype.replaceAll = function(search, replacement) {\n var target = this;\n return target.split(search).join(replacement);\n};\nfunction udpateDisplayedItems(e) {\n localStorage.setItem('contenttype', e.target.checked);\n if (e.target.checked) {\n localStorage.setItem('content-display', 'none');\n } else {\n localStorage.setItem('content-display', 'block');\n }\n setDisplayedItems();\n}\nfunction setDisplayedItems() {\n setValueFromLocalStorage('contenttype');\n setValueFromLocalStorage('content-display');\n}"]},"metadata":{},"sourceType":"module"}
\ No newline at end of file
diff --git a/node_modules/.cache/terser-webpack-plugin/content-v2/sha512/02/b1/5ee9d6e41e0fcb3d53b0973a132af22c392aa12fb09ae86e161ef0319bb02e3ed7174bf2796333b8abb079a44676c6c957412fe733d065fb887ae23cea57 b/node_modules/.cache/terser-webpack-plugin/content-v2/sha512/02/b1/5ee9d6e41e0fcb3d53b0973a132af22c392aa12fb09ae86e161ef0319bb02e3ed7174bf2796333b8abb079a44676c6c957412fe733d065fb887ae23cea57
new file mode 100644
index 00000000..0b5d89fe
--- /dev/null
+++ b/node_modules/.cache/terser-webpack-plugin/content-v2/sha512/02/b1/5ee9d6e41e0fcb3d53b0973a132af22c392aa12fb09ae86e161ef0319bb02e3ed7174bf2796333b8abb079a44676c6c957412fe733d065fb887ae23cea57
@@ -0,0 +1 @@
+{"code":"!function(e){function r(r){for(var n,l,a=r[0],i=r[1],p=r[2],c=0,s=[];ce.length)&&(t=e.length);for(var n=0,r=new Array(t);nt}return!1}(t,n,l,r)&&(n=null),r||null===l?function(e){return!!p.call(m,e)||!p.call(h,e)&&(d.test(e)?m[e]=!0:(h[e]=!0,!1))}(t)&&(null===n?e.removeAttribute(t):e.setAttribute(t,\"\"+n)):l.mustUseProperty?e[l.propertyName]=null===n?3!==l.type&&\"\":n:(t=l.attributeName,r=l.attributeNamespace,null===n?e.removeAttribute(t):(n=3===(l=l.type)||4===l&&!0===n?\"\":\"\"+n,r?e.setAttributeNS(r,t,n):e.setAttribute(t,n))))}\"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height\".split(\" \").forEach((function(e){var t=e.replace(y,b);g[t]=new v(t,1,!1,e,null,!1,!1)})),\"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type\".split(\" \").forEach((function(e){var t=e.replace(y,b);g[t]=new v(t,1,!1,e,\"http://www.w3.org/1999/xlink\",!1,!1)})),[\"xml:base\",\"xml:lang\",\"xml:space\"].forEach((function(e){var t=e.replace(y,b);g[t]=new v(t,1,!1,e,\"http://www.w3.org/XML/1998/namespace\",!1,!1)})),[\"tabIndex\",\"crossOrigin\"].forEach((function(e){g[e]=new v(e,1,!1,e.toLowerCase(),null,!1,!1)})),g.xlinkHref=new v(\"xlinkHref\",1,!1,\"xlink:href\",\"http://www.w3.org/1999/xlink\",!0,!1),[\"src\",\"href\",\"action\",\"formAction\"].forEach((function(e){g[e]=new v(e,1,!1,e.toLowerCase(),null,!0,!0)}));var k=r.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,S=60103,E=60106,_=60107,x=60108,C=60114,P=60109,N=60110,T=60112,L=60113,z=60120,O=60115,R=60116,M=60121,I=60128,F=60129,D=60130,U=60131;if(\"function\"===typeof Symbol&&Symbol.for){var A=Symbol.for;S=A(\"react.element\"),E=A(\"react.portal\"),_=A(\"react.fragment\"),x=A(\"react.strict_mode\"),C=A(\"react.profiler\"),P=A(\"react.provider\"),N=A(\"react.context\"),T=A(\"react.forward_ref\"),L=A(\"react.suspense\"),z=A(\"react.suspense_list\"),O=A(\"react.memo\"),R=A(\"react.lazy\"),M=A(\"react.block\"),A(\"react.scope\"),I=A(\"react.opaque.id\"),F=A(\"react.debug_trace_mode\"),D=A(\"react.offscreen\"),U=A(\"react.legacy_hidden\")}var j,V=\"function\"===typeof Symbol&&Symbol.iterator;function B(e){return null===e||\"object\"!==typeof e?null:\"function\"===typeof(e=V&&e[V]||e[\"@@iterator\"])?e:null}function $(e){if(void 0===j)try{throw Error()}catch(n){var t=n.stack.trim().match(/\\n( *(at )?)/);j=t&&t[1]||\"\"}return\"\\n\"+j+e}var W=!1;function H(e,t){if(!e||W)return\"\";W=!0;var n=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{if(t)if(t=function(){throw Error()},Object.defineProperty(t.prototype,\"props\",{set:function(){throw Error()}}),\"object\"===typeof Reflect&&Reflect.construct){try{Reflect.construct(t,[])}catch(i){var r=i}Reflect.construct(e,[],t)}else{try{t.call()}catch(i){r=i}e.call(t.prototype)}else{try{throw Error()}catch(i){r=i}e()}}catch(i){if(i&&r&&\"string\"===typeof i.stack){for(var l=i.stack.split(\"\\n\"),a=r.stack.split(\"\\n\"),o=l.length-1,u=a.length-1;1<=o&&0<=u&&l[o]!==a[u];)u--;for(;1<=o&&0<=u;o--,u--)if(l[o]!==a[u]){if(1!==o||1!==u)do{if(o--,0>--u||l[o]!==a[u])return\"\\n\"+l[o].replace(\" at new \",\" at \")}while(1<=o&&0<=u);break}}}finally{W=!1,Error.prepareStackTrace=n}return(e=e?e.displayName||e.name:\"\")?$(e):\"\"}function Q(e){switch(e.tag){case 5:return $(e.type);case 16:return $(\"Lazy\");case 13:return $(\"Suspense\");case 19:return $(\"SuspenseList\");case 0:case 2:case 15:return e=H(e.type,!1);case 11:return e=H(e.type.render,!1);case 22:return e=H(e.type._render,!1);case 1:return e=H(e.type,!0);default:return\"\"}}function q(e){if(null==e)return null;if(\"function\"===typeof e)return e.displayName||e.name||null;if(\"string\"===typeof e)return e;switch(e){case _:return\"Fragment\";case E:return\"Portal\";case C:return\"Profiler\";case x:return\"StrictMode\";case L:return\"Suspense\";case z:return\"SuspenseList\"}if(\"object\"===typeof e)switch(e.$$typeof){case N:return(e.displayName||\"Context\")+\".Consumer\";case P:return(e._context.displayName||\"Context\")+\".Provider\";case T:var t=e.render;return t=t.displayName||t.name||\"\",e.displayName||(\"\"!==t?\"ForwardRef(\"+t+\")\":\"ForwardRef\");case O:return q(e.type);case M:return q(e._render);case R:t=e._payload,e=e._init;try{return q(e(t))}catch(n){}}return null}function K(e){switch(typeof e){case\"boolean\":case\"number\":case\"object\":case\"string\":case\"undefined\":return e;default:return\"\"}}function Y(e){var t=e.type;return(e=e.nodeName)&&\"input\"===e.toLowerCase()&&(\"checkbox\"===t||\"radio\"===t)}function X(e){e._valueTracker||(e._valueTracker=function(e){var t=Y(e)?\"checked\":\"value\",n=Object.getOwnPropertyDescriptor(e.constructor.prototype,t),r=\"\"+e[t];if(!e.hasOwnProperty(t)&&\"undefined\"!==typeof n&&\"function\"===typeof n.get&&\"function\"===typeof n.set){var l=n.get,a=n.set;return Object.defineProperty(e,t,{configurable:!0,get:function(){return l.call(this)},set:function(e){r=\"\"+e,a.call(this,e)}}),Object.defineProperty(e,t,{enumerable:n.enumerable}),{getValue:function(){return r},setValue:function(e){r=\"\"+e},stopTracking:function(){e._valueTracker=null,delete e[t]}}}}(e))}function G(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var n=t.getValue(),r=\"\";return e&&(r=Y(e)?e.checked?\"true\":\"false\":e.value),(e=r)!==n&&(t.setValue(e),!0)}function J(e){if(\"undefined\"===typeof(e=e||(\"undefined\"!==typeof document?document:void 0)))return null;try{return e.activeElement||e.body}catch(t){return e.body}}function Z(e,t){var n=t.checked;return l({},t,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:null!=n?n:e._wrapperState.initialChecked})}function ee(e,t){var n=null==t.defaultValue?\"\":t.defaultValue,r=null!=t.checked?t.checked:t.defaultChecked;n=K(null!=t.value?t.value:n),e._wrapperState={initialChecked:r,initialValue:n,controlled:\"checkbox\"===t.type||\"radio\"===t.type?null!=t.checked:null!=t.value}}function te(e,t){null!=(t=t.checked)&&w(e,\"checked\",t,!1)}function ne(e,t){te(e,t);var n=K(t.value),r=t.type;if(null!=n)\"number\"===r?(0===n&&\"\"===e.value||e.value!=n)&&(e.value=\"\"+n):e.value!==\"\"+n&&(e.value=\"\"+n);else if(\"submit\"===r||\"reset\"===r)return void e.removeAttribute(\"value\");t.hasOwnProperty(\"value\")?le(e,t.type,n):t.hasOwnProperty(\"defaultValue\")&&le(e,t.type,K(t.defaultValue)),null==t.checked&&null!=t.defaultChecked&&(e.defaultChecked=!!t.defaultChecked)}function re(e,t,n){if(t.hasOwnProperty(\"value\")||t.hasOwnProperty(\"defaultValue\")){var r=t.type;if(!(\"submit\"!==r&&\"reset\"!==r||void 0!==t.value&&null!==t.value))return;t=\"\"+e._wrapperState.initialValue,n||t===e.value||(e.value=t),e.defaultValue=t}\"\"!==(n=e.name)&&(e.name=\"\"),e.defaultChecked=!!e._wrapperState.initialChecked,\"\"!==n&&(e.name=n)}function le(e,t,n){\"number\"===t&&J(e.ownerDocument)===e||(null==n?e.defaultValue=\"\"+e._wrapperState.initialValue:e.defaultValue!==\"\"+n&&(e.defaultValue=\"\"+n))}function ae(e,t){return e=l({children:void 0},t),(t=function(e){var t=\"\";return r.Children.forEach(e,(function(e){null!=e&&(t+=e)})),t}(t.children))&&(e.children=t),e}function oe(e,t,n,r){if(e=e.options,t){t={};for(var l=0;l=n.length))throw Error(o(93));n=n[0]}t=n}null==t&&(t=\"\"),n=t}e._wrapperState={initialValue:K(n)}}function se(e,t){var n=K(t.value),r=K(t.defaultValue);null!=n&&((n=\"\"+n)!==e.value&&(e.value=n),null==t.defaultValue&&e.defaultValue!==n&&(e.defaultValue=n)),null!=r&&(e.defaultValue=\"\"+r)}function ce(e){var t=e.textContent;t===e._wrapperState.initialValue&&\"\"!==t&&null!==t&&(e.value=t)}var fe=\"http://www.w3.org/1999/xhtml\",de=\"http://www.w3.org/2000/svg\";function pe(e){switch(e){case\"svg\":return\"http://www.w3.org/2000/svg\";case\"math\":return\"http://www.w3.org/1998/Math/MathML\";default:return\"http://www.w3.org/1999/xhtml\"}}function he(e,t){return null==e||\"http://www.w3.org/1999/xhtml\"===e?pe(t):\"http://www.w3.org/2000/svg\"===e&&\"foreignObject\"===t?\"http://www.w3.org/1999/xhtml\":e}var me,ve,ge=(ve=function(e,t){if(e.namespaceURI!==de||\"innerHTML\"in e)e.innerHTML=t;else{for((me=me||document.createElement(\"div\")).innerHTML=\"\",t=me.firstChild;e.firstChild;)e.removeChild(e.firstChild);for(;t.firstChild;)e.appendChild(t.firstChild)}},\"undefined\"!==typeof MSApp&&MSApp.execUnsafeLocalFunction?function(e,t,n,r){MSApp.execUnsafeLocalFunction((function(){return ve(e,t)}))}:ve);function ye(e,t){if(t){var n=e.firstChild;if(n&&n===e.lastChild&&3===n.nodeType)return void(n.nodeValue=t)}e.textContent=t}var be={animationIterationCount:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},we=[\"Webkit\",\"ms\",\"Moz\",\"O\"];function ke(e,t,n){return null==t||\"boolean\"===typeof t||\"\"===t?\"\":n||\"number\"!==typeof t||0===t||be.hasOwnProperty(e)&&be[e]?(\"\"+t).trim():t+\"px\"}function Se(e,t){for(var n in e=e.style,t)if(t.hasOwnProperty(n)){var r=0===n.indexOf(\"--\"),l=ke(n,t[n],r);\"float\"===n&&(n=\"cssFloat\"),r?e.setProperty(n,l):e[n]=l}}Object.keys(be).forEach((function(e){we.forEach((function(t){t=t+e.charAt(0).toUpperCase()+e.substring(1),be[t]=be[e]}))}));var Ee=l({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});function _e(e,t){if(t){if(Ee[e]&&(null!=t.children||null!=t.dangerouslySetInnerHTML))throw Error(o(137,e));if(null!=t.dangerouslySetInnerHTML){if(null!=t.children)throw Error(o(60));if(\"object\"!==typeof t.dangerouslySetInnerHTML||!(\"__html\"in t.dangerouslySetInnerHTML))throw Error(o(61))}if(null!=t.style&&\"object\"!==typeof t.style)throw Error(o(62))}}function xe(e,t){if(-1===e.indexOf(\"-\"))return\"string\"===typeof t.is;switch(e){case\"annotation-xml\":case\"color-profile\":case\"font-face\":case\"font-face-src\":case\"font-face-uri\":case\"font-face-format\":case\"font-face-name\":case\"missing-glyph\":return!1;default:return!0}}function Ce(e){return(e=e.target||e.srcElement||window).correspondingUseElement&&(e=e.correspondingUseElement),3===e.nodeType?e.parentNode:e}var Pe=null,Ne=null,Te=null;function Le(e){if(e=rl(e)){if(\"function\"!==typeof Pe)throw Error(o(280));var t=e.stateNode;t&&(t=al(t),Pe(e.stateNode,e.type,t))}}function ze(e){Ne?Te?Te.push(e):Te=[e]:Ne=e}function Oe(){if(Ne){var e=Ne,t=Te;if(Te=Ne=null,Le(e),t)for(e=0;e(r=31-Wt(r))?0:1<n;n++)t.push(e);return t}function $t(e,t,n){e.pendingLanes|=t;var r=t-1;e.suspendedLanes&=r,e.pingedLanes&=r,(e=e.eventTimes)[t=31-Wt(t)]=n}var Wt=Math.clz32?Math.clz32:function(e){return 0===e?32:31-(Ht(e)/Qt|0)|0},Ht=Math.log,Qt=Math.LN2;var qt=a.unstable_UserBlockingPriority,Kt=a.unstable_runWithPriority,Yt=!0;function Xt(e,t,n,r){De||Ie();var l=Jt,a=De;De=!0;try{Me(l,e,t,n,r)}finally{(De=a)||Ae()}}function Gt(e,t,n,r){Kt(qt,Jt.bind(null,e,t,n,r))}function Jt(e,t,n,r){var l;if(Yt)if((l=0===(4&t))&&0=Un),Vn=String.fromCharCode(32),Bn=!1;function $n(e,t){switch(e){case\"keyup\":return-1!==Fn.indexOf(t.keyCode);case\"keydown\":return 229!==t.keyCode;case\"keypress\":case\"mousedown\":case\"focusout\":return!0;default:return!1}}function Wn(e){return\"object\"===typeof(e=e.detail)&&\"data\"in e?e.data:null}var Hn=!1;var Qn={color:!0,date:!0,datetime:!0,\"datetime-local\":!0,email:!0,month:!0,number:!0,password:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0};function qn(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return\"input\"===t?!!Qn[e.type]:\"textarea\"===t}function Kn(e,t,n,r){ze(r),0<(t=Dr(t,\"onChange\")).length&&(n=new pn(\"onChange\",\"change\",null,n,r),e.push({event:n,listeners:t}))}var Yn=null,Xn=null;function Gn(e){Tr(e,0)}function Jn(e){if(G(ll(e)))return e}function Zn(e,t){if(\"change\"===e)return t}var er=!1;if(f){var tr;if(f){var nr=\"oninput\"in document;if(!nr){var rr=document.createElement(\"div\");rr.setAttribute(\"oninput\",\"return;\"),nr=\"function\"===typeof rr.oninput}tr=nr}else tr=!1;er=tr&&(!document.documentMode||9=t)return{node:r,offset:t-e};e=n}e:{for(;r;){if(r.nextSibling){r=r.nextSibling;break e}r=r.parentNode}r=void 0}r=pr(r)}}function mr(e,t){return!(!e||!t)&&(e===t||(!e||3!==e.nodeType)&&(t&&3===t.nodeType?mr(e,t.parentNode):\"contains\"in e?e.contains(t):!!e.compareDocumentPosition&&!!(16&e.compareDocumentPosition(t))))}function vr(){for(var e=window,t=J();t instanceof e.HTMLIFrameElement;){try{var n=\"string\"===typeof t.contentWindow.location.href}catch(r){n=!1}if(!n)break;t=J((e=t.contentWindow).document)}return t}function gr(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&(\"input\"===t&&(\"text\"===e.type||\"search\"===e.type||\"tel\"===e.type||\"url\"===e.type||\"password\"===e.type)||\"textarea\"===t||\"true\"===e.contentEditable)}var yr=f&&\"documentMode\"in document&&11>=document.documentMode,br=null,wr=null,kr=null,Sr=!1;function Er(e,t,n){var r=n.window===n?n.document:9===n.nodeType?n:n.ownerDocument;Sr||null==br||br!==J(r)||(\"selectionStart\"in(r=br)&&gr(r)?r={start:r.selectionStart,end:r.selectionEnd}:r={anchorNode:(r=(r.ownerDocument&&r.ownerDocument.defaultView||window).getSelection()).anchorNode,anchorOffset:r.anchorOffset,focusNode:r.focusNode,focusOffset:r.focusOffset},kr&&dr(kr,r)||(kr=r,0<(r=Dr(wr,\"onSelect\")).length&&(t=new pn(\"onSelect\",\"select\",null,t,n),e.push({event:t,listeners:r}),t.target=br)))}It(\"cancel cancel click click close close contextmenu contextMenu copy copy cut cut auxclick auxClick dblclick doubleClick dragend dragEnd dragstart dragStart drop drop focusin focus focusout blur input input invalid invalid keydown keyDown keypress keyPress keyup keyUp mousedown mouseDown mouseup mouseUp paste paste pause pause play play pointercancel pointerCancel pointerdown pointerDown pointerup pointerUp ratechange rateChange reset reset seeked seeked submit submit touchcancel touchCancel touchend touchEnd touchstart touchStart volumechange volumeChange\".split(\" \"),0),It(\"drag drag dragenter dragEnter dragexit dragExit dragleave dragLeave dragover dragOver mousemove mouseMove mouseout mouseOut mouseover mouseOver pointermove pointerMove pointerout pointerOut pointerover pointerOver scroll scroll toggle toggle touchmove touchMove wheel wheel\".split(\" \"),1),It(Mt,2);for(var _r=\"change selectionchange textInput compositionstart compositionend compositionupdate\".split(\" \"),xr=0;xr<_r.length;xr++)Rt.set(_r[xr],0);c(\"onMouseEnter\",[\"mouseout\",\"mouseover\"]),c(\"onMouseLeave\",[\"mouseout\",\"mouseover\"]),c(\"onPointerEnter\",[\"pointerout\",\"pointerover\"]),c(\"onPointerLeave\",[\"pointerout\",\"pointerover\"]),s(\"onChange\",\"change click focusin focusout input keydown keyup selectionchange\".split(\" \")),s(\"onSelect\",\"focusout contextmenu dragend focusin keydown keyup mousedown mouseup selectionchange\".split(\" \")),s(\"onBeforeInput\",[\"compositionend\",\"keypress\",\"textInput\",\"paste\"]),s(\"onCompositionEnd\",\"compositionend focusout keydown keypress keyup mousedown\".split(\" \")),s(\"onCompositionStart\",\"compositionstart focusout keydown keypress keyup mousedown\".split(\" \")),s(\"onCompositionUpdate\",\"compositionupdate focusout keydown keypress keyup mousedown\".split(\" \"));var Cr=\"abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange seeked seeking stalled suspend timeupdate volumechange waiting\".split(\" \"),Pr=new Set(\"cancel close invalid load scroll toggle\".split(\" \").concat(Cr));function Nr(e,t,n){var r=e.type||\"unknown-event\";e.currentTarget=n,function(e,t,n,r,l,a,u,i,s){if(Ye.apply(this,arguments),We){if(!We)throw Error(o(198));var c=He;We=!1,He=null,Qe||(Qe=!0,qe=c)}}(r,t,void 0,e),e.currentTarget=null}function Tr(e,t){t=0!==(4&t);for(var n=0;nil||(e.current=ul[il],ul[il]=null,il--)}function fl(e,t){il++,ul[il]=e.current,e.current=t}var dl={},pl=sl(dl),hl=sl(!1),ml=dl;function vl(e,t){var n=e.type.contextTypes;if(!n)return dl;var r=e.stateNode;if(r&&r.__reactInternalMemoizedUnmaskedChildContext===t)return r.__reactInternalMemoizedMaskedChildContext;var l,a={};for(l in n)a[l]=t[l];return r&&((e=e.stateNode).__reactInternalMemoizedUnmaskedChildContext=t,e.__reactInternalMemoizedMaskedChildContext=a),a}function gl(e){return null!==(e=e.childContextTypes)&&void 0!==e}function yl(){cl(hl),cl(pl)}function bl(e,t,n){if(pl.current!==dl)throw Error(o(168));fl(pl,t),fl(hl,n)}function wl(e,t,n){var r=e.stateNode;if(e=t.childContextTypes,\"function\"!==typeof r.getChildContext)return n;for(var a in r=r.getChildContext())if(!(a in e))throw Error(o(108,q(t)||\"Unknown\",a));return l({},n,r)}function kl(e){return e=(e=e.stateNode)&&e.__reactInternalMemoizedMergedChildContext||dl,ml=pl.current,fl(pl,e),fl(hl,hl.current),!0}function Sl(e,t,n){var r=e.stateNode;if(!r)throw Error(o(169));n?(e=wl(e,t,ml),r.__reactInternalMemoizedMergedChildContext=e,cl(hl),cl(pl),fl(pl,e)):cl(hl),fl(hl,n)}var El=null,_l=null,xl=a.unstable_runWithPriority,Cl=a.unstable_scheduleCallback,Pl=a.unstable_cancelCallback,Nl=a.unstable_shouldYield,Tl=a.unstable_requestPaint,Ll=a.unstable_now,zl=a.unstable_getCurrentPriorityLevel,Ol=a.unstable_ImmediatePriority,Rl=a.unstable_UserBlockingPriority,Ml=a.unstable_NormalPriority,Il=a.unstable_LowPriority,Fl=a.unstable_IdlePriority,Dl={},Ul=void 0!==Tl?Tl:function(){},Al=null,jl=null,Vl=!1,Bl=Ll(),$l=1e4>Bl?Ll:function(){return Ll()-Bl};function Wl(){switch(zl()){case Ol:return 99;case Rl:return 98;case Ml:return 97;case Il:return 96;case Fl:return 95;default:throw Error(o(332))}}function Hl(e){switch(e){case 99:return Ol;case 98:return Rl;case 97:return Ml;case 96:return Il;case 95:return Fl;default:throw Error(o(332))}}function Ql(e,t){return e=Hl(e),xl(e,t)}function ql(e,t,n){return e=Hl(e),Cl(e,t,n)}function Kl(){if(null!==jl){var e=jl;jl=null,Pl(e)}Yl()}function Yl(){if(!Vl&&null!==Al){Vl=!0;var e=0;try{var t=Al;Ql(99,(function(){for(;em?(v=f,f=null):v=f.sibling;var g=p(l,f,u[m],i);if(null===g){null===f&&(f=v);break}e&&f&&null===g.alternate&&t(l,f),o=a(g,o,m),null===c?s=g:c.sibling=g,c=g,f=v}if(m===u.length)return n(l,f),s;if(null===f){for(;mv?(g=m,m=null):g=m.sibling;var b=p(l,m,y.value,s);if(null===b){null===m&&(m=g);break}e&&m&&null===b.alternate&&t(l,m),u=a(b,u,v),null===f?c=b:f.sibling=b,f=b,m=g}if(y.done)return n(l,m),c;if(null===m){for(;!y.done;v++,y=i.next())null!==(y=d(l,y.value,s))&&(u=a(y,u,v),null===f?c=y:f.sibling=y,f=y);return c}for(m=r(l,m);!y.done;v++,y=i.next())null!==(y=h(m,l,v,y.value,s))&&(e&&null!==y.alternate&&m.delete(null===y.key?v:y.key),u=a(y,u,v),null===f?c=y:f.sibling=y,f=y);return e&&m.forEach((function(e){return t(l,e)})),c}return function(e,r,a,i){var s=\"object\"===typeof a&&null!==a&&a.type===_&&null===a.key;s&&(a=a.props.children);var c=\"object\"===typeof a&&null!==a;if(c)switch(a.$$typeof){case S:e:{for(c=a.key,s=r;null!==s;){if(s.key===c){if(7===s.tag){if(a.type===_){n(e,s.sibling),(r=l(s,a.props.children)).return=e,e=r;break e}}else if(s.elementType===a.type){n(e,s.sibling),(r=l(s,a.props)).ref=Ea(e,s,a),r.return=e,e=r;break e}n(e,s);break}t(e,s),s=s.sibling}a.type===_?((r=Ki(a.props.children,e.mode,i,a.key)).return=e,e=r):((i=qi(a.type,a.key,a.props,null,e.mode,i)).ref=Ea(e,r,a),i.return=e,e=i)}return u(e);case E:e:{for(s=a.key;null!==r;){if(r.key===s){if(4===r.tag&&r.stateNode.containerInfo===a.containerInfo&&r.stateNode.implementation===a.implementation){n(e,r.sibling),(r=l(r,a.children||[])).return=e,e=r;break e}n(e,r);break}t(e,r),r=r.sibling}(r=Gi(a,e.mode,i)).return=e,e=r}return u(e)}if(\"string\"===typeof a||\"number\"===typeof a)return a=\"\"+a,null!==r&&6===r.tag?(n(e,r.sibling),(r=l(r,a)).return=e,e=r):(n(e,r),(r=Xi(a,e.mode,i)).return=e,e=r),u(e);if(Sa(a))return m(e,r,a,i);if(B(a))return v(e,r,a,i);if(c&&_a(e,a),\"undefined\"===typeof a&&!s)switch(e.tag){case 1:case 22:case 0:case 11:case 15:throw Error(o(152,q(e.type)||\"Component\"))}return n(e,r)}}var Ca=xa(!0),Pa=xa(!1),Na={},Ta=sl(Na),La=sl(Na),za=sl(Na);function Oa(e){if(e===Na)throw Error(o(174));return e}function Ra(e,t){switch(fl(za,t),fl(La,e),fl(Ta,Na),e=t.nodeType){case 9:case 11:t=(t=t.documentElement)?t.namespaceURI:he(null,\"\");break;default:t=he(t=(e=8===e?t.parentNode:t).namespaceURI||null,e=e.tagName)}cl(Ta),fl(Ta,t)}function Ma(){cl(Ta),cl(La),cl(za)}function Ia(e){Oa(za.current);var t=Oa(Ta.current),n=he(t,e.type);t!==n&&(fl(La,e),fl(Ta,n))}function Fa(e){La.current===e&&(cl(Ta),cl(La))}var Da=sl(0);function Ua(e){for(var t=e;null!==t;){if(13===t.tag){var n=t.memoizedState;if(null!==n&&(null===(n=n.dehydrated)||\"$?\"===n.data||\"$!\"===n.data))return t}else if(19===t.tag&&void 0!==t.memoizedProps.revealOrder){if(0!==(64&t.flags))return t}else if(null!==t.child){t.child.return=t,t=t.child;continue}if(t===e)break;for(;null===t.sibling;){if(null===t.return||t.return===e)return null;t=t.return}t.sibling.return=t.return,t=t.sibling}return null}var Aa=null,ja=null,Va=!1;function Ba(e,t){var n=Wi(5,null,null,0);n.elementType=\"DELETED\",n.type=\"DELETED\",n.stateNode=t,n.return=e,n.flags=8,null!==e.lastEffect?(e.lastEffect.nextEffect=n,e.lastEffect=n):e.firstEffect=e.lastEffect=n}function $a(e,t){switch(e.tag){case 5:var n=e.type;return null!==(t=1!==t.nodeType||n.toLowerCase()!==t.nodeName.toLowerCase()?null:t)&&(e.stateNode=t,!0);case 6:return null!==(t=\"\"===e.pendingProps||3!==t.nodeType?null:t)&&(e.stateNode=t,!0);default:return!1}}function Wa(e){if(Va){var t=ja;if(t){var n=t;if(!$a(e,t)){if(!(t=Kr(n.nextSibling))||!$a(e,t))return e.flags=-1025&e.flags|2,Va=!1,void(Aa=e);Ba(Aa,n)}Aa=e,ja=Kr(t.firstChild)}else e.flags=-1025&e.flags|2,Va=!1,Aa=e}}function Ha(e){for(e=e.return;null!==e&&5!==e.tag&&3!==e.tag&&13!==e.tag;)e=e.return;Aa=e}function Qa(e){if(e!==Aa)return!1;if(!Va)return Ha(e),Va=!0,!1;var t=e.type;if(5!==e.tag||\"head\"!==t&&\"body\"!==t&&!Wr(t,e.memoizedProps))for(t=ja;t;)Ba(e,t),t=Kr(t.nextSibling);if(Ha(e),13===e.tag){if(!(e=null!==(e=e.memoizedState)?e.dehydrated:null))throw Error(o(317));e:{for(e=e.nextSibling,t=0;e;){if(8===e.nodeType){var n=e.data;if(\"/$\"===n){if(0===t){ja=Kr(e.nextSibling);break e}t--}else\"$\"!==n&&\"$!\"!==n&&\"$?\"!==n||t++}e=e.nextSibling}ja=null}}else ja=Aa?Kr(e.stateNode.nextSibling):null;return!0}function qa(){ja=Aa=null,Va=!1}var Ka=[];function Ya(){for(var e=0;ea))throw Error(o(301));a+=1,to=eo=null,t.updateQueue=null,Xa.current=Io,e=n(r,l)}while(ro)}if(Xa.current=Oo,t=null!==eo&&null!==eo.next,Ja=0,to=eo=Za=null,no=!1,t)throw Error(o(300));return e}function uo(){var e={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};return null===to?Za.memoizedState=to=e:to=to.next=e,to}function io(){if(null===eo){var e=Za.alternate;e=null!==e?e.memoizedState:null}else e=eo.next;var t=null===to?Za.memoizedState:to.next;if(null!==t)to=t,eo=e;else{if(null===e)throw Error(o(310));e={memoizedState:(eo=e).memoizedState,baseState:eo.baseState,baseQueue:eo.baseQueue,queue:eo.queue,next:null},null===to?Za.memoizedState=to=e:to=to.next=e}return to}function so(e,t){return\"function\"===typeof t?t(e):t}function co(e){var t=io(),n=t.queue;if(null===n)throw Error(o(311));n.lastRenderedReducer=e;var r=eo,l=r.baseQueue,a=n.pending;if(null!==a){if(null!==l){var u=l.next;l.next=a.next,a.next=u}r.baseQueue=l=a,n.pending=null}if(null!==l){l=l.next,r=r.baseState;var i=u=a=null,s=l;do{var c=s.lane;if((Ja&c)===c)null!==i&&(i=i.next={lane:0,action:s.action,eagerReducer:s.eagerReducer,eagerState:s.eagerState,next:null}),r=s.eagerReducer===e?s.eagerState:e(r,s.action);else{var f={lane:c,action:s.action,eagerReducer:s.eagerReducer,eagerState:s.eagerState,next:null};null===i?(u=i=f,a=r):i=i.next=f,Za.lanes|=c,Vu|=c}s=s.next}while(null!==s&&s!==l);null===i?a=r:i.next=u,cr(r,t.memoizedState)||(Do=!0),t.memoizedState=r,t.baseState=a,t.baseQueue=i,n.lastRenderedState=r}return[t.memoizedState,n.dispatch]}function fo(e){var t=io(),n=t.queue;if(null===n)throw Error(o(311));n.lastRenderedReducer=e;var r=n.dispatch,l=n.pending,a=t.memoizedState;if(null!==l){n.pending=null;var u=l=l.next;do{a=e(a,u.action),u=u.next}while(u!==l);cr(a,t.memoizedState)||(Do=!0),t.memoizedState=a,null===t.baseQueue&&(t.baseState=a),n.lastRenderedState=a}return[a,r]}function po(e,t,n){var r=t._getVersion;r=r(t._source);var l=t._workInProgressVersionPrimary;if(null!==l?e=l===r:(e=e.mutableReadLanes,(e=(Ja&e)===e)&&(t._workInProgressVersionPrimary=r,Ka.push(t))),e)return n(t._source);throw Ka.push(t),Error(o(350))}function ho(e,t,n,r){var l=Ru;if(null===l)throw Error(o(349));var a=t._getVersion,u=a(t._source),i=Xa.current,s=i.useState((function(){return po(l,t,n)})),c=s[1],f=s[0];s=to;var d=e.memoizedState,p=d.refs,h=p.getSnapshot,m=d.source;d=d.subscribe;var v=Za;return e.memoizedState={refs:p,source:t,subscribe:r},i.useEffect((function(){p.getSnapshot=n,p.setSnapshot=c;var e=a(t._source);if(!cr(u,e)){e=n(t._source),cr(f,e)||(c(e),e=pi(v),l.mutableReadLanes|=e&l.pendingLanes),e=l.mutableReadLanes,l.entangledLanes|=e;for(var r=l.entanglements,o=e;0n?98:n,(function(){e(!0)})),Ql(97<\\/script>\",e=e.removeChild(e.firstChild)):\"string\"===typeof r.is?e=s.createElement(n,{is:r.is}):(e=s.createElement(n),\"select\"===n&&(s=e,r.multiple?s.multiple=!0:r.size&&(s.size=r.size))):e=s.createElementNS(e,n),e[Jr]=t,e[Zr]=r,Ko(e,t),t.stateNode=e,s=xe(n,r),n){case\"dialog\":Lr(\"cancel\",e),Lr(\"close\",e),a=r;break;case\"iframe\":case\"object\":case\"embed\":Lr(\"load\",e),a=r;break;case\"video\":case\"audio\":for(a=0;aQu&&(t.flags|=64,u=!0,ou(r,!1),t.lanes=33554432)}else{if(!u)if(null!==(e=Ua(s))){if(t.flags|=64,u=!0,null!==(n=e.updateQueue)&&(t.updateQueue=n,t.flags|=4),ou(r,!0),null===r.tail&&\"hidden\"===r.tailMode&&!s.alternate&&!Va)return null!==(t=t.lastEffect=r.lastEffect)&&(t.nextEffect=null),null}else 2*$l()-r.renderingStartTime>Qu&&1073741824!==n&&(t.flags|=64,u=!0,ou(r,!1),t.lanes=33554432);r.isBackwards?(s.sibling=t.child,t.child=s):(null!==(n=r.last)?n.sibling=s:t.child=s,r.last=s)}return null!==r.tail?(n=r.tail,r.rendering=n,r.tail=n.sibling,r.lastEffect=t.lastEffect,r.renderingStartTime=$l(),n.sibling=null,t=Da.current,fl(Da,u?1&t|2:1&t),n):null;case 23:case 24:return Ei(),null!==e&&null!==e.memoizedState!==(null!==t.memoizedState)&&\"unstable-defer-without-hiding\"!==r.mode&&(t.flags|=4),null}throw Error(o(156,t.tag))}function iu(e){switch(e.tag){case 1:gl(e.type)&&yl();var t=e.flags;return 4096&t?(e.flags=-4097&t|64,e):null;case 3:if(Ma(),cl(hl),cl(pl),Ya(),0!==(64&(t=e.flags)))throw Error(o(285));return e.flags=-4097&t|64,e;case 5:return Fa(e),null;case 13:return cl(Da),4096&(t=e.flags)?(e.flags=-4097&t|64,e):null;case 19:return cl(Da),null;case 4:return Ma(),null;case 10:return ra(e),null;case 23:case 24:return Ei(),null;default:return null}}function su(e,t){try{var n=\"\",r=t;do{n+=Q(r),r=r.return}while(r);var l=n}catch(a){l=\"\\nError generating stack: \"+a.message+\"\\n\"+a.stack}return{value:e,source:t,stack:l}}function cu(e,t){try{console.error(t.value)}catch(n){setTimeout((function(){throw n}))}}Ko=function(e,t){for(var n=t.child;null!==n;){if(5===n.tag||6===n.tag)e.appendChild(n.stateNode);else if(4!==n.tag&&null!==n.child){n.child.return=n,n=n.child;continue}if(n===t)break;for(;null===n.sibling;){if(null===n.return||n.return===t)return;n=n.return}n.sibling.return=n.return,n=n.sibling}},Yo=function(e,t,n,r){var a=e.memoizedProps;if(a!==r){e=t.stateNode,Oa(Ta.current);var o,u=null;switch(n){case\"input\":a=Z(e,a),r=Z(e,r),u=[];break;case\"option\":a=ae(e,a),r=ae(e,r),u=[];break;case\"select\":a=l({},a,{value:void 0}),r=l({},r,{value:void 0}),u=[];break;case\"textarea\":a=ue(e,a),r=ue(e,r),u=[];break;default:\"function\"!==typeof a.onClick&&\"function\"===typeof r.onClick&&(e.onclick=jr)}for(f in _e(n,r),n=null,a)if(!r.hasOwnProperty(f)&&a.hasOwnProperty(f)&&null!=a[f])if(\"style\"===f){var s=a[f];for(o in s)s.hasOwnProperty(o)&&(n||(n={}),n[o]=\"\")}else\"dangerouslySetInnerHTML\"!==f&&\"children\"!==f&&\"suppressContentEditableWarning\"!==f&&\"suppressHydrationWarning\"!==f&&\"autoFocus\"!==f&&(i.hasOwnProperty(f)?u||(u=[]):(u=u||[]).push(f,null));for(f in r){var c=r[f];if(s=null!=a?a[f]:void 0,r.hasOwnProperty(f)&&c!==s&&(null!=c||null!=s))if(\"style\"===f)if(s){for(o in s)!s.hasOwnProperty(o)||c&&c.hasOwnProperty(o)||(n||(n={}),n[o]=\"\");for(o in c)c.hasOwnProperty(o)&&s[o]!==c[o]&&(n||(n={}),n[o]=c[o])}else n||(u||(u=[]),u.push(f,n)),n=c;else\"dangerouslySetInnerHTML\"===f?(c=c?c.__html:void 0,s=s?s.__html:void 0,null!=c&&s!==c&&(u=u||[]).push(f,c)):\"children\"===f?\"string\"!==typeof c&&\"number\"!==typeof c||(u=u||[]).push(f,\"\"+c):\"suppressContentEditableWarning\"!==f&&\"suppressHydrationWarning\"!==f&&(i.hasOwnProperty(f)?(null!=c&&\"onScroll\"===f&&Lr(\"scroll\",e),u||s===c||(u=[])):\"object\"===typeof c&&null!==c&&c.$$typeof===I?c.toString():(u=u||[]).push(f,c))}n&&(u=u||[]).push(\"style\",n);var f=u;(t.updateQueue=f)&&(t.flags|=4)}},Xo=function(e,t,n,r){n!==r&&(t.flags|=4)};var fu=\"function\"===typeof WeakMap?WeakMap:Map;function du(e,t,n){(n=ca(-1,n)).tag=3,n.payload={element:null};var r=t.value;return n.callback=function(){Xu||(Xu=!0,Gu=r),cu(0,t)},n}function pu(e,t,n){(n=ca(-1,n)).tag=3;var r=e.type.getDerivedStateFromError;if(\"function\"===typeof r){var l=t.value;n.payload=function(){return cu(0,t),r(l)}}var a=e.stateNode;return null!==a&&\"function\"===typeof a.componentDidCatch&&(n.callback=function(){\"function\"!==typeof r&&(null===Ju?Ju=new Set([this]):Ju.add(this),cu(0,t));var e=t.stack;this.componentDidCatch(t.value,{componentStack:null!==e?e:\"\"})}),n}var hu=\"function\"===typeof WeakSet?WeakSet:Set;function mu(e){var t=e.ref;if(null!==t)if(\"function\"===typeof t)try{t(null)}catch(n){ji(e,n)}else t.current=null}function vu(e,t){switch(t.tag){case 0:case 11:case 15:case 22:case 5:case 6:case 4:case 17:return;case 1:if(256&t.flags&&null!==e){var n=e.memoizedProps,r=e.memoizedState;t=(e=t.stateNode).getSnapshotBeforeUpdate(t.elementType===t.type?n:Gl(t.type,n),r),e.__reactInternalSnapshotBeforeUpdate=t}return;case 3:return void(256&t.flags&&qr(t.stateNode.containerInfo))}throw Error(o(163))}function gu(e,t,n){switch(n.tag){case 0:case 11:case 15:case 22:if(null!==(t=null!==(t=n.updateQueue)?t.lastEffect:null)){e=t=t.next;do{if(3===(3&e.tag)){var r=e.create;e.destroy=r()}e=e.next}while(e!==t)}if(null!==(t=null!==(t=n.updateQueue)?t.lastEffect:null)){e=t=t.next;do{var l=e;r=l.next,0!==(4&(l=l.tag))&&0!==(1&l)&&(Di(n,e),Fi(n,e)),e=r}while(e!==t)}return;case 1:return e=n.stateNode,4&n.flags&&(null===t?e.componentDidMount():(r=n.elementType===n.type?t.memoizedProps:Gl(n.type,t.memoizedProps),e.componentDidUpdate(r,t.memoizedState,e.__reactInternalSnapshotBeforeUpdate))),void(null!==(t=n.updateQueue)&&ha(n,t,e));case 3:if(null!==(t=n.updateQueue)){if(e=null,null!==n.child)switch(n.child.tag){case 5:case 1:e=n.child.stateNode}ha(n,t,e)}return;case 5:return e=n.stateNode,void(null===t&&4&n.flags&&$r(n.type,n.memoizedProps)&&e.focus());case 6:case 4:case 12:case 19:case 17:case 20:case 21:case 23:case 24:return;case 13:return void(null===n.memoizedState&&(n=n.alternate,null!==n&&(n=n.memoizedState,null!==n&&(n=n.dehydrated,null!==n&&St(n)))))}throw Error(o(163))}function yu(e,t){for(var n=e;;){if(5===n.tag){var r=n.stateNode;if(t)\"function\"===typeof(r=r.style).setProperty?r.setProperty(\"display\",\"none\",\"important\"):r.display=\"none\";else{r=n.stateNode;var l=n.memoizedProps.style;l=void 0!==l&&null!==l&&l.hasOwnProperty(\"display\")?l.display:null,r.style.display=ke(\"display\",l)}}else if(6===n.tag)n.stateNode.nodeValue=t?\"\":n.memoizedProps;else if((23!==n.tag&&24!==n.tag||null===n.memoizedState||n===e)&&null!==n.child){n.child.return=n,n=n.child;continue}if(n===e)break;for(;null===n.sibling;){if(null===n.return||n.return===e)return;n=n.return}n.sibling.return=n.return,n=n.sibling}}function bu(e,t){if(_l&&\"function\"===typeof _l.onCommitFiberUnmount)try{_l.onCommitFiberUnmount(El,t)}catch(a){}switch(t.tag){case 0:case 11:case 14:case 15:case 22:if(null!==(e=t.updateQueue)&&null!==(e=e.lastEffect)){var n=e=e.next;do{var r=n,l=r.destroy;if(r=r.tag,void 0!==l)if(0!==(4&r))Di(t,n);else{r=t;try{l()}catch(a){ji(r,a)}}n=n.next}while(n!==e)}break;case 1:if(mu(t),\"function\"===typeof(e=t.stateNode).componentWillUnmount)try{e.props=t.memoizedProps,e.state=t.memoizedState,e.componentWillUnmount()}catch(a){ji(t,a)}break;case 5:mu(t);break;case 4:xu(e,t)}}function wu(e){e.alternate=null,e.child=null,e.dependencies=null,e.firstEffect=null,e.lastEffect=null,e.memoizedProps=null,e.memoizedState=null,e.pendingProps=null,e.return=null,e.updateQueue=null}function ku(e){return 5===e.tag||3===e.tag||4===e.tag}function Su(e){e:{for(var t=e.return;null!==t;){if(ku(t))break e;t=t.return}throw Error(o(160))}var n=t;switch(t=n.stateNode,n.tag){case 5:var r=!1;break;case 3:case 4:t=t.containerInfo,r=!0;break;default:throw Error(o(161))}16&n.flags&&(ye(t,\"\"),n.flags&=-17);e:t:for(n=e;;){for(;null===n.sibling;){if(null===n.return||ku(n.return)){n=null;break e}n=n.return}for(n.sibling.return=n.return,n=n.sibling;5!==n.tag&&6!==n.tag&&18!==n.tag;){if(2&n.flags)continue t;if(null===n.child||4===n.tag)continue t;n.child.return=n,n=n.child}if(!(2&n.flags)){n=n.stateNode;break e}}r?Eu(e,n,t):_u(e,n,t)}function Eu(e,t,n){var r=e.tag,l=5===r||6===r;if(l)e=l?e.stateNode:e.stateNode.instance,t?8===n.nodeType?n.parentNode.insertBefore(e,t):n.insertBefore(e,t):(8===n.nodeType?(t=n.parentNode).insertBefore(e,n):(t=n).appendChild(e),null!==(n=n._reactRootContainer)&&void 0!==n||null!==t.onclick||(t.onclick=jr));else if(4!==r&&null!==(e=e.child))for(Eu(e,t,n),e=e.sibling;null!==e;)Eu(e,t,n),e=e.sibling}function _u(e,t,n){var r=e.tag,l=5===r||6===r;if(l)e=l?e.stateNode:e.stateNode.instance,t?n.insertBefore(e,t):n.appendChild(e);else if(4!==r&&null!==(e=e.child))for(_u(e,t,n),e=e.sibling;null!==e;)_u(e,t,n),e=e.sibling}function xu(e,t){for(var n,r,l=t,a=!1;;){if(!a){a=l.return;e:for(;;){if(null===a)throw Error(o(160));switch(n=a.stateNode,a.tag){case 5:r=!1;break e;case 3:case 4:n=n.containerInfo,r=!0;break e}a=a.return}a=!0}if(5===l.tag||6===l.tag){e:for(var u=e,i=l,s=i;;)if(bu(u,s),null!==s.child&&4!==s.tag)s.child.return=s,s=s.child;else{if(s===i)break e;for(;null===s.sibling;){if(null===s.return||s.return===i)break e;s=s.return}s.sibling.return=s.return,s=s.sibling}r?(u=n,i=l.stateNode,8===u.nodeType?u.parentNode.removeChild(i):u.removeChild(i)):n.removeChild(l.stateNode)}else if(4===l.tag){if(null!==l.child){n=l.stateNode.containerInfo,r=!0,l.child.return=l,l=l.child;continue}}else if(bu(e,l),null!==l.child){l.child.return=l,l=l.child;continue}if(l===t)break;for(;null===l.sibling;){if(null===l.return||l.return===t)return;4===(l=l.return).tag&&(a=!1)}l.sibling.return=l.return,l=l.sibling}}function Cu(e,t){switch(t.tag){case 0:case 11:case 14:case 15:case 22:var n=t.updateQueue;if(null!==(n=null!==n?n.lastEffect:null)){var r=n=n.next;do{3===(3&r.tag)&&(e=r.destroy,r.destroy=void 0,void 0!==e&&e()),r=r.next}while(r!==n)}return;case 1:case 12:case 17:return;case 5:if(null!=(n=t.stateNode)){r=t.memoizedProps;var l=null!==e?e.memoizedProps:r;e=t.type;var a=t.updateQueue;if(t.updateQueue=null,null!==a){for(n[Zr]=r,\"input\"===e&&\"radio\"===r.type&&null!=r.name&&te(n,r),xe(e,l),t=xe(e,r),l=0;ll&&(l=u),n&=~a}if(n=l,10<(n=(120>(n=$l()-n)?120:480>n?480:1080>n?1080:1920>n?1920:3e3>n?3e3:4320>n?4320:1960*Tu(n/1960))-n)){e.timeoutHandle=Hr(Oi.bind(null,e),n);break}Oi(e);break;default:throw Error(o(329))}}return vi(e,$l()),e.callbackNode===t?gi.bind(null,e):null}function yi(e,t){for(t&=~$u,t&=~Bu,e.suspendedLanes|=t,e.pingedLanes&=~t,e=e.expirationTimes;0 component higher in the tree to provide a loading indicator or placeholder to display.\")}5!==Uu&&(Uu=2),i=su(i,u),d=o;do{switch(d.tag){case 3:a=i,d.flags|=4096,t&=-t,d.lanes|=t,da(d,du(0,a,t));break e;case 1:a=i;var k=d.type,S=d.stateNode;if(0===(64&d.flags)&&(\"function\"===typeof k.getDerivedStateFromError||null!==S&&\"function\"===typeof S.componentDidCatch&&(null===Ju||!Ju.has(S)))){d.flags|=4096,t&=-t,d.lanes|=t,da(d,pu(d,a,t));break e}}d=d.return}while(null!==d)}zi(n)}catch(E){t=E,Mu===n&&null!==n&&(Mu=n=n.return);continue}break}}function Ci(){var e=Lu.current;return Lu.current=Oo,null===e?Oo:e}function Pi(e,t){var n=Ou;Ou|=16;var r=Ci();for(Ru===e&&Iu===t||_i(e,t);;)try{Ni();break}catch(l){xi(e,l)}if(na(),Ou=n,Lu.current=r,null!==Mu)throw Error(o(261));return Ru=null,Iu=0,Uu}function Ni(){for(;null!==Mu;)Li(Mu)}function Ti(){for(;null!==Mu&&!Nl();)Li(Mu)}function Li(e){var t=Ku(e.alternate,e,Fu);e.memoizedProps=e.pendingProps,null===t?zi(e):Mu=t,zu.current=null}function zi(e){var t=e;do{var n=t.alternate;if(e=t.return,0===(2048&t.flags)){if(null!==(n=uu(n,t,Fu)))return void(Mu=n);if(24!==(n=t).tag&&23!==n.tag||null===n.memoizedState||0!==(1073741824&Fu)||0===(4&n.mode)){for(var r=0,l=n.child;null!==l;)r|=l.lanes|l.childLanes,l=l.sibling;n.childLanes=r}null!==e&&0===(2048&e.flags)&&(null===e.firstEffect&&(e.firstEffect=t.firstEffect),null!==t.lastEffect&&(null!==e.lastEffect&&(e.lastEffect.nextEffect=t.firstEffect),e.lastEffect=t.lastEffect),1u&&(i=u,u=S,S=i),i=hr(b,S),a=hr(b,u),i&&a&&(1!==k.rangeCount||k.anchorNode!==i.node||k.anchorOffset!==i.offset||k.focusNode!==a.node||k.focusOffset!==a.offset)&&((w=w.createRange()).setStart(i.node,i.offset),k.removeAllRanges(),S>u?(k.addRange(w),k.extend(a.node,a.offset)):(w.setEnd(a.node,a.offset),k.addRange(w))))),w=[];for(k=b;k=k.parentNode;)1===k.nodeType&&w.push({element:k,left:k.scrollLeft,top:k.scrollTop});for(\"function\"===typeof b.focus&&b.focus(),b=0;b$l()-Hu?_i(e,0):$u|=n),vi(e,t)}function Bi(e,t){var n=e.stateNode;null!==n&&n.delete(t),0===(t=0)&&(0===(2&(t=e.mode))?t=1:0===(4&t)?t=99===Wl()?1:2:(0===ii&&(ii=ju),0===(t=Vt(62914560&~ii))&&(t=4194304))),n=di(),null!==(e=mi(e,t))&&($t(e,t,n),vi(e,n))}function $i(e,t,n,r){this.tag=e,this.key=n,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=t,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=r,this.flags=0,this.lastEffect=this.firstEffect=this.nextEffect=null,this.childLanes=this.lanes=0,this.alternate=null}function Wi(e,t,n,r){return new $i(e,t,n,r)}function Hi(e){return!(!(e=e.prototype)||!e.isReactComponent)}function Qi(e,t){var n=e.alternate;return null===n?((n=Wi(e.tag,t,e.key,e.mode)).elementType=e.elementType,n.type=e.type,n.stateNode=e.stateNode,n.alternate=e,e.alternate=n):(n.pendingProps=t,n.type=e.type,n.flags=0,n.nextEffect=null,n.firstEffect=null,n.lastEffect=null),n.childLanes=e.childLanes,n.lanes=e.lanes,n.child=e.child,n.memoizedProps=e.memoizedProps,n.memoizedState=e.memoizedState,n.updateQueue=e.updateQueue,t=e.dependencies,n.dependencies=null===t?null:{lanes:t.lanes,firstContext:t.firstContext},n.sibling=e.sibling,n.index=e.index,n.ref=e.ref,n}function qi(e,t,n,r,l,a){var u=2;if(r=e,\"function\"===typeof e)Hi(e)&&(u=1);else if(\"string\"===typeof e)u=5;else e:switch(e){case _:return Ki(n.children,l,a,t);case F:u=8,l|=16;break;case x:u=8,l|=1;break;case C:return(e=Wi(12,n,t,8|l)).elementType=C,e.type=C,e.lanes=a,e;case L:return(e=Wi(13,n,t,l)).type=L,e.elementType=L,e.lanes=a,e;case z:return(e=Wi(19,n,t,l)).elementType=z,e.lanes=a,e;case D:return Yi(n,l,a,t);case U:return(e=Wi(24,n,t,l)).elementType=U,e.lanes=a,e;default:if(\"object\"===typeof e&&null!==e)switch(e.$$typeof){case P:u=10;break e;case N:u=9;break e;case T:u=11;break e;case O:u=14;break e;case R:u=16,r=null;break e;case M:u=22;break e}throw Error(o(130,null==e?e:typeof e,\"\"))}return(t=Wi(u,n,t,l)).elementType=e,t.type=r,t.lanes=a,t}function Ki(e,t,n,r){return(e=Wi(7,e,r,t)).lanes=n,e}function Yi(e,t,n,r){return(e=Wi(23,e,r,t)).elementType=D,e.lanes=n,e}function Xi(e,t,n){return(e=Wi(6,e,null,t)).lanes=n,e}function Gi(e,t,n){return(t=Wi(4,null!==e.children?e.children:[],e.key,t)).lanes=n,t.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},t}function Ji(e,t,n){this.tag=t,this.containerInfo=e,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.pendingContext=this.context=null,this.hydrate=n,this.callbackNode=null,this.callbackPriority=0,this.eventTimes=Bt(0),this.expirationTimes=Bt(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=Bt(0),this.mutableSourceEagerHydrationData=null}function Zi(e,t,n){var r=3=w},o=function(){},t.unstable_forceFrameRate=function(e){0>e||125>>1,l=e[r];if(!(void 0!==l&&0C(o,n))void 0!==i&&0>C(i,o)?(e[r]=i,e[u]=n,r=u):(e[r]=o,e[a]=n,r=a);else{if(!(void 0!==i&&0>C(i,n)))break e;e[r]=i,e[u]=n,r=u}}}return t}return null}function C(e,t){var n=e.sortIndex-t.sortIndex;return 0!==n?n:e.id-t.id}var P=[],N=[],T=1,L=null,z=3,O=!1,R=!1,M=!1;function I(e){for(var t=_(N);null!==t;){if(null===t.callback)x(N);else{if(!(t.startTime<=e))break;x(N),t.sortIndex=t.expirationTime,E(P,t)}t=_(N)}}function F(e){if(M=!1,I(e),!R)if(null!==_(P))R=!0,r(D);else{var t=_(N);null!==t&&l(F,t.startTime-e)}}function D(e,n){R=!1,M&&(M=!1,a()),O=!0;var r=z;try{for(I(n),L=_(P);null!==L&&(!(L.expirationTime>n)||e&&!t.unstable_shouldYield());){var o=L.callback;if(\"function\"===typeof o){L.callback=null,z=L.priorityLevel;var u=o(L.expirationTime<=n);n=t.unstable_now(),\"function\"===typeof u?L.callback=u:L===_(P)&&x(P),I(n)}else x(P);L=_(P)}if(null!==L)var i=!0;else{var s=_(N);null!==s&&l(F,s.startTime-n),i=!1}return i}finally{L=null,z=r,O=!1}}var U=o;t.unstable_IdlePriority=5,t.unstable_ImmediatePriority=1,t.unstable_LowPriority=4,t.unstable_NormalPriority=3,t.unstable_Profiling=null,t.unstable_UserBlockingPriority=2,t.unstable_cancelCallback=function(e){e.callback=null},t.unstable_continueExecution=function(){R||O||(R=!0,r(D))},t.unstable_getCurrentPriorityLevel=function(){return z},t.unstable_getFirstCallbackNode=function(){return _(P)},t.unstable_next=function(e){switch(z){case 1:case 2:case 3:var t=3;break;default:t=z}var n=z;z=t;try{return e()}finally{z=n}},t.unstable_pauseExecution=function(){},t.unstable_requestPaint=U,t.unstable_runWithPriority=function(e,t){switch(e){case 1:case 2:case 3:case 4:case 5:break;default:e=3}var n=z;z=e;try{return t()}finally{z=n}},t.unstable_scheduleCallback=function(e,n,o){var u=t.unstable_now();switch(\"object\"===typeof o&&null!==o?o=\"number\"===typeof(o=o.delay)&&0u?(e.sortIndex=o,E(N,e),null===_(P)&&e===_(N)&&(M?a():M=!0,l(F,o-u))):(e.sortIndex=i,E(P,e),R||O||(R=!0,r(D))),e},t.unstable_wrapCallback=function(e){var t=z;return function(){var n=z;z=t;try{return e.apply(this,arguments)}finally{z=n}}}},,function(e,t,n){\"use strict\";n(2);var r=n(1),l=60103;if(t.Fragment=60107,\"function\"===typeof Symbol&&Symbol.for){var a=Symbol.for;l=a(\"react.element\"),t.Fragment=a(\"react.fragment\")}var o=r.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,u=Object.prototype.hasOwnProperty,i={key:!0,ref:!0,__self:!0,__source:!0};function s(e,t,n){var r,a={},s=null,c=null;for(r in void 0!==n&&(s=\"\"+n),void 0!==t.key&&(s=\"\"+t.key),void 0!==t.ref&&(c=t.ref),t)u.call(t,r)&&!i.hasOwnProperty(r)&&(a[r]=t[r]);if(e&&e.defaultProps)for(r in t=e.defaultProps)void 0===a[r]&&(a[r]=t[r]);return{$$typeof:l,type:e,key:s,ref:c,props:a,_owner:o.current}}t.jsx=s,t.jsxs=s}]]);","name":"static/js/2.2151c903.chunk.js","map":{"version":3,"sources":["static/js/2.2151c903.chunk.js"],"names":["this","push","module","exports","__webpack_require__","getOwnPropertySymbols","Object","hasOwnProperty","prototype","propIsEnumerable","propertyIsEnumerable","toObject","val","undefined","TypeError","assign","test1","String","getOwnPropertyNames","test2","i","fromCharCode","map","n","join","test3","split","forEach","letter","keys","err","shouldUseNative","target","source","from","symbols","to","s","arguments","length","key","call","checkDCE","__REACT_DEVTOOLS_GLOBAL_HOOK__","console","error","__webpack_exports__","_arrayLikeToArray","arr","len","arr2","Array","_slicedToArray","isArray","_arrayWithHoles","Symbol","iterator","_arr","_n","_d","_e","_s","_i","next","done","value","_iterableToArrayLimit","o","minLen","toString","slice","constructor","name","test","_unsupportedIterableToArray","_nonIterableRest","d","l","p","Fragment","StrictMode","Profiler","q","r","t","Suspense","u","v","for","w","x","z","a","b","c","encodeURIComponent","A","isMounted","enqueueForceUpdate","enqueueReplaceState","enqueueSetState","B","C","props","context","refs","updater","D","E","isReactComponent","setState","Error","forceUpdate","F","isPureReactComponent","G","current","H","I","ref","__self","__source","J","e","k","h","g","children","f","m","defaultProps","$$typeof","type","_owner","L","M","N","replace","escape","O","K","y","P","Q","_status","_result","then","default","R","S","T","ReactCurrentDispatcher","ReactCurrentBatchConfig","transition","ReactCurrentOwner","IsSomeRendererActing","Children","apply","count","toArray","only","Component","PureComponent","__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED","cloneElement","createContext","_calculateChangedBits","_currentValue","_currentValue2","_threadCount","Provider","Consumer","_context","createElement","createFactory","bind","createRef","forwardRef","render","isValidElement","lazy","_payload","_init","memo","compare","useCallback","useContext","useDebugValue","useEffect","useImperativeHandle","useLayoutEffect","useMemo","useReducer","useRef","useState","version","aa","ba","Set","ca","da","ea","add","fa","window","document","ha","ia","ja","ka","acceptsBooleans","attributeName","attributeNamespace","mustUseProperty","propertyName","sanitizeURL","removeEmptyString","toLowerCase","oa","pa","toUpperCase","qa","ma","isNaN","na","la","removeAttribute","setAttribute","setAttributeNS","xlinkHref","ra","sa","ta","ua","wa","xa","ya","za","Aa","Ba","Ca","Da","Ea","Fa","Ga","Ha","Ia","Ja","Ma","Ka","La","Na","stack","trim","match","Oa","Pa","prepareStackTrace","defineProperty","set","Reflect","construct","displayName","Qa","tag","_render","Ra","Sa","Ta","nodeName","Va","_valueTracker","getOwnPropertyDescriptor","get","configurable","enumerable","getValue","setValue","stopTracking","Ua","Wa","checked","Xa","activeElement","body","Ya","defaultChecked","defaultValue","_wrapperState","initialChecked","Za","initialValue","controlled","$a","ab","bb","cb","ownerDocument","eb","db","fb","options","selected","defaultSelected","disabled","gb","dangerouslySetInnerHTML","hb","ib","jb","textContent","kb","lb","mb","nb","ob","namespaceURI","innerHTML","valueOf","firstChild","removeChild","appendChild","MSApp","execUnsafeLocalFunction","pb","lastChild","nodeType","nodeValue","qb","animationIterationCount","borderImageOutset","borderImageSlice","borderImageWidth","boxFlex","boxFlexGroup","boxOrdinalGroup","columnCount","columns","flex","flexGrow","flexPositive","flexShrink","flexNegative","flexOrder","gridArea","gridRow","gridRowEnd","gridRowSpan","gridRowStart","gridColumn","gridColumnEnd","gridColumnSpan","gridColumnStart","fontWeight","lineClamp","lineHeight","opacity","order","orphans","tabSize","widows","zIndex","zoom","fillOpacity","floodOpacity","stopOpacity","strokeDasharray","strokeDashoffset","strokeMiterlimit","strokeOpacity","strokeWidth","rb","sb","tb","style","indexOf","setProperty","charAt","substring","ub","menuitem","area","base","br","col","embed","hr","img","input","keygen","link","meta","param","track","wbr","vb","wb","is","xb","srcElement","correspondingUseElement","parentNode","yb","zb","Ab","Bb","Cb","stateNode","Db","Eb","Fb","Gb","Hb","Ib","Jb","Kb","Lb","Mb","Ob","Pb","Qb","addEventListener","removeEventListener","Rb","onError","Sb","Tb","Ub","Vb","Wb","Xb","Zb","alternate","return","flags","$b","memoizedState","dehydrated","ac","cc","child","sibling","bc","dc","ec","fc","gc","hc","ic","jc","kc","lc","mc","nc","Map","oc","pc","qc","rc","blockedOn","domEventName","eventSystemFlags","nativeEvent","targetContainers","sc","delete","pointerId","tc","vc","wc","lanePriority","unstable_runWithPriority","priority","hydrate","containerInfo","xc","yc","shift","zc","Ac","Bc","unstable_scheduleCallback","unstable_NormalPriority","Cc","Dc","Ec","animationend","animationiteration","animationstart","transitionend","Fc","Gc","Hc","animation","Ic","Jc","Kc","Lc","Mc","Nc","Oc","Pc","Qc","unstable_now","Rc","Uc","pendingLanes","expiredLanes","suspendedLanes","pingedLanes","Vc","entangledLanes","entanglements","Wc","Xc","Yc","Zc","$c","eventTimes","Math","clz32","bd","cd","log","LN2","dd","unstable_UserBlockingPriority","ed","fd","gd","hd","id","uc","jd","kd","ld","md","nd","od","keyCode","charCode","pd","qd","rd","_reactName","_targetInst","currentTarget","isDefaultPrevented","defaultPrevented","returnValue","isPropagationStopped","preventDefault","stopPropagation","cancelBubble","persist","isPersistent","wd","xd","yd","sd","eventPhase","bubbles","cancelable","timeStamp","Date","now","isTrusted","td","ud","view","detail","vd","Ad","screenX","screenY","clientX","clientY","pageX","pageY","ctrlKey","shiftKey","altKey","metaKey","getModifierState","zd","button","buttons","relatedTarget","fromElement","toElement","movementX","movementY","Bd","Dd","dataTransfer","Fd","Hd","animationName","elapsedTime","pseudoElement","Id","clipboardData","Jd","Ld","data","Md","Esc","Spacebar","Left","Up","Right","Down","Del","Win","Menu","Apps","Scroll","MozPrintableKey","Nd","Od","Alt","Control","Meta","Shift","Pd","Qd","code","location","repeat","locale","which","Rd","Td","width","height","pressure","tangentialPressure","tiltX","tiltY","twist","pointerType","isPrimary","Vd","touches","targetTouches","changedTouches","Xd","Yd","deltaX","wheelDeltaX","deltaY","wheelDeltaY","wheelDelta","deltaZ","deltaMode","Zd","$d","ae","be","documentMode","ce","de","ee","fe","ge","he","ie","le","color","date","datetime","email","month","number","password","range","search","tel","text","time","url","week","me","ne","oe","event","listeners","pe","qe","re","se","te","ue","ve","we","xe","ye","ze","oninput","Ae","detachEvent","Be","Ce","attachEvent","De","Ee","Fe","He","Ie","Je","Ke","Le","node","offset","nextSibling","Me","contains","compareDocumentPosition","Ne","HTMLIFrameElement","contentWindow","href","Oe","contentEditable","Pe","Qe","Re","Se","Te","Ue","start","selectionStart","end","selectionEnd","anchorNode","defaultView","getSelection","anchorOffset","focusNode","focusOffset","Ve","We","Xe","Ye","concat","Ze","Yb","instance","listener","$e","has","af","bf","random","cf","df","capture","passive","Nb","ef","ff","parentWindow","gf","hf","je","char","ke","unshift","jf","kf","lf","mf","autoFocus","nf","__html","of","setTimeout","pf","clearTimeout","qf","rf","sf","previousSibling","tf","vf","wf","xf","yf","zf","Af","Bf","Cf","Df","Ef","contextTypes","__reactInternalMemoizedUnmaskedChildContext","__reactInternalMemoizedMaskedChildContext","Ff","childContextTypes","Gf","Hf","If","getChildContext","Jf","__reactInternalMemoizedMergedChildContext","Kf","Lf","Mf","Nf","Of","Pf","unstable_cancelCallback","Qf","unstable_shouldYield","Rf","unstable_requestPaint","Sf","Tf","unstable_getCurrentPriorityLevel","Uf","unstable_ImmediatePriority","Vf","Wf","Xf","unstable_LowPriority","Yf","unstable_IdlePriority","Zf","$f","ag","bg","cg","dg","eg","fg","gg","hg","ig","jg","kg","lg","mg","ng","og","pg","qg","rg","sg","childLanes","tg","dependencies","firstContext","lanes","ug","vg","observedBits","responders","wg","xg","updateQueue","baseState","firstBaseUpdate","lastBaseUpdate","shared","pending","effects","yg","zg","eventTime","lane","payload","callback","Ag","Bg","Cg","Dg","Eg","Fg","Gg","Kg","_reactInternals","Hg","Ig","Jg","Lg","shouldComponentUpdate","Mg","contextType","state","Ng","componentWillReceiveProps","UNSAFE_componentWillReceiveProps","Og","getDerivedStateFromProps","getSnapshotBeforeUpdate","UNSAFE_componentWillMount","componentWillMount","componentDidMount","Pg","Qg","_stringRef","Rg","Sg","lastEffect","nextEffect","firstEffect","index","Tg","Ug","mode","elementType","Vg","implementation","Wg","Xg","Yg","Zg","$g","ah","bh","ch","dh","eh","documentElement","tagName","fh","gh","hh","ih","memoizedProps","revealOrder","jh","kh","lh","mh","nh","oh","pendingProps","ph","qh","rh","sh","th","uh","_workInProgressVersionPrimary","vh","wh","xh","yh","zh","Ah","Bh","Ch","Dh","Eh","Fh","Gh","Hh","baseQueue","queue","Ih","Jh","Kh","lastRenderedReducer","action","eagerReducer","eagerState","lastRenderedState","dispatch","Lh","Mh","_getVersion","_source","mutableReadLanes","Nh","U","getSnapshot","subscribe","setSnapshot","Oh","Ph","Qh","Rh","create","destroy","deps","Sh","Th","Uh","Vh","Wh","Xh","Yh","Zh","$h","ai","bi","ci","di","readContext","useDeferredValue","useTransition","useMutableSource","useOpaqueIdentifier","unstable_isNewReconciler","uf","ei","fi","gi","hi","ii","ji","ki","li","mi","baseLanes","ni","oi","pi","UNSAFE_componentWillUpdate","componentWillUpdate","componentDidUpdate","qi","getDerivedStateFromError","ri","pendingContext","Bi","Di","Ei","si","retryLane","ti","fallback","unstable_avoidThisFallback","ui","unstable_expectedLoadTime","vi","wi","xi","yi","zi","isBackwards","rendering","renderingStartTime","last","tail","tailMode","Ai","Fi","Gi","wasMultiple","multiple","onClick","onclick","size","createElementNS","createTextNode","V","Hi","Ii","W","Ji","Ki","Li","Mi","message","Ni","Oi","WeakMap","Pi","element","Qi","Ri","Si","componentDidCatch","Ti","componentStack","Ui","WeakSet","Vi","Wi","Xi","__reactInternalSnapshotBeforeUpdate","Yi","Zi","$i","focus","aj","display","bj","onCommitFiberUnmount","componentWillUnmount","cj","dj","ej","fj","gj","hj","insertBefore","_reactRootContainer","ij","jj","kj","lj","mj","nj","ceil","oj","pj","X","Y","qj","rj","sj","tj","uj","vj","Infinity","wj","ck","Z","xj","yj","zj","Aj","Bj","Cj","Dj","Ej","Fj","Gj","Hj","Ij","Jj","Sc","Kj","Lj","Mj","callbackNode","expirationTimes","callbackPriority","Tc","Nj","Oj","Pj","Qj","Rj","Sj","Tj","finishedWork","finishedLanes","Uj","timeoutHandle","Wj","Xj","pingCache","Yj","Zj","va","ak","bk","dk","rangeCount","focusedElem","selectionRange","ek","min","extend","createRange","setStart","removeAllRanges","addRange","setEnd","left","scrollLeft","top","scrollTop","onCommitFiberRoot","fk","gk","ik","pendingChildren","jk","mutableSourceEagerHydrationData","kk","lk","mk","nk","ok","qk","hydrationOptions","mutableSources","_internalRoot","rk","tk","hasAttribute","sk","uk","hk","unstable_observedBits","unmount","querySelectorAll","JSON","stringify","form","Vj","vk","Events","wk","findFiberByHostInstance","bundleType","rendererPackageName","xk","rendererConfig","overrideHookState","overrideHookStateDeletePath","overrideHookStateRenamePath","overrideProps","overridePropsDeletePath","overridePropsRenamePath","setSuspenseHandler","scheduleUpdate","currentDispatcherRef","findHostInstanceByFiber","findHostInstancesForRefresh","scheduleRefresh","scheduleRoot","setRefreshHandler","getCurrentFiber","yk","isDisabled","supportsFiber","inject","createPortal","findDOMNode","flushSync","unmountComponentAtNode","unstable_batchedUpdates","unstable_createPortal","unstable_renderSubtreeIntoContainer","_f","performance","MessageChannel","unstable_forceFrameRate","cancelAnimationFrame","requestAnimationFrame","floor","port2","port1","onmessage","postMessage","pop","sortIndex","startTime","expirationTime","priorityLevel","unstable_Profiling","unstable_continueExecution","unstable_getFirstCallbackNode","unstable_next","unstable_pauseExecution","delay","unstable_wrapCallback","jsx","jsxs"],"mappings":"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"},"input":"(this[\"webpackJsonphome-page\"] = this[\"webpackJsonphome-page\"] || []).push([[2],[\n/* 0 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nif (true) {\n module.exports = __webpack_require__(11);\n} else {}\n\n/***/ }),\n/* 1 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nif (true) {\n module.exports = __webpack_require__(6);\n} else {}\n\n/***/ }),\n/* 2 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n/* eslint-disable no-unused-vars */\n\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n if (val === null || val === undefined) {\n throw new TypeError('Object.assign cannot be called with null or undefined');\n }\n\n return Object(val);\n}\n\nfunction shouldUseNative() {\n try {\n if (!Object.assign) {\n return false;\n } // Detect buggy property enumeration order in older V8 versions.\n // https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\n\n var test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\n test1[5] = 'de';\n\n if (Object.getOwnPropertyNames(test1)[0] === '5') {\n return false;\n } // https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\n\n var test2 = {};\n\n for (var i = 0; i < 10; i++) {\n test2['_' + String.fromCharCode(i)] = i;\n }\n\n var order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n return test2[n];\n });\n\n if (order2.join('') !== '0123456789') {\n return false;\n } // https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\n\n var test3 = {};\n 'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n test3[letter] = letter;\n });\n\n if (Object.keys(Object.assign({}, test3)).join('') !== 'abcdefghijklmnopqrst') {\n return false;\n }\n\n return true;\n } catch (err) {\n // We don't expect any of the above to throw, but better to be safe.\n return false;\n }\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n var from;\n var to = toObject(target);\n var symbols;\n\n for (var s = 1; s < arguments.length; s++) {\n from = Object(arguments[s]);\n\n for (var key in from) {\n if (hasOwnProperty.call(from, key)) {\n to[key] = from[key];\n }\n }\n\n if (getOwnPropertySymbols) {\n symbols = getOwnPropertySymbols(from);\n\n for (var i = 0; i < symbols.length; i++) {\n if (propIsEnumerable.call(from, symbols[i])) {\n to[symbols[i]] = from[symbols[i]];\n }\n }\n }\n }\n\n return to;\n};\n\n/***/ }),\n/* 3 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nfunction checkDCE() {\n /* global __REACT_DEVTOOLS_GLOBAL_HOOK__ */\n if (typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ === 'undefined' || typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE !== 'function') {\n return;\n }\n\n if (false) {}\n\n try {\n // Verify that the code above has been dead code eliminated (DCE'd).\n __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(checkDCE);\n } catch (err) {\n // DevTools shouldn't crash React, no matter what.\n // We should still report in case we break this code.\n console.error(err);\n }\n}\n\nif (true) {\n // DCE check should happen before ReactDOM bundle executes so that\n // DevTools can report bad minification during injection.\n checkDCE();\n module.exports = __webpack_require__(7);\n} else {}\n\n/***/ }),\n/* 4 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n\n// EXPORTS\n__webpack_require__.d(__webpack_exports__, \"a\", function() { return /* binding */ _slicedToArray; });\n\n// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js\nfunction _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}\n// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js\nfunction _iterableToArrayLimit(arr, i) {\n if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n\n try {\n for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}\n// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}\n// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js\n\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\n// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/nonIterableRest.js\nfunction _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/slicedToArray.js\n\n\n\n\nfunction _slicedToArray(arr, i) {\n return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();\n}\n\n/***/ }),\n/* 5 */,\n/* 6 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/** @license React v17.0.2\n * react.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\nvar l = __webpack_require__(2),\n n = 60103,\n p = 60106;\n\nexports.Fragment = 60107;\nexports.StrictMode = 60108;\nexports.Profiler = 60114;\nvar q = 60109,\n r = 60110,\n t = 60112;\nexports.Suspense = 60113;\nvar u = 60115,\n v = 60116;\n\nif (\"function\" === typeof Symbol && Symbol.for) {\n var w = Symbol.for;\n n = w(\"react.element\");\n p = w(\"react.portal\");\n exports.Fragment = w(\"react.fragment\");\n exports.StrictMode = w(\"react.strict_mode\");\n exports.Profiler = w(\"react.profiler\");\n q = w(\"react.provider\");\n r = w(\"react.context\");\n t = w(\"react.forward_ref\");\n exports.Suspense = w(\"react.suspense\");\n u = w(\"react.memo\");\n v = w(\"react.lazy\");\n}\n\nvar x = \"function\" === typeof Symbol && Symbol.iterator;\n\nfunction y(a) {\n if (null === a || \"object\" !== typeof a) return null;\n a = x && a[x] || a[\"@@iterator\"];\n return \"function\" === typeof a ? a : null;\n}\n\nfunction z(a) {\n for (var b = \"https://reactjs.org/docs/error-decoder.html?invariant=\" + a, c = 1; c < arguments.length; c++) {\n b += \"&args[]=\" + encodeURIComponent(arguments[c]);\n }\n\n return \"Minified React error #\" + a + \"; visit \" + b + \" for the full message or use the non-minified dev environment for full errors and additional helpful warnings.\";\n}\n\nvar A = {\n isMounted: function isMounted() {\n return !1;\n },\n enqueueForceUpdate: function enqueueForceUpdate() {},\n enqueueReplaceState: function enqueueReplaceState() {},\n enqueueSetState: function enqueueSetState() {}\n},\n B = {};\n\nfunction C(a, b, c) {\n this.props = a;\n this.context = b;\n this.refs = B;\n this.updater = c || A;\n}\n\nC.prototype.isReactComponent = {};\n\nC.prototype.setState = function (a, b) {\n if (\"object\" !== typeof a && \"function\" !== typeof a && null != a) throw Error(z(85));\n this.updater.enqueueSetState(this, a, b, \"setState\");\n};\n\nC.prototype.forceUpdate = function (a) {\n this.updater.enqueueForceUpdate(this, a, \"forceUpdate\");\n};\n\nfunction D() {}\n\nD.prototype = C.prototype;\n\nfunction E(a, b, c) {\n this.props = a;\n this.context = b;\n this.refs = B;\n this.updater = c || A;\n}\n\nvar F = E.prototype = new D();\nF.constructor = E;\nl(F, C.prototype);\nF.isPureReactComponent = !0;\nvar G = {\n current: null\n},\n H = Object.prototype.hasOwnProperty,\n I = {\n key: !0,\n ref: !0,\n __self: !0,\n __source: !0\n};\n\nfunction J(a, b, c) {\n var e,\n d = {},\n k = null,\n h = null;\n if (null != b) for (e in void 0 !== b.ref && (h = b.ref), void 0 !== b.key && (k = \"\" + b.key), b) {\n H.call(b, e) && !I.hasOwnProperty(e) && (d[e] = b[e]);\n }\n var g = arguments.length - 2;\n if (1 === g) d.children = c;else if (1 < g) {\n for (var f = Array(g), m = 0; m < g; m++) {\n f[m] = arguments[m + 2];\n }\n\n d.children = f;\n }\n if (a && a.defaultProps) for (e in g = a.defaultProps, g) {\n void 0 === d[e] && (d[e] = g[e]);\n }\n return {\n $$typeof: n,\n type: a,\n key: k,\n ref: h,\n props: d,\n _owner: G.current\n };\n}\n\nfunction K(a, b) {\n return {\n $$typeof: n,\n type: a.type,\n key: b,\n ref: a.ref,\n props: a.props,\n _owner: a._owner\n };\n}\n\nfunction L(a) {\n return \"object\" === typeof a && null !== a && a.$$typeof === n;\n}\n\nfunction escape(a) {\n var b = {\n \"=\": \"=0\",\n \":\": \"=2\"\n };\n return \"$\" + a.replace(/[=:]/g, function (a) {\n return b[a];\n });\n}\n\nvar M = /\\/+/g;\n\nfunction N(a, b) {\n return \"object\" === typeof a && null !== a && null != a.key ? escape(\"\" + a.key) : b.toString(36);\n}\n\nfunction O(a, b, c, e, d) {\n var k = typeof a;\n if (\"undefined\" === k || \"boolean\" === k) a = null;\n var h = !1;\n if (null === a) h = !0;else switch (k) {\n case \"string\":\n case \"number\":\n h = !0;\n break;\n\n case \"object\":\n switch (a.$$typeof) {\n case n:\n case p:\n h = !0;\n }\n\n }\n if (h) return h = a, d = d(h), a = \"\" === e ? \".\" + N(h, 0) : e, Array.isArray(d) ? (c = \"\", null != a && (c = a.replace(M, \"$&/\") + \"/\"), O(d, b, c, \"\", function (a) {\n return a;\n })) : null != d && (L(d) && (d = K(d, c + (!d.key || h && h.key === d.key ? \"\" : (\"\" + d.key).replace(M, \"$&/\") + \"/\") + a)), b.push(d)), 1;\n h = 0;\n e = \"\" === e ? \".\" : e + \":\";\n if (Array.isArray(a)) for (var g = 0; g < a.length; g++) {\n k = a[g];\n var f = e + N(k, g);\n h += O(k, b, c, f, d);\n } else if (f = y(a), \"function\" === typeof f) for (a = f.call(a), g = 0; !(k = a.next()).done;) {\n k = k.value, f = e + N(k, g++), h += O(k, b, c, f, d);\n } else if (\"object\" === k) throw b = \"\" + a, Error(z(31, \"[object Object]\" === b ? \"object with keys {\" + Object.keys(a).join(\", \") + \"}\" : b));\n return h;\n}\n\nfunction P(a, b, c) {\n if (null == a) return a;\n var e = [],\n d = 0;\n O(a, e, \"\", \"\", function (a) {\n return b.call(c, a, d++);\n });\n return e;\n}\n\nfunction Q(a) {\n if (-1 === a._status) {\n var b = a._result;\n b = b();\n a._status = 0;\n a._result = b;\n b.then(function (b) {\n 0 === a._status && (b = b.default, a._status = 1, a._result = b);\n }, function (b) {\n 0 === a._status && (a._status = 2, a._result = b);\n });\n }\n\n if (1 === a._status) return a._result;\n throw a._result;\n}\n\nvar R = {\n current: null\n};\n\nfunction S() {\n var a = R.current;\n if (null === a) throw Error(z(321));\n return a;\n}\n\nvar T = {\n ReactCurrentDispatcher: R,\n ReactCurrentBatchConfig: {\n transition: 0\n },\n ReactCurrentOwner: G,\n IsSomeRendererActing: {\n current: !1\n },\n assign: l\n};\nexports.Children = {\n map: P,\n forEach: function forEach(a, b, c) {\n P(a, function () {\n b.apply(this, arguments);\n }, c);\n },\n count: function count(a) {\n var b = 0;\n P(a, function () {\n b++;\n });\n return b;\n },\n toArray: function toArray(a) {\n return P(a, function (a) {\n return a;\n }) || [];\n },\n only: function only(a) {\n if (!L(a)) throw Error(z(143));\n return a;\n }\n};\nexports.Component = C;\nexports.PureComponent = E;\nexports.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED = T;\n\nexports.cloneElement = function (a, b, c) {\n if (null === a || void 0 === a) throw Error(z(267, a));\n var e = l({}, a.props),\n d = a.key,\n k = a.ref,\n h = a._owner;\n\n if (null != b) {\n void 0 !== b.ref && (k = b.ref, h = G.current);\n void 0 !== b.key && (d = \"\" + b.key);\n if (a.type && a.type.defaultProps) var g = a.type.defaultProps;\n\n for (f in b) {\n H.call(b, f) && !I.hasOwnProperty(f) && (e[f] = void 0 === b[f] && void 0 !== g ? g[f] : b[f]);\n }\n }\n\n var f = arguments.length - 2;\n if (1 === f) e.children = c;else if (1 < f) {\n g = Array(f);\n\n for (var m = 0; m < f; m++) {\n g[m] = arguments[m + 2];\n }\n\n e.children = g;\n }\n return {\n $$typeof: n,\n type: a.type,\n key: d,\n ref: k,\n props: e,\n _owner: h\n };\n};\n\nexports.createContext = function (a, b) {\n void 0 === b && (b = null);\n a = {\n $$typeof: r,\n _calculateChangedBits: b,\n _currentValue: a,\n _currentValue2: a,\n _threadCount: 0,\n Provider: null,\n Consumer: null\n };\n a.Provider = {\n $$typeof: q,\n _context: a\n };\n return a.Consumer = a;\n};\n\nexports.createElement = J;\n\nexports.createFactory = function (a) {\n var b = J.bind(null, a);\n b.type = a;\n return b;\n};\n\nexports.createRef = function () {\n return {\n current: null\n };\n};\n\nexports.forwardRef = function (a) {\n return {\n $$typeof: t,\n render: a\n };\n};\n\nexports.isValidElement = L;\n\nexports.lazy = function (a) {\n return {\n $$typeof: v,\n _payload: {\n _status: -1,\n _result: a\n },\n _init: Q\n };\n};\n\nexports.memo = function (a, b) {\n return {\n $$typeof: u,\n type: a,\n compare: void 0 === b ? null : b\n };\n};\n\nexports.useCallback = function (a, b) {\n return S().useCallback(a, b);\n};\n\nexports.useContext = function (a, b) {\n return S().useContext(a, b);\n};\n\nexports.useDebugValue = function () {};\n\nexports.useEffect = function (a, b) {\n return S().useEffect(a, b);\n};\n\nexports.useImperativeHandle = function (a, b, c) {\n return S().useImperativeHandle(a, b, c);\n};\n\nexports.useLayoutEffect = function (a, b) {\n return S().useLayoutEffect(a, b);\n};\n\nexports.useMemo = function (a, b) {\n return S().useMemo(a, b);\n};\n\nexports.useReducer = function (a, b, c) {\n return S().useReducer(a, b, c);\n};\n\nexports.useRef = function (a) {\n return S().useRef(a);\n};\n\nexports.useState = function (a) {\n return S().useState(a);\n};\n\nexports.version = \"17.0.2\";\n\n/***/ }),\n/* 7 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/** @license React v17.0.2\n * react-dom.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n/*\n Modernizr 3.0.0pre (Custom Build) | MIT\n*/\n\n\nvar aa = __webpack_require__(1),\n m = __webpack_require__(2),\n r = __webpack_require__(8);\n\nfunction y(a) {\n for (var b = \"https://reactjs.org/docs/error-decoder.html?invariant=\" + a, c = 1; c < arguments.length; c++) {\n b += \"&args[]=\" + encodeURIComponent(arguments[c]);\n }\n\n return \"Minified React error #\" + a + \"; visit \" + b + \" for the full message or use the non-minified dev environment for full errors and additional helpful warnings.\";\n}\n\nif (!aa) throw Error(y(227));\nvar ba = new Set(),\n ca = {};\n\nfunction da(a, b) {\n ea(a, b);\n ea(a + \"Capture\", b);\n}\n\nfunction ea(a, b) {\n ca[a] = b;\n\n for (a = 0; a < b.length; a++) {\n ba.add(b[a]);\n }\n}\n\nvar fa = !(\"undefined\" === typeof window || \"undefined\" === typeof window.document || \"undefined\" === typeof window.document.createElement),\n ha = /^[:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD][:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\-.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040]*$/,\n ia = Object.prototype.hasOwnProperty,\n ja = {},\n ka = {};\n\nfunction la(a) {\n if (ia.call(ka, a)) return !0;\n if (ia.call(ja, a)) return !1;\n if (ha.test(a)) return ka[a] = !0;\n ja[a] = !0;\n return !1;\n}\n\nfunction ma(a, b, c, d) {\n if (null !== c && 0 === c.type) return !1;\n\n switch (typeof b) {\n case \"function\":\n case \"symbol\":\n return !0;\n\n case \"boolean\":\n if (d) return !1;\n if (null !== c) return !c.acceptsBooleans;\n a = a.toLowerCase().slice(0, 5);\n return \"data-\" !== a && \"aria-\" !== a;\n\n default:\n return !1;\n }\n}\n\nfunction na(a, b, c, d) {\n if (null === b || \"undefined\" === typeof b || ma(a, b, c, d)) return !0;\n if (d) return !1;\n if (null !== c) switch (c.type) {\n case 3:\n return !b;\n\n case 4:\n return !1 === b;\n\n case 5:\n return isNaN(b);\n\n case 6:\n return isNaN(b) || 1 > b;\n }\n return !1;\n}\n\nfunction B(a, b, c, d, e, f, g) {\n this.acceptsBooleans = 2 === b || 3 === b || 4 === b;\n this.attributeName = d;\n this.attributeNamespace = e;\n this.mustUseProperty = c;\n this.propertyName = a;\n this.type = b;\n this.sanitizeURL = f;\n this.removeEmptyString = g;\n}\n\nvar D = {};\n\"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style\".split(\" \").forEach(function (a) {\n D[a] = new B(a, 0, !1, a, null, !1, !1);\n});\n[[\"acceptCharset\", \"accept-charset\"], [\"className\", \"class\"], [\"htmlFor\", \"for\"], [\"httpEquiv\", \"http-equiv\"]].forEach(function (a) {\n var b = a[0];\n D[b] = new B(b, 1, !1, a[1], null, !1, !1);\n});\n[\"contentEditable\", \"draggable\", \"spellCheck\", \"value\"].forEach(function (a) {\n D[a] = new B(a, 2, !1, a.toLowerCase(), null, !1, !1);\n});\n[\"autoReverse\", \"externalResourcesRequired\", \"focusable\", \"preserveAlpha\"].forEach(function (a) {\n D[a] = new B(a, 2, !1, a, null, !1, !1);\n});\n\"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope\".split(\" \").forEach(function (a) {\n D[a] = new B(a, 3, !1, a.toLowerCase(), null, !1, !1);\n});\n[\"checked\", \"multiple\", \"muted\", \"selected\"].forEach(function (a) {\n D[a] = new B(a, 3, !0, a, null, !1, !1);\n});\n[\"capture\", \"download\"].forEach(function (a) {\n D[a] = new B(a, 4, !1, a, null, !1, !1);\n});\n[\"cols\", \"rows\", \"size\", \"span\"].forEach(function (a) {\n D[a] = new B(a, 6, !1, a, null, !1, !1);\n});\n[\"rowSpan\", \"start\"].forEach(function (a) {\n D[a] = new B(a, 5, !1, a.toLowerCase(), null, !1, !1);\n});\nvar oa = /[\\-:]([a-z])/g;\n\nfunction pa(a) {\n return a[1].toUpperCase();\n}\n\n\"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height\".split(\" \").forEach(function (a) {\n var b = a.replace(oa, pa);\n D[b] = new B(b, 1, !1, a, null, !1, !1);\n});\n\"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type\".split(\" \").forEach(function (a) {\n var b = a.replace(oa, pa);\n D[b] = new B(b, 1, !1, a, \"http://www.w3.org/1999/xlink\", !1, !1);\n});\n[\"xml:base\", \"xml:lang\", \"xml:space\"].forEach(function (a) {\n var b = a.replace(oa, pa);\n D[b] = new B(b, 1, !1, a, \"http://www.w3.org/XML/1998/namespace\", !1, !1);\n});\n[\"tabIndex\", \"crossOrigin\"].forEach(function (a) {\n D[a] = new B(a, 1, !1, a.toLowerCase(), null, !1, !1);\n});\nD.xlinkHref = new B(\"xlinkHref\", 1, !1, \"xlink:href\", \"http://www.w3.org/1999/xlink\", !0, !1);\n[\"src\", \"href\", \"action\", \"formAction\"].forEach(function (a) {\n D[a] = new B(a, 1, !1, a.toLowerCase(), null, !0, !0);\n});\n\nfunction qa(a, b, c, d) {\n var e = D.hasOwnProperty(b) ? D[b] : null;\n var f = null !== e ? 0 === e.type : d ? !1 : !(2 < b.length) || \"o\" !== b[0] && \"O\" !== b[0] || \"n\" !== b[1] && \"N\" !== b[1] ? !1 : !0;\n f || (na(b, c, e, d) && (c = null), d || null === e ? la(b) && (null === c ? a.removeAttribute(b) : a.setAttribute(b, \"\" + c)) : e.mustUseProperty ? a[e.propertyName] = null === c ? 3 === e.type ? !1 : \"\" : c : (b = e.attributeName, d = e.attributeNamespace, null === c ? a.removeAttribute(b) : (e = e.type, c = 3 === e || 4 === e && !0 === c ? \"\" : \"\" + c, d ? a.setAttributeNS(d, b, c) : a.setAttribute(b, c))));\n}\n\nvar ra = aa.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,\n sa = 60103,\n ta = 60106,\n ua = 60107,\n wa = 60108,\n xa = 60114,\n ya = 60109,\n za = 60110,\n Aa = 60112,\n Ba = 60113,\n Ca = 60120,\n Da = 60115,\n Ea = 60116,\n Fa = 60121,\n Ga = 60128,\n Ha = 60129,\n Ia = 60130,\n Ja = 60131;\n\nif (\"function\" === typeof Symbol && Symbol.for) {\n var E = Symbol.for;\n sa = E(\"react.element\");\n ta = E(\"react.portal\");\n ua = E(\"react.fragment\");\n wa = E(\"react.strict_mode\");\n xa = E(\"react.profiler\");\n ya = E(\"react.provider\");\n za = E(\"react.context\");\n Aa = E(\"react.forward_ref\");\n Ba = E(\"react.suspense\");\n Ca = E(\"react.suspense_list\");\n Da = E(\"react.memo\");\n Ea = E(\"react.lazy\");\n Fa = E(\"react.block\");\n E(\"react.scope\");\n Ga = E(\"react.opaque.id\");\n Ha = E(\"react.debug_trace_mode\");\n Ia = E(\"react.offscreen\");\n Ja = E(\"react.legacy_hidden\");\n}\n\nvar Ka = \"function\" === typeof Symbol && Symbol.iterator;\n\nfunction La(a) {\n if (null === a || \"object\" !== typeof a) return null;\n a = Ka && a[Ka] || a[\"@@iterator\"];\n return \"function\" === typeof a ? a : null;\n}\n\nvar Ma;\n\nfunction Na(a) {\n if (void 0 === Ma) try {\n throw Error();\n } catch (c) {\n var b = c.stack.trim().match(/\\n( *(at )?)/);\n Ma = b && b[1] || \"\";\n }\n return \"\\n\" + Ma + a;\n}\n\nvar Oa = !1;\n\nfunction Pa(a, b) {\n if (!a || Oa) return \"\";\n Oa = !0;\n var c = Error.prepareStackTrace;\n Error.prepareStackTrace = void 0;\n\n try {\n if (b) {\n if (b = function b() {\n throw Error();\n }, Object.defineProperty(b.prototype, \"props\", {\n set: function set() {\n throw Error();\n }\n }), \"object\" === typeof Reflect && Reflect.construct) {\n try {\n Reflect.construct(b, []);\n } catch (k) {\n var d = k;\n }\n\n Reflect.construct(a, [], b);\n } else {\n try {\n b.call();\n } catch (k) {\n d = k;\n }\n\n a.call(b.prototype);\n }\n } else {\n try {\n throw Error();\n } catch (k) {\n d = k;\n }\n\n a();\n }\n } catch (k) {\n if (k && d && \"string\" === typeof k.stack) {\n for (var e = k.stack.split(\"\\n\"), f = d.stack.split(\"\\n\"), g = e.length - 1, h = f.length - 1; 1 <= g && 0 <= h && e[g] !== f[h];) {\n h--;\n }\n\n for (; 1 <= g && 0 <= h; g--, h--) {\n if (e[g] !== f[h]) {\n if (1 !== g || 1 !== h) {\n do {\n if (g--, h--, 0 > h || e[g] !== f[h]) return \"\\n\" + e[g].replace(\" at new \", \" at \");\n } while (1 <= g && 0 <= h);\n }\n\n break;\n }\n }\n }\n } finally {\n Oa = !1, Error.prepareStackTrace = c;\n }\n\n return (a = a ? a.displayName || a.name : \"\") ? Na(a) : \"\";\n}\n\nfunction Qa(a) {\n switch (a.tag) {\n case 5:\n return Na(a.type);\n\n case 16:\n return Na(\"Lazy\");\n\n case 13:\n return Na(\"Suspense\");\n\n case 19:\n return Na(\"SuspenseList\");\n\n case 0:\n case 2:\n case 15:\n return a = Pa(a.type, !1), a;\n\n case 11:\n return a = Pa(a.type.render, !1), a;\n\n case 22:\n return a = Pa(a.type._render, !1), a;\n\n case 1:\n return a = Pa(a.type, !0), a;\n\n default:\n return \"\";\n }\n}\n\nfunction Ra(a) {\n if (null == a) return null;\n if (\"function\" === typeof a) return a.displayName || a.name || null;\n if (\"string\" === typeof a) return a;\n\n switch (a) {\n case ua:\n return \"Fragment\";\n\n case ta:\n return \"Portal\";\n\n case xa:\n return \"Profiler\";\n\n case wa:\n return \"StrictMode\";\n\n case Ba:\n return \"Suspense\";\n\n case Ca:\n return \"SuspenseList\";\n }\n\n if (\"object\" === typeof a) switch (a.$$typeof) {\n case za:\n return (a.displayName || \"Context\") + \".Consumer\";\n\n case ya:\n return (a._context.displayName || \"Context\") + \".Provider\";\n\n case Aa:\n var b = a.render;\n b = b.displayName || b.name || \"\";\n return a.displayName || (\"\" !== b ? \"ForwardRef(\" + b + \")\" : \"ForwardRef\");\n\n case Da:\n return Ra(a.type);\n\n case Fa:\n return Ra(a._render);\n\n case Ea:\n b = a._payload;\n a = a._init;\n\n try {\n return Ra(a(b));\n } catch (c) {}\n\n }\n return null;\n}\n\nfunction Sa(a) {\n switch (typeof a) {\n case \"boolean\":\n case \"number\":\n case \"object\":\n case \"string\":\n case \"undefined\":\n return a;\n\n default:\n return \"\";\n }\n}\n\nfunction Ta(a) {\n var b = a.type;\n return (a = a.nodeName) && \"input\" === a.toLowerCase() && (\"checkbox\" === b || \"radio\" === b);\n}\n\nfunction Ua(a) {\n var b = Ta(a) ? \"checked\" : \"value\",\n c = Object.getOwnPropertyDescriptor(a.constructor.prototype, b),\n d = \"\" + a[b];\n\n if (!a.hasOwnProperty(b) && \"undefined\" !== typeof c && \"function\" === typeof c.get && \"function\" === typeof c.set) {\n var e = c.get,\n f = c.set;\n Object.defineProperty(a, b, {\n configurable: !0,\n get: function get() {\n return e.call(this);\n },\n set: function set(a) {\n d = \"\" + a;\n f.call(this, a);\n }\n });\n Object.defineProperty(a, b, {\n enumerable: c.enumerable\n });\n return {\n getValue: function getValue() {\n return d;\n },\n setValue: function setValue(a) {\n d = \"\" + a;\n },\n stopTracking: function stopTracking() {\n a._valueTracker = null;\n delete a[b];\n }\n };\n }\n}\n\nfunction Va(a) {\n a._valueTracker || (a._valueTracker = Ua(a));\n}\n\nfunction Wa(a) {\n if (!a) return !1;\n var b = a._valueTracker;\n if (!b) return !0;\n var c = b.getValue();\n var d = \"\";\n a && (d = Ta(a) ? a.checked ? \"true\" : \"false\" : a.value);\n a = d;\n return a !== c ? (b.setValue(a), !0) : !1;\n}\n\nfunction Xa(a) {\n a = a || (\"undefined\" !== typeof document ? document : void 0);\n if (\"undefined\" === typeof a) return null;\n\n try {\n return a.activeElement || a.body;\n } catch (b) {\n return a.body;\n }\n}\n\nfunction Ya(a, b) {\n var c = b.checked;\n return m({}, b, {\n defaultChecked: void 0,\n defaultValue: void 0,\n value: void 0,\n checked: null != c ? c : a._wrapperState.initialChecked\n });\n}\n\nfunction Za(a, b) {\n var c = null == b.defaultValue ? \"\" : b.defaultValue,\n d = null != b.checked ? b.checked : b.defaultChecked;\n c = Sa(null != b.value ? b.value : c);\n a._wrapperState = {\n initialChecked: d,\n initialValue: c,\n controlled: \"checkbox\" === b.type || \"radio\" === b.type ? null != b.checked : null != b.value\n };\n}\n\nfunction $a(a, b) {\n b = b.checked;\n null != b && qa(a, \"checked\", b, !1);\n}\n\nfunction ab(a, b) {\n $a(a, b);\n var c = Sa(b.value),\n d = b.type;\n if (null != c) {\n if (\"number\" === d) {\n if (0 === c && \"\" === a.value || a.value != c) a.value = \"\" + c;\n } else a.value !== \"\" + c && (a.value = \"\" + c);\n } else if (\"submit\" === d || \"reset\" === d) {\n a.removeAttribute(\"value\");\n return;\n }\n b.hasOwnProperty(\"value\") ? bb(a, b.type, c) : b.hasOwnProperty(\"defaultValue\") && bb(a, b.type, Sa(b.defaultValue));\n null == b.checked && null != b.defaultChecked && (a.defaultChecked = !!b.defaultChecked);\n}\n\nfunction cb(a, b, c) {\n if (b.hasOwnProperty(\"value\") || b.hasOwnProperty(\"defaultValue\")) {\n var d = b.type;\n if (!(\"submit\" !== d && \"reset\" !== d || void 0 !== b.value && null !== b.value)) return;\n b = \"\" + a._wrapperState.initialValue;\n c || b === a.value || (a.value = b);\n a.defaultValue = b;\n }\n\n c = a.name;\n \"\" !== c && (a.name = \"\");\n a.defaultChecked = !!a._wrapperState.initialChecked;\n \"\" !== c && (a.name = c);\n}\n\nfunction bb(a, b, c) {\n if (\"number\" !== b || Xa(a.ownerDocument) !== a) null == c ? a.defaultValue = \"\" + a._wrapperState.initialValue : a.defaultValue !== \"\" + c && (a.defaultValue = \"\" + c);\n}\n\nfunction db(a) {\n var b = \"\";\n aa.Children.forEach(a, function (a) {\n null != a && (b += a);\n });\n return b;\n}\n\nfunction eb(a, b) {\n a = m({\n children: void 0\n }, b);\n if (b = db(b.children)) a.children = b;\n return a;\n}\n\nfunction fb(a, b, c, d) {\n a = a.options;\n\n if (b) {\n b = {};\n\n for (var e = 0; e < c.length; e++) {\n b[\"$\" + c[e]] = !0;\n }\n\n for (c = 0; c < a.length; c++) {\n e = b.hasOwnProperty(\"$\" + a[c].value), a[c].selected !== e && (a[c].selected = e), e && d && (a[c].defaultSelected = !0);\n }\n } else {\n c = \"\" + Sa(c);\n b = null;\n\n for (e = 0; e < a.length; e++) {\n if (a[e].value === c) {\n a[e].selected = !0;\n d && (a[e].defaultSelected = !0);\n return;\n }\n\n null !== b || a[e].disabled || (b = a[e]);\n }\n\n null !== b && (b.selected = !0);\n }\n}\n\nfunction gb(a, b) {\n if (null != b.dangerouslySetInnerHTML) throw Error(y(91));\n return m({}, b, {\n value: void 0,\n defaultValue: void 0,\n children: \"\" + a._wrapperState.initialValue\n });\n}\n\nfunction hb(a, b) {\n var c = b.value;\n\n if (null == c) {\n c = b.children;\n b = b.defaultValue;\n\n if (null != c) {\n if (null != b) throw Error(y(92));\n\n if (Array.isArray(c)) {\n if (!(1 >= c.length)) throw Error(y(93));\n c = c[0];\n }\n\n b = c;\n }\n\n null == b && (b = \"\");\n c = b;\n }\n\n a._wrapperState = {\n initialValue: Sa(c)\n };\n}\n\nfunction ib(a, b) {\n var c = Sa(b.value),\n d = Sa(b.defaultValue);\n null != c && (c = \"\" + c, c !== a.value && (a.value = c), null == b.defaultValue && a.defaultValue !== c && (a.defaultValue = c));\n null != d && (a.defaultValue = \"\" + d);\n}\n\nfunction jb(a) {\n var b = a.textContent;\n b === a._wrapperState.initialValue && \"\" !== b && null !== b && (a.value = b);\n}\n\nvar kb = {\n html: \"http://www.w3.org/1999/xhtml\",\n mathml: \"http://www.w3.org/1998/Math/MathML\",\n svg: \"http://www.w3.org/2000/svg\"\n};\n\nfunction lb(a) {\n switch (a) {\n case \"svg\":\n return \"http://www.w3.org/2000/svg\";\n\n case \"math\":\n return \"http://www.w3.org/1998/Math/MathML\";\n\n default:\n return \"http://www.w3.org/1999/xhtml\";\n }\n}\n\nfunction mb(a, b) {\n return null == a || \"http://www.w3.org/1999/xhtml\" === a ? lb(b) : \"http://www.w3.org/2000/svg\" === a && \"foreignObject\" === b ? \"http://www.w3.org/1999/xhtml\" : a;\n}\n\nvar nb,\n ob = function (a) {\n return \"undefined\" !== typeof MSApp && MSApp.execUnsafeLocalFunction ? function (b, c, d, e) {\n MSApp.execUnsafeLocalFunction(function () {\n return a(b, c, d, e);\n });\n } : a;\n}(function (a, b) {\n if (a.namespaceURI !== kb.svg || \"innerHTML\" in a) a.innerHTML = b;else {\n nb = nb || document.createElement(\"div\");\n nb.innerHTML = \"\";\n\n for (b = nb.firstChild; a.firstChild;) {\n a.removeChild(a.firstChild);\n }\n\n for (; b.firstChild;) {\n a.appendChild(b.firstChild);\n }\n }\n});\n\nfunction pb(a, b) {\n if (b) {\n var c = a.firstChild;\n\n if (c && c === a.lastChild && 3 === c.nodeType) {\n c.nodeValue = b;\n return;\n }\n }\n\n a.textContent = b;\n}\n\nvar qb = {\n animationIterationCount: !0,\n borderImageOutset: !0,\n borderImageSlice: !0,\n borderImageWidth: !0,\n boxFlex: !0,\n boxFlexGroup: !0,\n boxOrdinalGroup: !0,\n columnCount: !0,\n columns: !0,\n flex: !0,\n flexGrow: !0,\n flexPositive: !0,\n flexShrink: !0,\n flexNegative: !0,\n flexOrder: !0,\n gridArea: !0,\n gridRow: !0,\n gridRowEnd: !0,\n gridRowSpan: !0,\n gridRowStart: !0,\n gridColumn: !0,\n gridColumnEnd: !0,\n gridColumnSpan: !0,\n gridColumnStart: !0,\n fontWeight: !0,\n lineClamp: !0,\n lineHeight: !0,\n opacity: !0,\n order: !0,\n orphans: !0,\n tabSize: !0,\n widows: !0,\n zIndex: !0,\n zoom: !0,\n fillOpacity: !0,\n floodOpacity: !0,\n stopOpacity: !0,\n strokeDasharray: !0,\n strokeDashoffset: !0,\n strokeMiterlimit: !0,\n strokeOpacity: !0,\n strokeWidth: !0\n},\n rb = [\"Webkit\", \"ms\", \"Moz\", \"O\"];\nObject.keys(qb).forEach(function (a) {\n rb.forEach(function (b) {\n b = b + a.charAt(0).toUpperCase() + a.substring(1);\n qb[b] = qb[a];\n });\n});\n\nfunction sb(a, b, c) {\n return null == b || \"boolean\" === typeof b || \"\" === b ? \"\" : c || \"number\" !== typeof b || 0 === b || qb.hasOwnProperty(a) && qb[a] ? (\"\" + b).trim() : b + \"px\";\n}\n\nfunction tb(a, b) {\n a = a.style;\n\n for (var c in b) {\n if (b.hasOwnProperty(c)) {\n var d = 0 === c.indexOf(\"--\"),\n e = sb(c, b[c], d);\n \"float\" === c && (c = \"cssFloat\");\n d ? a.setProperty(c, e) : a[c] = e;\n }\n }\n}\n\nvar ub = m({\n menuitem: !0\n}, {\n area: !0,\n base: !0,\n br: !0,\n col: !0,\n embed: !0,\n hr: !0,\n img: !0,\n input: !0,\n keygen: !0,\n link: !0,\n meta: !0,\n param: !0,\n source: !0,\n track: !0,\n wbr: !0\n});\n\nfunction vb(a, b) {\n if (b) {\n if (ub[a] && (null != b.children || null != b.dangerouslySetInnerHTML)) throw Error(y(137, a));\n\n if (null != b.dangerouslySetInnerHTML) {\n if (null != b.children) throw Error(y(60));\n if (!(\"object\" === typeof b.dangerouslySetInnerHTML && \"__html\" in b.dangerouslySetInnerHTML)) throw Error(y(61));\n }\n\n if (null != b.style && \"object\" !== typeof b.style) throw Error(y(62));\n }\n}\n\nfunction wb(a, b) {\n if (-1 === a.indexOf(\"-\")) return \"string\" === typeof b.is;\n\n switch (a) {\n case \"annotation-xml\":\n case \"color-profile\":\n case \"font-face\":\n case \"font-face-src\":\n case \"font-face-uri\":\n case \"font-face-format\":\n case \"font-face-name\":\n case \"missing-glyph\":\n return !1;\n\n default:\n return !0;\n }\n}\n\nfunction xb(a) {\n a = a.target || a.srcElement || window;\n a.correspondingUseElement && (a = a.correspondingUseElement);\n return 3 === a.nodeType ? a.parentNode : a;\n}\n\nvar yb = null,\n zb = null,\n Ab = null;\n\nfunction Bb(a) {\n if (a = Cb(a)) {\n if (\"function\" !== typeof yb) throw Error(y(280));\n var b = a.stateNode;\n b && (b = Db(b), yb(a.stateNode, a.type, b));\n }\n}\n\nfunction Eb(a) {\n zb ? Ab ? Ab.push(a) : Ab = [a] : zb = a;\n}\n\nfunction Fb() {\n if (zb) {\n var a = zb,\n b = Ab;\n Ab = zb = null;\n Bb(a);\n if (b) for (a = 0; a < b.length; a++) {\n Bb(b[a]);\n }\n }\n}\n\nfunction Gb(a, b) {\n return a(b);\n}\n\nfunction Hb(a, b, c, d, e) {\n return a(b, c, d, e);\n}\n\nfunction Ib() {}\n\nvar Jb = Gb,\n Kb = !1,\n Lb = !1;\n\nfunction Mb() {\n if (null !== zb || null !== Ab) Ib(), Fb();\n}\n\nfunction Nb(a, b, c) {\n if (Lb) return a(b, c);\n Lb = !0;\n\n try {\n return Jb(a, b, c);\n } finally {\n Lb = !1, Mb();\n }\n}\n\nfunction Ob(a, b) {\n var c = a.stateNode;\n if (null === c) return null;\n var d = Db(c);\n if (null === d) return null;\n c = d[b];\n\n a: switch (b) {\n case \"onClick\":\n case \"onClickCapture\":\n case \"onDoubleClick\":\n case \"onDoubleClickCapture\":\n case \"onMouseDown\":\n case \"onMouseDownCapture\":\n case \"onMouseMove\":\n case \"onMouseMoveCapture\":\n case \"onMouseUp\":\n case \"onMouseUpCapture\":\n case \"onMouseEnter\":\n (d = !d.disabled) || (a = a.type, d = !(\"button\" === a || \"input\" === a || \"select\" === a || \"textarea\" === a));\n a = !d;\n break a;\n\n default:\n a = !1;\n }\n\n if (a) return null;\n if (c && \"function\" !== typeof c) throw Error(y(231, b, typeof c));\n return c;\n}\n\nvar Pb = !1;\nif (fa) try {\n var Qb = {};\n Object.defineProperty(Qb, \"passive\", {\n get: function get() {\n Pb = !0;\n }\n });\n window.addEventListener(\"test\", Qb, Qb);\n window.removeEventListener(\"test\", Qb, Qb);\n} catch (a) {\n Pb = !1;\n}\n\nfunction Rb(a, b, c, d, e, f, g, h, k) {\n var l = Array.prototype.slice.call(arguments, 3);\n\n try {\n b.apply(c, l);\n } catch (n) {\n this.onError(n);\n }\n}\n\nvar Sb = !1,\n Tb = null,\n Ub = !1,\n Vb = null,\n Wb = {\n onError: function onError(a) {\n Sb = !0;\n Tb = a;\n }\n};\n\nfunction Xb(a, b, c, d, e, f, g, h, k) {\n Sb = !1;\n Tb = null;\n Rb.apply(Wb, arguments);\n}\n\nfunction Yb(a, b, c, d, e, f, g, h, k) {\n Xb.apply(this, arguments);\n\n if (Sb) {\n if (Sb) {\n var l = Tb;\n Sb = !1;\n Tb = null;\n } else throw Error(y(198));\n\n Ub || (Ub = !0, Vb = l);\n }\n}\n\nfunction Zb(a) {\n var b = a,\n c = a;\n if (a.alternate) for (; b.return;) {\n b = b.return;\n } else {\n a = b;\n\n do {\n b = a, 0 !== (b.flags & 1026) && (c = b.return), a = b.return;\n } while (a);\n }\n return 3 === b.tag ? c : null;\n}\n\nfunction $b(a) {\n if (13 === a.tag) {\n var b = a.memoizedState;\n null === b && (a = a.alternate, null !== a && (b = a.memoizedState));\n if (null !== b) return b.dehydrated;\n }\n\n return null;\n}\n\nfunction ac(a) {\n if (Zb(a) !== a) throw Error(y(188));\n}\n\nfunction bc(a) {\n var b = a.alternate;\n\n if (!b) {\n b = Zb(a);\n if (null === b) throw Error(y(188));\n return b !== a ? null : a;\n }\n\n for (var c = a, d = b;;) {\n var e = c.return;\n if (null === e) break;\n var f = e.alternate;\n\n if (null === f) {\n d = e.return;\n\n if (null !== d) {\n c = d;\n continue;\n }\n\n break;\n }\n\n if (e.child === f.child) {\n for (f = e.child; f;) {\n if (f === c) return ac(e), a;\n if (f === d) return ac(e), b;\n f = f.sibling;\n }\n\n throw Error(y(188));\n }\n\n if (c.return !== d.return) c = e, d = f;else {\n for (var g = !1, h = e.child; h;) {\n if (h === c) {\n g = !0;\n c = e;\n d = f;\n break;\n }\n\n if (h === d) {\n g = !0;\n d = e;\n c = f;\n break;\n }\n\n h = h.sibling;\n }\n\n if (!g) {\n for (h = f.child; h;) {\n if (h === c) {\n g = !0;\n c = f;\n d = e;\n break;\n }\n\n if (h === d) {\n g = !0;\n d = f;\n c = e;\n break;\n }\n\n h = h.sibling;\n }\n\n if (!g) throw Error(y(189));\n }\n }\n if (c.alternate !== d) throw Error(y(190));\n }\n\n if (3 !== c.tag) throw Error(y(188));\n return c.stateNode.current === c ? a : b;\n}\n\nfunction cc(a) {\n a = bc(a);\n if (!a) return null;\n\n for (var b = a;;) {\n if (5 === b.tag || 6 === b.tag) return b;\n if (b.child) b.child.return = b, b = b.child;else {\n if (b === a) break;\n\n for (; !b.sibling;) {\n if (!b.return || b.return === a) return null;\n b = b.return;\n }\n\n b.sibling.return = b.return;\n b = b.sibling;\n }\n }\n\n return null;\n}\n\nfunction dc(a, b) {\n for (var c = a.alternate; null !== b;) {\n if (b === a || b === c) return !0;\n b = b.return;\n }\n\n return !1;\n}\n\nvar ec,\n fc,\n gc,\n hc,\n ic = !1,\n jc = [],\n kc = null,\n lc = null,\n mc = null,\n nc = new Map(),\n oc = new Map(),\n pc = [],\n qc = \"mousedown mouseup touchcancel touchend touchstart auxclick dblclick pointercancel pointerdown pointerup dragend dragstart drop compositionend compositionstart keydown keypress keyup input textInput copy cut paste click change contextmenu reset submit\".split(\" \");\n\nfunction rc(a, b, c, d, e) {\n return {\n blockedOn: a,\n domEventName: b,\n eventSystemFlags: c | 16,\n nativeEvent: e,\n targetContainers: [d]\n };\n}\n\nfunction sc(a, b) {\n switch (a) {\n case \"focusin\":\n case \"focusout\":\n kc = null;\n break;\n\n case \"dragenter\":\n case \"dragleave\":\n lc = null;\n break;\n\n case \"mouseover\":\n case \"mouseout\":\n mc = null;\n break;\n\n case \"pointerover\":\n case \"pointerout\":\n nc.delete(b.pointerId);\n break;\n\n case \"gotpointercapture\":\n case \"lostpointercapture\":\n oc.delete(b.pointerId);\n }\n}\n\nfunction tc(a, b, c, d, e, f) {\n if (null === a || a.nativeEvent !== f) return a = rc(b, c, d, e, f), null !== b && (b = Cb(b), null !== b && fc(b)), a;\n a.eventSystemFlags |= d;\n b = a.targetContainers;\n null !== e && -1 === b.indexOf(e) && b.push(e);\n return a;\n}\n\nfunction uc(a, b, c, d, e) {\n switch (b) {\n case \"focusin\":\n return kc = tc(kc, a, b, c, d, e), !0;\n\n case \"dragenter\":\n return lc = tc(lc, a, b, c, d, e), !0;\n\n case \"mouseover\":\n return mc = tc(mc, a, b, c, d, e), !0;\n\n case \"pointerover\":\n var f = e.pointerId;\n nc.set(f, tc(nc.get(f) || null, a, b, c, d, e));\n return !0;\n\n case \"gotpointercapture\":\n return f = e.pointerId, oc.set(f, tc(oc.get(f) || null, a, b, c, d, e)), !0;\n }\n\n return !1;\n}\n\nfunction vc(a) {\n var b = wc(a.target);\n\n if (null !== b) {\n var c = Zb(b);\n if (null !== c) if (b = c.tag, 13 === b) {\n if (b = $b(c), null !== b) {\n a.blockedOn = b;\n hc(a.lanePriority, function () {\n r.unstable_runWithPriority(a.priority, function () {\n gc(c);\n });\n });\n return;\n }\n } else if (3 === b && c.stateNode.hydrate) {\n a.blockedOn = 3 === c.tag ? c.stateNode.containerInfo : null;\n return;\n }\n }\n\n a.blockedOn = null;\n}\n\nfunction xc(a) {\n if (null !== a.blockedOn) return !1;\n\n for (var b = a.targetContainers; 0 < b.length;) {\n var c = yc(a.domEventName, a.eventSystemFlags, b[0], a.nativeEvent);\n if (null !== c) return b = Cb(c), null !== b && fc(b), a.blockedOn = c, !1;\n b.shift();\n }\n\n return !0;\n}\n\nfunction zc(a, b, c) {\n xc(a) && c.delete(b);\n}\n\nfunction Ac() {\n for (ic = !1; 0 < jc.length;) {\n var a = jc[0];\n\n if (null !== a.blockedOn) {\n a = Cb(a.blockedOn);\n null !== a && ec(a);\n break;\n }\n\n for (var b = a.targetContainers; 0 < b.length;) {\n var c = yc(a.domEventName, a.eventSystemFlags, b[0], a.nativeEvent);\n\n if (null !== c) {\n a.blockedOn = c;\n break;\n }\n\n b.shift();\n }\n\n null === a.blockedOn && jc.shift();\n }\n\n null !== kc && xc(kc) && (kc = null);\n null !== lc && xc(lc) && (lc = null);\n null !== mc && xc(mc) && (mc = null);\n nc.forEach(zc);\n oc.forEach(zc);\n}\n\nfunction Bc(a, b) {\n a.blockedOn === b && (a.blockedOn = null, ic || (ic = !0, r.unstable_scheduleCallback(r.unstable_NormalPriority, Ac)));\n}\n\nfunction Cc(a) {\n function b(b) {\n return Bc(b, a);\n }\n\n if (0 < jc.length) {\n Bc(jc[0], a);\n\n for (var c = 1; c < jc.length; c++) {\n var d = jc[c];\n d.blockedOn === a && (d.blockedOn = null);\n }\n }\n\n null !== kc && Bc(kc, a);\n null !== lc && Bc(lc, a);\n null !== mc && Bc(mc, a);\n nc.forEach(b);\n oc.forEach(b);\n\n for (c = 0; c < pc.length; c++) {\n d = pc[c], d.blockedOn === a && (d.blockedOn = null);\n }\n\n for (; 0 < pc.length && (c = pc[0], null === c.blockedOn);) {\n vc(c), null === c.blockedOn && pc.shift();\n }\n}\n\nfunction Dc(a, b) {\n var c = {};\n c[a.toLowerCase()] = b.toLowerCase();\n c[\"Webkit\" + a] = \"webkit\" + b;\n c[\"Moz\" + a] = \"moz\" + b;\n return c;\n}\n\nvar Ec = {\n animationend: Dc(\"Animation\", \"AnimationEnd\"),\n animationiteration: Dc(\"Animation\", \"AnimationIteration\"),\n animationstart: Dc(\"Animation\", \"AnimationStart\"),\n transitionend: Dc(\"Transition\", \"TransitionEnd\")\n},\n Fc = {},\n Gc = {};\nfa && (Gc = document.createElement(\"div\").style, \"AnimationEvent\" in window || (delete Ec.animationend.animation, delete Ec.animationiteration.animation, delete Ec.animationstart.animation), \"TransitionEvent\" in window || delete Ec.transitionend.transition);\n\nfunction Hc(a) {\n if (Fc[a]) return Fc[a];\n if (!Ec[a]) return a;\n var b = Ec[a],\n c;\n\n for (c in b) {\n if (b.hasOwnProperty(c) && c in Gc) return Fc[a] = b[c];\n }\n\n return a;\n}\n\nvar Ic = Hc(\"animationend\"),\n Jc = Hc(\"animationiteration\"),\n Kc = Hc(\"animationstart\"),\n Lc = Hc(\"transitionend\"),\n Mc = new Map(),\n Nc = new Map(),\n Oc = [\"abort\", \"abort\", Ic, \"animationEnd\", Jc, \"animationIteration\", Kc, \"animationStart\", \"canplay\", \"canPlay\", \"canplaythrough\", \"canPlayThrough\", \"durationchange\", \"durationChange\", \"emptied\", \"emptied\", \"encrypted\", \"encrypted\", \"ended\", \"ended\", \"error\", \"error\", \"gotpointercapture\", \"gotPointerCapture\", \"load\", \"load\", \"loadeddata\", \"loadedData\", \"loadedmetadata\", \"loadedMetadata\", \"loadstart\", \"loadStart\", \"lostpointercapture\", \"lostPointerCapture\", \"playing\", \"playing\", \"progress\", \"progress\", \"seeking\", \"seeking\", \"stalled\", \"stalled\", \"suspend\", \"suspend\", \"timeupdate\", \"timeUpdate\", Lc, \"transitionEnd\", \"waiting\", \"waiting\"];\n\nfunction Pc(a, b) {\n for (var c = 0; c < a.length; c += 2) {\n var d = a[c],\n e = a[c + 1];\n e = \"on\" + (e[0].toUpperCase() + e.slice(1));\n Nc.set(d, b);\n Mc.set(d, e);\n da(e, [d]);\n }\n}\n\nvar Qc = r.unstable_now;\nQc();\nvar F = 8;\n\nfunction Rc(a) {\n if (0 !== (1 & a)) return F = 15, 1;\n if (0 !== (2 & a)) return F = 14, 2;\n if (0 !== (4 & a)) return F = 13, 4;\n var b = 24 & a;\n if (0 !== b) return F = 12, b;\n if (0 !== (a & 32)) return F = 11, 32;\n b = 192 & a;\n if (0 !== b) return F = 10, b;\n if (0 !== (a & 256)) return F = 9, 256;\n b = 3584 & a;\n if (0 !== b) return F = 8, b;\n if (0 !== (a & 4096)) return F = 7, 4096;\n b = 4186112 & a;\n if (0 !== b) return F = 6, b;\n b = 62914560 & a;\n if (0 !== b) return F = 5, b;\n if (a & 67108864) return F = 4, 67108864;\n if (0 !== (a & 134217728)) return F = 3, 134217728;\n b = 805306368 & a;\n if (0 !== b) return F = 2, b;\n if (0 !== (1073741824 & a)) return F = 1, 1073741824;\n F = 8;\n return a;\n}\n\nfunction Sc(a) {\n switch (a) {\n case 99:\n return 15;\n\n case 98:\n return 10;\n\n case 97:\n case 96:\n return 8;\n\n case 95:\n return 2;\n\n default:\n return 0;\n }\n}\n\nfunction Tc(a) {\n switch (a) {\n case 15:\n case 14:\n return 99;\n\n case 13:\n case 12:\n case 11:\n case 10:\n return 98;\n\n case 9:\n case 8:\n case 7:\n case 6:\n case 4:\n case 5:\n return 97;\n\n case 3:\n case 2:\n case 1:\n return 95;\n\n case 0:\n return 90;\n\n default:\n throw Error(y(358, a));\n }\n}\n\nfunction Uc(a, b) {\n var c = a.pendingLanes;\n if (0 === c) return F = 0;\n var d = 0,\n e = 0,\n f = a.expiredLanes,\n g = a.suspendedLanes,\n h = a.pingedLanes;\n if (0 !== f) d = f, e = F = 15;else if (f = c & 134217727, 0 !== f) {\n var k = f & ~g;\n 0 !== k ? (d = Rc(k), e = F) : (h &= f, 0 !== h && (d = Rc(h), e = F));\n } else f = c & ~g, 0 !== f ? (d = Rc(f), e = F) : 0 !== h && (d = Rc(h), e = F);\n if (0 === d) return 0;\n d = 31 - Vc(d);\n d = c & ((0 > d ? 0 : 1 << d) << 1) - 1;\n\n if (0 !== b && b !== d && 0 === (b & g)) {\n Rc(b);\n if (e <= F) return b;\n F = e;\n }\n\n b = a.entangledLanes;\n if (0 !== b) for (a = a.entanglements, b &= d; 0 < b;) {\n c = 31 - Vc(b), e = 1 << c, d |= a[c], b &= ~e;\n }\n return d;\n}\n\nfunction Wc(a) {\n a = a.pendingLanes & -1073741825;\n return 0 !== a ? a : a & 1073741824 ? 1073741824 : 0;\n}\n\nfunction Xc(a, b) {\n switch (a) {\n case 15:\n return 1;\n\n case 14:\n return 2;\n\n case 12:\n return a = Yc(24 & ~b), 0 === a ? Xc(10, b) : a;\n\n case 10:\n return a = Yc(192 & ~b), 0 === a ? Xc(8, b) : a;\n\n case 8:\n return a = Yc(3584 & ~b), 0 === a && (a = Yc(4186112 & ~b), 0 === a && (a = 512)), a;\n\n case 2:\n return b = Yc(805306368 & ~b), 0 === b && (b = 268435456), b;\n }\n\n throw Error(y(358, a));\n}\n\nfunction Yc(a) {\n return a & -a;\n}\n\nfunction Zc(a) {\n for (var b = [], c = 0; 31 > c; c++) {\n b.push(a);\n }\n\n return b;\n}\n\nfunction $c(a, b, c) {\n a.pendingLanes |= b;\n var d = b - 1;\n a.suspendedLanes &= d;\n a.pingedLanes &= d;\n a = a.eventTimes;\n b = 31 - Vc(b);\n a[b] = c;\n}\n\nvar Vc = Math.clz32 ? Math.clz32 : ad,\n bd = Math.log,\n cd = Math.LN2;\n\nfunction ad(a) {\n return 0 === a ? 32 : 31 - (bd(a) / cd | 0) | 0;\n}\n\nvar dd = r.unstable_UserBlockingPriority,\n ed = r.unstable_runWithPriority,\n fd = !0;\n\nfunction gd(a, b, c, d) {\n Kb || Ib();\n var e = hd,\n f = Kb;\n Kb = !0;\n\n try {\n Hb(e, a, b, c, d);\n } finally {\n (Kb = f) || Mb();\n }\n}\n\nfunction id(a, b, c, d) {\n ed(dd, hd.bind(null, a, b, c, d));\n}\n\nfunction hd(a, b, c, d) {\n if (fd) {\n var e;\n if ((e = 0 === (b & 4)) && 0 < jc.length && -1 < qc.indexOf(a)) a = rc(null, a, b, c, d), jc.push(a);else {\n var f = yc(a, b, c, d);\n if (null === f) e && sc(a, d);else {\n if (e) {\n if (-1 < qc.indexOf(a)) {\n a = rc(f, a, b, c, d);\n jc.push(a);\n return;\n }\n\n if (uc(f, a, b, c, d)) return;\n sc(a, d);\n }\n\n jd(a, b, d, null, c);\n }\n }\n }\n}\n\nfunction yc(a, b, c, d) {\n var e = xb(d);\n e = wc(e);\n\n if (null !== e) {\n var f = Zb(e);\n if (null === f) e = null;else {\n var g = f.tag;\n\n if (13 === g) {\n e = $b(f);\n if (null !== e) return e;\n e = null;\n } else if (3 === g) {\n if (f.stateNode.hydrate) return 3 === f.tag ? f.stateNode.containerInfo : null;\n e = null;\n } else f !== e && (e = null);\n }\n }\n\n jd(a, b, d, e, c);\n return null;\n}\n\nvar kd = null,\n ld = null,\n md = null;\n\nfunction nd() {\n if (md) return md;\n var a,\n b = ld,\n c = b.length,\n d,\n e = \"value\" in kd ? kd.value : kd.textContent,\n f = e.length;\n\n for (a = 0; a < c && b[a] === e[a]; a++) {\n ;\n }\n\n var g = c - a;\n\n for (d = 1; d <= g && b[c - d] === e[f - d]; d++) {\n ;\n }\n\n return md = e.slice(a, 1 < d ? 1 - d : void 0);\n}\n\nfunction od(a) {\n var b = a.keyCode;\n \"charCode\" in a ? (a = a.charCode, 0 === a && 13 === b && (a = 13)) : a = b;\n 10 === a && (a = 13);\n return 32 <= a || 13 === a ? a : 0;\n}\n\nfunction pd() {\n return !0;\n}\n\nfunction qd() {\n return !1;\n}\n\nfunction rd(a) {\n function b(b, d, e, f, g) {\n this._reactName = b;\n this._targetInst = e;\n this.type = d;\n this.nativeEvent = f;\n this.target = g;\n this.currentTarget = null;\n\n for (var c in a) {\n a.hasOwnProperty(c) && (b = a[c], this[c] = b ? b(f) : f[c]);\n }\n\n this.isDefaultPrevented = (null != f.defaultPrevented ? f.defaultPrevented : !1 === f.returnValue) ? pd : qd;\n this.isPropagationStopped = qd;\n return this;\n }\n\n m(b.prototype, {\n preventDefault: function preventDefault() {\n this.defaultPrevented = !0;\n var a = this.nativeEvent;\n a && (a.preventDefault ? a.preventDefault() : \"unknown\" !== typeof a.returnValue && (a.returnValue = !1), this.isDefaultPrevented = pd);\n },\n stopPropagation: function stopPropagation() {\n var a = this.nativeEvent;\n a && (a.stopPropagation ? a.stopPropagation() : \"unknown\" !== typeof a.cancelBubble && (a.cancelBubble = !0), this.isPropagationStopped = pd);\n },\n persist: function persist() {},\n isPersistent: pd\n });\n return b;\n}\n\nvar sd = {\n eventPhase: 0,\n bubbles: 0,\n cancelable: 0,\n timeStamp: function timeStamp(a) {\n return a.timeStamp || Date.now();\n },\n defaultPrevented: 0,\n isTrusted: 0\n},\n td = rd(sd),\n ud = m({}, sd, {\n view: 0,\n detail: 0\n}),\n vd = rd(ud),\n wd,\n xd,\n yd,\n Ad = m({}, ud, {\n screenX: 0,\n screenY: 0,\n clientX: 0,\n clientY: 0,\n pageX: 0,\n pageY: 0,\n ctrlKey: 0,\n shiftKey: 0,\n altKey: 0,\n metaKey: 0,\n getModifierState: zd,\n button: 0,\n buttons: 0,\n relatedTarget: function relatedTarget(a) {\n return void 0 === a.relatedTarget ? a.fromElement === a.srcElement ? a.toElement : a.fromElement : a.relatedTarget;\n },\n movementX: function movementX(a) {\n if (\"movementX\" in a) return a.movementX;\n a !== yd && (yd && \"mousemove\" === a.type ? (wd = a.screenX - yd.screenX, xd = a.screenY - yd.screenY) : xd = wd = 0, yd = a);\n return wd;\n },\n movementY: function movementY(a) {\n return \"movementY\" in a ? a.movementY : xd;\n }\n}),\n Bd = rd(Ad),\n Cd = m({}, Ad, {\n dataTransfer: 0\n}),\n Dd = rd(Cd),\n Ed = m({}, ud, {\n relatedTarget: 0\n}),\n Fd = rd(Ed),\n Gd = m({}, sd, {\n animationName: 0,\n elapsedTime: 0,\n pseudoElement: 0\n}),\n Hd = rd(Gd),\n Id = m({}, sd, {\n clipboardData: function clipboardData(a) {\n return \"clipboardData\" in a ? a.clipboardData : window.clipboardData;\n }\n}),\n Jd = rd(Id),\n Kd = m({}, sd, {\n data: 0\n}),\n Ld = rd(Kd),\n Md = {\n Esc: \"Escape\",\n Spacebar: \" \",\n Left: \"ArrowLeft\",\n Up: \"ArrowUp\",\n Right: \"ArrowRight\",\n Down: \"ArrowDown\",\n Del: \"Delete\",\n Win: \"OS\",\n Menu: \"ContextMenu\",\n Apps: \"ContextMenu\",\n Scroll: \"ScrollLock\",\n MozPrintableKey: \"Unidentified\"\n},\n Nd = {\n 8: \"Backspace\",\n 9: \"Tab\",\n 12: \"Clear\",\n 13: \"Enter\",\n 16: \"Shift\",\n 17: \"Control\",\n 18: \"Alt\",\n 19: \"Pause\",\n 20: \"CapsLock\",\n 27: \"Escape\",\n 32: \" \",\n 33: \"PageUp\",\n 34: \"PageDown\",\n 35: \"End\",\n 36: \"Home\",\n 37: \"ArrowLeft\",\n 38: \"ArrowUp\",\n 39: \"ArrowRight\",\n 40: \"ArrowDown\",\n 45: \"Insert\",\n 46: \"Delete\",\n 112: \"F1\",\n 113: \"F2\",\n 114: \"F3\",\n 115: \"F4\",\n 116: \"F5\",\n 117: \"F6\",\n 118: \"F7\",\n 119: \"F8\",\n 120: \"F9\",\n 121: \"F10\",\n 122: \"F11\",\n 123: \"F12\",\n 144: \"NumLock\",\n 145: \"ScrollLock\",\n 224: \"Meta\"\n},\n Od = {\n Alt: \"altKey\",\n Control: \"ctrlKey\",\n Meta: \"metaKey\",\n Shift: \"shiftKey\"\n};\n\nfunction Pd(a) {\n var b = this.nativeEvent;\n return b.getModifierState ? b.getModifierState(a) : (a = Od[a]) ? !!b[a] : !1;\n}\n\nfunction zd() {\n return Pd;\n}\n\nvar Qd = m({}, ud, {\n key: function key(a) {\n if (a.key) {\n var b = Md[a.key] || a.key;\n if (\"Unidentified\" !== b) return b;\n }\n\n return \"keypress\" === a.type ? (a = od(a), 13 === a ? \"Enter\" : String.fromCharCode(a)) : \"keydown\" === a.type || \"keyup\" === a.type ? Nd[a.keyCode] || \"Unidentified\" : \"\";\n },\n code: 0,\n location: 0,\n ctrlKey: 0,\n shiftKey: 0,\n altKey: 0,\n metaKey: 0,\n repeat: 0,\n locale: 0,\n getModifierState: zd,\n charCode: function charCode(a) {\n return \"keypress\" === a.type ? od(a) : 0;\n },\n keyCode: function keyCode(a) {\n return \"keydown\" === a.type || \"keyup\" === a.type ? a.keyCode : 0;\n },\n which: function which(a) {\n return \"keypress\" === a.type ? od(a) : \"keydown\" === a.type || \"keyup\" === a.type ? a.keyCode : 0;\n }\n}),\n Rd = rd(Qd),\n Sd = m({}, Ad, {\n pointerId: 0,\n width: 0,\n height: 0,\n pressure: 0,\n tangentialPressure: 0,\n tiltX: 0,\n tiltY: 0,\n twist: 0,\n pointerType: 0,\n isPrimary: 0\n}),\n Td = rd(Sd),\n Ud = m({}, ud, {\n touches: 0,\n targetTouches: 0,\n changedTouches: 0,\n altKey: 0,\n metaKey: 0,\n ctrlKey: 0,\n shiftKey: 0,\n getModifierState: zd\n}),\n Vd = rd(Ud),\n Wd = m({}, sd, {\n propertyName: 0,\n elapsedTime: 0,\n pseudoElement: 0\n}),\n Xd = rd(Wd),\n Yd = m({}, Ad, {\n deltaX: function deltaX(a) {\n return \"deltaX\" in a ? a.deltaX : \"wheelDeltaX\" in a ? -a.wheelDeltaX : 0;\n },\n deltaY: function deltaY(a) {\n return \"deltaY\" in a ? a.deltaY : \"wheelDeltaY\" in a ? -a.wheelDeltaY : \"wheelDelta\" in a ? -a.wheelDelta : 0;\n },\n deltaZ: 0,\n deltaMode: 0\n}),\n Zd = rd(Yd),\n $d = [9, 13, 27, 32],\n ae = fa && \"CompositionEvent\" in window,\n be = null;\nfa && \"documentMode\" in document && (be = document.documentMode);\nvar ce = fa && \"TextEvent\" in window && !be,\n de = fa && (!ae || be && 8 < be && 11 >= be),\n ee = String.fromCharCode(32),\n fe = !1;\n\nfunction ge(a, b) {\n switch (a) {\n case \"keyup\":\n return -1 !== $d.indexOf(b.keyCode);\n\n case \"keydown\":\n return 229 !== b.keyCode;\n\n case \"keypress\":\n case \"mousedown\":\n case \"focusout\":\n return !0;\n\n default:\n return !1;\n }\n}\n\nfunction he(a) {\n a = a.detail;\n return \"object\" === typeof a && \"data\" in a ? a.data : null;\n}\n\nvar ie = !1;\n\nfunction je(a, b) {\n switch (a) {\n case \"compositionend\":\n return he(b);\n\n case \"keypress\":\n if (32 !== b.which) return null;\n fe = !0;\n return ee;\n\n case \"textInput\":\n return a = b.data, a === ee && fe ? null : a;\n\n default:\n return null;\n }\n}\n\nfunction ke(a, b) {\n if (ie) return \"compositionend\" === a || !ae && ge(a, b) ? (a = nd(), md = ld = kd = null, ie = !1, a) : null;\n\n switch (a) {\n case \"paste\":\n return null;\n\n case \"keypress\":\n if (!(b.ctrlKey || b.altKey || b.metaKey) || b.ctrlKey && b.altKey) {\n if (b.char && 1 < b.char.length) return b.char;\n if (b.which) return String.fromCharCode(b.which);\n }\n\n return null;\n\n case \"compositionend\":\n return de && \"ko\" !== b.locale ? null : b.data;\n\n default:\n return null;\n }\n}\n\nvar le = {\n color: !0,\n date: !0,\n datetime: !0,\n \"datetime-local\": !0,\n email: !0,\n month: !0,\n number: !0,\n password: !0,\n range: !0,\n search: !0,\n tel: !0,\n text: !0,\n time: !0,\n url: !0,\n week: !0\n};\n\nfunction me(a) {\n var b = a && a.nodeName && a.nodeName.toLowerCase();\n return \"input\" === b ? !!le[a.type] : \"textarea\" === b ? !0 : !1;\n}\n\nfunction ne(a, b, c, d) {\n Eb(d);\n b = oe(b, \"onChange\");\n 0 < b.length && (c = new td(\"onChange\", \"change\", null, c, d), a.push({\n event: c,\n listeners: b\n }));\n}\n\nvar pe = null,\n qe = null;\n\nfunction re(a) {\n se(a, 0);\n}\n\nfunction te(a) {\n var b = ue(a);\n if (Wa(b)) return a;\n}\n\nfunction ve(a, b) {\n if (\"change\" === a) return b;\n}\n\nvar we = !1;\n\nif (fa) {\n var xe;\n\n if (fa) {\n var ye = (\"oninput\" in document);\n\n if (!ye) {\n var ze = document.createElement(\"div\");\n ze.setAttribute(\"oninput\", \"return;\");\n ye = \"function\" === typeof ze.oninput;\n }\n\n xe = ye;\n } else xe = !1;\n\n we = xe && (!document.documentMode || 9 < document.documentMode);\n}\n\nfunction Ae() {\n pe && (pe.detachEvent(\"onpropertychange\", Be), qe = pe = null);\n}\n\nfunction Be(a) {\n if (\"value\" === a.propertyName && te(qe)) {\n var b = [];\n ne(b, qe, a, xb(a));\n a = re;\n if (Kb) a(b);else {\n Kb = !0;\n\n try {\n Gb(a, b);\n } finally {\n Kb = !1, Mb();\n }\n }\n }\n}\n\nfunction Ce(a, b, c) {\n \"focusin\" === a ? (Ae(), pe = b, qe = c, pe.attachEvent(\"onpropertychange\", Be)) : \"focusout\" === a && Ae();\n}\n\nfunction De(a) {\n if (\"selectionchange\" === a || \"keyup\" === a || \"keydown\" === a) return te(qe);\n}\n\nfunction Ee(a, b) {\n if (\"click\" === a) return te(b);\n}\n\nfunction Fe(a, b) {\n if (\"input\" === a || \"change\" === a) return te(b);\n}\n\nfunction Ge(a, b) {\n return a === b && (0 !== a || 1 / a === 1 / b) || a !== a && b !== b;\n}\n\nvar He = \"function\" === typeof Object.is ? Object.is : Ge,\n Ie = Object.prototype.hasOwnProperty;\n\nfunction Je(a, b) {\n if (He(a, b)) return !0;\n if (\"object\" !== typeof a || null === a || \"object\" !== typeof b || null === b) return !1;\n var c = Object.keys(a),\n d = Object.keys(b);\n if (c.length !== d.length) return !1;\n\n for (d = 0; d < c.length; d++) {\n if (!Ie.call(b, c[d]) || !He(a[c[d]], b[c[d]])) return !1;\n }\n\n return !0;\n}\n\nfunction Ke(a) {\n for (; a && a.firstChild;) {\n a = a.firstChild;\n }\n\n return a;\n}\n\nfunction Le(a, b) {\n var c = Ke(a);\n a = 0;\n\n for (var d; c;) {\n if (3 === c.nodeType) {\n d = a + c.textContent.length;\n if (a <= b && d >= b) return {\n node: c,\n offset: b - a\n };\n a = d;\n }\n\n a: {\n for (; c;) {\n if (c.nextSibling) {\n c = c.nextSibling;\n break a;\n }\n\n c = c.parentNode;\n }\n\n c = void 0;\n }\n\n c = Ke(c);\n }\n}\n\nfunction Me(a, b) {\n return a && b ? a === b ? !0 : a && 3 === a.nodeType ? !1 : b && 3 === b.nodeType ? Me(a, b.parentNode) : \"contains\" in a ? a.contains(b) : a.compareDocumentPosition ? !!(a.compareDocumentPosition(b) & 16) : !1 : !1;\n}\n\nfunction Ne() {\n for (var a = window, b = Xa(); b instanceof a.HTMLIFrameElement;) {\n try {\n var c = \"string\" === typeof b.contentWindow.location.href;\n } catch (d) {\n c = !1;\n }\n\n if (c) a = b.contentWindow;else break;\n b = Xa(a.document);\n }\n\n return b;\n}\n\nfunction Oe(a) {\n var b = a && a.nodeName && a.nodeName.toLowerCase();\n return b && (\"input\" === b && (\"text\" === a.type || \"search\" === a.type || \"tel\" === a.type || \"url\" === a.type || \"password\" === a.type) || \"textarea\" === b || \"true\" === a.contentEditable);\n}\n\nvar Pe = fa && \"documentMode\" in document && 11 >= document.documentMode,\n Qe = null,\n Re = null,\n Se = null,\n Te = !1;\n\nfunction Ue(a, b, c) {\n var d = c.window === c ? c.document : 9 === c.nodeType ? c : c.ownerDocument;\n Te || null == Qe || Qe !== Xa(d) || (d = Qe, \"selectionStart\" in d && Oe(d) ? d = {\n start: d.selectionStart,\n end: d.selectionEnd\n } : (d = (d.ownerDocument && d.ownerDocument.defaultView || window).getSelection(), d = {\n anchorNode: d.anchorNode,\n anchorOffset: d.anchorOffset,\n focusNode: d.focusNode,\n focusOffset: d.focusOffset\n }), Se && Je(Se, d) || (Se = d, d = oe(Re, \"onSelect\"), 0 < d.length && (b = new td(\"onSelect\", \"select\", null, b, c), a.push({\n event: b,\n listeners: d\n }), b.target = Qe)));\n}\n\nPc(\"cancel cancel click click close close contextmenu contextMenu copy copy cut cut auxclick auxClick dblclick doubleClick dragend dragEnd dragstart dragStart drop drop focusin focus focusout blur input input invalid invalid keydown keyDown keypress keyPress keyup keyUp mousedown mouseDown mouseup mouseUp paste paste pause pause play play pointercancel pointerCancel pointerdown pointerDown pointerup pointerUp ratechange rateChange reset reset seeked seeked submit submit touchcancel touchCancel touchend touchEnd touchstart touchStart volumechange volumeChange\".split(\" \"), 0);\nPc(\"drag drag dragenter dragEnter dragexit dragExit dragleave dragLeave dragover dragOver mousemove mouseMove mouseout mouseOut mouseover mouseOver pointermove pointerMove pointerout pointerOut pointerover pointerOver scroll scroll toggle toggle touchmove touchMove wheel wheel\".split(\" \"), 1);\nPc(Oc, 2);\n\nfor (var Ve = \"change selectionchange textInput compositionstart compositionend compositionupdate\".split(\" \"), We = 0; We < Ve.length; We++) {\n Nc.set(Ve[We], 0);\n}\n\nea(\"onMouseEnter\", [\"mouseout\", \"mouseover\"]);\nea(\"onMouseLeave\", [\"mouseout\", \"mouseover\"]);\nea(\"onPointerEnter\", [\"pointerout\", \"pointerover\"]);\nea(\"onPointerLeave\", [\"pointerout\", \"pointerover\"]);\nda(\"onChange\", \"change click focusin focusout input keydown keyup selectionchange\".split(\" \"));\nda(\"onSelect\", \"focusout contextmenu dragend focusin keydown keyup mousedown mouseup selectionchange\".split(\" \"));\nda(\"onBeforeInput\", [\"compositionend\", \"keypress\", \"textInput\", \"paste\"]);\nda(\"onCompositionEnd\", \"compositionend focusout keydown keypress keyup mousedown\".split(\" \"));\nda(\"onCompositionStart\", \"compositionstart focusout keydown keypress keyup mousedown\".split(\" \"));\nda(\"onCompositionUpdate\", \"compositionupdate focusout keydown keypress keyup mousedown\".split(\" \"));\nvar Xe = \"abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange seeked seeking stalled suspend timeupdate volumechange waiting\".split(\" \"),\n Ye = new Set(\"cancel close invalid load scroll toggle\".split(\" \").concat(Xe));\n\nfunction Ze(a, b, c) {\n var d = a.type || \"unknown-event\";\n a.currentTarget = c;\n Yb(d, b, void 0, a);\n a.currentTarget = null;\n}\n\nfunction se(a, b) {\n b = 0 !== (b & 4);\n\n for (var c = 0; c < a.length; c++) {\n var d = a[c],\n e = d.event;\n d = d.listeners;\n\n a: {\n var f = void 0;\n if (b) for (var g = d.length - 1; 0 <= g; g--) {\n var h = d[g],\n k = h.instance,\n l = h.currentTarget;\n h = h.listener;\n if (k !== f && e.isPropagationStopped()) break a;\n Ze(e, h, l);\n f = k;\n } else for (g = 0; g < d.length; g++) {\n h = d[g];\n k = h.instance;\n l = h.currentTarget;\n h = h.listener;\n if (k !== f && e.isPropagationStopped()) break a;\n Ze(e, h, l);\n f = k;\n }\n }\n }\n\n if (Ub) throw a = Vb, Ub = !1, Vb = null, a;\n}\n\nfunction G(a, b) {\n var c = $e(b),\n d = a + \"__bubble\";\n c.has(d) || (af(b, a, 2, !1), c.add(d));\n}\n\nvar bf = \"_reactListening\" + Math.random().toString(36).slice(2);\n\nfunction cf(a) {\n a[bf] || (a[bf] = !0, ba.forEach(function (b) {\n Ye.has(b) || df(b, !1, a, null);\n df(b, !0, a, null);\n }));\n}\n\nfunction df(a, b, c, d) {\n var e = 4 < arguments.length && void 0 !== arguments[4] ? arguments[4] : 0,\n f = c;\n \"selectionchange\" === a && 9 !== c.nodeType && (f = c.ownerDocument);\n\n if (null !== d && !b && Ye.has(a)) {\n if (\"scroll\" !== a) return;\n e |= 2;\n f = d;\n }\n\n var g = $e(f),\n h = a + \"__\" + (b ? \"capture\" : \"bubble\");\n g.has(h) || (b && (e |= 4), af(f, a, e, b), g.add(h));\n}\n\nfunction af(a, b, c, d) {\n var e = Nc.get(b);\n\n switch (void 0 === e ? 2 : e) {\n case 0:\n e = gd;\n break;\n\n case 1:\n e = id;\n break;\n\n default:\n e = hd;\n }\n\n c = e.bind(null, b, c, a);\n e = void 0;\n !Pb || \"touchstart\" !== b && \"touchmove\" !== b && \"wheel\" !== b || (e = !0);\n d ? void 0 !== e ? a.addEventListener(b, c, {\n capture: !0,\n passive: e\n }) : a.addEventListener(b, c, !0) : void 0 !== e ? a.addEventListener(b, c, {\n passive: e\n }) : a.addEventListener(b, c, !1);\n}\n\nfunction jd(a, b, c, d, e) {\n var f = d;\n if (0 === (b & 1) && 0 === (b & 2) && null !== d) a: for (;;) {\n if (null === d) return;\n var g = d.tag;\n\n if (3 === g || 4 === g) {\n var h = d.stateNode.containerInfo;\n if (h === e || 8 === h.nodeType && h.parentNode === e) break;\n if (4 === g) for (g = d.return; null !== g;) {\n var k = g.tag;\n if (3 === k || 4 === k) if (k = g.stateNode.containerInfo, k === e || 8 === k.nodeType && k.parentNode === e) return;\n g = g.return;\n }\n\n for (; null !== h;) {\n g = wc(h);\n if (null === g) return;\n k = g.tag;\n\n if (5 === k || 6 === k) {\n d = f = g;\n continue a;\n }\n\n h = h.parentNode;\n }\n }\n\n d = d.return;\n }\n Nb(function () {\n var d = f,\n e = xb(c),\n g = [];\n\n a: {\n var h = Mc.get(a);\n\n if (void 0 !== h) {\n var k = td,\n x = a;\n\n switch (a) {\n case \"keypress\":\n if (0 === od(c)) break a;\n\n case \"keydown\":\n case \"keyup\":\n k = Rd;\n break;\n\n case \"focusin\":\n x = \"focus\";\n k = Fd;\n break;\n\n case \"focusout\":\n x = \"blur\";\n k = Fd;\n break;\n\n case \"beforeblur\":\n case \"afterblur\":\n k = Fd;\n break;\n\n case \"click\":\n if (2 === c.button) break a;\n\n case \"auxclick\":\n case \"dblclick\":\n case \"mousedown\":\n case \"mousemove\":\n case \"mouseup\":\n case \"mouseout\":\n case \"mouseover\":\n case \"contextmenu\":\n k = Bd;\n break;\n\n case \"drag\":\n case \"dragend\":\n case \"dragenter\":\n case \"dragexit\":\n case \"dragleave\":\n case \"dragover\":\n case \"dragstart\":\n case \"drop\":\n k = Dd;\n break;\n\n case \"touchcancel\":\n case \"touchend\":\n case \"touchmove\":\n case \"touchstart\":\n k = Vd;\n break;\n\n case Ic:\n case Jc:\n case Kc:\n k = Hd;\n break;\n\n case Lc:\n k = Xd;\n break;\n\n case \"scroll\":\n k = vd;\n break;\n\n case \"wheel\":\n k = Zd;\n break;\n\n case \"copy\":\n case \"cut\":\n case \"paste\":\n k = Jd;\n break;\n\n case \"gotpointercapture\":\n case \"lostpointercapture\":\n case \"pointercancel\":\n case \"pointerdown\":\n case \"pointermove\":\n case \"pointerout\":\n case \"pointerover\":\n case \"pointerup\":\n k = Td;\n }\n\n var w = 0 !== (b & 4),\n z = !w && \"scroll\" === a,\n u = w ? null !== h ? h + \"Capture\" : null : h;\n w = [];\n\n for (var t = d, q; null !== t;) {\n q = t;\n var v = q.stateNode;\n 5 === q.tag && null !== v && (q = v, null !== u && (v = Ob(t, u), null != v && w.push(ef(t, v, q))));\n if (z) break;\n t = t.return;\n }\n\n 0 < w.length && (h = new k(h, x, null, c, e), g.push({\n event: h,\n listeners: w\n }));\n }\n }\n\n if (0 === (b & 7)) {\n a: {\n h = \"mouseover\" === a || \"pointerover\" === a;\n k = \"mouseout\" === a || \"pointerout\" === a;\n if (h && 0 === (b & 16) && (x = c.relatedTarget || c.fromElement) && (wc(x) || x[ff])) break a;\n\n if (k || h) {\n h = e.window === e ? e : (h = e.ownerDocument) ? h.defaultView || h.parentWindow : window;\n\n if (k) {\n if (x = c.relatedTarget || c.toElement, k = d, x = x ? wc(x) : null, null !== x && (z = Zb(x), x !== z || 5 !== x.tag && 6 !== x.tag)) x = null;\n } else k = null, x = d;\n\n if (k !== x) {\n w = Bd;\n v = \"onMouseLeave\";\n u = \"onMouseEnter\";\n t = \"mouse\";\n if (\"pointerout\" === a || \"pointerover\" === a) w = Td, v = \"onPointerLeave\", u = \"onPointerEnter\", t = \"pointer\";\n z = null == k ? h : ue(k);\n q = null == x ? h : ue(x);\n h = new w(v, t + \"leave\", k, c, e);\n h.target = z;\n h.relatedTarget = q;\n v = null;\n wc(e) === d && (w = new w(u, t + \"enter\", x, c, e), w.target = q, w.relatedTarget = z, v = w);\n z = v;\n if (k && x) b: {\n w = k;\n u = x;\n t = 0;\n\n for (q = w; q; q = gf(q)) {\n t++;\n }\n\n q = 0;\n\n for (v = u; v; v = gf(v)) {\n q++;\n }\n\n for (; 0 < t - q;) {\n w = gf(w), t--;\n }\n\n for (; 0 < q - t;) {\n u = gf(u), q--;\n }\n\n for (; t--;) {\n if (w === u || null !== u && w === u.alternate) break b;\n w = gf(w);\n u = gf(u);\n }\n\n w = null;\n } else w = null;\n null !== k && hf(g, h, k, w, !1);\n null !== x && null !== z && hf(g, z, x, w, !0);\n }\n }\n }\n\n a: {\n h = d ? ue(d) : window;\n k = h.nodeName && h.nodeName.toLowerCase();\n if (\"select\" === k || \"input\" === k && \"file\" === h.type) var J = ve;else if (me(h)) {\n if (we) J = Fe;else {\n J = De;\n var K = Ce;\n }\n } else (k = h.nodeName) && \"input\" === k.toLowerCase() && (\"checkbox\" === h.type || \"radio\" === h.type) && (J = Ee);\n\n if (J && (J = J(a, d))) {\n ne(g, J, c, e);\n break a;\n }\n\n K && K(a, h, d);\n \"focusout\" === a && (K = h._wrapperState) && K.controlled && \"number\" === h.type && bb(h, \"number\", h.value);\n }\n\n K = d ? ue(d) : window;\n\n switch (a) {\n case \"focusin\":\n if (me(K) || \"true\" === K.contentEditable) Qe = K, Re = d, Se = null;\n break;\n\n case \"focusout\":\n Se = Re = Qe = null;\n break;\n\n case \"mousedown\":\n Te = !0;\n break;\n\n case \"contextmenu\":\n case \"mouseup\":\n case \"dragend\":\n Te = !1;\n Ue(g, c, e);\n break;\n\n case \"selectionchange\":\n if (Pe) break;\n\n case \"keydown\":\n case \"keyup\":\n Ue(g, c, e);\n }\n\n var Q;\n if (ae) b: {\n switch (a) {\n case \"compositionstart\":\n var L = \"onCompositionStart\";\n break b;\n\n case \"compositionend\":\n L = \"onCompositionEnd\";\n break b;\n\n case \"compositionupdate\":\n L = \"onCompositionUpdate\";\n break b;\n }\n\n L = void 0;\n } else ie ? ge(a, c) && (L = \"onCompositionEnd\") : \"keydown\" === a && 229 === c.keyCode && (L = \"onCompositionStart\");\n L && (de && \"ko\" !== c.locale && (ie || \"onCompositionStart\" !== L ? \"onCompositionEnd\" === L && ie && (Q = nd()) : (kd = e, ld = \"value\" in kd ? kd.value : kd.textContent, ie = !0)), K = oe(d, L), 0 < K.length && (L = new Ld(L, a, null, c, e), g.push({\n event: L,\n listeners: K\n }), Q ? L.data = Q : (Q = he(c), null !== Q && (L.data = Q))));\n if (Q = ce ? je(a, c) : ke(a, c)) d = oe(d, \"onBeforeInput\"), 0 < d.length && (e = new Ld(\"onBeforeInput\", \"beforeinput\", null, c, e), g.push({\n event: e,\n listeners: d\n }), e.data = Q);\n }\n\n se(g, b);\n });\n}\n\nfunction ef(a, b, c) {\n return {\n instance: a,\n listener: b,\n currentTarget: c\n };\n}\n\nfunction oe(a, b) {\n for (var c = b + \"Capture\", d = []; null !== a;) {\n var e = a,\n f = e.stateNode;\n 5 === e.tag && null !== f && (e = f, f = Ob(a, c), null != f && d.unshift(ef(a, f, e)), f = Ob(a, b), null != f && d.push(ef(a, f, e)));\n a = a.return;\n }\n\n return d;\n}\n\nfunction gf(a) {\n if (null === a) return null;\n\n do {\n a = a.return;\n } while (a && 5 !== a.tag);\n\n return a ? a : null;\n}\n\nfunction hf(a, b, c, d, e) {\n for (var f = b._reactName, g = []; null !== c && c !== d;) {\n var h = c,\n k = h.alternate,\n l = h.stateNode;\n if (null !== k && k === d) break;\n 5 === h.tag && null !== l && (h = l, e ? (k = Ob(c, f), null != k && g.unshift(ef(c, k, h))) : e || (k = Ob(c, f), null != k && g.push(ef(c, k, h))));\n c = c.return;\n }\n\n 0 !== g.length && a.push({\n event: b,\n listeners: g\n });\n}\n\nfunction jf() {}\n\nvar kf = null,\n lf = null;\n\nfunction mf(a, b) {\n switch (a) {\n case \"button\":\n case \"input\":\n case \"select\":\n case \"textarea\":\n return !!b.autoFocus;\n }\n\n return !1;\n}\n\nfunction nf(a, b) {\n return \"textarea\" === a || \"option\" === a || \"noscript\" === a || \"string\" === typeof b.children || \"number\" === typeof b.children || \"object\" === typeof b.dangerouslySetInnerHTML && null !== b.dangerouslySetInnerHTML && null != b.dangerouslySetInnerHTML.__html;\n}\n\nvar of = \"function\" === typeof setTimeout ? setTimeout : void 0,\n pf = \"function\" === typeof clearTimeout ? clearTimeout : void 0;\n\nfunction qf(a) {\n 1 === a.nodeType ? a.textContent = \"\" : 9 === a.nodeType && (a = a.body, null != a && (a.textContent = \"\"));\n}\n\nfunction rf(a) {\n for (; null != a; a = a.nextSibling) {\n var b = a.nodeType;\n if (1 === b || 3 === b) break;\n }\n\n return a;\n}\n\nfunction sf(a) {\n a = a.previousSibling;\n\n for (var b = 0; a;) {\n if (8 === a.nodeType) {\n var c = a.data;\n\n if (\"$\" === c || \"$!\" === c || \"$?\" === c) {\n if (0 === b) return a;\n b--;\n } else \"/$\" === c && b++;\n }\n\n a = a.previousSibling;\n }\n\n return null;\n}\n\nvar tf = 0;\n\nfunction uf(a) {\n return {\n $$typeof: Ga,\n toString: a,\n valueOf: a\n };\n}\n\nvar vf = Math.random().toString(36).slice(2),\n wf = \"__reactFiber$\" + vf,\n xf = \"__reactProps$\" + vf,\n ff = \"__reactContainer$\" + vf,\n yf = \"__reactEvents$\" + vf;\n\nfunction wc(a) {\n var b = a[wf];\n if (b) return b;\n\n for (var c = a.parentNode; c;) {\n if (b = c[ff] || c[wf]) {\n c = b.alternate;\n if (null !== b.child || null !== c && null !== c.child) for (a = sf(a); null !== a;) {\n if (c = a[wf]) return c;\n a = sf(a);\n }\n return b;\n }\n\n a = c;\n c = a.parentNode;\n }\n\n return null;\n}\n\nfunction Cb(a) {\n a = a[wf] || a[ff];\n return !a || 5 !== a.tag && 6 !== a.tag && 13 !== a.tag && 3 !== a.tag ? null : a;\n}\n\nfunction ue(a) {\n if (5 === a.tag || 6 === a.tag) return a.stateNode;\n throw Error(y(33));\n}\n\nfunction Db(a) {\n return a[xf] || null;\n}\n\nfunction $e(a) {\n var b = a[yf];\n void 0 === b && (b = a[yf] = new Set());\n return b;\n}\n\nvar zf = [],\n Af = -1;\n\nfunction Bf(a) {\n return {\n current: a\n };\n}\n\nfunction H(a) {\n 0 > Af || (a.current = zf[Af], zf[Af] = null, Af--);\n}\n\nfunction I(a, b) {\n Af++;\n zf[Af] = a.current;\n a.current = b;\n}\n\nvar Cf = {},\n M = Bf(Cf),\n N = Bf(!1),\n Df = Cf;\n\nfunction Ef(a, b) {\n var c = a.type.contextTypes;\n if (!c) return Cf;\n var d = a.stateNode;\n if (d && d.__reactInternalMemoizedUnmaskedChildContext === b) return d.__reactInternalMemoizedMaskedChildContext;\n var e = {},\n f;\n\n for (f in c) {\n e[f] = b[f];\n }\n\n d && (a = a.stateNode, a.__reactInternalMemoizedUnmaskedChildContext = b, a.__reactInternalMemoizedMaskedChildContext = e);\n return e;\n}\n\nfunction Ff(a) {\n a = a.childContextTypes;\n return null !== a && void 0 !== a;\n}\n\nfunction Gf() {\n H(N);\n H(M);\n}\n\nfunction Hf(a, b, c) {\n if (M.current !== Cf) throw Error(y(168));\n I(M, b);\n I(N, c);\n}\n\nfunction If(a, b, c) {\n var d = a.stateNode;\n a = b.childContextTypes;\n if (\"function\" !== typeof d.getChildContext) return c;\n d = d.getChildContext();\n\n for (var e in d) {\n if (!(e in a)) throw Error(y(108, Ra(b) || \"Unknown\", e));\n }\n\n return m({}, c, d);\n}\n\nfunction Jf(a) {\n a = (a = a.stateNode) && a.__reactInternalMemoizedMergedChildContext || Cf;\n Df = M.current;\n I(M, a);\n I(N, N.current);\n return !0;\n}\n\nfunction Kf(a, b, c) {\n var d = a.stateNode;\n if (!d) throw Error(y(169));\n c ? (a = If(a, b, Df), d.__reactInternalMemoizedMergedChildContext = a, H(N), H(M), I(M, a)) : H(N);\n I(N, c);\n}\n\nvar Lf = null,\n Mf = null,\n Nf = r.unstable_runWithPriority,\n Of = r.unstable_scheduleCallback,\n Pf = r.unstable_cancelCallback,\n Qf = r.unstable_shouldYield,\n Rf = r.unstable_requestPaint,\n Sf = r.unstable_now,\n Tf = r.unstable_getCurrentPriorityLevel,\n Uf = r.unstable_ImmediatePriority,\n Vf = r.unstable_UserBlockingPriority,\n Wf = r.unstable_NormalPriority,\n Xf = r.unstable_LowPriority,\n Yf = r.unstable_IdlePriority,\n Zf = {},\n $f = void 0 !== Rf ? Rf : function () {},\n ag = null,\n bg = null,\n cg = !1,\n dg = Sf(),\n O = 1E4 > dg ? Sf : function () {\n return Sf() - dg;\n};\n\nfunction eg() {\n switch (Tf()) {\n case Uf:\n return 99;\n\n case Vf:\n return 98;\n\n case Wf:\n return 97;\n\n case Xf:\n return 96;\n\n case Yf:\n return 95;\n\n default:\n throw Error(y(332));\n }\n}\n\nfunction fg(a) {\n switch (a) {\n case 99:\n return Uf;\n\n case 98:\n return Vf;\n\n case 97:\n return Wf;\n\n case 96:\n return Xf;\n\n case 95:\n return Yf;\n\n default:\n throw Error(y(332));\n }\n}\n\nfunction gg(a, b) {\n a = fg(a);\n return Nf(a, b);\n}\n\nfunction hg(a, b, c) {\n a = fg(a);\n return Of(a, b, c);\n}\n\nfunction ig() {\n if (null !== bg) {\n var a = bg;\n bg = null;\n Pf(a);\n }\n\n jg();\n}\n\nfunction jg() {\n if (!cg && null !== ag) {\n cg = !0;\n var a = 0;\n\n try {\n var b = ag;\n gg(99, function () {\n for (; a < b.length; a++) {\n var c = b[a];\n\n do {\n c = c(!0);\n } while (null !== c);\n }\n });\n ag = null;\n } catch (c) {\n throw null !== ag && (ag = ag.slice(a + 1)), Of(Uf, ig), c;\n } finally {\n cg = !1;\n }\n }\n}\n\nvar kg = ra.ReactCurrentBatchConfig;\n\nfunction lg(a, b) {\n if (a && a.defaultProps) {\n b = m({}, b);\n a = a.defaultProps;\n\n for (var c in a) {\n void 0 === b[c] && (b[c] = a[c]);\n }\n\n return b;\n }\n\n return b;\n}\n\nvar mg = Bf(null),\n ng = null,\n og = null,\n pg = null;\n\nfunction qg() {\n pg = og = ng = null;\n}\n\nfunction rg(a) {\n var b = mg.current;\n H(mg);\n a.type._context._currentValue = b;\n}\n\nfunction sg(a, b) {\n for (; null !== a;) {\n var c = a.alternate;\n if ((a.childLanes & b) === b) {\n if (null === c || (c.childLanes & b) === b) break;else c.childLanes |= b;\n } else a.childLanes |= b, null !== c && (c.childLanes |= b);\n a = a.return;\n }\n}\n\nfunction tg(a, b) {\n ng = a;\n pg = og = null;\n a = a.dependencies;\n null !== a && null !== a.firstContext && (0 !== (a.lanes & b) && (ug = !0), a.firstContext = null);\n}\n\nfunction vg(a, b) {\n if (pg !== a && !1 !== b && 0 !== b) {\n if (\"number\" !== typeof b || 1073741823 === b) pg = a, b = 1073741823;\n b = {\n context: a,\n observedBits: b,\n next: null\n };\n\n if (null === og) {\n if (null === ng) throw Error(y(308));\n og = b;\n ng.dependencies = {\n lanes: 0,\n firstContext: b,\n responders: null\n };\n } else og = og.next = b;\n }\n\n return a._currentValue;\n}\n\nvar wg = !1;\n\nfunction xg(a) {\n a.updateQueue = {\n baseState: a.memoizedState,\n firstBaseUpdate: null,\n lastBaseUpdate: null,\n shared: {\n pending: null\n },\n effects: null\n };\n}\n\nfunction yg(a, b) {\n a = a.updateQueue;\n b.updateQueue === a && (b.updateQueue = {\n baseState: a.baseState,\n firstBaseUpdate: a.firstBaseUpdate,\n lastBaseUpdate: a.lastBaseUpdate,\n shared: a.shared,\n effects: a.effects\n });\n}\n\nfunction zg(a, b) {\n return {\n eventTime: a,\n lane: b,\n tag: 0,\n payload: null,\n callback: null,\n next: null\n };\n}\n\nfunction Ag(a, b) {\n a = a.updateQueue;\n\n if (null !== a) {\n a = a.shared;\n var c = a.pending;\n null === c ? b.next = b : (b.next = c.next, c.next = b);\n a.pending = b;\n }\n}\n\nfunction Bg(a, b) {\n var c = a.updateQueue,\n d = a.alternate;\n\n if (null !== d && (d = d.updateQueue, c === d)) {\n var e = null,\n f = null;\n c = c.firstBaseUpdate;\n\n if (null !== c) {\n do {\n var g = {\n eventTime: c.eventTime,\n lane: c.lane,\n tag: c.tag,\n payload: c.payload,\n callback: c.callback,\n next: null\n };\n null === f ? e = f = g : f = f.next = g;\n c = c.next;\n } while (null !== c);\n\n null === f ? e = f = b : f = f.next = b;\n } else e = f = b;\n\n c = {\n baseState: d.baseState,\n firstBaseUpdate: e,\n lastBaseUpdate: f,\n shared: d.shared,\n effects: d.effects\n };\n a.updateQueue = c;\n return;\n }\n\n a = c.lastBaseUpdate;\n null === a ? c.firstBaseUpdate = b : a.next = b;\n c.lastBaseUpdate = b;\n}\n\nfunction Cg(a, b, c, d) {\n var e = a.updateQueue;\n wg = !1;\n var f = e.firstBaseUpdate,\n g = e.lastBaseUpdate,\n h = e.shared.pending;\n\n if (null !== h) {\n e.shared.pending = null;\n var k = h,\n l = k.next;\n k.next = null;\n null === g ? f = l : g.next = l;\n g = k;\n var n = a.alternate;\n\n if (null !== n) {\n n = n.updateQueue;\n var A = n.lastBaseUpdate;\n A !== g && (null === A ? n.firstBaseUpdate = l : A.next = l, n.lastBaseUpdate = k);\n }\n }\n\n if (null !== f) {\n A = e.baseState;\n g = 0;\n n = l = k = null;\n\n do {\n h = f.lane;\n var p = f.eventTime;\n\n if ((d & h) === h) {\n null !== n && (n = n.next = {\n eventTime: p,\n lane: 0,\n tag: f.tag,\n payload: f.payload,\n callback: f.callback,\n next: null\n });\n\n a: {\n var C = a,\n x = f;\n h = b;\n p = c;\n\n switch (x.tag) {\n case 1:\n C = x.payload;\n\n if (\"function\" === typeof C) {\n A = C.call(p, A, h);\n break a;\n }\n\n A = C;\n break a;\n\n case 3:\n C.flags = C.flags & -4097 | 64;\n\n case 0:\n C = x.payload;\n h = \"function\" === typeof C ? C.call(p, A, h) : C;\n if (null === h || void 0 === h) break a;\n A = m({}, A, h);\n break a;\n\n case 2:\n wg = !0;\n }\n }\n\n null !== f.callback && (a.flags |= 32, h = e.effects, null === h ? e.effects = [f] : h.push(f));\n } else p = {\n eventTime: p,\n lane: h,\n tag: f.tag,\n payload: f.payload,\n callback: f.callback,\n next: null\n }, null === n ? (l = n = p, k = A) : n = n.next = p, g |= h;\n\n f = f.next;\n if (null === f) if (h = e.shared.pending, null === h) break;else f = h.next, h.next = null, e.lastBaseUpdate = h, e.shared.pending = null;\n } while (1);\n\n null === n && (k = A);\n e.baseState = k;\n e.firstBaseUpdate = l;\n e.lastBaseUpdate = n;\n Dg |= g;\n a.lanes = g;\n a.memoizedState = A;\n }\n}\n\nfunction Eg(a, b, c) {\n a = b.effects;\n b.effects = null;\n if (null !== a) for (b = 0; b < a.length; b++) {\n var d = a[b],\n e = d.callback;\n\n if (null !== e) {\n d.callback = null;\n d = c;\n if (\"function\" !== typeof e) throw Error(y(191, e));\n e.call(d);\n }\n }\n}\n\nvar Fg = new aa.Component().refs;\n\nfunction Gg(a, b, c, d) {\n b = a.memoizedState;\n c = c(d, b);\n c = null === c || void 0 === c ? b : m({}, b, c);\n a.memoizedState = c;\n 0 === a.lanes && (a.updateQueue.baseState = c);\n}\n\nvar Kg = {\n isMounted: function isMounted(a) {\n return (a = a._reactInternals) ? Zb(a) === a : !1;\n },\n enqueueSetState: function enqueueSetState(a, b, c) {\n a = a._reactInternals;\n var d = Hg(),\n e = Ig(a),\n f = zg(d, e);\n f.payload = b;\n void 0 !== c && null !== c && (f.callback = c);\n Ag(a, f);\n Jg(a, e, d);\n },\n enqueueReplaceState: function enqueueReplaceState(a, b, c) {\n a = a._reactInternals;\n var d = Hg(),\n e = Ig(a),\n f = zg(d, e);\n f.tag = 1;\n f.payload = b;\n void 0 !== c && null !== c && (f.callback = c);\n Ag(a, f);\n Jg(a, e, d);\n },\n enqueueForceUpdate: function enqueueForceUpdate(a, b) {\n a = a._reactInternals;\n var c = Hg(),\n d = Ig(a),\n e = zg(c, d);\n e.tag = 2;\n void 0 !== b && null !== b && (e.callback = b);\n Ag(a, e);\n Jg(a, d, c);\n }\n};\n\nfunction Lg(a, b, c, d, e, f, g) {\n a = a.stateNode;\n return \"function\" === typeof a.shouldComponentUpdate ? a.shouldComponentUpdate(d, f, g) : b.prototype && b.prototype.isPureReactComponent ? !Je(c, d) || !Je(e, f) : !0;\n}\n\nfunction Mg(a, b, c) {\n var d = !1,\n e = Cf;\n var f = b.contextType;\n \"object\" === typeof f && null !== f ? f = vg(f) : (e = Ff(b) ? Df : M.current, d = b.contextTypes, f = (d = null !== d && void 0 !== d) ? Ef(a, e) : Cf);\n b = new b(c, f);\n a.memoizedState = null !== b.state && void 0 !== b.state ? b.state : null;\n b.updater = Kg;\n a.stateNode = b;\n b._reactInternals = a;\n d && (a = a.stateNode, a.__reactInternalMemoizedUnmaskedChildContext = e, a.__reactInternalMemoizedMaskedChildContext = f);\n return b;\n}\n\nfunction Ng(a, b, c, d) {\n a = b.state;\n \"function\" === typeof b.componentWillReceiveProps && b.componentWillReceiveProps(c, d);\n \"function\" === typeof b.UNSAFE_componentWillReceiveProps && b.UNSAFE_componentWillReceiveProps(c, d);\n b.state !== a && Kg.enqueueReplaceState(b, b.state, null);\n}\n\nfunction Og(a, b, c, d) {\n var e = a.stateNode;\n e.props = c;\n e.state = a.memoizedState;\n e.refs = Fg;\n xg(a);\n var f = b.contextType;\n \"object\" === typeof f && null !== f ? e.context = vg(f) : (f = Ff(b) ? Df : M.current, e.context = Ef(a, f));\n Cg(a, c, e, d);\n e.state = a.memoizedState;\n f = b.getDerivedStateFromProps;\n \"function\" === typeof f && (Gg(a, b, f, c), e.state = a.memoizedState);\n \"function\" === typeof b.getDerivedStateFromProps || \"function\" === typeof e.getSnapshotBeforeUpdate || \"function\" !== typeof e.UNSAFE_componentWillMount && \"function\" !== typeof e.componentWillMount || (b = e.state, \"function\" === typeof e.componentWillMount && e.componentWillMount(), \"function\" === typeof e.UNSAFE_componentWillMount && e.UNSAFE_componentWillMount(), b !== e.state && Kg.enqueueReplaceState(e, e.state, null), Cg(a, c, e, d), e.state = a.memoizedState);\n \"function\" === typeof e.componentDidMount && (a.flags |= 4);\n}\n\nvar Pg = Array.isArray;\n\nfunction Qg(a, b, c) {\n a = c.ref;\n\n if (null !== a && \"function\" !== typeof a && \"object\" !== typeof a) {\n if (c._owner) {\n c = c._owner;\n\n if (c) {\n if (1 !== c.tag) throw Error(y(309));\n var d = c.stateNode;\n }\n\n if (!d) throw Error(y(147, a));\n var e = \"\" + a;\n if (null !== b && null !== b.ref && \"function\" === typeof b.ref && b.ref._stringRef === e) return b.ref;\n\n b = function b(a) {\n var b = d.refs;\n b === Fg && (b = d.refs = {});\n null === a ? delete b[e] : b[e] = a;\n };\n\n b._stringRef = e;\n return b;\n }\n\n if (\"string\" !== typeof a) throw Error(y(284));\n if (!c._owner) throw Error(y(290, a));\n }\n\n return a;\n}\n\nfunction Rg(a, b) {\n if (\"textarea\" !== a.type) throw Error(y(31, \"[object Object]\" === Object.prototype.toString.call(b) ? \"object with keys {\" + Object.keys(b).join(\", \") + \"}\" : b));\n}\n\nfunction Sg(a) {\n function b(b, c) {\n if (a) {\n var d = b.lastEffect;\n null !== d ? (d.nextEffect = c, b.lastEffect = c) : b.firstEffect = b.lastEffect = c;\n c.nextEffect = null;\n c.flags = 8;\n }\n }\n\n function c(c, d) {\n if (!a) return null;\n\n for (; null !== d;) {\n b(c, d), d = d.sibling;\n }\n\n return null;\n }\n\n function d(a, b) {\n for (a = new Map(); null !== b;) {\n null !== b.key ? a.set(b.key, b) : a.set(b.index, b), b = b.sibling;\n }\n\n return a;\n }\n\n function e(a, b) {\n a = Tg(a, b);\n a.index = 0;\n a.sibling = null;\n return a;\n }\n\n function f(b, c, d) {\n b.index = d;\n if (!a) return c;\n d = b.alternate;\n if (null !== d) return d = d.index, d < c ? (b.flags = 2, c) : d;\n b.flags = 2;\n return c;\n }\n\n function g(b) {\n a && null === b.alternate && (b.flags = 2);\n return b;\n }\n\n function h(a, b, c, d) {\n if (null === b || 6 !== b.tag) return b = Ug(c, a.mode, d), b.return = a, b;\n b = e(b, c);\n b.return = a;\n return b;\n }\n\n function k(a, b, c, d) {\n if (null !== b && b.elementType === c.type) return d = e(b, c.props), d.ref = Qg(a, b, c), d.return = a, d;\n d = Vg(c.type, c.key, c.props, null, a.mode, d);\n d.ref = Qg(a, b, c);\n d.return = a;\n return d;\n }\n\n function l(a, b, c, d) {\n if (null === b || 4 !== b.tag || b.stateNode.containerInfo !== c.containerInfo || b.stateNode.implementation !== c.implementation) return b = Wg(c, a.mode, d), b.return = a, b;\n b = e(b, c.children || []);\n b.return = a;\n return b;\n }\n\n function n(a, b, c, d, f) {\n if (null === b || 7 !== b.tag) return b = Xg(c, a.mode, d, f), b.return = a, b;\n b = e(b, c);\n b.return = a;\n return b;\n }\n\n function A(a, b, c) {\n if (\"string\" === typeof b || \"number\" === typeof b) return b = Ug(\"\" + b, a.mode, c), b.return = a, b;\n\n if (\"object\" === typeof b && null !== b) {\n switch (b.$$typeof) {\n case sa:\n return c = Vg(b.type, b.key, b.props, null, a.mode, c), c.ref = Qg(a, null, b), c.return = a, c;\n\n case ta:\n return b = Wg(b, a.mode, c), b.return = a, b;\n }\n\n if (Pg(b) || La(b)) return b = Xg(b, a.mode, c, null), b.return = a, b;\n Rg(a, b);\n }\n\n return null;\n }\n\n function p(a, b, c, d) {\n var e = null !== b ? b.key : null;\n if (\"string\" === typeof c || \"number\" === typeof c) return null !== e ? null : h(a, b, \"\" + c, d);\n\n if (\"object\" === typeof c && null !== c) {\n switch (c.$$typeof) {\n case sa:\n return c.key === e ? c.type === ua ? n(a, b, c.props.children, d, e) : k(a, b, c, d) : null;\n\n case ta:\n return c.key === e ? l(a, b, c, d) : null;\n }\n\n if (Pg(c) || La(c)) return null !== e ? null : n(a, b, c, d, null);\n Rg(a, c);\n }\n\n return null;\n }\n\n function C(a, b, c, d, e) {\n if (\"string\" === typeof d || \"number\" === typeof d) return a = a.get(c) || null, h(b, a, \"\" + d, e);\n\n if (\"object\" === typeof d && null !== d) {\n switch (d.$$typeof) {\n case sa:\n return a = a.get(null === d.key ? c : d.key) || null, d.type === ua ? n(b, a, d.props.children, e, d.key) : k(b, a, d, e);\n\n case ta:\n return a = a.get(null === d.key ? c : d.key) || null, l(b, a, d, e);\n }\n\n if (Pg(d) || La(d)) return a = a.get(c) || null, n(b, a, d, e, null);\n Rg(b, d);\n }\n\n return null;\n }\n\n function x(e, g, h, k) {\n for (var l = null, t = null, u = g, z = g = 0, q = null; null !== u && z < h.length; z++) {\n u.index > z ? (q = u, u = null) : q = u.sibling;\n var n = p(e, u, h[z], k);\n\n if (null === n) {\n null === u && (u = q);\n break;\n }\n\n a && u && null === n.alternate && b(e, u);\n g = f(n, g, z);\n null === t ? l = n : t.sibling = n;\n t = n;\n u = q;\n }\n\n if (z === h.length) return c(e, u), l;\n\n if (null === u) {\n for (; z < h.length; z++) {\n u = A(e, h[z], k), null !== u && (g = f(u, g, z), null === t ? l = u : t.sibling = u, t = u);\n }\n\n return l;\n }\n\n for (u = d(e, u); z < h.length; z++) {\n q = C(u, e, z, h[z], k), null !== q && (a && null !== q.alternate && u.delete(null === q.key ? z : q.key), g = f(q, g, z), null === t ? l = q : t.sibling = q, t = q);\n }\n\n a && u.forEach(function (a) {\n return b(e, a);\n });\n return l;\n }\n\n function w(e, g, h, k) {\n var l = La(h);\n if (\"function\" !== typeof l) throw Error(y(150));\n h = l.call(h);\n if (null == h) throw Error(y(151));\n\n for (var t = l = null, u = g, z = g = 0, q = null, n = h.next(); null !== u && !n.done; z++, n = h.next()) {\n u.index > z ? (q = u, u = null) : q = u.sibling;\n var w = p(e, u, n.value, k);\n\n if (null === w) {\n null === u && (u = q);\n break;\n }\n\n a && u && null === w.alternate && b(e, u);\n g = f(w, g, z);\n null === t ? l = w : t.sibling = w;\n t = w;\n u = q;\n }\n\n if (n.done) return c(e, u), l;\n\n if (null === u) {\n for (; !n.done; z++, n = h.next()) {\n n = A(e, n.value, k), null !== n && (g = f(n, g, z), null === t ? l = n : t.sibling = n, t = n);\n }\n\n return l;\n }\n\n for (u = d(e, u); !n.done; z++, n = h.next()) {\n n = C(u, e, z, n.value, k), null !== n && (a && null !== n.alternate && u.delete(null === n.key ? z : n.key), g = f(n, g, z), null === t ? l = n : t.sibling = n, t = n);\n }\n\n a && u.forEach(function (a) {\n return b(e, a);\n });\n return l;\n }\n\n return function (a, d, f, h) {\n var k = \"object\" === typeof f && null !== f && f.type === ua && null === f.key;\n k && (f = f.props.children);\n var l = \"object\" === typeof f && null !== f;\n if (l) switch (f.$$typeof) {\n case sa:\n a: {\n l = f.key;\n\n for (k = d; null !== k;) {\n if (k.key === l) {\n switch (k.tag) {\n case 7:\n if (f.type === ua) {\n c(a, k.sibling);\n d = e(k, f.props.children);\n d.return = a;\n a = d;\n break a;\n }\n\n break;\n\n default:\n if (k.elementType === f.type) {\n c(a, k.sibling);\n d = e(k, f.props);\n d.ref = Qg(a, k, f);\n d.return = a;\n a = d;\n break a;\n }\n\n }\n\n c(a, k);\n break;\n } else b(a, k);\n\n k = k.sibling;\n }\n\n f.type === ua ? (d = Xg(f.props.children, a.mode, h, f.key), d.return = a, a = d) : (h = Vg(f.type, f.key, f.props, null, a.mode, h), h.ref = Qg(a, d, f), h.return = a, a = h);\n }\n\n return g(a);\n\n case ta:\n a: {\n for (k = f.key; null !== d;) {\n if (d.key === k) {\n if (4 === d.tag && d.stateNode.containerInfo === f.containerInfo && d.stateNode.implementation === f.implementation) {\n c(a, d.sibling);\n d = e(d, f.children || []);\n d.return = a;\n a = d;\n break a;\n } else {\n c(a, d);\n break;\n }\n } else b(a, d);\n d = d.sibling;\n }\n\n d = Wg(f, a.mode, h);\n d.return = a;\n a = d;\n }\n\n return g(a);\n }\n if (\"string\" === typeof f || \"number\" === typeof f) return f = \"\" + f, null !== d && 6 === d.tag ? (c(a, d.sibling), d = e(d, f), d.return = a, a = d) : (c(a, d), d = Ug(f, a.mode, h), d.return = a, a = d), g(a);\n if (Pg(f)) return x(a, d, f, h);\n if (La(f)) return w(a, d, f, h);\n l && Rg(a, f);\n if (\"undefined\" === typeof f && !k) switch (a.tag) {\n case 1:\n case 22:\n case 0:\n case 11:\n case 15:\n throw Error(y(152, Ra(a.type) || \"Component\"));\n }\n return c(a, d);\n };\n}\n\nvar Yg = Sg(!0),\n Zg = Sg(!1),\n $g = {},\n ah = Bf($g),\n bh = Bf($g),\n ch = Bf($g);\n\nfunction dh(a) {\n if (a === $g) throw Error(y(174));\n return a;\n}\n\nfunction eh(a, b) {\n I(ch, b);\n I(bh, a);\n I(ah, $g);\n a = b.nodeType;\n\n switch (a) {\n case 9:\n case 11:\n b = (b = b.documentElement) ? b.namespaceURI : mb(null, \"\");\n break;\n\n default:\n a = 8 === a ? b.parentNode : b, b = a.namespaceURI || null, a = a.tagName, b = mb(b, a);\n }\n\n H(ah);\n I(ah, b);\n}\n\nfunction fh() {\n H(ah);\n H(bh);\n H(ch);\n}\n\nfunction gh(a) {\n dh(ch.current);\n var b = dh(ah.current);\n var c = mb(b, a.type);\n b !== c && (I(bh, a), I(ah, c));\n}\n\nfunction hh(a) {\n bh.current === a && (H(ah), H(bh));\n}\n\nvar P = Bf(0);\n\nfunction ih(a) {\n for (var b = a; null !== b;) {\n if (13 === b.tag) {\n var c = b.memoizedState;\n if (null !== c && (c = c.dehydrated, null === c || \"$?\" === c.data || \"$!\" === c.data)) return b;\n } else if (19 === b.tag && void 0 !== b.memoizedProps.revealOrder) {\n if (0 !== (b.flags & 64)) return b;\n } else if (null !== b.child) {\n b.child.return = b;\n b = b.child;\n continue;\n }\n\n if (b === a) break;\n\n for (; null === b.sibling;) {\n if (null === b.return || b.return === a) return null;\n b = b.return;\n }\n\n b.sibling.return = b.return;\n b = b.sibling;\n }\n\n return null;\n}\n\nvar jh = null,\n kh = null,\n lh = !1;\n\nfunction mh(a, b) {\n var c = nh(5, null, null, 0);\n c.elementType = \"DELETED\";\n c.type = \"DELETED\";\n c.stateNode = b;\n c.return = a;\n c.flags = 8;\n null !== a.lastEffect ? (a.lastEffect.nextEffect = c, a.lastEffect = c) : a.firstEffect = a.lastEffect = c;\n}\n\nfunction oh(a, b) {\n switch (a.tag) {\n case 5:\n var c = a.type;\n b = 1 !== b.nodeType || c.toLowerCase() !== b.nodeName.toLowerCase() ? null : b;\n return null !== b ? (a.stateNode = b, !0) : !1;\n\n case 6:\n return b = \"\" === a.pendingProps || 3 !== b.nodeType ? null : b, null !== b ? (a.stateNode = b, !0) : !1;\n\n case 13:\n return !1;\n\n default:\n return !1;\n }\n}\n\nfunction ph(a) {\n if (lh) {\n var b = kh;\n\n if (b) {\n var c = b;\n\n if (!oh(a, b)) {\n b = rf(c.nextSibling);\n\n if (!b || !oh(a, b)) {\n a.flags = a.flags & -1025 | 2;\n lh = !1;\n jh = a;\n return;\n }\n\n mh(jh, c);\n }\n\n jh = a;\n kh = rf(b.firstChild);\n } else a.flags = a.flags & -1025 | 2, lh = !1, jh = a;\n }\n}\n\nfunction qh(a) {\n for (a = a.return; null !== a && 5 !== a.tag && 3 !== a.tag && 13 !== a.tag;) {\n a = a.return;\n }\n\n jh = a;\n}\n\nfunction rh(a) {\n if (a !== jh) return !1;\n if (!lh) return qh(a), lh = !0, !1;\n var b = a.type;\n if (5 !== a.tag || \"head\" !== b && \"body\" !== b && !nf(b, a.memoizedProps)) for (b = kh; b;) {\n mh(a, b), b = rf(b.nextSibling);\n }\n qh(a);\n\n if (13 === a.tag) {\n a = a.memoizedState;\n a = null !== a ? a.dehydrated : null;\n if (!a) throw Error(y(317));\n\n a: {\n a = a.nextSibling;\n\n for (b = 0; a;) {\n if (8 === a.nodeType) {\n var c = a.data;\n\n if (\"/$\" === c) {\n if (0 === b) {\n kh = rf(a.nextSibling);\n break a;\n }\n\n b--;\n } else \"$\" !== c && \"$!\" !== c && \"$?\" !== c || b++;\n }\n\n a = a.nextSibling;\n }\n\n kh = null;\n }\n } else kh = jh ? rf(a.stateNode.nextSibling) : null;\n\n return !0;\n}\n\nfunction sh() {\n kh = jh = null;\n lh = !1;\n}\n\nvar th = [];\n\nfunction uh() {\n for (var a = 0; a < th.length; a++) {\n th[a]._workInProgressVersionPrimary = null;\n }\n\n th.length = 0;\n}\n\nvar vh = ra.ReactCurrentDispatcher,\n wh = ra.ReactCurrentBatchConfig,\n xh = 0,\n R = null,\n S = null,\n T = null,\n yh = !1,\n zh = !1;\n\nfunction Ah() {\n throw Error(y(321));\n}\n\nfunction Bh(a, b) {\n if (null === b) return !1;\n\n for (var c = 0; c < b.length && c < a.length; c++) {\n if (!He(a[c], b[c])) return !1;\n }\n\n return !0;\n}\n\nfunction Ch(a, b, c, d, e, f) {\n xh = f;\n R = b;\n b.memoizedState = null;\n b.updateQueue = null;\n b.lanes = 0;\n vh.current = null === a || null === a.memoizedState ? Dh : Eh;\n a = c(d, e);\n\n if (zh) {\n f = 0;\n\n do {\n zh = !1;\n if (!(25 > f)) throw Error(y(301));\n f += 1;\n T = S = null;\n b.updateQueue = null;\n vh.current = Fh;\n a = c(d, e);\n } while (zh);\n }\n\n vh.current = Gh;\n b = null !== S && null !== S.next;\n xh = 0;\n T = S = R = null;\n yh = !1;\n if (b) throw Error(y(300));\n return a;\n}\n\nfunction Hh() {\n var a = {\n memoizedState: null,\n baseState: null,\n baseQueue: null,\n queue: null,\n next: null\n };\n null === T ? R.memoizedState = T = a : T = T.next = a;\n return T;\n}\n\nfunction Ih() {\n if (null === S) {\n var a = R.alternate;\n a = null !== a ? a.memoizedState : null;\n } else a = S.next;\n\n var b = null === T ? R.memoizedState : T.next;\n if (null !== b) T = b, S = a;else {\n if (null === a) throw Error(y(310));\n S = a;\n a = {\n memoizedState: S.memoizedState,\n baseState: S.baseState,\n baseQueue: S.baseQueue,\n queue: S.queue,\n next: null\n };\n null === T ? R.memoizedState = T = a : T = T.next = a;\n }\n return T;\n}\n\nfunction Jh(a, b) {\n return \"function\" === typeof b ? b(a) : b;\n}\n\nfunction Kh(a) {\n var b = Ih(),\n c = b.queue;\n if (null === c) throw Error(y(311));\n c.lastRenderedReducer = a;\n var d = S,\n e = d.baseQueue,\n f = c.pending;\n\n if (null !== f) {\n if (null !== e) {\n var g = e.next;\n e.next = f.next;\n f.next = g;\n }\n\n d.baseQueue = e = f;\n c.pending = null;\n }\n\n if (null !== e) {\n e = e.next;\n d = d.baseState;\n var h = g = f = null,\n k = e;\n\n do {\n var l = k.lane;\n if ((xh & l) === l) null !== h && (h = h.next = {\n lane: 0,\n action: k.action,\n eagerReducer: k.eagerReducer,\n eagerState: k.eagerState,\n next: null\n }), d = k.eagerReducer === a ? k.eagerState : a(d, k.action);else {\n var n = {\n lane: l,\n action: k.action,\n eagerReducer: k.eagerReducer,\n eagerState: k.eagerState,\n next: null\n };\n null === h ? (g = h = n, f = d) : h = h.next = n;\n R.lanes |= l;\n Dg |= l;\n }\n k = k.next;\n } while (null !== k && k !== e);\n\n null === h ? f = d : h.next = g;\n He(d, b.memoizedState) || (ug = !0);\n b.memoizedState = d;\n b.baseState = f;\n b.baseQueue = h;\n c.lastRenderedState = d;\n }\n\n return [b.memoizedState, c.dispatch];\n}\n\nfunction Lh(a) {\n var b = Ih(),\n c = b.queue;\n if (null === c) throw Error(y(311));\n c.lastRenderedReducer = a;\n var d = c.dispatch,\n e = c.pending,\n f = b.memoizedState;\n\n if (null !== e) {\n c.pending = null;\n var g = e = e.next;\n\n do {\n f = a(f, g.action), g = g.next;\n } while (g !== e);\n\n He(f, b.memoizedState) || (ug = !0);\n b.memoizedState = f;\n null === b.baseQueue && (b.baseState = f);\n c.lastRenderedState = f;\n }\n\n return [f, d];\n}\n\nfunction Mh(a, b, c) {\n var d = b._getVersion;\n d = d(b._source);\n var e = b._workInProgressVersionPrimary;\n if (null !== e) a = e === d;else if (a = a.mutableReadLanes, a = (xh & a) === a) b._workInProgressVersionPrimary = d, th.push(b);\n if (a) return c(b._source);\n th.push(b);\n throw Error(y(350));\n}\n\nfunction Nh(a, b, c, d) {\n var e = U;\n if (null === e) throw Error(y(349));\n var f = b._getVersion,\n g = f(b._source),\n h = vh.current,\n k = h.useState(function () {\n return Mh(e, b, c);\n }),\n l = k[1],\n n = k[0];\n k = T;\n var A = a.memoizedState,\n p = A.refs,\n C = p.getSnapshot,\n x = A.source;\n A = A.subscribe;\n var w = R;\n a.memoizedState = {\n refs: p,\n source: b,\n subscribe: d\n };\n h.useEffect(function () {\n p.getSnapshot = c;\n p.setSnapshot = l;\n var a = f(b._source);\n\n if (!He(g, a)) {\n a = c(b._source);\n He(n, a) || (l(a), a = Ig(w), e.mutableReadLanes |= a & e.pendingLanes);\n a = e.mutableReadLanes;\n e.entangledLanes |= a;\n\n for (var d = e.entanglements, h = a; 0 < h;) {\n var k = 31 - Vc(h),\n v = 1 << k;\n d[k] |= a;\n h &= ~v;\n }\n }\n }, [c, b, d]);\n h.useEffect(function () {\n return d(b._source, function () {\n var a = p.getSnapshot,\n c = p.setSnapshot;\n\n try {\n c(a(b._source));\n var d = Ig(w);\n e.mutableReadLanes |= d & e.pendingLanes;\n } catch (q) {\n c(function () {\n throw q;\n });\n }\n });\n }, [b, d]);\n He(C, c) && He(x, b) && He(A, d) || (a = {\n pending: null,\n dispatch: null,\n lastRenderedReducer: Jh,\n lastRenderedState: n\n }, a.dispatch = l = Oh.bind(null, R, a), k.queue = a, k.baseQueue = null, n = Mh(e, b, c), k.memoizedState = k.baseState = n);\n return n;\n}\n\nfunction Ph(a, b, c) {\n var d = Ih();\n return Nh(d, a, b, c);\n}\n\nfunction Qh(a) {\n var b = Hh();\n \"function\" === typeof a && (a = a());\n b.memoizedState = b.baseState = a;\n a = b.queue = {\n pending: null,\n dispatch: null,\n lastRenderedReducer: Jh,\n lastRenderedState: a\n };\n a = a.dispatch = Oh.bind(null, R, a);\n return [b.memoizedState, a];\n}\n\nfunction Rh(a, b, c, d) {\n a = {\n tag: a,\n create: b,\n destroy: c,\n deps: d,\n next: null\n };\n b = R.updateQueue;\n null === b ? (b = {\n lastEffect: null\n }, R.updateQueue = b, b.lastEffect = a.next = a) : (c = b.lastEffect, null === c ? b.lastEffect = a.next = a : (d = c.next, c.next = a, a.next = d, b.lastEffect = a));\n return a;\n}\n\nfunction Sh(a) {\n var b = Hh();\n a = {\n current: a\n };\n return b.memoizedState = a;\n}\n\nfunction Th() {\n return Ih().memoizedState;\n}\n\nfunction Uh(a, b, c, d) {\n var e = Hh();\n R.flags |= a;\n e.memoizedState = Rh(1 | b, c, void 0, void 0 === d ? null : d);\n}\n\nfunction Vh(a, b, c, d) {\n var e = Ih();\n d = void 0 === d ? null : d;\n var f = void 0;\n\n if (null !== S) {\n var g = S.memoizedState;\n f = g.destroy;\n\n if (null !== d && Bh(d, g.deps)) {\n Rh(b, c, f, d);\n return;\n }\n }\n\n R.flags |= a;\n e.memoizedState = Rh(1 | b, c, f, d);\n}\n\nfunction Wh(a, b) {\n return Uh(516, 4, a, b);\n}\n\nfunction Xh(a, b) {\n return Vh(516, 4, a, b);\n}\n\nfunction Yh(a, b) {\n return Vh(4, 2, a, b);\n}\n\nfunction Zh(a, b) {\n if (\"function\" === typeof b) return a = a(), b(a), function () {\n b(null);\n };\n if (null !== b && void 0 !== b) return a = a(), b.current = a, function () {\n b.current = null;\n };\n}\n\nfunction $h(a, b, c) {\n c = null !== c && void 0 !== c ? c.concat([a]) : null;\n return Vh(4, 2, Zh.bind(null, b, a), c);\n}\n\nfunction ai() {}\n\nfunction bi(a, b) {\n var c = Ih();\n b = void 0 === b ? null : b;\n var d = c.memoizedState;\n if (null !== d && null !== b && Bh(b, d[1])) return d[0];\n c.memoizedState = [a, b];\n return a;\n}\n\nfunction ci(a, b) {\n var c = Ih();\n b = void 0 === b ? null : b;\n var d = c.memoizedState;\n if (null !== d && null !== b && Bh(b, d[1])) return d[0];\n a = a();\n c.memoizedState = [a, b];\n return a;\n}\n\nfunction di(a, b) {\n var c = eg();\n gg(98 > c ? 98 : c, function () {\n a(!0);\n });\n gg(97 < c ? 97 : c, function () {\n var c = wh.transition;\n wh.transition = 1;\n\n try {\n a(!1), b();\n } finally {\n wh.transition = c;\n }\n });\n}\n\nfunction Oh(a, b, c) {\n var d = Hg(),\n e = Ig(a),\n f = {\n lane: e,\n action: c,\n eagerReducer: null,\n eagerState: null,\n next: null\n },\n g = b.pending;\n null === g ? f.next = f : (f.next = g.next, g.next = f);\n b.pending = f;\n g = a.alternate;\n if (a === R || null !== g && g === R) zh = yh = !0;else {\n if (0 === a.lanes && (null === g || 0 === g.lanes) && (g = b.lastRenderedReducer, null !== g)) try {\n var h = b.lastRenderedState,\n k = g(h, c);\n f.eagerReducer = g;\n f.eagerState = k;\n if (He(k, h)) return;\n } catch (l) {} finally {}\n Jg(a, e, d);\n }\n}\n\nvar Gh = {\n readContext: vg,\n useCallback: Ah,\n useContext: Ah,\n useEffect: Ah,\n useImperativeHandle: Ah,\n useLayoutEffect: Ah,\n useMemo: Ah,\n useReducer: Ah,\n useRef: Ah,\n useState: Ah,\n useDebugValue: Ah,\n useDeferredValue: Ah,\n useTransition: Ah,\n useMutableSource: Ah,\n useOpaqueIdentifier: Ah,\n unstable_isNewReconciler: !1\n},\n Dh = {\n readContext: vg,\n useCallback: function useCallback(a, b) {\n Hh().memoizedState = [a, void 0 === b ? null : b];\n return a;\n },\n useContext: vg,\n useEffect: Wh,\n useImperativeHandle: function useImperativeHandle(a, b, c) {\n c = null !== c && void 0 !== c ? c.concat([a]) : null;\n return Uh(4, 2, Zh.bind(null, b, a), c);\n },\n useLayoutEffect: function useLayoutEffect(a, b) {\n return Uh(4, 2, a, b);\n },\n useMemo: function useMemo(a, b) {\n var c = Hh();\n b = void 0 === b ? null : b;\n a = a();\n c.memoizedState = [a, b];\n return a;\n },\n useReducer: function useReducer(a, b, c) {\n var d = Hh();\n b = void 0 !== c ? c(b) : b;\n d.memoizedState = d.baseState = b;\n a = d.queue = {\n pending: null,\n dispatch: null,\n lastRenderedReducer: a,\n lastRenderedState: b\n };\n a = a.dispatch = Oh.bind(null, R, a);\n return [d.memoizedState, a];\n },\n useRef: Sh,\n useState: Qh,\n useDebugValue: ai,\n useDeferredValue: function useDeferredValue(a) {\n var b = Qh(a),\n c = b[0],\n d = b[1];\n Wh(function () {\n var b = wh.transition;\n wh.transition = 1;\n\n try {\n d(a);\n } finally {\n wh.transition = b;\n }\n }, [a]);\n return c;\n },\n useTransition: function useTransition() {\n var a = Qh(!1),\n b = a[0];\n a = di.bind(null, a[1]);\n Sh(a);\n return [a, b];\n },\n useMutableSource: function useMutableSource(a, b, c) {\n var d = Hh();\n d.memoizedState = {\n refs: {\n getSnapshot: b,\n setSnapshot: null\n },\n source: a,\n subscribe: c\n };\n return Nh(d, a, b, c);\n },\n useOpaqueIdentifier: function useOpaqueIdentifier() {\n if (lh) {\n var a = !1,\n b = uf(function () {\n a || (a = !0, c(\"r:\" + (tf++).toString(36)));\n throw Error(y(355));\n }),\n c = Qh(b)[1];\n 0 === (R.mode & 2) && (R.flags |= 516, Rh(5, function () {\n c(\"r:\" + (tf++).toString(36));\n }, void 0, null));\n return b;\n }\n\n b = \"r:\" + (tf++).toString(36);\n Qh(b);\n return b;\n },\n unstable_isNewReconciler: !1\n},\n Eh = {\n readContext: vg,\n useCallback: bi,\n useContext: vg,\n useEffect: Xh,\n useImperativeHandle: $h,\n useLayoutEffect: Yh,\n useMemo: ci,\n useReducer: Kh,\n useRef: Th,\n useState: function useState() {\n return Kh(Jh);\n },\n useDebugValue: ai,\n useDeferredValue: function useDeferredValue(a) {\n var b = Kh(Jh),\n c = b[0],\n d = b[1];\n Xh(function () {\n var b = wh.transition;\n wh.transition = 1;\n\n try {\n d(a);\n } finally {\n wh.transition = b;\n }\n }, [a]);\n return c;\n },\n useTransition: function useTransition() {\n var a = Kh(Jh)[0];\n return [Th().current, a];\n },\n useMutableSource: Ph,\n useOpaqueIdentifier: function useOpaqueIdentifier() {\n return Kh(Jh)[0];\n },\n unstable_isNewReconciler: !1\n},\n Fh = {\n readContext: vg,\n useCallback: bi,\n useContext: vg,\n useEffect: Xh,\n useImperativeHandle: $h,\n useLayoutEffect: Yh,\n useMemo: ci,\n useReducer: Lh,\n useRef: Th,\n useState: function useState() {\n return Lh(Jh);\n },\n useDebugValue: ai,\n useDeferredValue: function useDeferredValue(a) {\n var b = Lh(Jh),\n c = b[0],\n d = b[1];\n Xh(function () {\n var b = wh.transition;\n wh.transition = 1;\n\n try {\n d(a);\n } finally {\n wh.transition = b;\n }\n }, [a]);\n return c;\n },\n useTransition: function useTransition() {\n var a = Lh(Jh)[0];\n return [Th().current, a];\n },\n useMutableSource: Ph,\n useOpaqueIdentifier: function useOpaqueIdentifier() {\n return Lh(Jh)[0];\n },\n unstable_isNewReconciler: !1\n},\n ei = ra.ReactCurrentOwner,\n ug = !1;\n\nfunction fi(a, b, c, d) {\n b.child = null === a ? Zg(b, null, c, d) : Yg(b, a.child, c, d);\n}\n\nfunction gi(a, b, c, d, e) {\n c = c.render;\n var f = b.ref;\n tg(b, e);\n d = Ch(a, b, c, d, f, e);\n if (null !== a && !ug) return b.updateQueue = a.updateQueue, b.flags &= -517, a.lanes &= ~e, hi(a, b, e);\n b.flags |= 1;\n fi(a, b, d, e);\n return b.child;\n}\n\nfunction ii(a, b, c, d, e, f) {\n if (null === a) {\n var g = c.type;\n if (\"function\" === typeof g && !ji(g) && void 0 === g.defaultProps && null === c.compare && void 0 === c.defaultProps) return b.tag = 15, b.type = g, ki(a, b, g, d, e, f);\n a = Vg(c.type, null, d, b, b.mode, f);\n a.ref = b.ref;\n a.return = b;\n return b.child = a;\n }\n\n g = a.child;\n if (0 === (e & f) && (e = g.memoizedProps, c = c.compare, c = null !== c ? c : Je, c(e, d) && a.ref === b.ref)) return hi(a, b, f);\n b.flags |= 1;\n a = Tg(g, d);\n a.ref = b.ref;\n a.return = b;\n return b.child = a;\n}\n\nfunction ki(a, b, c, d, e, f) {\n if (null !== a && Je(a.memoizedProps, d) && a.ref === b.ref) if (ug = !1, 0 !== (f & e)) 0 !== (a.flags & 16384) && (ug = !0);else return b.lanes = a.lanes, hi(a, b, f);\n return li(a, b, c, d, f);\n}\n\nfunction mi(a, b, c) {\n var d = b.pendingProps,\n e = d.children,\n f = null !== a ? a.memoizedState : null;\n if (\"hidden\" === d.mode || \"unstable-defer-without-hiding\" === d.mode) {\n if (0 === (b.mode & 4)) b.memoizedState = {\n baseLanes: 0\n }, ni(b, c);else if (0 !== (c & 1073741824)) b.memoizedState = {\n baseLanes: 0\n }, ni(b, null !== f ? f.baseLanes : c);else return a = null !== f ? f.baseLanes | c : c, b.lanes = b.childLanes = 1073741824, b.memoizedState = {\n baseLanes: a\n }, ni(b, a), null;\n } else null !== f ? (d = f.baseLanes | c, b.memoizedState = null) : d = c, ni(b, d);\n fi(a, b, e, c);\n return b.child;\n}\n\nfunction oi(a, b) {\n var c = b.ref;\n if (null === a && null !== c || null !== a && a.ref !== c) b.flags |= 128;\n}\n\nfunction li(a, b, c, d, e) {\n var f = Ff(c) ? Df : M.current;\n f = Ef(b, f);\n tg(b, e);\n c = Ch(a, b, c, d, f, e);\n if (null !== a && !ug) return b.updateQueue = a.updateQueue, b.flags &= -517, a.lanes &= ~e, hi(a, b, e);\n b.flags |= 1;\n fi(a, b, c, e);\n return b.child;\n}\n\nfunction pi(a, b, c, d, e) {\n if (Ff(c)) {\n var f = !0;\n Jf(b);\n } else f = !1;\n\n tg(b, e);\n if (null === b.stateNode) null !== a && (a.alternate = null, b.alternate = null, b.flags |= 2), Mg(b, c, d), Og(b, c, d, e), d = !0;else if (null === a) {\n var g = b.stateNode,\n h = b.memoizedProps;\n g.props = h;\n var k = g.context,\n l = c.contextType;\n \"object\" === typeof l && null !== l ? l = vg(l) : (l = Ff(c) ? Df : M.current, l = Ef(b, l));\n var n = c.getDerivedStateFromProps,\n A = \"function\" === typeof n || \"function\" === typeof g.getSnapshotBeforeUpdate;\n A || \"function\" !== typeof g.UNSAFE_componentWillReceiveProps && \"function\" !== typeof g.componentWillReceiveProps || (h !== d || k !== l) && Ng(b, g, d, l);\n wg = !1;\n var p = b.memoizedState;\n g.state = p;\n Cg(b, d, g, e);\n k = b.memoizedState;\n h !== d || p !== k || N.current || wg ? (\"function\" === typeof n && (Gg(b, c, n, d), k = b.memoizedState), (h = wg || Lg(b, c, h, d, p, k, l)) ? (A || \"function\" !== typeof g.UNSAFE_componentWillMount && \"function\" !== typeof g.componentWillMount || (\"function\" === typeof g.componentWillMount && g.componentWillMount(), \"function\" === typeof g.UNSAFE_componentWillMount && g.UNSAFE_componentWillMount()), \"function\" === typeof g.componentDidMount && (b.flags |= 4)) : (\"function\" === typeof g.componentDidMount && (b.flags |= 4), b.memoizedProps = d, b.memoizedState = k), g.props = d, g.state = k, g.context = l, d = h) : (\"function\" === typeof g.componentDidMount && (b.flags |= 4), d = !1);\n } else {\n g = b.stateNode;\n yg(a, b);\n h = b.memoizedProps;\n l = b.type === b.elementType ? h : lg(b.type, h);\n g.props = l;\n A = b.pendingProps;\n p = g.context;\n k = c.contextType;\n \"object\" === typeof k && null !== k ? k = vg(k) : (k = Ff(c) ? Df : M.current, k = Ef(b, k));\n var C = c.getDerivedStateFromProps;\n (n = \"function\" === typeof C || \"function\" === typeof g.getSnapshotBeforeUpdate) || \"function\" !== typeof g.UNSAFE_componentWillReceiveProps && \"function\" !== typeof g.componentWillReceiveProps || (h !== A || p !== k) && Ng(b, g, d, k);\n wg = !1;\n p = b.memoizedState;\n g.state = p;\n Cg(b, d, g, e);\n var x = b.memoizedState;\n h !== A || p !== x || N.current || wg ? (\"function\" === typeof C && (Gg(b, c, C, d), x = b.memoizedState), (l = wg || Lg(b, c, l, d, p, x, k)) ? (n || \"function\" !== typeof g.UNSAFE_componentWillUpdate && \"function\" !== typeof g.componentWillUpdate || (\"function\" === typeof g.componentWillUpdate && g.componentWillUpdate(d, x, k), \"function\" === typeof g.UNSAFE_componentWillUpdate && g.UNSAFE_componentWillUpdate(d, x, k)), \"function\" === typeof g.componentDidUpdate && (b.flags |= 4), \"function\" === typeof g.getSnapshotBeforeUpdate && (b.flags |= 256)) : (\"function\" !== typeof g.componentDidUpdate || h === a.memoizedProps && p === a.memoizedState || (b.flags |= 4), \"function\" !== typeof g.getSnapshotBeforeUpdate || h === a.memoizedProps && p === a.memoizedState || (b.flags |= 256), b.memoizedProps = d, b.memoizedState = x), g.props = d, g.state = x, g.context = k, d = l) : (\"function\" !== typeof g.componentDidUpdate || h === a.memoizedProps && p === a.memoizedState || (b.flags |= 4), \"function\" !== typeof g.getSnapshotBeforeUpdate || h === a.memoizedProps && p === a.memoizedState || (b.flags |= 256), d = !1);\n }\n return qi(a, b, c, d, f, e);\n}\n\nfunction qi(a, b, c, d, e, f) {\n oi(a, b);\n var g = 0 !== (b.flags & 64);\n if (!d && !g) return e && Kf(b, c, !1), hi(a, b, f);\n d = b.stateNode;\n ei.current = b;\n var h = g && \"function\" !== typeof c.getDerivedStateFromError ? null : d.render();\n b.flags |= 1;\n null !== a && g ? (b.child = Yg(b, a.child, null, f), b.child = Yg(b, null, h, f)) : fi(a, b, h, f);\n b.memoizedState = d.state;\n e && Kf(b, c, !0);\n return b.child;\n}\n\nfunction ri(a) {\n var b = a.stateNode;\n b.pendingContext ? Hf(a, b.pendingContext, b.pendingContext !== b.context) : b.context && Hf(a, b.context, !1);\n eh(a, b.containerInfo);\n}\n\nvar si = {\n dehydrated: null,\n retryLane: 0\n};\n\nfunction ti(a, b, c) {\n var d = b.pendingProps,\n e = P.current,\n f = !1,\n g;\n (g = 0 !== (b.flags & 64)) || (g = null !== a && null === a.memoizedState ? !1 : 0 !== (e & 2));\n g ? (f = !0, b.flags &= -65) : null !== a && null === a.memoizedState || void 0 === d.fallback || !0 === d.unstable_avoidThisFallback || (e |= 1);\n I(P, e & 1);\n\n if (null === a) {\n void 0 !== d.fallback && ph(b);\n a = d.children;\n e = d.fallback;\n if (f) return a = ui(b, a, e, c), b.child.memoizedState = {\n baseLanes: c\n }, b.memoizedState = si, a;\n if (\"number\" === typeof d.unstable_expectedLoadTime) return a = ui(b, a, e, c), b.child.memoizedState = {\n baseLanes: c\n }, b.memoizedState = si, b.lanes = 33554432, a;\n c = vi({\n mode: \"visible\",\n children: a\n }, b.mode, c, null);\n c.return = b;\n return b.child = c;\n }\n\n if (null !== a.memoizedState) {\n if (f) return d = wi(a, b, d.children, d.fallback, c), f = b.child, e = a.child.memoizedState, f.memoizedState = null === e ? {\n baseLanes: c\n } : {\n baseLanes: e.baseLanes | c\n }, f.childLanes = a.childLanes & ~c, b.memoizedState = si, d;\n c = xi(a, b, d.children, c);\n b.memoizedState = null;\n return c;\n }\n\n if (f) return d = wi(a, b, d.children, d.fallback, c), f = b.child, e = a.child.memoizedState, f.memoizedState = null === e ? {\n baseLanes: c\n } : {\n baseLanes: e.baseLanes | c\n }, f.childLanes = a.childLanes & ~c, b.memoizedState = si, d;\n c = xi(a, b, d.children, c);\n b.memoizedState = null;\n return c;\n}\n\nfunction ui(a, b, c, d) {\n var e = a.mode,\n f = a.child;\n b = {\n mode: \"hidden\",\n children: b\n };\n 0 === (e & 2) && null !== f ? (f.childLanes = 0, f.pendingProps = b) : f = vi(b, e, 0, null);\n c = Xg(c, e, d, null);\n f.return = a;\n c.return = a;\n f.sibling = c;\n a.child = f;\n return c;\n}\n\nfunction xi(a, b, c, d) {\n var e = a.child;\n a = e.sibling;\n c = Tg(e, {\n mode: \"visible\",\n children: c\n });\n 0 === (b.mode & 2) && (c.lanes = d);\n c.return = b;\n c.sibling = null;\n null !== a && (a.nextEffect = null, a.flags = 8, b.firstEffect = b.lastEffect = a);\n return b.child = c;\n}\n\nfunction wi(a, b, c, d, e) {\n var f = b.mode,\n g = a.child;\n a = g.sibling;\n var h = {\n mode: \"hidden\",\n children: c\n };\n 0 === (f & 2) && b.child !== g ? (c = b.child, c.childLanes = 0, c.pendingProps = h, g = c.lastEffect, null !== g ? (b.firstEffect = c.firstEffect, b.lastEffect = g, g.nextEffect = null) : b.firstEffect = b.lastEffect = null) : c = Tg(g, h);\n null !== a ? d = Tg(a, d) : (d = Xg(d, f, e, null), d.flags |= 2);\n d.return = b;\n c.return = b;\n c.sibling = d;\n b.child = c;\n return d;\n}\n\nfunction yi(a, b) {\n a.lanes |= b;\n var c = a.alternate;\n null !== c && (c.lanes |= b);\n sg(a.return, b);\n}\n\nfunction zi(a, b, c, d, e, f) {\n var g = a.memoizedState;\n null === g ? a.memoizedState = {\n isBackwards: b,\n rendering: null,\n renderingStartTime: 0,\n last: d,\n tail: c,\n tailMode: e,\n lastEffect: f\n } : (g.isBackwards = b, g.rendering = null, g.renderingStartTime = 0, g.last = d, g.tail = c, g.tailMode = e, g.lastEffect = f);\n}\n\nfunction Ai(a, b, c) {\n var d = b.pendingProps,\n e = d.revealOrder,\n f = d.tail;\n fi(a, b, d.children, c);\n d = P.current;\n if (0 !== (d & 2)) d = d & 1 | 2, b.flags |= 64;else {\n if (null !== a && 0 !== (a.flags & 64)) a: for (a = b.child; null !== a;) {\n if (13 === a.tag) null !== a.memoizedState && yi(a, c);else if (19 === a.tag) yi(a, c);else if (null !== a.child) {\n a.child.return = a;\n a = a.child;\n continue;\n }\n if (a === b) break a;\n\n for (; null === a.sibling;) {\n if (null === a.return || a.return === b) break a;\n a = a.return;\n }\n\n a.sibling.return = a.return;\n a = a.sibling;\n }\n d &= 1;\n }\n I(P, d);\n if (0 === (b.mode & 2)) b.memoizedState = null;else switch (e) {\n case \"forwards\":\n c = b.child;\n\n for (e = null; null !== c;) {\n a = c.alternate, null !== a && null === ih(a) && (e = c), c = c.sibling;\n }\n\n c = e;\n null === c ? (e = b.child, b.child = null) : (e = c.sibling, c.sibling = null);\n zi(b, !1, e, c, f, b.lastEffect);\n break;\n\n case \"backwards\":\n c = null;\n e = b.child;\n\n for (b.child = null; null !== e;) {\n a = e.alternate;\n\n if (null !== a && null === ih(a)) {\n b.child = e;\n break;\n }\n\n a = e.sibling;\n e.sibling = c;\n c = e;\n e = a;\n }\n\n zi(b, !0, c, null, f, b.lastEffect);\n break;\n\n case \"together\":\n zi(b, !1, null, null, void 0, b.lastEffect);\n break;\n\n default:\n b.memoizedState = null;\n }\n return b.child;\n}\n\nfunction hi(a, b, c) {\n null !== a && (b.dependencies = a.dependencies);\n Dg |= b.lanes;\n\n if (0 !== (c & b.childLanes)) {\n if (null !== a && b.child !== a.child) throw Error(y(153));\n\n if (null !== b.child) {\n a = b.child;\n c = Tg(a, a.pendingProps);\n b.child = c;\n\n for (c.return = b; null !== a.sibling;) {\n a = a.sibling, c = c.sibling = Tg(a, a.pendingProps), c.return = b;\n }\n\n c.sibling = null;\n }\n\n return b.child;\n }\n\n return null;\n}\n\nvar Bi, Ci, Di, Ei;\n\nBi = function Bi(a, b) {\n for (var c = b.child; null !== c;) {\n if (5 === c.tag || 6 === c.tag) a.appendChild(c.stateNode);else if (4 !== c.tag && null !== c.child) {\n c.child.return = c;\n c = c.child;\n continue;\n }\n if (c === b) break;\n\n for (; null === c.sibling;) {\n if (null === c.return || c.return === b) return;\n c = c.return;\n }\n\n c.sibling.return = c.return;\n c = c.sibling;\n }\n};\n\nCi = function Ci() {};\n\nDi = function Di(a, b, c, d) {\n var e = a.memoizedProps;\n\n if (e !== d) {\n a = b.stateNode;\n dh(ah.current);\n var f = null;\n\n switch (c) {\n case \"input\":\n e = Ya(a, e);\n d = Ya(a, d);\n f = [];\n break;\n\n case \"option\":\n e = eb(a, e);\n d = eb(a, d);\n f = [];\n break;\n\n case \"select\":\n e = m({}, e, {\n value: void 0\n });\n d = m({}, d, {\n value: void 0\n });\n f = [];\n break;\n\n case \"textarea\":\n e = gb(a, e);\n d = gb(a, d);\n f = [];\n break;\n\n default:\n \"function\" !== typeof e.onClick && \"function\" === typeof d.onClick && (a.onclick = jf);\n }\n\n vb(c, d);\n var g;\n c = null;\n\n for (l in e) {\n if (!d.hasOwnProperty(l) && e.hasOwnProperty(l) && null != e[l]) if (\"style\" === l) {\n var h = e[l];\n\n for (g in h) {\n h.hasOwnProperty(g) && (c || (c = {}), c[g] = \"\");\n }\n } else \"dangerouslySetInnerHTML\" !== l && \"children\" !== l && \"suppressContentEditableWarning\" !== l && \"suppressHydrationWarning\" !== l && \"autoFocus\" !== l && (ca.hasOwnProperty(l) ? f || (f = []) : (f = f || []).push(l, null));\n }\n\n for (l in d) {\n var k = d[l];\n h = null != e ? e[l] : void 0;\n if (d.hasOwnProperty(l) && k !== h && (null != k || null != h)) if (\"style\" === l) {\n if (h) {\n for (g in h) {\n !h.hasOwnProperty(g) || k && k.hasOwnProperty(g) || (c || (c = {}), c[g] = \"\");\n }\n\n for (g in k) {\n k.hasOwnProperty(g) && h[g] !== k[g] && (c || (c = {}), c[g] = k[g]);\n }\n } else c || (f || (f = []), f.push(l, c)), c = k;\n } else \"dangerouslySetInnerHTML\" === l ? (k = k ? k.__html : void 0, h = h ? h.__html : void 0, null != k && h !== k && (f = f || []).push(l, k)) : \"children\" === l ? \"string\" !== typeof k && \"number\" !== typeof k || (f = f || []).push(l, \"\" + k) : \"suppressContentEditableWarning\" !== l && \"suppressHydrationWarning\" !== l && (ca.hasOwnProperty(l) ? (null != k && \"onScroll\" === l && G(\"scroll\", a), f || h === k || (f = [])) : \"object\" === typeof k && null !== k && k.$$typeof === Ga ? k.toString() : (f = f || []).push(l, k));\n }\n\n c && (f = f || []).push(\"style\", c);\n var l = f;\n if (b.updateQueue = l) b.flags |= 4;\n }\n};\n\nEi = function Ei(a, b, c, d) {\n c !== d && (b.flags |= 4);\n};\n\nfunction Fi(a, b) {\n if (!lh) switch (a.tailMode) {\n case \"hidden\":\n b = a.tail;\n\n for (var c = null; null !== b;) {\n null !== b.alternate && (c = b), b = b.sibling;\n }\n\n null === c ? a.tail = null : c.sibling = null;\n break;\n\n case \"collapsed\":\n c = a.tail;\n\n for (var d = null; null !== c;) {\n null !== c.alternate && (d = c), c = c.sibling;\n }\n\n null === d ? b || null === a.tail ? a.tail = null : a.tail.sibling = null : d.sibling = null;\n }\n}\n\nfunction Gi(a, b, c) {\n var d = b.pendingProps;\n\n switch (b.tag) {\n case 2:\n case 16:\n case 15:\n case 0:\n case 11:\n case 7:\n case 8:\n case 12:\n case 9:\n case 14:\n return null;\n\n case 1:\n return Ff(b.type) && Gf(), null;\n\n case 3:\n fh();\n H(N);\n H(M);\n uh();\n d = b.stateNode;\n d.pendingContext && (d.context = d.pendingContext, d.pendingContext = null);\n if (null === a || null === a.child) rh(b) ? b.flags |= 4 : d.hydrate || (b.flags |= 256);\n Ci(b);\n return null;\n\n case 5:\n hh(b);\n var e = dh(ch.current);\n c = b.type;\n if (null !== a && null != b.stateNode) Di(a, b, c, d, e), a.ref !== b.ref && (b.flags |= 128);else {\n if (!d) {\n if (null === b.stateNode) throw Error(y(166));\n return null;\n }\n\n a = dh(ah.current);\n\n if (rh(b)) {\n d = b.stateNode;\n c = b.type;\n var f = b.memoizedProps;\n d[wf] = b;\n d[xf] = f;\n\n switch (c) {\n case \"dialog\":\n G(\"cancel\", d);\n G(\"close\", d);\n break;\n\n case \"iframe\":\n case \"object\":\n case \"embed\":\n G(\"load\", d);\n break;\n\n case \"video\":\n case \"audio\":\n for (a = 0; a < Xe.length; a++) {\n G(Xe[a], d);\n }\n\n break;\n\n case \"source\":\n G(\"error\", d);\n break;\n\n case \"img\":\n case \"image\":\n case \"link\":\n G(\"error\", d);\n G(\"load\", d);\n break;\n\n case \"details\":\n G(\"toggle\", d);\n break;\n\n case \"input\":\n Za(d, f);\n G(\"invalid\", d);\n break;\n\n case \"select\":\n d._wrapperState = {\n wasMultiple: !!f.multiple\n };\n G(\"invalid\", d);\n break;\n\n case \"textarea\":\n hb(d, f), G(\"invalid\", d);\n }\n\n vb(c, f);\n a = null;\n\n for (var g in f) {\n f.hasOwnProperty(g) && (e = f[g], \"children\" === g ? \"string\" === typeof e ? d.textContent !== e && (a = [\"children\", e]) : \"number\" === typeof e && d.textContent !== \"\" + e && (a = [\"children\", \"\" + e]) : ca.hasOwnProperty(g) && null != e && \"onScroll\" === g && G(\"scroll\", d));\n }\n\n switch (c) {\n case \"input\":\n Va(d);\n cb(d, f, !0);\n break;\n\n case \"textarea\":\n Va(d);\n jb(d);\n break;\n\n case \"select\":\n case \"option\":\n break;\n\n default:\n \"function\" === typeof f.onClick && (d.onclick = jf);\n }\n\n d = a;\n b.updateQueue = d;\n null !== d && (b.flags |= 4);\n } else {\n g = 9 === e.nodeType ? e : e.ownerDocument;\n a === kb.html && (a = lb(c));\n a === kb.html ? \"script\" === c ? (a = g.createElement(\"div\"), a.innerHTML = \"