diff --git a/backend/Dockerfile b/backend/Dockerfile new file mode 100644 index 0000000..f667a7a --- /dev/null +++ b/backend/Dockerfile @@ -0,0 +1,18 @@ +# base image + +FROM python:3.9.4 + +RUN pip install django + +# set working directory +WORKDIR /app + +# copy and install requirements +COPY requirements.txt . +#RUN pip install -r requirements.txt + +# copy the rest of the application code +COPY . . +EXPOSE 8000 +# start the application +CMD ["python", "manage.py", "runserver", "0.0.0.0:8000"] \ No newline at end of file diff --git a/backend/mysite/settings.py b/backend/mysite/settings.py index 50305f3..174de34 100644 --- a/backend/mysite/settings.py +++ b/backend/mysite/settings.py @@ -13,7 +13,7 @@ # SECURITY WARNING: don't run with debug turned on in production! DEBUG = True -ALLOWED_HOSTS = [] +ALLOWED_HOSTS = ["*"] # Application definition diff --git a/backend/requirements.txt b/backend/requirements.txt index c90aaee..c360786 100644 --- a/backend/requirements.txt +++ b/backend/requirements.txt @@ -1,15 +1,126 @@ -asgiref==3.2.5 -certifi==2019.11.28 -chardet==3.0.4 -coreschema==0.0.4 -Django==3.1.8 -djangorestframework==3.11.2 -idna==2.9 -itypes==1.1.0 -Jinja2==2.11.3 -MarkupSafe==1.1.1 -pytz==2019.3 -requests==2.23.0 -sqlparse==0.3.1 -uritemplate==3.0.1 -urllib3==1.25.8 +aiofiles==22.1.0 +aiosqlite==0.18.0 +anyio==3.6.2 +argon2-cffi==21.3.0 +argon2-cffi-bindings==21.2.0 +arrow==1.2.3 +asgiref==3.6.0 +asttokens==2.2.1 +attrs==22.2.0 +Babel==2.12.1 +backcall==0.2.0 +beautifulsoup4==4.11.2 +bleach==6.0.0 +certifi==2022.12.7 +cffi==1.15.1 +charset-normalizer==3.1.0 +colorama==0.4.6 +comm==0.1.2 +contourpy==1.0.7 +cycler==0.11.0 +debugpy==1.6.6 +decorator==5.1.1 +defusedxml==0.7.1 +Django==4.1.7 +djangorestframework==3.14.0 +executing==1.2.0 +fastjsonschema==2.16.3 +fonttools==4.39.0 +fqdn==1.5.1 +gitdb==4.0.10 +GitPython==3.1.31 +idna==3.4 +ipykernel==6.21.3 +ipython==8.11.0 +ipython-genutils==0.2.0 +isoduration==20.11.0 +jedi==0.18.2 +Jinja2==3.1.2 +joblib==1.2.0 +json5==0.9.11 +jsonpointer==2.3 +jsonschema==4.17.3 +jupyter-events==0.6.3 +jupyter-server-mathjax==0.2.6 +jupyter-ydoc==0.2.3 +jupyter_client==8.0.3 +jupyter_core==5.2.0 +jupyter_server==2.4.0 +jupyter_server_fileid==0.8.0 +jupyter_server_terminals==0.4.4 +jupyter_server_ydoc==0.6.1 +jupyterlab==3.6.1 +jupyterlab-git==0.41.0 +jupyterlab-pygments==0.2.2 +jupyterlab_server==2.20.0 +kiwisolver==1.4.4 +MarkupSafe==2.1.2 +matplotlib==3.7.1 +matplotlib-inline==0.1.6 +mistune==2.0.5 +nbclassic==0.5.3 +nbclient==0.7.2 +nbconvert==7.2.9 +nbdime==3.1.1 +nbformat==5.7.3 +nest-asyncio==1.5.6 +notebook==6.5.3 +notebook_shim==0.2.2 +numpy==1.24.2 +nvidia-cublas-cu11==11.10.3.66 +nvidia-cuda-nvrtc-cu11==11.7.99 +nvidia-cuda-runtime-cu11==11.7.99 +nvidia-cudnn-cu11==8.5.0.96 +packaging==23.0 +pandas==1.5.3 +pandocfilters==1.5.0 +parso==0.8.3 +pexpect==4.8.0 +pickleshare==0.7.5 +Pillow==9.4.0 +platformdirs==3.1.1 +plotly==5.13.1 +prometheus-client==0.16.0 +prompt-toolkit==3.0.38 +psutil==5.9.4 +ptyprocess==0.7.0 +pure-eval==0.2.2 +pycparser==2.21 +Pygments==2.14.0 +pyparsing==3.0.9 +pyrsistent==0.19.3 +python-dateutil==2.8.2 +python-json-logger==2.0.7 +pytz==2022.7.1 +PyYAML==6.0 +pyzmq==25.0.1 +requests==2.28.2 +rfc3339-validator==0.1.4 +rfc3986-validator==0.1.1 +scikit-learn==1.2.2 +scipy==1.10.1 +seaborn==0.12.2 +Send2Trash==1.8.0 +six==1.16.0 +smmap==5.0.0 +sniffio==1.3.0 +soupsieve==2.4 +sqlparse==0.4.3 +stack-data==0.6.2 +tenacity==8.2.2 +terminado==0.17.1 +threadpoolctl==3.1.0 +tinycss2==1.2.1 +tomli==2.0.1 +torch==1.13.1 +tornado==6.2 +traitlets==5.9.0 +typing_extensions==4.5.0 +uri-template==1.2.0 +urllib3==1.26.15 +wcwidth==0.2.6 +webcolors==1.12 +webencodings==0.5.1 +websocket-client==1.5.1 +y-py==0.5.9 +ypy-websocket==0.8.2 diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..fdf4390 --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,12 @@ +version: '3' + +services: + frontend: + build: ./frontend + ports: + - '3000:3000' + + backend: + build: ./backend + ports: + - '8000:8000' \ No newline at end of file diff --git a/frontend/Dockerfile b/frontend/Dockerfile new file mode 100644 index 0000000..512deb8 --- /dev/null +++ b/frontend/Dockerfile @@ -0,0 +1,22 @@ +# base image +FROM node:14 + +# set working directory +WORKDIR /app + +# copy package.json and package-lock.json +COPY package*.json ./ + +# install dependencies +RUN npm install + +# copy the rest of the application code +COPY . . + +EXPOSE 3000 + +# build the application +#RUN npm run build + +# start the application +CMD ["npm", "start"] \ No newline at end of file diff --git a/frontend/build/asset-manifest.json b/frontend/build/asset-manifest.json new file mode 100644 index 0000000..39c826c --- /dev/null +++ b/frontend/build/asset-manifest.json @@ -0,0 +1,24 @@ +{ + "files": { + "main.css": "/static/css/main.512deafe.chunk.css", + "main.js": "/static/js/main.64bb1a16.chunk.js", + "main.js.map": "/static/js/main.64bb1a16.chunk.js.map", + "runtime-main.js": "/static/js/runtime-main.81534a39.js", + "runtime-main.js.map": "/static/js/runtime-main.81534a39.js.map", + "static/js/2.96791f06.chunk.js": "/static/js/2.96791f06.chunk.js", + "static/js/2.96791f06.chunk.js.map": "/static/js/2.96791f06.chunk.js.map", + "index.html": "/index.html", + "precache-manifest.3ba041dc78f0bca7add54096f59999ec.js": "/precache-manifest.3ba041dc78f0bca7add54096f59999ec.js", + "service-worker.js": "/service-worker.js", + "static/css/main.512deafe.chunk.css.map": "/static/css/main.512deafe.chunk.css.map", + "static/js/2.96791f06.chunk.js.LICENSE.txt": "/static/js/2.96791f06.chunk.js.LICENSE.txt", + "static/js/main.64bb1a16.chunk.js.LICENSE.txt": "/static/js/main.64bb1a16.chunk.js.LICENSE.txt", + "static/media/App.css": "/static/media/showcase.4b31330b.jpg" + }, + "entrypoints": [ + "static/js/runtime-main.81534a39.js", + "static/js/2.96791f06.chunk.js", + "static/css/main.512deafe.chunk.css", + "static/js/main.64bb1a16.chunk.js" + ] +} \ No newline at end of file diff --git a/frontend/build/favicon.ico b/frontend/build/favicon.ico new file mode 100644 index 0000000..bcd5dfd Binary files /dev/null and b/frontend/build/favicon.ico differ diff --git a/frontend/build/index.html b/frontend/build/index.html new file mode 100644 index 0000000..2d18df0 --- /dev/null +++ b/frontend/build/index.html @@ -0,0 +1 @@ +DevConnector
\ No newline at end of file diff --git a/frontend/build/manifest.json b/frontend/build/manifest.json new file mode 100644 index 0000000..c24c92f --- /dev/null +++ b/frontend/build/manifest.json @@ -0,0 +1,15 @@ +{ + "short_name": "DevConnector", + "name": "Social Network For Developers", + "icons": [ + { + "src": "favicon.ico", + "sizes": "64x64 32x32 24x24 16x16", + "type": "image/x-icon" + } + ], + "start_url": ".", + "display": "standalone", + "theme_color": "#000000", + "background_color": "#ffffff" +} diff --git a/frontend/build/precache-manifest.3ba041dc78f0bca7add54096f59999ec.js b/frontend/build/precache-manifest.3ba041dc78f0bca7add54096f59999ec.js new file mode 100644 index 0000000..a644dd4 --- /dev/null +++ b/frontend/build/precache-manifest.3ba041dc78f0bca7add54096f59999ec.js @@ -0,0 +1,34 @@ +self.__precacheManifest = (self.__precacheManifest || []).concat([ + { + "revision": "3ce23ba21a8f860146ff29f05b2c5e0b", + "url": "/index.html" + }, + { + "revision": "ee35316c747180827d51", + "url": "/static/css/main.512deafe.chunk.css" + }, + { + "revision": "5c35efecb5c13ec2e489", + "url": "/static/js/2.96791f06.chunk.js" + }, + { + "revision": "e8bc063a29551777f3f454d9f8e65466", + "url": "/static/js/2.96791f06.chunk.js.LICENSE.txt" + }, + { + "revision": "ee35316c747180827d51", + "url": "/static/js/main.64bb1a16.chunk.js" + }, + { + "revision": "4e0e34f265fae8f33b01b27ae29d9d6f", + "url": "/static/js/main.64bb1a16.chunk.js.LICENSE.txt" + }, + { + "revision": "05fbb5ed970a924e23b7", + "url": "/static/js/runtime-main.81534a39.js" + }, + { + "revision": "4b31330b20e3cff3e49d540e4e7175e2", + "url": "/static/media/showcase.4b31330b.jpg" + } +]); \ No newline at end of file diff --git a/frontend/build/robots.txt b/frontend/build/robots.txt new file mode 100644 index 0000000..e9e57dc --- /dev/null +++ b/frontend/build/robots.txt @@ -0,0 +1,3 @@ +# https://www.robotstxt.org/robotstxt.html +User-agent: * +Disallow: diff --git a/frontend/build/service-worker.js b/frontend/build/service-worker.js new file mode 100644 index 0000000..5fa036b --- /dev/null +++ b/frontend/build/service-worker.js @@ -0,0 +1,39 @@ +/** + * Welcome to your Workbox-powered service worker! + * + * You'll need to register this file in your web app and you should + * disable HTTP caching for this file too. + * See https://goo.gl/nhQhGp + * + * The rest of the code is auto-generated. Please don't update this file + * directly; instead, make changes to your Workbox build configuration + * and re-run your build process. + * See https://goo.gl/2aRDsh + */ + +importScripts("https://storage.googleapis.com/workbox-cdn/releases/4.3.1/workbox-sw.js"); + +importScripts( + "/precache-manifest.3ba041dc78f0bca7add54096f59999ec.js" +); + +self.addEventListener('message', (event) => { + if (event.data && event.data.type === 'SKIP_WAITING') { + self.skipWaiting(); + } +}); + +workbox.core.clientsClaim(); + +/** + * The workboxSW.precacheAndRoute() method efficiently caches and responds to + * requests for URLs in the manifest. + * See https://goo.gl/S9QRab + */ +self.__precacheManifest = [].concat(self.__precacheManifest || []); +workbox.precaching.precacheAndRoute(self.__precacheManifest, {}); + +workbox.routing.registerNavigationRoute(workbox.precaching.getCacheKeyForURL("/index.html"), { + + blacklist: [/^\/_/,/\/[^/?]+\.[^/]+$/], +}); diff --git a/frontend/build/static/css/main.512deafe.chunk.css b/frontend/build/static/css/main.512deafe.chunk.css new file mode 100644 index 0000000..de8786b --- /dev/null +++ b/frontend/build/static/css/main.512deafe.chunk.css @@ -0,0 +1,2 @@ +:root{--primary-color:#17a2b8;--dark-color:#343a40;--light-color:#f4f4f4;--danger-color:#dc3545;--success-color:#28a745}*{box-sizing:border-box;margin:0;padding:0}body{font-family:"Raleway",sans-serif;font-size:1rem;line-height:1.6;background-color:#fff;color:#333}a{color:#17a2b8;color:var(--primary-color);text-decoration:none}ul{list-style:none}img{width:100%}.container{max-width:1100px;overflow:hidden;padding:0 2rem;margin:6rem auto 3rem}.x-large{font-size:4rem}.large,.x-large{line-height:1.2;margin-bottom:1rem}.large{font-size:3rem}.lead{font-size:1.5rem;margin-bottom:1rem}.text-center{text-align:center}.text-primary{color:#17a2b8;color:var(--primary-color)}.text-dark{color:#343a40;color:var(--dark-color)}.p{padding:.5rem}.p-1{padding:1rem}.p-2{padding:2rem}.p-3{padding:3rem}.py{padding:.5rem 0}.py-1{padding:1rem 0}.py-2{padding:2rem 0}.py-3{padding:3rem 0}.m{margin:.5rem}.m-1{margin:1rem}.m-2{margin:2rem}.m-3{margin:3rem}.my{margin:.5rem 0}.my-1{margin:1rem 0}.my-2{margin:2rem 0}.my-3{margin:3rem 0}.btn{display:inline-block;padding:.4rem 1.3rem;font-size:1rem;border:none;cursor:pointer;margin-right:.5rem;transition:opacity .2s ease-in;outline:none}.badge,.btn{background:#f4f4f4;background:var(--light-color);color:#333}.badge{font-size:.8rem;padding:.1rem;text-align:center;margin:.3rem}.alert{padding:.8rem;margin:1rem 0;opacity:.9;background:#f4f4f4;background:var(--light-color);color:#333}.alert-primary,.badge-primary,.bg-primary,.btn-primary{background:#17a2b8;background:var(--primary-color);color:#fff}.alert-light,.badge-light,.bg-light,.btn-light{background:#f4f4f4;background:var(--light-color);color:#333}.alert-dark,.badge-dark,.bg-dark,.btn-dark{background:#343a40;background:var(--dark-color);color:#fff}.alert-danger,.badge-danger,.bg-danger,.btn-danger{background:#dc3545;background:var(--danger-color);color:#fff}.alert-success,.badge-success,.bg-success,.btn-success{background:#28a745;background:var(--success-color);color:#fff}.alert-white,.badge-white,.bg-white,.btn-white{background:#fff;color:#333;border:1px solid #ccc}.btn:hover{opacity:.8}.badge-light,.bg-light{border:1px solid #ccc}.round-img{border-radius:50%}.line{height:1px;background:#ccc;margin:1.5rem 0}.dark-overlay{background-color:rgba(0,0,0,.7);position:absolute;top:0;left:0;width:100%;height:100%}.form .form-group{margin:1.2rem 0}.form .form-text{display:block;margin-top:.3rem;color:#888}.form input[type=date],.form input[type=email],.form input[type=password],.form input[type=text],.form select,.form textarea{display:block;width:100%;padding:.4rem;font-size:1.2rem;border:1px solid #ccc}.form input[type=submit],button{font:inherit}.form .social-input{display:flex}.form .social-input i{padding:.5rem;width:4rem}.form .social-input i.fa-twitter{color:#38a1f3}.form .social-input i.fa-facebook{color:#3b5998}.form .social-input i.fa-instagram{color:#3f729b}.form .social-input i.fa-youtube{color:#c4302b}.form .social-input i.fa-linkedin{color:#0077b5}.table td,.table th{padding:1rem;text-align:left}.table th{background:#f4f4f4;background:var(--light-color)}.navbar{justify-content:space-between;align-items:center;padding:.7rem 2rem;position:fixed;z-index:1;width:100%;top:0;border-bottom:1px solid #17a2b8;border-bottom:1px solid var(--primary-color);opacity:.9}.navbar,.navbar ul{display:flex}.navbar a{color:#fff;padding:.45rem;margin:0 .25rem}.navbar a:hover{color:#17a2b8;color:var(--primary-color)}.active{color:#17a2b8!important;color:var(--primary-color)!important}.navbar .welcome span{margin-right:.6rem}.landing{position:relative;background:url(/static/media/showcase.4b31330b.jpg) no-repeat 50%/cover;height:100vh}.landing-inner{color:#fff;height:100%;width:80%;margin:auto;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center}.profile{display:grid;grid-template-columns:2fr 4fr 2fr;align-items:center;grid-gap:2rem;padding:1rem;line-height:1.8;margin-bottom:1rem}.profile-grid{display:grid;grid-template-areas:"top top" "about about" "exp edu" "github github";grid-gap:1rem}.profile-top{grid-area:top;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center}.profile-top img{width:250px}.profile-top .icons a{color:#fff;margin:0 .3rem}.profile-top .icons a:hover{color:#343a40;color:var(--dark-color)}.profile-about{grid-area:about;text-align:center}.profile-about .skills{display:flex;align-items:center;justify-content:center;text-align:center}.profile-exp{grid-area:exp}.profile-edu{grid-area:edu}.profile-edu h2,.profile-exp h2{margin-bottom:1rem}.profile-edu>div,.profile-exp>div{margin-bottom:1rem;padding-bottom:1rem;border-bottom:1px dotted #ccc}.profile-edu>div:last-child,.profile-exp>div:last-child{border:0}.profile-edu p,.profile-exp p{margin:.5rem 0}.profile-github{grid-area:github}.profile-github .repo{display:flex}.profile-github .repo>div:first-child{flex:7 1;flex-basis:70%}.profile-github>div:last-child{flex:3 1;flex-basis:20%}.post-form .post-form-header{background:#17a2b8;background:var(--primary-color);padding:.5rem}.post{display:grid;grid-template-columns:1fr 4fr;grid-gap:2rem;align-items:center}.post>div:first-child{text-align:center}.post img{width:100px}.post .comment-count{background:#f4f4f4;background:var(--light-color);color:#17a2b8;color:var(--primary-color);padding:.1rem .2rem;border-radius:5px;font-size:.8rem}.post .post-date{color:#aaa;font-size:.8rem;margin-bottom:.5rem}@media (max-width:700px){.container{margin-top:8rem}.hide-sm{display:none}.x-large{font-size:3rem}.large{font-size:2rem}.lead{font-size:1rem}.navbar{display:block;text-align:center}.navbar ul{text-align:center;justify-content:center}.navbar h1{margin-bottom:1rem}.navbar .welcome{display:none}.profile{grid-template-columns:1fr;text-align:center}.profile ul{display:none}.profile-top img,.profile img{width:200px;margin:auto}.profile-grid{grid-template-areas:"top" "about" "exp" "edu" "github"}.profile-about .skills{flex-direction:column}.dash-buttons a{display:block;width:100%;margin-bottom:.2rem}.post{grid-template-columns:1fr}.post a,.post button{padding:.3rem .4rem}} +/*# sourceMappingURL=main.512deafe.chunk.css.map */ \ No newline at end of file diff --git a/frontend/build/static/css/main.512deafe.chunk.css.map b/frontend/build/static/css/main.512deafe.chunk.css.map new file mode 100644 index 0000000..6ad02bc --- /dev/null +++ b/frontend/build/static/css/main.512deafe.chunk.css.map @@ -0,0 +1 @@ +{"version":3,"sources":["App.css"],"names":[],"mappings":"AACA,MACE,uBAAwB,CACxB,oBAAqB,CACrB,qBAAsB,CACtB,sBAAuB,CACvB,uBACF,CAEA,EACE,qBAAsB,CACtB,QAAS,CACT,SACF,CAEA,KACE,gCAAkC,CAClC,cAAe,CACf,eAAgB,CAChB,qBAAsB,CACtB,UACF,CAEA,EACE,aAA2B,CAA3B,0BAA2B,CAC3B,oBACF,CAEA,GACE,eACF,CAEA,IACE,UACF,CAGA,WACE,gBAAiB,CAEjB,eAAgB,CAChB,cAAe,CAEf,qBACF,CAGA,SACE,cAGF,CAEA,gBAJE,eAAgB,CAChB,kBAOF,CAJA,OACE,cAGF,CAEA,MACE,gBAAiB,CACjB,kBACF,CAEA,aACE,iBACF,CAEA,cACE,aAA2B,CAA3B,0BACF,CAEA,WACE,aAAwB,CAAxB,uBACF,CAGA,GACE,aACF,CACA,KACE,YACF,CACA,KACE,YACF,CACA,KACE,YACF,CACA,IACE,eACF,CACA,MACE,cACF,CACA,MACE,cACF,CACA,MACE,cACF,CAGA,GACE,YACF,CACA,KACE,WACF,CACA,KACE,WACF,CACA,KACE,WACF,CACA,IACE,cACF,CACA,MACE,aACF,CACA,MACE,aACF,CACA,MACE,aACF,CAEA,KACE,oBAAqB,CAGrB,oBAAsB,CACtB,cAAe,CACf,WAAY,CACZ,cAAe,CACf,kBAAoB,CACpB,8BAAgC,CAChC,YACF,CAEA,YAXE,kBAA8B,CAA9B,6BAA8B,CAC9B,UAiBF,CAPA,OACE,eAAiB,CACjB,aAAe,CACf,iBAAkB,CAClB,YAGF,CAEA,OACE,aAAe,CACf,aAAc,CACd,UAAY,CACZ,kBAA8B,CAA9B,6BAA8B,CAC9B,UACF,CAEA,uDAIE,kBAAgC,CAAhC,+BAAgC,CAChC,UACF,CAEA,+CAIE,kBAA8B,CAA9B,6BAA8B,CAC9B,UACF,CAEA,2CAIE,kBAA6B,CAA7B,4BAA6B,CAC7B,UACF,CAEA,mDAIE,kBAA+B,CAA/B,8BAA+B,CAC/B,UACF,CAEA,uDAIE,kBAAgC,CAAhC,+BAAgC,CAChC,UACF,CAEA,+CAIE,eAAgB,CAChB,UAAW,CACX,qBACF,CAEA,WACE,UACF,CAEA,uBAEE,qBACF,CAEA,WACE,iBACF,CAEA,MACE,UAAW,CACX,eAAgB,CAChB,eACF,CAGA,cACE,+BAAoC,CACpC,iBAAkB,CAClB,KAAM,CACN,MAAO,CACP,UAAW,CACX,WACF,CAGA,kBACE,eACF,CAEA,iBACE,aAAc,CACd,gBAAkB,CAClB,UACF,CAEA,6HAME,aAAc,CACd,UAAW,CACX,aAAe,CACf,gBAAiB,CACjB,qBACF,CAEA,gCAEE,YACF,CAEA,oBACE,YACF,CAEA,sBACE,aAAe,CACf,UACF,CAEA,iCACE,aACF,CACA,kCACE,aACF,CACA,mCACE,aACF,CACA,iCACE,aACF,CACA,kCACE,aACF,CAEA,oBAEE,YAAa,CACb,eACF,CAEA,UACE,kBAA8B,CAA9B,6BACF,CAGA,QAEE,6BAA8B,CAC9B,kBAAmB,CACnB,kBAAoB,CACpB,cAAe,CACf,SAAU,CACV,UAAW,CACX,KAAM,CACN,+BAA6C,CAA7C,4CAA6C,CAC7C,UACF,CAEA,mBAZE,YAcF,CAEA,UACE,UAAW,CACX,cAAgB,CAChB,eACF,CAEA,gBACE,aAA2B,CAA3B,0BACF,CAEA,QACE,uBAAsC,CAAtC,oCACF,CAEA,sBACE,kBACF,CAGA,SACE,iBAAkB,CAClB,uEAAmE,CACnE,YACF,CAEA,eACE,UAAW,CACX,WAAY,CACZ,SAAU,CACV,WAAY,CACZ,YAAa,CACb,qBAAsB,CACtB,kBAAmB,CACnB,sBAAuB,CACvB,iBACF,CAGA,SACE,YAAa,CACb,iCAAkC,CAClC,kBAAmB,CACnB,aAAc,CACd,YAAa,CACb,eAAgB,CAChB,kBACF,CAGA,cACE,YAAa,CACb,qEAIiB,CACjB,aACF,CAEA,aACE,aAAc,CACd,YAAa,CACb,qBAAsB,CACtB,kBAAmB,CACnB,sBAAuB,CACvB,iBACF,CAEA,iBACE,WACF,CAEA,sBACE,UAAW,CACX,cACF,CAEA,4BACE,aAAwB,CAAxB,uBACF,CAEA,eACE,eAAgB,CAChB,iBACF,CAEA,uBACE,YAAa,CACb,kBAAmB,CACnB,sBAAuB,CACvB,iBACF,CAEA,aACE,aACF,CAEA,aACE,aACF,CAEA,gCAEE,kBACF,CAEA,kCAEE,kBAAmB,CACnB,mBAAoB,CACpB,6BACF,CAEA,wDAEE,QACF,CAEA,8BAEE,cACF,CAEA,gBACE,gBACF,CAEA,sBACE,YACF,CAEA,sCACE,QAAO,CACP,cACF,CAEA,+BACE,QAAO,CACP,cACF,CAGA,6BACE,kBAAgC,CAAhC,+BAAgC,CAChC,aACF,CAEA,MACE,YAAa,CACb,6BAA8B,CAC9B,aAAc,CACd,kBACF,CAEA,sBACE,iBACF,CAEA,UACE,WACF,CAEA,qBACE,kBAA8B,CAA9B,6BAA8B,CAC9B,aAA2B,CAA3B,0BAA2B,CAC3B,mBAAsB,CACtB,iBAAkB,CAClB,eACF,CAEA,iBACE,UAAW,CACX,eAAiB,CACjB,mBACF,CAGA,yBACE,WACE,eACF,CAEA,SACE,YACF,CAGA,SACE,cACF,CAEA,OACE,cACF,CAEA,MACE,cACF,CAGA,QACE,aAAc,CACd,iBACF,CAEA,WACE,iBAAkB,CAClB,sBACF,CAEA,WACE,kBACF,CAEA,iBACE,YACF,CAGA,SACE,yBAA0B,CAC1B,iBACF,CAEA,YACE,YACF,CAIA,8BAEE,WAAY,CACZ,WACF,CAEA,cACE,sDAMF,CAEA,uBACE,qBACF,CAEA,gBACE,aAAc,CACd,UAAW,CACX,mBACF,CAEA,MACE,yBACF,CACA,qBAEE,mBACF,CACF","file":"main.512deafe.chunk.css","sourcesContent":["/* Global Styles */\n:root {\n --primary-color: #17a2b8;\n --dark-color: #343a40;\n --light-color: #f4f4f4;\n --danger-color: #dc3545;\n --success-color: #28a745;\n}\n\n* {\n box-sizing: border-box;\n margin: 0;\n padding: 0;\n}\n\nbody {\n font-family: 'Raleway', sans-serif;\n font-size: 1rem;\n line-height: 1.6;\n background-color: #fff;\n color: #333;\n}\n\na {\n color: var(--primary-color);\n text-decoration: none;\n}\n\nul {\n list-style: none;\n}\n\nimg {\n width: 100%;\n}\n\n/* Utilities */\n.container {\n max-width: 1100px;\n margin: auto;\n overflow: hidden;\n padding: 0 2rem;\n margin-top: 6rem;\n margin-bottom: 3rem;\n}\n\n/* Text Styles*/\n.x-large {\n font-size: 4rem;\n line-height: 1.2;\n margin-bottom: 1rem;\n}\n\n.large {\n font-size: 3rem;\n line-height: 1.2;\n margin-bottom: 1rem;\n}\n\n.lead {\n font-size: 1.5rem;\n margin-bottom: 1rem;\n}\n\n.text-center {\n text-align: center;\n}\n\n.text-primary {\n color: var(--primary-color);\n}\n\n.text-dark {\n color: var(--dark-color);\n}\n\n/* Padding */\n.p {\n padding: 0.5rem;\n}\n.p-1 {\n padding: 1rem;\n}\n.p-2 {\n padding: 2rem;\n}\n.p-3 {\n padding: 3rem;\n}\n.py {\n padding: 0.5rem 0;\n}\n.py-1 {\n padding: 1rem 0;\n}\n.py-2 {\n padding: 2rem 0;\n}\n.py-3 {\n padding: 3rem 0;\n}\n\n/* Margin */\n.m {\n margin: 0.5rem;\n}\n.m-1 {\n margin: 1rem;\n}\n.m-2 {\n margin: 2rem;\n}\n.m-3 {\n margin: 3rem;\n}\n.my {\n margin: 0.5rem 0;\n}\n.my-1 {\n margin: 1rem 0;\n}\n.my-2 {\n margin: 2rem 0;\n}\n.my-3 {\n margin: 3rem 0;\n}\n\n.btn {\n display: inline-block;\n background: var(--light-color);\n color: #333;\n padding: 0.4rem 1.3rem;\n font-size: 1rem;\n border: none;\n cursor: pointer;\n margin-right: 0.5rem;\n transition: opacity 0.2s ease-in;\n outline: none;\n}\n\n.badge {\n font-size: 0.8rem;\n padding: 0.1rem;\n text-align: center;\n margin: 0.3rem;\n background: var(--light-color);\n color: #333;\n}\n\n.alert {\n padding: 0.8rem;\n margin: 1rem 0;\n opacity: 0.9;\n background: var(--light-color);\n color: #333;\n}\n\n.btn-primary,\n.bg-primary,\n.badge-primary,\n.alert-primary {\n background: var(--primary-color);\n color: #fff;\n}\n\n.btn-light,\n.bg-light,\n.badge-light,\n.alert-light {\n background: var(--light-color);\n color: #333;\n}\n\n.btn-dark,\n.bg-dark,\n.badge-dark,\n.alert-dark {\n background: var(--dark-color);\n color: #fff;\n}\n\n.btn-danger,\n.bg-danger,\n.badge-danger,\n.alert-danger {\n background: var(--danger-color);\n color: #fff;\n}\n\n.btn-success,\n.bg-success,\n.badge-success,\n.alert-success {\n background: var(--success-color);\n color: #fff;\n}\n\n.btn-white,\n.bg-white,\n.badge-white,\n.alert-white {\n background: #fff;\n color: #333;\n border: #ccc solid 1px;\n}\n\n.btn:hover {\n opacity: 0.8;\n}\n\n.bg-light,\n.badge-light {\n border: #ccc solid 1px;\n}\n\n.round-img {\n border-radius: 50%;\n}\n\n.line {\n height: 1px;\n background: #ccc;\n margin: 1.5rem 0;\n}\n\n/* Overlay */\n.dark-overlay {\n background-color: rgba(0, 0, 0, 0.7);\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n}\n\n/* Forms */\n.form .form-group {\n margin: 1.2rem 0;\n}\n\n.form .form-text {\n display: block;\n margin-top: 0.3rem;\n color: #888;\n}\n\n.form input[type='text'],\n.form input[type='email'],\n.form input[type='password'],\n.form input[type='date'],\n.form select,\n.form textarea {\n display: block;\n width: 100%;\n padding: 0.4rem;\n font-size: 1.2rem;\n border: 1px solid #ccc;\n}\n\n.form input[type='submit'],\nbutton {\n font: inherit;\n}\n\n.form .social-input {\n display: flex;\n}\n\n.form .social-input i {\n padding: 0.5rem;\n width: 4rem;\n}\n\n.form .social-input i.fa-twitter {\n color: #38a1f3;\n}\n.form .social-input i.fa-facebook {\n color: #3b5998;\n}\n.form .social-input i.fa-instagram {\n color: #3f729b;\n}\n.form .social-input i.fa-youtube {\n color: #c4302b;\n}\n.form .social-input i.fa-linkedin {\n color: #0077b5;\n}\n\n.table th,\n.table td {\n padding: 1rem;\n text-align: left;\n}\n\n.table th {\n background: var(--light-color);\n}\n\n/* Navbar */\n.navbar {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 0.7rem 2rem;\n position: fixed;\n z-index: 1;\n width: 100%;\n top: 0;\n border-bottom: solid 1px var(--primary-color);\n opacity: 0.9;\n}\n\n.navbar ul {\n display: flex;\n}\n\n.navbar a {\n color: #fff;\n padding: 0.45rem;\n margin: 0 0.25rem;\n}\n\n.navbar a:hover {\n color: var(--primary-color);\n}\n\n.active{\n color: var(--primary-color) !important;\n}\n\n.navbar .welcome span {\n margin-right: 0.6rem;\n}\n\n/* Landing Page */\n.landing {\n position: relative;\n background: url('./img/showcase.jpg') no-repeat center center/cover;\n height: 100vh;\n}\n\n.landing-inner {\n color: #fff;\n height: 100%;\n width: 80%;\n margin: auto;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n text-align: center;\n}\n\n/* Profiles Page */\n.profile {\n display: grid;\n grid-template-columns: 2fr 4fr 2fr;\n align-items: center;\n grid-gap: 2rem;\n padding: 1rem;\n line-height: 1.8;\n margin-bottom: 1rem;\n}\n\n/* Profile Page */\n.profile-grid {\n display: grid;\n grid-template-areas:\n 'top top'\n 'about about'\n 'exp edu'\n 'github github';\n grid-gap: 1rem;\n}\n\n.profile-top {\n grid-area: top;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n text-align: center;\n}\n\n.profile-top img {\n width: 250px;\n}\n\n.profile-top .icons a {\n color: #fff;\n margin: 0 0.3rem;\n}\n\n.profile-top .icons a:hover {\n color: var(--dark-color);\n}\n\n.profile-about {\n grid-area: about;\n text-align: center;\n}\n\n.profile-about .skills {\n display: flex;\n align-items: center;\n justify-content: center;\n text-align: center;\n}\n\n.profile-exp {\n grid-area: exp;\n}\n\n.profile-edu {\n grid-area: edu;\n}\n\n.profile-exp h2,\n.profile-edu h2 {\n margin-bottom: 1rem;\n}\n\n.profile-exp > div,\n.profile-edu > div {\n margin-bottom: 1rem;\n padding-bottom: 1rem;\n border-bottom: #ccc 1px dotted;\n}\n\n.profile-exp > div:last-child,\n.profile-edu > div:last-child {\n border: 0;\n}\n\n.profile-exp p,\n.profile-edu p {\n margin: 0.5rem 0;\n}\n\n.profile-github {\n grid-area: github;\n}\n\n.profile-github .repo {\n display: flex;\n}\n\n.profile-github .repo > div:first-child {\n flex: 7;\n flex-basis: 70%;\n}\n\n.profile-github > div:last-child {\n flex: 3;\n flex-basis: 20%;\n}\n\n/* Posts Page */\n.post-form .post-form-header {\n background: var(--primary-color);\n padding: 0.5rem;\n}\n\n.post {\n display: grid;\n grid-template-columns: 1fr 4fr;\n grid-gap: 2rem;\n align-items: center;\n}\n\n.post > div:first-child {\n text-align: center;\n}\n\n.post img {\n width: 100px;\n}\n\n.post .comment-count {\n background: var(--light-color);\n color: var(--primary-color);\n padding: 0.1rem 0.2rem;\n border-radius: 5px;\n font-size: 0.8rem;\n}\n\n.post .post-date {\n color: #aaa;\n font-size: 0.8rem;\n margin-bottom: 0.5rem;\n}\n\n/* Mobile Styles */\n@media (max-width: 700px) {\n .container {\n margin-top: 8rem;\n }\n\n .hide-sm {\n display: none;\n }\n\n /* Text Styles */\n .x-large {\n font-size: 3rem;\n }\n\n .large {\n font-size: 2rem;\n }\n\n .lead {\n font-size: 1rem;\n }\n\n /* Navbar */\n .navbar {\n display: block;\n text-align: center;\n }\n\n .navbar ul {\n text-align: center;\n justify-content: center;\n }\n\n .navbar h1 {\n margin-bottom: 1rem;\n }\n\n .navbar .welcome {\n display: none;\n }\n\n /* Profiles Page */\n .profile {\n grid-template-columns: 1fr;\n text-align: center;\n }\n\n .profile ul {\n display: none;\n }\n\n /* Profile Page */\n\n .profile-top img,\n .profile img {\n width: 200px;\n margin: auto;\n }\n\n .profile-grid {\n grid-template-areas:\n 'top'\n 'about'\n 'exp'\n 'edu'\n 'github';\n }\n\n .profile-about .skills {\n flex-direction: column;\n }\n\n .dash-buttons a {\n display: block;\n width: 100%;\n margin-bottom: 0.2rem;\n }\n\n .post {\n grid-template-columns: 1fr;\n }\n .post a,\n .post button {\n padding: 0.3rem 0.4rem;\n }\n}\n"]} \ No newline at end of file diff --git a/frontend/build/static/js/2.96791f06.chunk.js b/frontend/build/static/js/2.96791f06.chunk.js new file mode 100644 index 0000000..7b5c19d --- /dev/null +++ b/frontend/build/static/js/2.96791f06.chunk.js @@ -0,0 +1,3 @@ +/*! For license information please see 2.96791f06.chunk.js.LICENSE.txt */ +(this.webpackJsonpclient=this.webpackJsonpclient||[]).push([[2],[function(e,t,n){"use strict";e.exports=n(41)},function(e,t,n){"use strict";n.d(t,"a",(function(){return o}));var r=n(10);function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function o(e){for(var t=1;te.length)&&-1!==e.indexOf(t)}function a(e){for(var t="";e;)t+="0",e-=1;return t}function u(e,t,r){var i,o,l,s=t.useToLocaleString,c=t.useGrouping,f=c&&t.grouping.slice(),d=t.maximumSignificantDigits,p=t.minimumIntegerDigits||1,h=t.fractionDigits||0,m=t.groupingSeparator,y=t.decimalSeparator;if(s&&r){var v={minimumIntegerDigits:p,useGrouping:c};if(h&&(v.maximumFractionDigits=h,v.minimumFractionDigits=h),d&&e>0&&(v.maximumSignificantDigits=d),!n){var g=_({},t);g.useGrouping=!1,g.decimalSeparator=".",e=parseFloat(u(e,g),10)}return e.toLocaleString(r,v)}var b=(d?e.toPrecision(d+1):e.toFixed(h+1)).split("e");l=b[1]||"",o=(b=b[0].split("."))[1]||"";var w=(i=b[0]||"").length,k=o.length,S=w+k,x=i+o;(d&&S===d+1||!d&&k===h+1)&&((x=function(e){for(var t=e.split("").reverse(),n=0,r=!0;r&&n0?o.length<=T?(i+=o+=a(T-o.length),o=""):(i+=o.slice(0,T),o=o.slice(T)):T<0&&(o=a(Math.abs(T)-i.length)+i+o,i="0"),d||((o=o.slice(0,h)).lengtht.label.length?-1:e.label.length0,B=H?a.precision:0,G=B,Q=a.minValue,q=!1,K=a.maxValue,Z=!1,X=a.useToLocaleString,J=a.groupingSeparator,ee=a.decimalSeparator,te=a.grouping;X=X&&t;var ne=a.trim;f(ne)&&(ne=ne.join(" ")),null===ne&&(L||K||H)&&(ne="all"),null!==ne&&!0!==ne&&"left"!==ne&&"right"!==ne||(ne="large"),!1===ne&&(ne="");var re=function(e){return e.test(ne)},ie=/both/,oe=/^all|[^sm]all/,ae=L>0||S([/large/,ie,oe],re),ue=S([/small/,ie,oe],re),le=S([/mid/,oe],re),se=S([/final/,oe],re),ce=m(N.match(D),(function(e,t){var n=M(e);return"*"===e.slice(0,1)&&(e=e.slice(1),"escape"!==n&&"general"!==n&&F.push(n)),{index:t,length:e.length,text:"",token:"escape"===n?e.replace(C.escape,"$1"):e,type:"escape"===n||"general"===n?null:n}})),fe={index:0,length:0,token:"",text:"",type:null},de=[];I&&ce.reverse(),h(ce,(function(e){if(e.type)return(fe.type||fe.text)&&de.push(fe),void(fe=e);I?fe.text=e.token+fe.text:fe.text+=e.token})),(fe.type||fe.text)&&de.push(fe),I&&de.reverse();var pe=b(r,g(v(y(de,"type"))));if(!pe.length)return y(de,"text").join("");pe=m(pe,(function(e,t){var n,r=t+1===pe.length,i=!t;n="years"===e||"months"===e?O.as(e):E.as(e);var o=Math.floor(n),u=n-o,l=p(de,(function(t){return e===t.type}));return i&&K&&n>K&&(Z=!0),r&&Q&&Math.abs(a.duration.as(e))1&&(V=!0),E.subtract(o,e),O.subtract(o,e),{rawValue:n,wholeValue:o,decimalValue:r?u:0,isSmallest:r,isLargest:i,type:e,tokenLength:l.length}}));var he,me=$?Math.floor:Math.round,ye=function(e,t){var n=Math.pow(10,t);return me(e*n)/n},ve=!1,ge=!1,be=function(e,t){var n={useGrouping:W,groupingSeparator:J,decimalSeparator:ee,grouping:te,useToLocaleString:X};return H&&(B<=0?(e.rawValue=0,e.wholeValue=0,e.decimalValue=0):(n.maximumSignificantDigits=B,e.significantDigits=B)),Z&&!ge&&(e.isLargest?(e.wholeValue=K,e.decimalValue=0):(e.wholeValue=0,e.decimalValue=0)),q&&!ge&&(e.isSmallest?(e.wholeValue=Q,e.decimalValue=0):(e.wholeValue=0,e.decimalValue=0)),e.isSmallest||e.significantDigits&&e.significantDigits-e.wholeValue.toString().length<=0?z<0?e.value=ye(e.wholeValue,z):0===z?e.value=me(e.wholeValue+e.decimalValue):H?(e.value=$?ye(e.rawValue,B-e.wholeValue.toString().length):e.rawValue,e.wholeValue&&(B-=e.wholeValue.toString().length)):(n.fractionDigits=z,e.value=$?e.wholeValue+ye(e.decimalValue,z):e.wholeValue+e.decimalValue):H&&e.wholeValue?(e.value=Math.round(ye(e.wholeValue,e.significantDigits-e.wholeValue.toString().length)),B-=e.wholeValue.toString().length):e.value=e.wholeValue,e.tokenLength>1&&(V||ve)&&(n.minimumIntegerDigits=e.tokenLength,ge&&n.maximumSignificantDigits0||""===ne||p(F,e.type)||p(j,e.type))&&(ve=!0),e.formattedValue=u(e.value,n,Y),n.useGrouping=!1,n.decimalSeparator=".",e.formattedValueEn=u(e.value,n,"en"),2===e.tokenLength&&"milliseconds"===e.type&&(e.formattedValueMS=u(e.value,{minimumIntegerDigits:3,useGrouping:!1},"en").slice(0,2)),e};if((pe=v(pe=m(pe,be))).length>1){var we=function(e){return p(pe,(function(t){return t.type===e}))};h(i,(function(e){var t=we(e.type);t&&h(e.targets,(function(e){var n=we(e.type);n&&parseInt(t.formattedValueEn,10)===e.value&&(t.rawValue=0,t.wholeValue=0,t.decimalValue=0,n.rawValue+=1,n.wholeValue+=1,n.decimalValue=0,n.formattedValueEn=n.wholeValue.toString(),ge=!0)}))}))}return ge&&(ve=!1,B=G,pe=v(pe=m(pe,be))),!j||Z&&!a.trim?(ae&&(pe=w(pe,(function(e){return!e.isSmallest&&!e.wholeValue&&!p(F,e.type)}))),L&&pe.length&&(pe=pe.slice(0,L)),ue&&pe.length>1&&(he=function(e){return!e.wholeValue&&!p(F,e.type)&&!e.isLargest},pe=w(pe.slice().reverse(),he).reverse()),le&&(pe=v(pe=m(pe,(function(e,t){return t>0&&t ",Z=!1,q=!1),T&&(t.value>0||""===ne||p(F,t.type)||p(j,t.type))&&(n+="-",T=!1),"milliseconds"===e.type&&t.formattedValueMS?n+=t.formattedValueMS:n+=t.formattedValue,I||(n+=e.text),n}))).join("").replace(/(,| |:|\.)*$/,"").replace(/^(,| |:|\.)*/,""))}function E(){var e=this.duration,t=function(t){return e._data[t]},n=p(this.types,t),r=function(e,t){for(var n=e.length;n-=1;)if(t(e[n]))return e[n]}(this.types,t);switch(n){case"milliseconds":return"S __";case"seconds":case"minutes":return"*_MS_";case"hours":return"_HMS_";case"days":if(n===r)return"d __";case"weeks":return n===r?"w __":(null===this.trim&&(this.trim="both"),"w __, d __, h __");case"months":if(n===r)return"M __";case"years":return n===r?"y __":(null===this.trim&&(this.trim="both"),"y __, M __, d __");default:return null===this.trim&&(this.trim="both"),"y __, d __, h __, m __, s __"}}function O(e){if(!e)throw"Moment Duration Format init cannot find moment instance.";e.duration.format=x,e.duration.fn.format=T,e.duration.fn.format.defaults={trim:null,stopTrim:null,largest:null,maxValue:null,minValue:null,precision:0,trunc:!1,forceLength:null,userLocale:null,usePlural:!0,useLeftUnits:!1,useGrouping:!0,useSignificantDigits:!1,template:E,useToLocaleString:!0,groupingSeparator:",",decimalSeparator:".",grouping:[3]},e.updateLocale("en",c)}return t=!!((s=(s=!0)&&function(){try{(0).toLocaleString("i")}catch(e){return"RangeError"===e.name}return!1}())&&(s=(s=(s=s&&"1"===1..toLocaleString("en",{minimumIntegerDigits:1}))&&"01"===1..toLocaleString("en",{minimumIntegerDigits:2}))&&"001"===1..toLocaleString("en",{minimumIntegerDigits:3}))&&(s=(s=(s=(s=s&&"100"===99.99.toLocaleString("en",{maximumFractionDigits:0,minimumFractionDigits:0}))&&"100.0"===99.99.toLocaleString("en",{maximumFractionDigits:1,minimumFractionDigits:1}))&&"99.99"===99.99.toLocaleString("en",{maximumFractionDigits:2,minimumFractionDigits:2}))&&"99.990"===99.99.toLocaleString("en",{maximumFractionDigits:3,minimumFractionDigits:3}))&&(s=(s=(s=(s=(s=s&&"100"===99.99.toLocaleString("en",{maximumSignificantDigits:1}))&&"100"===99.99.toLocaleString("en",{maximumSignificantDigits:2}))&&"100"===99.99.toLocaleString("en",{maximumSignificantDigits:3}))&&"99.99"===99.99.toLocaleString("en",{maximumSignificantDigits:4}))&&"99.99"===99.99.toLocaleString("en",{maximumSignificantDigits:5}))&&(s=(s=s&&"1,000"===1e3.toLocaleString("en",{useGrouping:!0}))&&"1000"===1e3.toLocaleString("en",{useGrouping:!1}))),n=t&&"3.6"===3.55.toLocaleString("en",{useGrouping:!1,minimumIntegerDigits:1,minimumFractionDigits:1,maximumFractionDigits:1}),O(e),O},i=[n(1)],void 0===(o="function"==typeof(r=u)?r.apply(t,i):r)||(e.exports=o),a&&(a.momentDurationFormatSetup=a.moment?u(a.moment):u)},function(e,t,n){"use strict";n.r(t);var r=n(2),i=n.n(r),o=n(0),a=n.n(o),u=n(1),l=n.n(u);function s(e){return(s="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function c(e){return(c=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function f(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function d(e,t){for(var n=0;n0&&void 0!==arguments[0]?arguments[0]:6e4;t.clearPooledTimer(),t.pooledTimer=setInterval((function(){t.pooledElements.forEach((function(e){0!==e.props.interval&&e.update()}))}),e)}},{key:"clearPooledTimer",value:function(){t.pooledTimer&&(clearInterval(t.pooledTimer),t.pooledTimer=null,t.pooledElements=[])}},{key:"pushPooledElement",value:function(e){e instanceof t?-1===t.pooledElements.indexOf(e)&&t.pooledElements.push(e):console.error("Element not an instance of Moment.")}},{key:"removePooledElement",value:function(e){var n=t.pooledElements.indexOf(e);-1!==n&&t.pooledElements.splice(n,1)}},{key:"getDatetime",value:function(e){var n=e.utc,r=e.unix,i=e.date,o=e.locale,a=e.parse,u=e.tz,l=e.local;i=i||e.children,a=a||t.globalParse,l=l||t.globalLocal,u=u||t.globalTimezone,o=t.globalLocale?t.globalLocale:o||t.globalMoment.locale();var s=null;return s=n?t.globalMoment.utc(i,a,o):r?t.globalMoment(1e3*i,a,o):t.globalMoment(i,a,o),u?s=s.tz(u):l&&(s=s.local()),s}},{key:"getContent",value:function(e){var n=e.fromNow,r=e.fromNowDuring,i=e.from,o=e.add,a=e.subtract,u=e.toNow,s=e.to,c=e.ago,f=e.calendar,d=e.diff,p=e.duration,h=e.durationFromNow,m=e.unit,y=e.decimal,v=e.format;v=v||t.globalFormat;var g=t.getDatetime(e);o&&g.add(o),a&&g.subtract(a);var b=Boolean(r)&&-g.diff(l()())=0||(i[n]=e[n]);return i}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}(a,["withTitle","element"]),c=this.state.content,f=(e=s,n=t.propTypes,r=Object.keys(n),o=Object.assign({},e),Object.keys(o).filter((function(e){return-1!==r.indexOf(e)})).forEach((function(e){return delete o[e]})),o);return u&&(f.title=this.getTitle()),i.a.createElement(l||t.globalElement,function(e){for(var t=1;t=0||(i[n]=e[n]);return i}n.d(t,"a",(function(){return r}))},function(e,t,n){"use strict";var r=n(4);function i(e){return"/"===e.charAt(0)}function o(e,t){for(var n=t,r=n+1,i=e.length;r=0;d--){var p=a[d];"."===p?o(a,d):".."===p?(o(a,d),f++):f&&(o(a,d),f--)}if(!s)for(;f--;f)a.unshift("..");!s||""===a[0]||a[0]&&i(a[0])||a.unshift("");var h=a.join("/");return n&&"/"!==h.substr(-1)&&(h+="/"),h};function u(e){return e.valueOf?e.valueOf():Object.prototype.valueOf.call(e)}var l=function e(t,n){if(t===n)return!0;if(null==t||null==n)return!1;if(Array.isArray(t))return Array.isArray(n)&&t.length===n.length&&t.every((function(t,r){return e(t,n[r])}));if("object"===typeof t||"object"===typeof n){var r=u(t),i=u(n);return r!==t||i!==n?e(r,i):Object.keys(Object.assign({},t,n)).every((function(r){return e(t[r],n[r])}))}return!1},s=n(14);function c(e){return"/"===e.charAt(0)?e:"/"+e}function f(e){return"/"===e.charAt(0)?e.substr(1):e}function d(e,t){return function(e,t){return 0===e.toLowerCase().indexOf(t.toLowerCase())&&-1!=="/?#".indexOf(e.charAt(t.length))}(e,t)?e.substr(t.length):e}function p(e){return"/"===e.charAt(e.length-1)?e.slice(0,-1):e}function h(e){var t=e.pathname,n=e.search,r=e.hash,i=t||"/";return n&&"?"!==n&&(i+="?"===n.charAt(0)?n:"?"+n),r&&"#"!==r&&(i+="#"===r.charAt(0)?r:"#"+r),i}function m(e,t,n,i){var o;"string"===typeof e?(o=function(e){var t=e||"/",n="",r="",i=t.indexOf("#");-1!==i&&(r=t.substr(i),t=t.substr(0,i));var o=t.indexOf("?");return-1!==o&&(n=t.substr(o),t=t.substr(0,o)),{pathname:t,search:"?"===n?"":n,hash:"#"===r?"":r}}(e)).state=t:(void 0===(o=Object(r.a)({},e)).pathname&&(o.pathname=""),o.search?"?"!==o.search.charAt(0)&&(o.search="?"+o.search):o.search="",o.hash?"#"!==o.hash.charAt(0)&&(o.hash="#"+o.hash):o.hash="",void 0!==t&&void 0===o.state&&(o.state=t));try{o.pathname=decodeURI(o.pathname)}catch(u){throw u instanceof URIError?new URIError('Pathname "'+o.pathname+'" could not be decoded. This is likely caused by an invalid percent-encoding.'):u}return n&&(o.key=n),i?o.pathname?"/"!==o.pathname.charAt(0)&&(o.pathname=a(o.pathname,i.pathname)):o.pathname=i.pathname:o.pathname||(o.pathname="/"),o}function y(e,t){return e.pathname===t.pathname&&e.search===t.search&&e.hash===t.hash&&e.key===t.key&&l(e.state,t.state)}function v(){var e=null;var t=[];return{setPrompt:function(t){return e=t,function(){e===t&&(e=null)}},confirmTransitionTo:function(t,n,r,i){if(null!=e){var o="function"===typeof e?e(t,n):e;"string"===typeof o?"function"===typeof r?r(o,i):i(!0):i(!1!==o)}else i(!0)},appendListener:function(e){var n=!0;function r(){n&&e.apply(void 0,arguments)}return t.push(r),function(){n=!1,t=t.filter((function(e){return e!==r}))}},notifyListeners:function(){for(var e=arguments.length,n=new Array(e),r=0;rt?n.splice(t,n.length-t,r):n.push(r),f({action:"PUSH",location:r,index:t,entries:n})}}))},replace:function(e,t){var r=m(e,t,d(),w.location);c.confirmTransitionTo(r,"REPLACE",n,(function(e){e&&(w.entries[w.index]=r,f({action:"REPLACE",location:r}))}))},go:b,goBack:function(){b(-1)},goForward:function(){b(1)},canGo:function(e){var t=w.index+e;return t>=0&&te.length)&&(t=e.length);for(var n=0,r=new Array(t);n=200&&e<300},headers:{common:{Accept:"application/json, text/plain, */*"}}};r.forEach(["delete","get","head"],(function(e){l.headers[e]={}})),r.forEach(["post","put","patch"],(function(e){l.headers[e]=r.merge(a)})),e.exports=l}).call(this,n(53))},function(e,t,n){var r=n(68);e.exports=p,e.exports.parse=o,e.exports.compile=function(e,t){return u(o(e,t),t)},e.exports.tokensToFunction=u,e.exports.tokensToRegExp=d;var i=new RegExp(["(\\\\.)","([\\/.])?(?:(?:\\:(\\w+)(?:\\(((?:\\\\.|[^\\\\()])+)\\))?|\\(((?:\\\\.|[^\\\\()])+)\\))([+*?])?|(\\*))"].join("|"),"g");function o(e,t){for(var n,r=[],o=0,a=0,u="",c=t&&t.delimiter||"/";null!=(n=i.exec(e));){var f=n[0],d=n[1],p=n.index;if(u+=e.slice(a,p),a=p+f.length,d)u+=d[1];else{var h=e[a],m=n[2],y=n[3],v=n[4],g=n[5],b=n[6],w=n[7];u&&(r.push(u),u="");var _=null!=m&&null!=h&&h!==m,k="+"===b||"*"===b,S="?"===b||"*"===b,x=n[2]||c,T=v||g;r.push({name:y||o++,prefix:m||"",delimiter:x,optional:S,repeat:k,partial:_,asterisk:!!w,pattern:T?s(T):w?".*":"[^"+l(x)+"]+?"})}}return a=0||(i[n]=e[n]);return i}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}n.d(t,"a",(function(){return r}))},,function(e,t,n){"use strict";var r=n(26),i="function"===typeof Symbol&&Symbol.for,o=i?Symbol.for("react.element"):60103,a=i?Symbol.for("react.portal"):60106,u=i?Symbol.for("react.fragment"):60107,l=i?Symbol.for("react.strict_mode"):60108,s=i?Symbol.for("react.profiler"):60114,c=i?Symbol.for("react.provider"):60109,f=i?Symbol.for("react.context"):60110,d=i?Symbol.for("react.forward_ref"):60112,p=i?Symbol.for("react.suspense"):60113,h=i?Symbol.for("react.memo"):60115,m=i?Symbol.for("react.lazy"):60116,y="function"===typeof Symbol&&Symbol.iterator;function v(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,n=1;nM.length&&M.push(e)}function j(e,t,n){return null==e?0:function e(t,n,r,i){var u=typeof t;"undefined"!==u&&"boolean"!==u||(t=null);var l=!1;if(null===t)l=!0;else switch(u){case"string":case"number":l=!0;break;case"object":switch(t.$$typeof){case o:case a:l=!0}}if(l)return r(i,t,""===n?"."+R(t,0):n),1;if(l=0,n=""===n?".":n+":",Array.isArray(t))for(var s=0;s