rebuld web und electron

master
serkus01 2 years ago
parent c767dc9d35
commit 298b384343

@ -1,6 +1,6 @@
{
"main.css": "static/css/main.02ee4f88.css",
"main.css.map": "static/css/main.02ee4f88.css.map",
"main.js": "static/js/main.febc368a.js",
"main.js.map": "static/js/main.febc368a.js.map"
"main.css": "static/css/main.7da3c623.css",
"main.css.map": "static/css/main.7da3c623.css.map",
"main.js": "static/js/main.8250b8bd.js",
"main.js.map": "static/js/main.8250b8bd.js.map"
}

@ -1 +1 @@
<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name="theme-color" content="#000000"><link rel="manifest" href="/manifest.json"><link rel="shortcut icon" href="/favicon.ico"><title>React App</title><link href="/static/css/main.02ee4f88.css" rel="stylesheet"></head><body><head><title>Webport</title></head><div id="root"></div><script type="text/javascript" src="/static/js/main.febc368a.js"></script></body></html>
<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name="theme-color" content="#000000"><link rel="manifest" href="/manifest.json"><link rel="shortcut icon" href="/favicon.ico"><title>React App</title><link href="/static/css/main.7da3c623.css" rel="stylesheet"></head><body><head><title>Webport</title></head><div id="root"></div><script type="text/javascript" src="/static/js/main.8250b8bd.js"></script></body></html>

@ -1 +1 @@
"use strict";function setOfCachedUrls(e){return e.keys().then(function(e){return e.map(function(e){return e.url})}).then(function(e){return new Set(e)})}var precacheConfig=[["/index.html","92276cb8c81221cd17aebd513dd4ef53"],["/static/css/main.02ee4f88.css","b2fdedab71e190bbf68de635906b209f"],["/static/js/main.febc368a.js","afbcf5bb1e83af315e4206e8f9593ea1"]],cacheName="sw-precache-v3-sw-precache-webpack-plugin-"+(self.registration?self.registration.scope:""),ignoreUrlParametersMatching=[/^utm_/],addDirectoryIndex=function(e,t){var n=new URL(e);return"/"===n.pathname.slice(-1)&&(n.pathname+=t),n.toString()},cleanResponse=function(e){return e.redirected?("body"in e?Promise.resolve(e.body):e.blob()).then(function(t){return new Response(t,{headers:e.headers,status:e.status,statusText:e.statusText})}):Promise.resolve(e)},createCacheKey=function(e,t,n,r){var a=new URL(e);return r&&a.pathname.match(r)||(a.search+=(a.search?"&":"")+encodeURIComponent(t)+"="+encodeURIComponent(n)),a.toString()},isPathWhitelisted=function(e,t){if(0===e.length)return!0;var n=new URL(t).pathname;return e.some(function(e){return n.match(e)})},stripIgnoredUrlParameters=function(e,t){var n=new URL(e);return n.hash="",n.search=n.search.slice(1).split("&").map(function(e){return e.split("=")}).filter(function(e){return t.every(function(t){return!t.test(e[0])})}).map(function(e){return e.join("=")}).join("&"),n.toString()},hashParamName="_sw-precache",urlsToCacheKeys=new Map(precacheConfig.map(function(e){var t=e[0],n=e[1],r=new URL(t,self.location),a=createCacheKey(r,hashParamName,n,/\.\w{8}\./);return[r.toString(),a]}));self.addEventListener("install",function(e){e.waitUntil(caches.open(cacheName).then(function(e){return setOfCachedUrls(e).then(function(t){return Promise.all(Array.from(urlsToCacheKeys.values()).map(function(n){if(!t.has(n)){var r=new Request(n,{credentials:"same-origin"});return fetch(r).then(function(t){if(!t.ok)throw new Error("Request for "+n+" returned a response with status "+t.status);return cleanResponse(t).then(function(t){return e.put(n,t)})})}}))})}).then(function(){return self.skipWaiting()}))}),self.addEventListener("activate",function(e){var t=new Set(urlsToCacheKeys.values());e.waitUntil(caches.open(cacheName).then(function(e){return e.keys().then(function(n){return Promise.all(n.map(function(n){if(!t.has(n.url))return e.delete(n)}))})}).then(function(){return self.clients.claim()}))}),self.addEventListener("fetch",function(e){if("GET"===e.request.method){var t,n=stripIgnoredUrlParameters(e.request.url,ignoreUrlParametersMatching);t=urlsToCacheKeys.has(n);t||(n=addDirectoryIndex(n,"index.html"),t=urlsToCacheKeys.has(n));!t&&"navigate"===e.request.mode&&isPathWhitelisted([],e.request.url)&&(n=new URL("/index.html",self.location).toString(),t=urlsToCacheKeys.has(n)),t&&e.respondWith(caches.open(cacheName).then(function(e){return e.match(urlsToCacheKeys.get(n)).then(function(e){if(e)return e;throw Error("The cached response that was expected is missing.")})}).catch(function(t){return console.warn('Couldn\'t serve response for "%s" from cache: %O',e.request.url,t),fetch(e.request)}))}});
"use strict";function setOfCachedUrls(e){return e.keys().then(function(e){return e.map(function(e){return e.url})}).then(function(e){return new Set(e)})}var precacheConfig=[["/index.html","958c9528534c690b4fa8005b789ea390"],["/static/css/main.7da3c623.css","41ec98d9bb3b128f5bf64823fc424839"],["/static/js/main.8250b8bd.js","e7b13c7c1b2fa4e5b888128d074f6d05"]],cacheName="sw-precache-v3-sw-precache-webpack-plugin-"+(self.registration?self.registration.scope:""),ignoreUrlParametersMatching=[/^utm_/],addDirectoryIndex=function(e,t){var n=new URL(e);return"/"===n.pathname.slice(-1)&&(n.pathname+=t),n.toString()},cleanResponse=function(e){return e.redirected?("body"in e?Promise.resolve(e.body):e.blob()).then(function(t){return new Response(t,{headers:e.headers,status:e.status,statusText:e.statusText})}):Promise.resolve(e)},createCacheKey=function(e,t,n,r){var a=new URL(e);return r&&a.pathname.match(r)||(a.search+=(a.search?"&":"")+encodeURIComponent(t)+"="+encodeURIComponent(n)),a.toString()},isPathWhitelisted=function(e,t){if(0===e.length)return!0;var n=new URL(t).pathname;return e.some(function(e){return n.match(e)})},stripIgnoredUrlParameters=function(e,t){var n=new URL(e);return n.hash="",n.search=n.search.slice(1).split("&").map(function(e){return e.split("=")}).filter(function(e){return t.every(function(t){return!t.test(e[0])})}).map(function(e){return e.join("=")}).join("&"),n.toString()},hashParamName="_sw-precache",urlsToCacheKeys=new Map(precacheConfig.map(function(e){var t=e[0],n=e[1],r=new URL(t,self.location),a=createCacheKey(r,hashParamName,n,/\.\w{8}\./);return[r.toString(),a]}));self.addEventListener("install",function(e){e.waitUntil(caches.open(cacheName).then(function(e){return setOfCachedUrls(e).then(function(t){return Promise.all(Array.from(urlsToCacheKeys.values()).map(function(n){if(!t.has(n)){var r=new Request(n,{credentials:"same-origin"});return fetch(r).then(function(t){if(!t.ok)throw new Error("Request for "+n+" returned a response with status "+t.status);return cleanResponse(t).then(function(t){return e.put(n,t)})})}}))})}).then(function(){return self.skipWaiting()}))}),self.addEventListener("activate",function(e){var t=new Set(urlsToCacheKeys.values());e.waitUntil(caches.open(cacheName).then(function(e){return e.keys().then(function(n){return Promise.all(n.map(function(n){if(!t.has(n.url))return e.delete(n)}))})}).then(function(){return self.clients.claim()}))}),self.addEventListener("fetch",function(e){if("GET"===e.request.method){var t,n=stripIgnoredUrlParameters(e.request.url,ignoreUrlParametersMatching);t=urlsToCacheKeys.has(n);t||(n=addDirectoryIndex(n,"index.html"),t=urlsToCacheKeys.has(n));!t&&"navigate"===e.request.mode&&isPathWhitelisted([],e.request.url)&&(n=new URL("/index.html",self.location).toString(),t=urlsToCacheKeys.has(n)),t&&e.respondWith(caches.open(cacheName).then(function(e){return e.match(urlsToCacheKeys.get(n)).then(function(e){if(e)return e;throw Error("The cached response that was expected is missing.")})}).catch(function(t){return console.warn('Couldn\'t serve response for "%s" from cache: %O',e.request.url,t),fetch(e.request)}))}});

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

@ -1,6 +1,7 @@
{
"recpvers": null,
"dependencies": {
"axios": "0.24.0",
"react": "17.0.2",
"react-dom": "17.0.2",
"react-id-swiper": "4.0.0",
@ -21,4 +22,4 @@
"test": "react-scripts test --env=jsdom",
"eject": "react-scripts eject"
}
}
}

@ -1,8 +1,11 @@
import React from "react";
import NavBar from "./NavList/navList";
//import MainPage from "../pages/main";
import MainPage from "../pages/main";
import FullCard from "../Componets/Cards/fullCard";
//import OverlaPage from "../pages/overlays";
import "./style.css";
import ReactDOM from "react-dom";
import { useState } from "react";
export default class AppConteiner extends React.Component {
ui = {
BackButton: {
@ -16,19 +19,53 @@ export default class AppConteiner extends React.Component {
}
}
};
title = () => this.viewSideBar();
findPakg(pkg) {
this.viewPakegeInfo(pkg);
}
viewPakegeInfo(pkgName) {
const url = this.props.ServerAdress + "/find?pkg=" + pkgName;
const response = fetch(url);
/*try {
portage_list[pkgName];
} catch (e) {*/
if (response.ok) {
// если HTTP-статус в диапазоне 200-299
// получаем тело ответа (см. про этот метод ниже)
let res = response.json();
ReactDOM.render(
<FullCard
PackageName={res}
PropMain={this.props.rec}
icons={this.props.icons}
/>,
document.getElementById("HomePage")
);
document.getElementById("inS").value = "";
} else {
console.log("Ошибка HTTP: " + response.status);
//}
}
console.log(pkgName);
}
toBack() {
document.getElementById("backBtn").style.display = "none";
document.getElementById("conteinerInfo").style.display = "none";
//document.getElementById("conteinerInfo").style.display = "none";
document.getElementById("container").style.display = "block";
document.getElementById("pTitle").textContent = this.ViewTitle();
//document.getElementById("pTitle").textContent = "Рекомендации";
/* ReactDOM.render(
ReactDOM.render(
<MainPage
icons={this.props.icons}
rec={this.props.rec}
useDes={this.props.useDes}
/>,
document.getElementById
);*/
document.getElementById("HomePage")
);
//window.location.reload();
//this.ViewTitle();
@ -37,35 +74,39 @@ export default class AppConteiner extends React.Component {
viewSideBar() {
if (!this.VVSB) {
document.getElementById("MainContent").style.paddingLeft = "300px";
document.getElementById("btn-toggle").style.paddingLeft = "300px";
document.getElementById("btn-toggle").style.float = "righ";
document.getElementById("btn-toggle").style.paddingLeft = "270px";
document.getElementById("btn-toggle").style.float = "right";
document.getElementById("navBar").style.left = "0px";
this.VVSB = true;
} else {
document.getElementById("MainContent").style.paddingLeft = "0px";
document.getElementById("btn-toggle").style.paddingLeft = "0px";
document.getElementById("navBar").style.left = "-280px";
document.getElementById("navBar").style.left = "-300px";
this.VVSB = false;
}
}
ViewTitle() {
for (let i = 0; i++; this.props.menuItems.length) {
for (let i = 0; i > this.props.menuItems.length; i++) {
if (
//this.props.menuItems[i].url ==
window.location.href.split(window.location.host)[1] ===
this.props.menuItems[i]
this.props.menuItems[i].url
//window.location.href.split(window.location.host)[1]
) {
document.getElementById("pTitle").textContent = this.props.menuItems[
i
].text;
//document.getElementById("pTitle").textContent = this.props.menuItems[i].text;
this.title = this.props.menuItems[i].text;
}
console.log(i);
console.log(this.title);
return (this.title = this.props.menuItems[i].text);
}
}
render() {
this.ViewTitle();
return (
<div>
<NavBar
ServerAdress={this.props.ServerAdress}
category={this.props.category}
menuItem={this.props.menuItems}
aliases={this.props.aliases}
@ -83,9 +124,12 @@ export default class AppConteiner extends React.Component {
borderBottom: "1px solid #AAA",
width: "100%",
background: "#2e323f",
//"1d1d1d",
// "#2e323f",
position: "fixed",
top: "0",
color: "#FFF"
color: "#FFF",
zIndex: "1"
}}
>
<svg
@ -128,16 +172,90 @@ export default class AppConteiner extends React.Component {
color: "#FFF"
}}
>
{" "}
""
{this.title}
</div>
</b>
{this.ViewTitle()}
{
//this.ViewTitle()
}
<div
className="d6"
style={{ position: "realative", float: "right", right: "20px" }}
>
<form>
<input
id="inS"
name="inS"
classname="form-control"
type="text"
placeholder="Введите имя пакета"
onChange={(e) => this.findPakg(e.target.value)}
style={{
/* fontSize: "1.2em",
margin: "10px", */
//backgroundColor: "rgba(81, 81, 81, 0.5)",
border: "none",
//padding: "5px",
//ackground: "#2e233f",
//borderRadius: "15px",
//border: "3px inset #2e322f",
color: "#c7c7c7"
}}
/>
{/*}
<div className="button">
<svg
style={{ color: "#FFF" }}
class="l-ss-c-element"
width="18"
height="27"
viewBox="0 0 18 27"
xmlns="http://www.w3.org/2000/svg"
>
{" "}
<path
class="l-ss-c-element"
fill="#FFF"
fill-rule="#FFF"
clip-rull="#FFF"
//fill-rule="evenodd"
//clip-rule="evenodd"
d="M11.1897 5.44196V11.9907C11.1897 13.1717 10.2323 14.1291 9.05126 14.1291C7.87025 14.1291 6.91286 13.1717 6.91286 11.9907V5.44196C6.91286 4.26095 7.87026 3.30355 9.05126 3.30355C10.2323 3.30355 11.1897 4.26095 11.1897 5.44196ZM4.37359 5.44196C4.37359 2.85855 6.46786 0.764282 9.05126 0.764282C11.6347 0.764282 13.7289 2.85855 13.7289 5.44196V11.9907C13.7289 14.5741 11.6347 16.6684 9.05126 16.6684C6.46786 16.6684 4.37359 14.5741 4.37359 11.9907V5.44196ZM2.83614 11.0551C2.83614 10.3539 2.26771 9.78547 1.56651 9.78547C0.865309 9.78547 0.296875 10.3539 0.296875 11.0551V12.9262C0.296875 17.3295 3.548 20.9735 7.78077 21.5886V23.8185H6.712C6.0108 23.8185 5.44236 24.387 5.44236 25.0882C5.44236 25.7894 6.0108 26.3578 6.712 26.3578H11.3897C12.0909 26.3578 12.6593 25.7894 12.6593 25.0882C12.6593 24.387 12.0909 23.8185 11.3897 23.8185H10.32V21.5887C14.5532 20.9739 17.8047 17.3298 17.8047 12.9262V11.0551C17.8047 10.3539 17.2363 9.78547 16.5351 9.78547C15.8339 9.78547 15.2654 10.3539 15.2654 11.0551V12.9262C15.2654 16.3584 12.483 19.1408 9.05079 19.1408C5.61853 19.1408 2.83614 16.3584 2.83614 12.9262V11.0551Z"
></path>{" "}
</svg>
</div>*/}
<div className="button" style={{ justifyContent: "center" }}>
<svg
class="l-ss-c-element"
width="19"
height="20"
viewBox="0 0 19 20"
fill="none"
xmlns="http://www.w3.org/2000/svg"
>
{" "}
<path
class="l-ss-c-element"
fill-rule="evenodd"
clip-rule="evenodd"
d="M14.3074 8.03846C14.3074 11.3734 11.6039 14.0769 8.26893 14.0769C4.93398 14.0769 2.23047 11.3734 2.23047 8.03846C2.23047 4.70351 4.93398 2 8.26893 2C11.6039 2 14.3074 4.70351 14.3074 8.03846ZM12.331 14.9766C11.139 15.6759 9.75081 16.0769 8.26893 16.0769C3.82941 16.0769 0.230469 12.478 0.230469 8.03846C0.230469 3.59894 3.82941 0 8.26893 0C12.7085 0 16.3074 3.59894 16.3074 8.03846C16.3074 10.2703 15.3978 12.2897 13.9291 13.7463L18.4758 18.2929C18.8663 18.6834 18.8663 19.3166 18.4758 19.7071C18.0853 20.0977 17.4521 20.0977 17.0616 19.7071L12.331 14.9766Z"
fill="white"
></path>{" "}
</svg>
</div>
</form>
</div>
</ul>
<main
id="MainContent"
className="page-content"
style={{ paddingLeft: "10px", margin: "10px" }}
style={{
paddingLeft: "10px",
margin: "10px",
//background: "#1d1d1d",
color: "#000"
}}
>
<div
id="conteinerInfo"
@ -146,6 +264,8 @@ export default class AppConteiner extends React.Component {
width: "100%",
height: "100vw",
display: "none"
//background: "#2e323f"
//color: "#AAA"
}}
></div>
<div id="container" className="container">

@ -8,10 +8,15 @@ export default class OverlayCard extends React.Component {
<b> {this.props.title.name}:</b> {this.props.OverlayInfo.name}
</h3>
<div>
<span style={{ fontSize: "1.4em" }}>
<p style={{ fontSize: "1.4em" }}>
<b>{this.props.title.discription}:</b>
{this.props.OverlayInfo.description}
</span>
</p>
<iframe
style={{ width: "100%", height: " 100vh" }}
src={this.props.OverlayInfo.homepage}
seamless="false"
></iframe>
</div>
</div>
);

@ -26,11 +26,11 @@ class FullCard extends React.Component {
document.getElementById(use).style.background === "rgb(0, 255, 0)"
) {
document.getElementById(use).style.background = "#FFF";
//this.IntstallPackageParamms.USE.map((us, i)=>(
/*if( us == use){
this.IntstallPackageParamms.USE[i].delete
}*/
//))
for (let i = 0; i < this.IntstallPackageParamms.USE.length; i++) {
if (this.IntstallPackageParamms.USE[i] === use) {
delete this.IntstallPackageParamms.USE[1];
}
}
} else {
document.getElementById(use).style.background = "#0F0";
this.IntstallPackageParamms.USE[
@ -78,25 +78,25 @@ class FullCard extends React.Component {
if (item.split("[U]")[1] === "") {
return (
<li
<span
key={item}
id={item.split("[U]")[0]}
style={{ border: " 2px solid #0F0", marginLeft: "5px" }}
onClick={() => this.addVersion(item.split("[U]")[0])}
>
{item.split("[U]")[0]}
</li>
</span>
);
} else {
return (
<li
<span
key={item}
id={item.split("[M]")[0]}
style={{ border: "2px solid #F00", marginLeft: "5px" }}
onClick={() => this.addVersion(item.split("[M]")[0])}
>
{item.split("[M]")[0]}
</li>
</span>
);
}
}
@ -129,16 +129,31 @@ class FullCard extends React.Component {
<div className=" sCard">
<h1 className="title">{this.props.PackageName.Name.split("/")[1]}</h1>
<hr />
<img
src={this.props.icons[this.props.PackageName.Name.split("/")[1]]}
<div
style={{
flex: "3",
//display: "flex",
justifyContent: "center",
alignItems: "center",
flexDirection: "column"
}}
>
<img
src={this.props.icons[this.props.PackageName.Name.split("/")[1]]}
style={{
width: "128px",
height: "128px",
float: "left",
marginRight: "20px"
}}
/>
</div>
<div
style={{
width: "128px",
height: "128px",
float: "left",
marginRight: "20px"
flex: "9"
/*float: "left" */
}}
/>
<div style={{ float: "left" }}>
>
<span>
{" "}
<b>{this.ui.category}</b>{" "}
@ -174,13 +189,12 @@ class FullCard extends React.Component {
></div>
</b>
</div>
<div> </div>
<p>
<b>{this.ui.decription}</b> {this.props.PackageName.Description}
</p>
<a href={this.props.PackageName.Home_page}>{this.ui.site} </a>
<div>
<p>
<b>{this.ui.decription}</b> {this.props.PackageName.Description}
</p>
<a href={this.props.PackageName.Home_page}>{this.ui.site} </a>
</div>
<div className="Btm">
<strong>
<span

@ -1,6 +1,6 @@
import React from "react";
//import FullCard from "./fullCard";
import ReactDOM from "react-dom";
import FullCard from "./fullCard";
//import PkgList from "../../pages/pks";
import "./style.css";
//import Swiper from "react-slider-swiper";
@ -22,62 +22,70 @@ class Scard extends React.Component {
this.swiper = swiper;
}
};
viweinfo(pkg) {
//onClick={() => this.props.ViewPackageInfo(this.props.rec[k][i])}
document.getElementById("backBtn").style.display = "block";
document.getElementById("pTitle").textContent = pkg.Name.split("/")[1];
document.getElementById("container").style.display = "none";
document.getElementById("conteinerInfo").style.display = "block";
ReactDOM.render(
<FullCard
PackageName={pkg}
PropMain={this.props.rec}
icons={this.props.icons}
useDes={this.props.useDes}
Ipkg={this.props.Ipkg}
/>,
document.getElementById("conteinerInfo")
);
}
render() {
return this.props.rec.map((pksl, i) => (
return (
<div
className="Card"
className="card__list"
style={{
padding: "13px",
border: "1px solid #AAA",
//borderRadius: "16px",
backgroundColor: "#f9f9fa",
width: "20%"
//coloor: "#444"
//background: "#2E323F",
//color: "#AAA"
padding: "5px",
//margin: "3px",
marginTop: "10px",
//width: "100vw",
display: "inline-flex",
border: "1px solid #CCC",
borderRadius: " 10px",
boxShadow: "3px 4px 10px #CDC"
//height:"75px"
}}
onClick={() => this.props.ViewPackageInfo(this.props.rec[i])}
//onClick={() => this.viweinfo(this.props.rec[k][i])}
>
<img
className="card__img"
style={{
position: "relative",
float: "left",
width: "48px",
height: "48px"
width: "64px",
height: "64px"
}}
src="/"
src={this.props.icons[this.props.pn.Name.split("/")[1]]}
/>
<div
style={{
//display: "flex",
flex: "1",
padding: " 0 6px",
height: "100%",
borderBottom: " 1px solid rgba(0, 0, 0, 0.05)",
justifyContent: "space-between"
//color: "#AAA"
}}
>
<b style={{ width: "100%", display: "block", textAlign: "center" }}>
{pksl.Name.split("/")[1]}
</b>
{
<div
style={{ position: "relative", top: "36px", textAlign: "left" }}
<div style={{ marginLeft: "10px" }}>
<b>
{" "}
<span
className="card__title"
style={{
color: "red",
width: "100vw",
overflow: "clip",
fontSize: "1.1em"
}}
key={this.props.pn.Name}
>
<div className="descrition" style={{ display: "flex" }}>
<b style={{ textAlign: "left", whiteSpace: "break-spaces" }}>
{ui.description} {":"} {pksl.Description}
</b>
</div>
</div>
}
{this.props.pn.Name.split("/")[1]}
</span>
</b>
<div style={{ overflow: "hidden" }}>{this.props.pn.Description}</div>
</div>
</div>
));
);
}
}
export default Scard;

@ -2,7 +2,7 @@
padding: 10px;
font-size: 1.2em;
text-align: left;
border-bottom: 1px solid #aaa;
/*border-bottom: 1px solid #aaa;*/
}
.sCard:hover {
}
@ -27,7 +27,7 @@
cursor: pointer;
}
.cVer {
display: flex;
display: inline-flex;
}
.cVer li {
list-style: none;

@ -1,6 +1,11 @@
import React from "react";
export default class CheckField extends React.Component {
check = this.props.checking;
chengeStatus() {
//this.check = !this.props.checking;
return !this.check;
}
render() {
return (
<p>
@ -8,7 +13,8 @@ export default class CheckField extends React.Component {
<input
style={{ float: "right" }}
type="checkbox"
checked={this.props.checking}
checked={this.check}
onClick={() => this.chengeStatus()}
/>
</p>
);

@ -9,8 +9,8 @@ export default class MainConteiner extends React.Component {
viewSideBar() {
if (!this.VVSB) {
document.getElementById("MainContent").style.paddingLeft = "300px";
document.getElementById("btn-toggle").style.float = "righ";
document.getElementById("navBar").style.left = "0px";
document.getElementById("btn-toggle").style.float = "right";
document.getElementById("navBar").style.left = "300px";
this.VVSB = true;
} else {
document.getElementById("MainContent").style.paddingLeft = "0px";

@ -1,6 +1,6 @@
import React, { Component } from "react";
import ReactDOM from "react-dom";
import axios from "axios";
import {
ProSidebar,
Menu,
@ -37,11 +37,13 @@ class NavBar extends Component {
}
}
viewPakegeInfo(pkgName) {
const url = window.location.host + "/find?pkg=" + pkgName;
const response = fetch(url);
const url = this.props.ServerAdress + "/find?pkg=" + pkgName;
console.log(url);
const response = axios(url);
/*try {
portage_list[pkgName];
} catch (e) {*/
if (response.ok) {
// если HTTP-статус в диапазоне 200-299
// получаем тело ответа (см. про этот метод ниже)
@ -52,8 +54,9 @@ class NavBar extends Component {
PropMain={this.props.rec}
icons={this.props.icons}
/>,
document.getElementById("conteinerInfo")
document.getElementById("HomePage")
);
document.getElementById("inS").value = "";
} else {
alert("Ошибка HTTP: " + response.status);
//}
@ -109,8 +112,14 @@ class NavBar extends Component {
alt="User picture"
onClick={() => (
(document.getElementById("backBtn").style.display = "block"),
//(document.getElementById("container").style.display = "none"),
//(document.getElementById("conteinerInfo").style.display =
// "block"),
ReactDOM.render(
<UserProfilePage Ipkgs={this.props.Ipkgs} />,
<UserProfilePage
Ipkgs={this.props.Ipkgs}
catalog={this.props.category}
/>,
document.getElementById("HomePage")
)
)}
@ -137,7 +146,7 @@ class NavBar extends Component {
</div>
</MenuItem>
<MenuItem style={{}}>
<input
{/* <input
id="inS"
name="inS"
classname="form-control"
@ -155,7 +164,7 @@ class NavBar extends Component {
//border: "3px inset #2e322f",
color: "#c7c7c7"
}}
/>
/>*/}
</MenuItem>
</SidebarHeader>
<SidebarContent style={{ overflowX: "clip" }}>
@ -168,12 +177,13 @@ class NavBar extends Component {
title={this.ui.catalog.text}
style={{ paddingRight: "0px" }}
>
{/*CATALOG */}
<SubMenu title={this.ui.catalog.text}>
{Object.keys(this.props.category).map((k, i) => (
<MenuItem
style={{
paddingRight: "0px",
width: "100%"
width: "100vw"
}}
>
<SubMenu title={this.checkAlias(k)}>

@ -3,11 +3,12 @@ import ReactDOM from "react-dom";
import OverlayCard from "../Componets/Cards/OverlayCard";
export default class OvItem extends React.Component {
ViewOvelay(ov) {
document.getElementById("container").style.display = "none";
//document.getElementById("container").style.display = "none";
document.getElementById("backBtn").style.display = "block";
//document.getElementById("conteinerInfo").style.display = "block";
ReactDOM.render(
<OverlayCard OverlayInfo={ov} title={this.props.title} />,
document.getElementById("conteinerInfo")
document.getElementById("HomePage")
);
}
render() {
@ -25,35 +26,42 @@ export default class OvItem extends React.Component {
border: "1px solid #CCC",
borderRadius: " 10px",
boxShadow: "3px 4px 10px #CDC",
height: "125px"
height: "125px",
//height:"75px"
//padding: "15px",
//display: "inline-flex",
//border: "1px solid #CCC",
border: "1px solid #CCC"
//boxShadow: "3px 4px 10px #CDC"
}}
>
<div
style={{
border: "1px solid #AAA",
// border: "1px solid #AAA",
//boxShadow: "3px 4px 10px #CDC",
borderRadius: "10px"
borderRadius: "10px",
width: "100vw"
//padding: "5px"
}}
>
<h3 style={{ textAlign: "center" }}>
<b>{this.props.over.name}</b>{" "}
</h3>
<span>{this.props.title.discription}:</span>
<b style={{ overflow: "clip" }}> {this.props.over.description} </b>
<div
style={{ height: "32px", textAlign: "left", overflow: "hidden" }}
>
<span>{this.props.title.discription}:</span>
<b>
<span style={{ overflow: "hidden" }}>
{this.props.over.description}{" "}
</span>
</b>
</div>
<div
className=" btn-group"
style={{
display: "flex",
margin: "10px",
padding: "0px",
//display: "flex",
//margin: "10px",
//padding: "0px",
float: "right",
color: "#000"
}}
@ -74,7 +82,6 @@ export default class OvItem extends React.Component {
this.ViewOvelay(this.props.over)
)}
>
{" "}
{this.props.title.homepage}
</div>

@ -25,3 +25,51 @@
.btn:hover {
cursor: pointer;
}
/* *{}*/
.d6 {
box-sizing: border-box;
}
.d6 form {
position: relative;
width: 300px;
margin: 0 auto;
/* height: 42px;*/
}
.d6 input {
height: 42px;
width: 0;
padding: 0 42px 0 0px;
border: none;
/*border-bottom: 2px solid transparent;*/
outline: none;
background: transparent;
transition: 0.4s cubic-bezier(0, 0.8, 0, 1);
font-size: 1.4em;
position: absolute;
top: 0;
right: 0;
z-index: 2;
}
.d6 input:focus {
background: transparent;
width: 300px;
z-index: 1;
/*border-bottom: 2px solid #f9f0da;*/
}
.d6 .button {
/* background: #683b4d;*/
border: none;
height: 42px;
width: 42px;
position: absolute;
top: 0px;
right: 0;
cursor: pointer;
}
.d6 .button:before {
/*content: "\f002";*/
font-family: FontAwesome;
font-size: 16px;
color: #f9f0da;
}

@ -19,28 +19,17 @@ import InfoPage from "./pages/info";
//import PageCommunity from "./pages/Community";
// import style && data
import "./style.css";
//data
import all_pkgs from "./pkg.json";
import icons from "./icons.json";
import News from "./news.json";
import "react-pro-sidebar/dist/css/styles.css";
import PageCommunity from "./pages/Community";
const news = [
{ title: "test" },
{ title: "Добавлены геннрируемые списки рекомендаций(Back)" },
{ title: "Добавлена раскраска версии(UI)" },
{ title: "Преведены в порядок списки оверлеев(UI)" },
{ title: "добавлены в UI новости" },
{ title: "Исправлены стили(UI) оверлеев" },
{ title: "Добавлена возможность многоязычности (UI)" },
{ title: "Изменена верстка" },
{ title: "Добавлена раскраска версиий" },
{ title: "Добавлен функционал поиска через BackEnd" },
{ title: "Добавлен фуннкционал вывода информации о пакете из каталога" },
{ title: "Исправлена верстка" },
{ title: "Расширен каталог" },
{ title: "Добавлена сортировка оверлеев" },
{ title: "Добавлн Counter: Pointer in USEs und btn" }
];
const news = News.News;
print(News.News);
//Debug prtnt
function print(text) {
console.log(text);
@ -56,6 +45,7 @@ const useDes = all_pkgs.usesDecription;
export default class BasicExample extends React.Component {
//const [null, setPackage] = useState('');
AdressServer = "http://127.0.0.1:8000";
menuItems = [
{
name: "home",
@ -87,91 +77,9 @@ export default class BasicExample extends React.Component {
{ name: "comm", text: "Сообщества", url: "/community" },
{ name: "info", text: "О проекте", url: "/info" }
];
icons_demo = {
"element-desktop-bin":
"https://freeappsforme.com/wp-content/uploads/2020/10/Element-Messenger-2039x2048.jpg",
"telegram-desktop-bin":
"https://providers.by/wp-content/uploads/2020/01/1.png",
pidgin:
"https://www.clipartmax.com/png/middle/302-3025613_pidgin-logo-pidgin-icon.png",
teams:
"https://www.kindpng.com/picc/m/363-3637910_microsoft-teams-download-hd-png-download.png",
slack:
"https://im0-tub-ru.yandex.net/i?id=ad526f7eab39f3a5871afd34bccfda82&n=13",
mixxx:
"https://icons.iconarchive.com/icons/alecive/flatwoken/512/Apps-Mixxx-icon.png",
clementine:
"https://im0-tub-ru.yandex.net/i?id=91d4c95f8aff7cd0f7b53542c4b1182b&n=13",
audacity:
"https://im0-tub-ru.yandex.net/i?id=1fb204870ded2e7021493fbc2377dc6b&n=13",
kdenlive:
"https://upload.wikimedia.org/wikipedia/commons/thumb/6/64/Logo-kdenlive.svg/1200px-Logo-kdenlive.svg.png",
"obs-studio":
"https://im0-tub-ru.yandex.net/i?id=805e8522ac46aa28ea5f34cdfcfa6905&n=13",
gimp:
"https://im0-tub-ru.yandex.net/i?id=aaf8432a4dd10b344c3e1bb0000f65d3&n=13",
blender:
"https://im0-tub-ru.yandex.net/i?id=fb5c0689a49f306effe3b150123ace9a&n=13",
inkscape:
"https://upload.wikimedia.org/wikipedia/commons/thumb/a/a2/Inkscape_logo_%282-colour%29.svg/1200px-Inkscape_logo_%282-colour%29.svg.png",
nano:
"https://upload.wikimedia.org/wikipedia/commons/thumb/8/8a/Gnu-nano.svg/150px-Gnu-nano.svg.png",
lmms:
"https://yt3.ggpht.com/a/AATXAJwfO8V9OmT3sZdIxZdnNPEuvUOJ91x3Ls0lO4ZU=s900-c-k-c0x00ffffff-no-rj",
mplayer:
"https://p1.hiclipart.com/preview/740/970/419/reflections-mplayer-png-clipart.jpg",
smplayer:
"https://e7.pngegg.com/pngimages/185/405/png-clipart-smplayer-computer-icons-free-software-potplayer-ubuntu-aviao-electronics-camera-lens.png",
nginx:
"https://1.bp.blogspot.com/-VR6ye8vFE2w/XREXokFBUTI/AAAAAAAAJnU/cR6U1Gnc0CYOiahpjpN8bPr6ARO9fYzhgCLcBGAs/s1600/nginx.png",
apache:
"https://im0-tub-ru.yandex.net/i?id=f8815d552ad5365e1be4a69130b85e02&n=13",
okular:
"https://upload.wikimedia.org/wikipedia/commons/thumb/f/fc/Breezeicons-apps-48-okular.svg/1200px-Breezeicons-apps-48-okular.svg.png",
"steam-launcher":
"https://w7.pngwing.com/pngs/174/160/png-transparent-steam-computer-icons-random-icons-miscellaneous-technology-symbol.png",
chromium:
"https://www.pngjoy.com/pngm/329/6164031_chrome-browser-icon-blue-chrome-icon-png-transparent.png",
falkon:
"https://cdn1.vectorstock.com/i/1000x1000/99/60/falcon-wing-logo-template-vector-17389960.jpg",
links:
"https://im0-tub-ru.yandex.net/i?id=a6633e69ed94b7791958f621d254368f&n=13",
vivaldi:
"https://e7.pngegg.com/pngimages/818/936/png-clipart-vivaldi-technologies-web-browser-computer-icons-computer-software-internet-explorer-logo-google-chrome.png",
netsurf:
"https://im0-tub-ru.yandex.net/i?id=cbb73db017f8a1da9ba61ec5b1094e2a&n=13",
vim:
"https://icons.iconarchive.com/icons/papirus-team/papirus-apps/512/vim-icon.png",
vscode:
"https://stijndv.com/goodies/big-sur-replacement-icons/VScode-alt.png",
gedit:
"https://www.file-extensions.org/imgs/app-icon/128/6546/gedit-icon.png",
jedit:
"https://im0-tub-ru.yandex.net/i?id=a2d49e372d2eeec29b1733f4a81b34f6-sr&n=13",
"pycharm-community":
"https://images-wixmp-ed30a86b8c4ca887773594c2.wixmp.com/intermediary/f/217d5ea0-623d-40b1-9b31-027b904a5f15/dccudp7-221d1133-f3c3-48eb-a72c-c511828a1ff4.png",
"firefox-bin":
"https://im0-tub-ru.yandex.net/i?id=c18d714486a2580905fbed162acb41c6&n=13",
"": ""
};
icons_demo = icons.icons;
PkgName = {};
ViewPackageInfo(name) {
alert(
name.Name +
"\n" +
name.Description +
"\n" +
name.version.map((v) => v.split("[U]") || v.split("[M]")) +
"\n" +
name.USE.map((u) => u) +
"\n" +
name.repo +
"\n"
);
return <sCard PackageName={name} />;
//this.PkgName = name;
}
ViewListPkgs(listpkgs) {
listpkgs.map((p, i) => console.log(p + "\n"));
alert(listpkgs.length + "\n" + listpkgs.map((p, i) => String(p) + "\n"));
@ -185,6 +93,7 @@ export default class BasicExample extends React.Component {
//<NavBar category={pkgs} menuItem={this.menuItems} />
}
<AppConteiner
ServerAdress={this.AdressServer}
category={pkgs}
aliases={aliases}
menuItems={this.menuItems}

@ -0,0 +1,48 @@
{
"icons": {
"element-desktop-bin": "https://freeappsforme.com/wp-content/uploads/2020/10/Element-Messenger-2039x2048.jpg",
"telegram-desktop-bin": "https://providers.by/wp-content/uploads/2020/01/1.png",
"pidgin": "https://www.clipartmax.com/png/middle/302-3025613_pidgin-logo-pidgin-icon.png",
"teams": "https://www.kindpng.com/picc/m/363-3637910_microsoft-teams-download-hd-png-download.png",
"slack": "https://im0-tub-ru.yandex.net/i?id=ad526f7eab39f3a5871afd34bccfda82&n=13",
"mixxx": "https://icons.iconarchive.com/icons/alecive/flatwoken/512/Apps-Mixxx-icon.png",
"clementine": "https://im0-tub-ru.yandex.net/i?id=91d4c95f8aff7cd0f7b53542c4b1182b&n=13",
"audacity": "https://im0-tub-ru.yandex.net/i?id=1fb204870ded2e7021493fbc2377dc6b&n=13",
"kdenlive": "https://upload.wikimedia.org/wikipedia/commons/thumb/6/64/Logo-kdenlive.svg/1200px-Logo-kdenlive.svg.png",
"obs-studio": "https://im0-tub-ru.yandex.net/i?id=805e8522ac46aa28ea5f34cdfcfa6905&n=13",
"gimp": "https://im0-tub-ru.yandex.net/i?id=aaf8432a4dd10b344c3e1bb0000f65d3&n=13",
"blender": "https://im0-tub-ru.yandex.net/i?id=fb5c0689a49f306effe3b150123ace9a&n=13",
"inkscape": "https://upload.wikimedia.org/wikipedia/commons/thumb/a/a2/Inkscape_logo_%282-colour%29.svg/1200px-Inkscape_logo_%282-colour%29.svg.png",
"nano": "https://upload.wikimedia.org/wikipedia/commons/thumb/8/8a/Gnu-nano.svg/150px-Gnu-nano.svg.png",
"lmms": "https://yt3.ggpht.com/a/AATXAJwfO8V9OmT3sZdIxZdnNPEuvUOJ91x3Ls0lO4ZU=s900-c-k-c0x00ffffff-no-rj",
"mplayer": "https://p1.hiclipart.com/preview/740/970/419/reflections-mplayer-png-clipart.jpg",
"smplayer": "https://e7.pngegg.com/pngimages/185/405/png-clipart-smplayer-computer-icons-free-software-potplayer-ubuntu-aviao-electronics-camera-lens.png",
"nginx": "https://1.bp.blogspot.com/-VR6ye8vFE2w/XREXokFBUTI/AAAAAAAAJnU/cR6U1Gnc0CYOiahpjpN8bPr6ARO9fYzhgCLcBGAs/s1600/nginx.png",
"apache": "https://im0-tub-ru.yandex.net/i?id=f8815d552ad5365e1be4a69130b85e02&n=13",
"okular": "https://upload.wikimedia.org/wikipedia/commons/thumb/f/fc/Breezeicons-apps-48-okular.svg/1200px-Breezeicons-apps-48-okular.svg.png",
"steam-launcher": "https://w7.pngwing.com/pngs/174/160/png-transparent-steam-computer-icons-random-icons-miscellaneous-technology-symbol.png",
"chromium": "https://www.pngjoy.com/pngm/329/6164031_chrome-browser-icon-blue-chrome-icon-png-transparent.png",
"falkon": "https://cdn1.vectorstock.com/i/1000x1000/99/60/falcon-wing-logo-template-vector-17389960.jpg",
"links": "https://im0-tub-ru.yandex.net/i?id=a6633e69ed94b7791958f621d254368f&n=13",
"vivaldi": "https://e7.pngegg.com/pngimages/818/936/png-clipart-vivaldi-technologies-web-browser-computer-icons-computer-software-internet-explorer-logo-google-chrome.png",
"netsurf": "https://im0-tub-ru.yandex.net/i?id=cbb73db017f8a1da9ba61ec5b1094e2a&n=13",
"vim": "https://icons.iconarchive.com/icons/papirus-team/papirus-apps/512/vim-icon.png",
"vscode": "https://stijndv.com/goodies/big-sur-replacement-icons/VScode-alt.png",
"gedit": "https://www.file-extensions.org/imgs/app-icon/128/6546/gedit-icon.png",
"jedit": "https://im0-tub-ru.yandex.net/i?id=a2d49e372d2eeec29b1733f4a81b34f6-sr&n=13",
"pycharm-community": "https://images-wixmp-ed30a86b8c4ca887773594c2.wixmp.com/intermediary/f/217d5ea0-623d-40b1-9b31-027b904a5f15/dccudp7-221d1133-f3c3-48eb-a72c-c511828a1ff4.png",
"firefox-bin": "https://avatars.mds.yandex.net/i?id=f44fd56b409dfdeabd40606344bbbd12-5099821-images-thumbs&n=13",
"discord-bin": "https://www.pinclipart.com/picdir/middle/24-242816_flat-osx-icons-file-types-folders-apps-games.png",
"zoom": "https://estudioflamenco.com/wp-content/uploads/2020/09/zoom-fondo-1.png",
"mpd": "",
"rhythmbox": "https://upload.wikimedia.org/wikipedia/commons/thumb/a/a0/Rhythmbox_logo.svg/2560px-Rhythmbox_logo.svg.png",
"vlc": "https://reseller.vosthost.com/images/icons/VLC.png",
"krita": "https://atolstoy.files.wordpress.com/2021/03/1200px-calligrakrita-base.svg_.png",
"wps-office": "https://i.ibb.co/hmYSBvP/WPS-Office-Logo.png",
"libreoffice": "https://freesoft.ru/storage/images/196/1960/195979/195979_normal.png",
"links": "https://www.pinclipart.com/picdir/big/547-5473112_link-symbol-of-two-chains-links-linked-svg.png",
"clementine": "https://upload.wikimedia.org/wikipedia/commons/thumb/d/d3/Clementine_logo.svg/1200px-Clementine_logo.svg.png",
"mpd": "https://www.musicpd.org/logo.png",
"": ""
}
}

@ -0,0 +1,19 @@
{
"News": [
{ "title": "test" },
{ "title": "Добавлены геннрируемые списки рекомендаций(Back)" },
{ "title": "Добавлена раскраска версии(UI)" },
{ "title": "Преведены в порядок списки оверлеев(UI)" },
{ "title": "добавлены в UI новости" },
{ "title": "Исправлены стили(UI) оверлеев" },
{ "title": "Добавлена возможность многоязычности (UI)" },
{ "title": "Изменена верстка" },
{ "title": "Добавлена раскраска версиий" },
{ "title": "Добавлен функционал поиска через BackEnd" },
{ "title": "Добавлен фуннкционал вывода информации о пакете из каталога" },
{ "title": "Исправлена верстка" },
{ "title": "Расширен каталог" },
{ "title": "Добавлена сортировка оверлеев" },
{ "title": "Добавлн Counter: Pointer in USEs und btn" }
]
}

@ -29,9 +29,9 @@ export default class MainPage extends React.Component {
//onClick={() => this.props.ViewPackageInfo(this.props.rec[k][i])}
document.getElementById("backBtn").style.display = "block";
document.getElementById("pTitle").textContent = pkg.Name.split("/")[1];
document.getElementById("container").style.display = "none";
//document.getElementById("container").style.display = "none";
document.getElementById("conteinerInfo").style.display = "block";
//document.getElementById("conteinerInfo").style.display = "block";
ReactDOM.render(
<FullCard
PackageName={pkg}
@ -40,7 +40,7 @@ export default class MainPage extends React.Component {
useDes={this.props.useDes}
Ipkg={this.props.Ipkg}
/>,
document.getElementById("conteinerInfo")
document.getElementById("HomePage")
);
}
TitleView() {

@ -1,5 +1,19 @@
import React from "react";
export default class UserProfilePage extends React.Component {
ViewGroup(group) {
if (document.getElementById(group + "_group").style.display === "none") {
document.getElementById(group + "_group").style.display = " block";
} else {
document.getElementById(group + "_group").style.display = "none";
}
}
checkPkg(nPkg) {
if (this.props.Ipkgs[nPkg.spit("/")[0]]) {
for (let n = 0; n < this.props.Ipkgs[nPkg.spit("/")[0]]; n++) {}
//return({name: this.props.Ipkgs[nPkg.spit('/')[0]], vers:""})
} else {
}
}
TitleView() {
try {
if (
@ -25,20 +39,45 @@ export default class UserProfilePage extends React.Component {
listStyle: "none"
}}
>
<h2>{name}</h2>
{this.props.Ipkgs[name].map((pkg) => (
<div
style={{ width: "100%", padding: "10px", fontSize: "1.2em" }}
>
{pkg}
<div
style={{
background: "#2e323f",
color: "#FFF",
fontSize: "1.6em",
padding: "5px",
cursor: "pointer"
}}
onClick={() => this.ViewGroup(name)}
>
{name}
</div>
<div
id={name + "_group"}
style={{ display: "none", cursor: "pointer" }}
>
{this.props.Ipkgs[name].map((pkg) => (
<div
className="btn"
style={{ float: "right", padding: "0px" }}
style={{
width: "80vw",
padding: "10px",
fontSize: "1.2em",
border: "1px solid #2e323f"
}}
>
Удалить
{pkg}
<div
className="btn"
style={{
float: "right",
padding: "5px",
cursor: "pointer"
}}
>
Удалить
</div>
</div>
</div>
))}
))}
</div>
</li>
))}
</ul>

@ -1,6 +1,6 @@
{
"main.css": "static/css/main.02ee4f88.css",
"main.css.map": "static/css/main.02ee4f88.css.map",
"main.js": "static/js/main.febc368a.js",
"main.js.map": "static/js/main.febc368a.js.map"
"main.css": "static/css/main.7da3c623.css",
"main.css.map": "static/css/main.7da3c623.css.map",
"main.js": "static/js/main.8250b8bd.js",
"main.js.map": "static/js/main.8250b8bd.js.map"
}

@ -1 +1 @@
<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name="theme-color" content="#000000"><link rel="manifest" href="/manifest.json"><link rel="shortcut icon" href="/favicon.ico"><title>React App</title><link href="/static/css/main.02ee4f88.css" rel="stylesheet"></head><body><head><title>Webport</title></head><div id="root"></div><script type="text/javascript" src="/static/js/main.febc368a.js"></script></body></html>
<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name="theme-color" content="#000000"><link rel="manifest" href="/manifest.json"><link rel="shortcut icon" href="/favicon.ico"><title>React App</title><link href="/static/css/main.7da3c623.css" rel="stylesheet"></head><body><head><title>Webport</title></head><div id="root"></div><script type="text/javascript" src="/static/js/main.8250b8bd.js"></script></body></html>

@ -1 +1 @@
"use strict";function setOfCachedUrls(e){return e.keys().then(function(e){return e.map(function(e){return e.url})}).then(function(e){return new Set(e)})}var precacheConfig=[["/index.html","92276cb8c81221cd17aebd513dd4ef53"],["/static/css/main.02ee4f88.css","b2fdedab71e190bbf68de635906b209f"],["/static/js/main.febc368a.js","afbcf5bb1e83af315e4206e8f9593ea1"]],cacheName="sw-precache-v3-sw-precache-webpack-plugin-"+(self.registration?self.registration.scope:""),ignoreUrlParametersMatching=[/^utm_/],addDirectoryIndex=function(e,t){var n=new URL(e);return"/"===n.pathname.slice(-1)&&(n.pathname+=t),n.toString()},cleanResponse=function(e){return e.redirected?("body"in e?Promise.resolve(e.body):e.blob()).then(function(t){return new Response(t,{headers:e.headers,status:e.status,statusText:e.statusText})}):Promise.resolve(e)},createCacheKey=function(e,t,n,r){var a=new URL(e);return r&&a.pathname.match(r)||(a.search+=(a.search?"&":"")+encodeURIComponent(t)+"="+encodeURIComponent(n)),a.toString()},isPathWhitelisted=function(e,t){if(0===e.length)return!0;var n=new URL(t).pathname;return e.some(function(e){return n.match(e)})},stripIgnoredUrlParameters=function(e,t){var n=new URL(e);return n.hash="",n.search=n.search.slice(1).split("&").map(function(e){return e.split("=")}).filter(function(e){return t.every(function(t){return!t.test(e[0])})}).map(function(e){return e.join("=")}).join("&"),n.toString()},hashParamName="_sw-precache",urlsToCacheKeys=new Map(precacheConfig.map(function(e){var t=e[0],n=e[1],r=new URL(t,self.location),a=createCacheKey(r,hashParamName,n,/\.\w{8}\./);return[r.toString(),a]}));self.addEventListener("install",function(e){e.waitUntil(caches.open(cacheName).then(function(e){return setOfCachedUrls(e).then(function(t){return Promise.all(Array.from(urlsToCacheKeys.values()).map(function(n){if(!t.has(n)){var r=new Request(n,{credentials:"same-origin"});return fetch(r).then(function(t){if(!t.ok)throw new Error("Request for "+n+" returned a response with status "+t.status);return cleanResponse(t).then(function(t){return e.put(n,t)})})}}))})}).then(function(){return self.skipWaiting()}))}),self.addEventListener("activate",function(e){var t=new Set(urlsToCacheKeys.values());e.waitUntil(caches.open(cacheName).then(function(e){return e.keys().then(function(n){return Promise.all(n.map(function(n){if(!t.has(n.url))return e.delete(n)}))})}).then(function(){return self.clients.claim()}))}),self.addEventListener("fetch",function(e){if("GET"===e.request.method){var t,n=stripIgnoredUrlParameters(e.request.url,ignoreUrlParametersMatching);t=urlsToCacheKeys.has(n);t||(n=addDirectoryIndex(n,"index.html"),t=urlsToCacheKeys.has(n));!t&&"navigate"===e.request.mode&&isPathWhitelisted([],e.request.url)&&(n=new URL("/index.html",self.location).toString(),t=urlsToCacheKeys.has(n)),t&&e.respondWith(caches.open(cacheName).then(function(e){return e.match(urlsToCacheKeys.get(n)).then(function(e){if(e)return e;throw Error("The cached response that was expected is missing.")})}).catch(function(t){return console.warn('Couldn\'t serve response for "%s" from cache: %O',e.request.url,t),fetch(e.request)}))}});
"use strict";function setOfCachedUrls(e){return e.keys().then(function(e){return e.map(function(e){return e.url})}).then(function(e){return new Set(e)})}var precacheConfig=[["/index.html","958c9528534c690b4fa8005b789ea390"],["/static/css/main.7da3c623.css","41ec98d9bb3b128f5bf64823fc424839"],["/static/js/main.8250b8bd.js","e7b13c7c1b2fa4e5b888128d074f6d05"]],cacheName="sw-precache-v3-sw-precache-webpack-plugin-"+(self.registration?self.registration.scope:""),ignoreUrlParametersMatching=[/^utm_/],addDirectoryIndex=function(e,t){var n=new URL(e);return"/"===n.pathname.slice(-1)&&(n.pathname+=t),n.toString()},cleanResponse=function(e){return e.redirected?("body"in e?Promise.resolve(e.body):e.blob()).then(function(t){return new Response(t,{headers:e.headers,status:e.status,statusText:e.statusText})}):Promise.resolve(e)},createCacheKey=function(e,t,n,r){var a=new URL(e);return r&&a.pathname.match(r)||(a.search+=(a.search?"&":"")+encodeURIComponent(t)+"="+encodeURIComponent(n)),a.toString()},isPathWhitelisted=function(e,t){if(0===e.length)return!0;var n=new URL(t).pathname;return e.some(function(e){return n.match(e)})},stripIgnoredUrlParameters=function(e,t){var n=new URL(e);return n.hash="",n.search=n.search.slice(1).split("&").map(function(e){return e.split("=")}).filter(function(e){return t.every(function(t){return!t.test(e[0])})}).map(function(e){return e.join("=")}).join("&"),n.toString()},hashParamName="_sw-precache",urlsToCacheKeys=new Map(precacheConfig.map(function(e){var t=e[0],n=e[1],r=new URL(t,self.location),a=createCacheKey(r,hashParamName,n,/\.\w{8}\./);return[r.toString(),a]}));self.addEventListener("install",function(e){e.waitUntil(caches.open(cacheName).then(function(e){return setOfCachedUrls(e).then(function(t){return Promise.all(Array.from(urlsToCacheKeys.values()).map(function(n){if(!t.has(n)){var r=new Request(n,{credentials:"same-origin"});return fetch(r).then(function(t){if(!t.ok)throw new Error("Request for "+n+" returned a response with status "+t.status);return cleanResponse(t).then(function(t){return e.put(n,t)})})}}))})}).then(function(){return self.skipWaiting()}))}),self.addEventListener("activate",function(e){var t=new Set(urlsToCacheKeys.values());e.waitUntil(caches.open(cacheName).then(function(e){return e.keys().then(function(n){return Promise.all(n.map(function(n){if(!t.has(n.url))return e.delete(n)}))})}).then(function(){return self.clients.claim()}))}),self.addEventListener("fetch",function(e){if("GET"===e.request.method){var t,n=stripIgnoredUrlParameters(e.request.url,ignoreUrlParametersMatching);t=urlsToCacheKeys.has(n);t||(n=addDirectoryIndex(n,"index.html"),t=urlsToCacheKeys.has(n));!t&&"navigate"===e.request.mode&&isPathWhitelisted([],e.request.url)&&(n=new URL("/index.html",self.location).toString(),t=urlsToCacheKeys.has(n)),t&&e.respondWith(caches.open(cacheName).then(function(e){return e.match(urlsToCacheKeys.get(n)).then(function(e){if(e)return e;throw Error("The cached response that was expected is missing.")})}).catch(function(t){return console.warn('Couldn\'t serve response for "%s" from cache: %O',e.request.url,t),fetch(e.request)}))}});

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long
Loading…
Cancel
Save