From 5db51a1d03814dc12c123cb1870fde4d1b6c20a2 Mon Sep 17 00:00:00 2001 From: Rui Rua Date: Wed, 19 Jun 2024 19:57:17 +0100 Subject: [PATCH] Updates --- asset-manifest.json | 12 ++++++------ index.html | 2 +- service-worker.js | 2 +- static/css/main.565cdca6.css | 2 ++ static/css/main.565cdca6.css.map | 1 + static/css/main.f07419a5.css | 2 -- static/css/main.f07419a5.css.map | 1 - static/js/main.07065c38.js | 3 --- static/js/main.07065c38.js.map | 1 - static/js/main.ddb46178.js | 3 +++ ...8.js.LICENSE.txt => main.ddb46178.js.LICENSE.txt} | 0 static/js/main.ddb46178.js.map | 1 + 12 files changed, 15 insertions(+), 15 deletions(-) create mode 100644 static/css/main.565cdca6.css create mode 100644 static/css/main.565cdca6.css.map delete mode 100644 static/css/main.f07419a5.css delete mode 100644 static/css/main.f07419a5.css.map delete mode 100644 static/js/main.07065c38.js delete mode 100644 static/js/main.07065c38.js.map create mode 100644 static/js/main.ddb46178.js rename static/js/{main.07065c38.js.LICENSE.txt => main.ddb46178.js.LICENSE.txt} (100%) create mode 100644 static/js/main.ddb46178.js.map diff --git a/asset-manifest.json b/asset-manifest.json index 61ef84b..c6bf5bd 100644 --- a/asset-manifest.json +++ b/asset-manifest.json @@ -1,7 +1,7 @@ { "files": { - "main.css": "/cv_os/static/css/main.f07419a5.css", - "main.js": "/cv_os/static/js/main.07065c38.js", + "main.css": "/cv_os/static/css/main.565cdca6.css", + "main.js": "/cv_os/static/js/main.ddb46178.js", "static/media/octocat.png": "/cv_os/static/media/octocat.3e264aba5c92d1a2dc78.png", "static/media/pdf-icon.png": "/cv_os/static/media/pdf-icon.666ee1b4ac9eb31bd955.png", "static/media/academic-icon.png": "/cv_os/static/media/academic-icon.536aead5d42c99f6a44b.png", @@ -9,11 +9,11 @@ "static/media/user-icon.png": "/cv_os/static/media/user-icon.8d49e377c7c342895ec2.png", "static/media/terminal-icon.png": "/cv_os/static/media/terminal-icon.a695be0b97e70962e513.png", "index.html": "/cv_os/index.html", - "main.f07419a5.css.map": "/cv_os/static/css/main.f07419a5.css.map", - "main.07065c38.js.map": "/cv_os/static/js/main.07065c38.js.map" + "main.565cdca6.css.map": "/cv_os/static/css/main.565cdca6.css.map", + "main.ddb46178.js.map": "/cv_os/static/js/main.ddb46178.js.map" }, "entrypoints": [ - "static/css/main.f07419a5.css", - "static/js/main.07065c38.js" + "static/css/main.565cdca6.css", + "static/js/main.ddb46178.js" ] } \ No newline at end of file diff --git a/index.html b/index.html index dc980ff..4bf200a 100644 --- a/index.html +++ b/index.html @@ -1 +1 @@ -CV OS
\ No newline at end of file +CV OS
\ No newline at end of file diff --git a/service-worker.js b/service-worker.js index 5ce7464..4d1c512 100644 --- a/service-worker.js +++ b/service-worker.js @@ -1,2 +1,2 @@ -(()=>{"use strict";var e={295:()=>{try{self["workbox:core:6.5.4"]&&_()}catch(e){}},229:()=>{try{self["workbox:expiration:6.5.4"]&&_()}catch(e){}},740:()=>{try{self["workbox:precaching:6.5.4"]&&_()}catch(e){}},130:()=>{try{self["workbox:routing:6.5.4"]&&_()}catch(e){}},205:()=>{try{self["workbox:strategies:6.5.4"]&&_()}catch(e){}}},t={};function s(n){var a=t[n];if(void 0!==a)return a.exports;var r=t[n]={exports:{}};return e[n](r,r.exports,s),r.exports}(()=>{s(295);const e=function(e){let t=e;for(var s=arguments.length,n=new Array(s>1?s-1:0),a=1;a0&&(t+=" :: ".concat(JSON.stringify(n))),t};class t extends Error{constructor(t,s){super(e(t,s)),this.name=t,this.details=s}}const n=new Set;const a={googleAnalytics:"googleAnalytics",precache:"precache-v2",prefix:"workbox",runtime:"runtime",suffix:"undefined"!==typeof registration?registration.scope:""},r=e=>[a.prefix,e,a.suffix].filter((e=>e&&e.length>0)).join("-"),i=e=>e||r(a.precache),o=e=>e||r(a.runtime);function c(e,t){const s=new URL(e);for(const n of t)s.searchParams.delete(n);return s.href}let h;function l(e){e.then((()=>{}))}class u{constructor(){this.promise=new Promise(((e,t)=>{this.resolve=e,this.reject=t}))}}const d=e=>new URL(String(e),location.href).href.replace(new RegExp("^".concat(location.origin)),"");function f(e){return new Promise((t=>setTimeout(t,e)))}function p(e,t){const s=t();return e.waitUntil(s),s}async function g(e,s){let n=null;if(e.url){n=new URL(e.url).origin}if(n!==self.location.origin)throw new t("cross-origin-copy-response",{origin:n});const a=e.clone(),r={headers:new Headers(a.headers),status:a.status,statusText:a.statusText},i=s?s(r):r,o=function(){if(void 0===h){const t=new Response("");if("body"in t)try{new Response(t.body),h=!0}catch(e){h=!1}h=!1}return h}()?a.body:await a.blob();return new Response(o,i)}const w=(e,t)=>t.some((t=>e instanceof t));let m,y;const _=new WeakMap,v=new WeakMap,b=new WeakMap,R=new WeakMap,x=new WeakMap;let C={get(e,t,s){if(e instanceof IDBTransaction){if("done"===t)return v.get(e);if("objectStoreNames"===t)return e.objectStoreNames||b.get(e);if("store"===t)return s.objectStoreNames[1]?void 0:s.objectStore(s.objectStoreNames[0])}return q(e[t])},set:(e,t,s)=>(e[t]=s,!0),has:(e,t)=>e instanceof IDBTransaction&&("done"===t||"store"===t)||t in e};function L(e){return e!==IDBDatabase.prototype.transaction||"objectStoreNames"in IDBTransaction.prototype?(y||(y=[IDBCursor.prototype.advance,IDBCursor.prototype.continue,IDBCursor.prototype.continuePrimaryKey])).includes(e)?function(){for(var t=arguments.length,s=new Array(t),n=0;n1?s-1:0),a=1;a{const n=()=>{e.removeEventListener("complete",a),e.removeEventListener("error",r),e.removeEventListener("abort",r)},a=()=>{t(),n()},r=()=>{s(e.error||new DOMException("AbortError","AbortError")),n()};e.addEventListener("complete",a),e.addEventListener("error",r),e.addEventListener("abort",r)}));v.set(e,t)}(e),w(e,m||(m=[IDBDatabase,IDBObjectStore,IDBIndex,IDBCursor,IDBTransaction]))?new Proxy(e,C):e)}function q(e){if(e instanceof IDBRequest)return function(e){const t=new Promise(((t,s)=>{const n=()=>{e.removeEventListener("success",a),e.removeEventListener("error",r)},a=()=>{t(q(e.result)),n()},r=()=>{s(e.error),n()};e.addEventListener("success",a),e.addEventListener("error",r)}));return t.then((t=>{t instanceof IDBCursor&&_.set(t,e)})).catch((()=>{})),x.set(t,e),t}(e);if(R.has(e))return R.get(e);const t=E(e);return t!==e&&(R.set(e,t),x.set(t,e)),t}const D=e=>x.get(e);const U=["get","getKey","getAll","getAllKeys","count"],T=["put","add","delete","clear"],k=new Map;function N(e,t){if(!(e instanceof IDBDatabase)||t in e||"string"!==typeof t)return;if(k.get(t))return k.get(t);const s=t.replace(/FromIndex$/,""),n=t!==s,a=T.includes(s);if(!(s in(n?IDBIndex:IDBObjectStore).prototype)||!a&&!U.includes(s))return;const r=async function(e){const t=this.transaction(e,a?"readwrite":"readonly");let r=t.store;for(var i=arguments.length,o=new Array(i>1?i-1:0),c=1;c({...e,get:(t,s,n)=>N(t,s)||e.get(t,s,n),has:(t,s)=>!!N(t,s)||e.has(t,s)}))(C);s(229);const I="cache-entries",K=e=>{const t=new URL(e,location.href);return t.hash="",t.href};class M{constructor(e){this._db=null,this._cacheName=e}_upgradeDb(e){const t=e.createObjectStore(I,{keyPath:"id"});t.createIndex("cacheName","cacheName",{unique:!1}),t.createIndex("timestamp","timestamp",{unique:!1})}_upgradeDbAndDeleteOldDbs(e){this._upgradeDb(e),this._cacheName&&function(e){let{blocked:t}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const s=indexedDB.deleteDatabase(e);t&&s.addEventListener("blocked",(e=>t(e.oldVersion,e))),q(s).then((()=>{}))}(this._cacheName)}async setTimestamp(e,t){const s={url:e=K(e),timestamp:t,cacheName:this._cacheName,id:this._getId(e)},n=(await this.getDb()).transaction(I,"readwrite",{durability:"relaxed"});await n.store.put(s),await n.done}async getTimestamp(e){const t=await this.getDb(),s=await t.get(I,this._getId(e));return null===s||void 0===s?void 0:s.timestamp}async expireEntries(e,t){const s=await this.getDb();let n=await s.transaction(I).store.index("timestamp").openCursor(null,"prev");const a=[];let r=0;for(;n;){const s=n.value;s.cacheName===this._cacheName&&(e&&s.timestamp=t?a.push(n.value):r++),n=await n.continue()}const i=[];for(const o of a)await s.delete(I,o.id),i.push(o.url);return i}_getId(e){return this._cacheName+"|"+K(e)}async getDb(){return this._db||(this._db=await function(e,t){let{blocked:s,upgrade:n,blocking:a,terminated:r}=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};const i=indexedDB.open(e,t),o=q(i);return n&&i.addEventListener("upgradeneeded",(e=>{n(q(i.result),e.oldVersion,e.newVersion,q(i.transaction),e)})),s&&i.addEventListener("blocked",(e=>s(e.oldVersion,e.newVersion,e))),o.then((e=>{r&&e.addEventListener("close",(()=>r())),a&&e.addEventListener("versionchange",(e=>a(e.oldVersion,e.newVersion,e)))})).catch((()=>{})),o}("workbox-expiration",1,{upgrade:this._upgradeDbAndDeleteOldDbs.bind(this)})),this._db}}class A{constructor(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};this._isRunning=!1,this._rerunRequested=!1,this._maxEntries=t.maxEntries,this._maxAgeSeconds=t.maxAgeSeconds,this._matchOptions=t.matchOptions,this._cacheName=e,this._timestampModel=new M(e)}async expireEntries(){if(this._isRunning)return void(this._rerunRequested=!0);this._isRunning=!0;const e=this._maxAgeSeconds?Date.now()-1e3*this._maxAgeSeconds:0,t=await this._timestampModel.expireEntries(e,this._maxEntries),s=await self.caches.open(this._cacheName);for(const n of t)await s.delete(n,this._matchOptions);this._isRunning=!1,this._rerunRequested&&(this._rerunRequested=!1,l(this.expireEntries()))}async updateTimestamp(e){await this._timestampModel.setTimestamp(e,Date.now())}async isURLExpired(e){if(this._maxAgeSeconds){const t=await this._timestampModel.getTimestamp(e),s=Date.now()-1e3*this._maxAgeSeconds;return void 0===t||t{let{request:t,state:s}=e;s&&(s.originalRequest=t)},this.cachedResponseWillBeUsed=async e=>{let{event:t,state:s,cachedResponse:n}=e;if("install"===t.type&&s&&s.originalRequest&&s.originalRequest instanceof Request){const e=s.originalRequest.url;n?this.notUpdatedURLs.push(e):this.updatedURLs.push(e)}return n}}}class O{constructor(e){let{precacheController:t}=e;this.cacheKeyWillBeUsed=async e=>{let{request:t,params:s}=e;const n=(null===s||void 0===s?void 0:s.cacheKey)||this._precacheController.getCacheKeyForURL(t.url);return n?new Request(n,{headers:t.headers}):t},this._precacheController=t}}s(205);function W(e){return"string"===typeof e?new Request(e):e}class B{constructor(e,t){this._cacheKeys={},Object.assign(this,t),this.event=t.event,this._strategy=e,this._handlerDeferred=new u,this._extendLifetimePromises=[],this._plugins=[...e.plugins],this._pluginStateMap=new Map;for(const s of this._plugins)this._pluginStateMap.set(s,{});this.event.waitUntil(this._handlerDeferred.promise)}async fetch(e){const{event:s}=this;let n=W(e);if("navigate"===n.mode&&s instanceof FetchEvent&&s.preloadResponse){const e=await s.preloadResponse;if(e)return e}const a=this.hasCallback("fetchDidFail")?n.clone():null;try{for(const e of this.iterateCallbacks("requestWillFetch"))n=await e({request:n.clone(),event:s})}catch(i){if(i instanceof Error)throw new t("plugin-error-request-will-fetch",{thrownErrorMessage:i.message})}const r=n.clone();try{let e;e=await fetch(n,"navigate"===n.mode?void 0:this._strategy.fetchOptions);for(const t of this.iterateCallbacks("fetchDidSucceed"))e=await t({event:s,request:r,response:e});return e}catch(o){throw a&&await this.runCallbacks("fetchDidFail",{error:o,event:s,originalRequest:a.clone(),request:r.clone()}),o}}async fetchAndCachePut(e){const t=await this.fetch(e),s=t.clone();return this.waitUntil(this.cachePut(e,s)),t}async cacheMatch(e){const t=W(e);let s;const{cacheName:n,matchOptions:a}=this._strategy,r=await this.getCacheKey(t,"read"),i=Object.assign(Object.assign({},a),{cacheName:n});s=await caches.match(r,i);for(const o of this.iterateCallbacks("cachedResponseWillBeUsed"))s=await o({cacheName:n,matchOptions:a,cachedResponse:s,request:r,event:this.event})||void 0;return s}async cachePut(e,s){const a=W(e);await f(0);const r=await this.getCacheKey(a,"write");if(!s)throw new t("cache-put-with-no-response",{url:d(r.url)});const i=await this._ensureResponseSafeToCache(s);if(!i)return!1;const{cacheName:o,matchOptions:h}=this._strategy,l=await self.caches.open(o),u=this.hasCallback("cacheDidUpdate"),p=u?await async function(e,t,s,n){const a=c(t.url,s);if(t.url===a)return e.match(t,n);const r=Object.assign(Object.assign({},n),{ignoreSearch:!0}),i=await e.keys(t,r);for(const o of i)if(a===c(o.url,s))return e.match(o,n)}(l,r.clone(),["__WB_REVISION__"],h):null;try{await l.put(r,u?i.clone():i)}catch(g){if(g instanceof Error)throw"QuotaExceededError"===g.name&&await async function(){for(const e of n)await e()}(),g}for(const t of this.iterateCallbacks("cacheDidUpdate"))await t({cacheName:o,oldResponse:p,newResponse:i.clone(),request:r,event:this.event});return!0}async getCacheKey(e,t){const s="".concat(e.url," | ").concat(t);if(!this._cacheKeys[s]){let n=e;for(const e of this.iterateCallbacks("cacheKeyWillBeUsed"))n=W(await e({mode:t,request:n,event:this.event,params:this.params}));this._cacheKeys[s]=n}return this._cacheKeys[s]}hasCallback(e){for(const t of this._strategy.plugins)if(e in t)return!0;return!1}async runCallbacks(e,t){for(const s of this.iterateCallbacks(e))await s(t)}*iterateCallbacks(e){for(const t of this._strategy.plugins)if("function"===typeof t[e]){const s=this._pluginStateMap.get(t),n=n=>{const a=Object.assign(Object.assign({},n),{state:s});return t[e](a)};yield n}}waitUntil(e){return this._extendLifetimePromises.push(e),e}async doneWaiting(){let e;for(;e=this._extendLifetimePromises.shift();)await e}destroy(){this._handlerDeferred.resolve(null)}async _ensureResponseSafeToCache(e){let t=e,s=!1;for(const n of this.iterateCallbacks("cacheWillUpdate"))if(t=await n({request:this.request,response:t,event:this.event})||void 0,s=!0,!t)break;return s||t&&200!==t.status&&(t=void 0),t}}class j{constructor(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.cacheName=o(e.cacheName),this.plugins=e.plugins||[],this.fetchOptions=e.fetchOptions,this.matchOptions=e.matchOptions}handle(e){const[t]=this.handleAll(e);return t}handleAll(e){e instanceof FetchEvent&&(e={event:e,request:e.request});const t=e.event,s="string"===typeof e.request?new Request(e.request):e.request,n="params"in e?e.params:void 0,a=new B(this,{event:t,request:s,params:n}),r=this._getResponse(a,s,t);return[r,this._awaitComplete(r,a,s,t)]}async _getResponse(e,s,n){let a;await e.runCallbacks("handlerWillStart",{event:n,request:s});try{if(a=await this._handle(s,e),!a||"error"===a.type)throw new t("no-response",{url:s.url})}catch(r){if(r instanceof Error)for(const t of e.iterateCallbacks("handlerDidError"))if(a=await t({error:r,event:n,request:s}),a)break;if(!a)throw r}for(const t of e.iterateCallbacks("handlerWillRespond"))a=await t({event:n,request:s,response:a});return a}async _awaitComplete(e,t,s,n){let a,r;try{a=await e}catch(r){}try{await t.runCallbacks("handlerDidRespond",{event:n,request:s,response:a}),await t.doneWaiting()}catch(i){i instanceof Error&&(r=i)}if(await t.runCallbacks("handlerDidComplete",{event:n,request:s,response:a,error:r}),t.destroy(),r)throw r}}class F extends j{constructor(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};e.cacheName=i(e.cacheName),super(e),this._fallbackToNetwork=!1!==e.fallbackToNetwork,this.plugins.push(F.copyRedirectedCacheableResponsesPlugin)}async _handle(e,t){const s=await t.cacheMatch(e);return s||(t.event&&"install"===t.event.type?await this._handleInstall(e,t):await this._handleFetch(e,t))}async _handleFetch(e,s){let n;const a=s.params||{};if(!this._fallbackToNetwork)throw new t("missing-precache-entry",{cacheName:this.cacheName,url:e.url});{0;const t=a.integrity,r=e.integrity,i=!r||r===t;if(n=await s.fetch(new Request(e,{integrity:"no-cors"!==e.mode?r||t:void 0})),t&&i&&"no-cors"!==e.mode){this._useDefaultCacheabilityPluginIfNeeded();await s.cachePut(e,n.clone());0}}return n}async _handleInstall(e,s){this._useDefaultCacheabilityPluginIfNeeded();const n=await s.fetch(e);if(!await s.cachePut(e,n.clone()))throw new t("bad-precaching-response",{url:e.url,status:n.status});return n}_useDefaultCacheabilityPluginIfNeeded(){let e=null,t=0;for(const[s,n]of this.plugins.entries())n!==F.copyRedirectedCacheableResponsesPlugin&&(n===F.defaultPrecacheCacheabilityPlugin&&(e=s),n.cacheWillUpdate&&t++);0===t?this.plugins.push(F.defaultPrecacheCacheabilityPlugin):t>1&&null!==e&&this.plugins.splice(e,1)}}F.defaultPrecacheCacheabilityPlugin={async cacheWillUpdate(e){let{response:t}=e;return!t||t.status>=400?null:t}},F.copyRedirectedCacheableResponsesPlugin={async cacheWillUpdate(e){let{response:t}=e;return t.redirected?await g(t):t}};class H{constructor(){let{cacheName:e,plugins:t=[],fallbackToNetwork:s=!0}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this._urlsToCacheKeys=new Map,this._urlsToCacheModes=new Map,this._cacheKeysToIntegrities=new Map,this._strategy=new F({cacheName:i(e),plugins:[...t,new O({precacheController:this})],fallbackToNetwork:s}),this.install=this.install.bind(this),this.activate=this.activate.bind(this)}get strategy(){return this._strategy}precache(e){this.addToCacheList(e),this._installAndActiveListenersAdded||(self.addEventListener("install",this.install),self.addEventListener("activate",this.activate),this._installAndActiveListenersAdded=!0)}addToCacheList(e){const s=[];for(const n of e){"string"===typeof n?s.push(n):n&&void 0===n.revision&&s.push(n.url);const{cacheKey:e,url:a}=P(n),r="string"!==typeof n&&n.revision?"reload":"default";if(this._urlsToCacheKeys.has(a)&&this._urlsToCacheKeys.get(a)!==e)throw new t("add-to-cache-list-conflicting-entries",{firstEntry:this._urlsToCacheKeys.get(a),secondEntry:e});if("string"!==typeof n&&n.integrity){if(this._cacheKeysToIntegrities.has(e)&&this._cacheKeysToIntegrities.get(e)!==n.integrity)throw new t("add-to-cache-list-conflicting-integrities",{url:a});this._cacheKeysToIntegrities.set(e,n.integrity)}if(this._urlsToCacheKeys.set(a,e),this._urlsToCacheModes.set(a,r),s.length>0){const e="Workbox is precaching URLs without revision "+"info: ".concat(s.join(", "),"\nThis is generally NOT safe. ")+"Learn more at https://bit.ly/wb-precache";console.warn(e)}}}install(e){return p(e,(async()=>{const t=new S;this.strategy.plugins.push(t);for(const[a,r]of this._urlsToCacheKeys){const t=this._cacheKeysToIntegrities.get(r),s=this._urlsToCacheModes.get(a),n=new Request(a,{integrity:t,cache:s,credentials:"same-origin"});await Promise.all(this.strategy.handleAll({params:{cacheKey:r},request:n,event:e}))}const{updatedURLs:s,notUpdatedURLs:n}=t;return{updatedURLs:s,notUpdatedURLs:n}}))}activate(e){return p(e,(async()=>{const e=await self.caches.open(this.strategy.cacheName),t=await e.keys(),s=new Set(this._urlsToCacheKeys.values()),n=[];for(const a of t)s.has(a.url)||(await e.delete(a),n.push(a.url));return{deletedURLs:n}}))}getURLsToCacheKeys(){return this._urlsToCacheKeys}getCachedURLs(){return[...this._urlsToCacheKeys.keys()]}getCacheKeyForURL(e){const t=new URL(e,location.href);return this._urlsToCacheKeys.get(t.href)}getIntegrityForCacheKey(e){return this._cacheKeysToIntegrities.get(e)}async matchPrecache(e){const t=e instanceof Request?e.url:e,s=this.getCacheKeyForURL(t);if(s){return(await self.caches.open(this.strategy.cacheName)).match(s)}}createHandlerBoundToURL(e){const s=this.getCacheKeyForURL(e);if(!s)throw new t("non-precached-url",{url:e});return t=>(t.request=new Request(e),t.params=Object.assign({cacheKey:s},t.params),this.strategy.handle(t))}}let V;const G=()=>(V||(V=new H),V);s(130);const $=e=>e&&"object"===typeof e?e:{handle:e};class Q{constructor(e,t){let s=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"GET";this.handler=$(t),this.match=e,this.method=s}setCatchHandler(e){this.catchHandler=$(e)}}class J extends Q{constructor(e,t,s){super((t=>{let{url:s}=t;const n=e.exec(s.href);if(n&&(s.origin===location.origin||0===n.index))return n.slice(1)}),t,s)}}class z{constructor(){this._routes=new Map,this._defaultHandlerMap=new Map}get routes(){return this._routes}addFetchListener(){self.addEventListener("fetch",(e=>{const{request:t}=e,s=this.handleRequest({request:t,event:e});s&&e.respondWith(s)}))}addCacheListener(){self.addEventListener("message",(e=>{if(e.data&&"CACHE_URLS"===e.data.type){const{payload:t}=e.data;0;const s=Promise.all(t.urlsToCache.map((t=>{"string"===typeof t&&(t=[t]);const s=new Request(...t);return this.handleRequest({request:s,event:e})})));e.waitUntil(s),e.ports&&e.ports[0]&&s.then((()=>e.ports[0].postMessage(!0)))}}))}handleRequest(e){let{request:t,event:s}=e;const n=new URL(t.url,location.href);if(!n.protocol.startsWith("http"))return void 0;const a=n.origin===location.origin,{params:r,route:i}=this.findMatchingRoute({event:s,request:t,sameOrigin:a,url:n});let o=i&&i.handler;const c=t.method;if(!o&&this._defaultHandlerMap.has(c)&&(o=this._defaultHandlerMap.get(c)),!o)return void 0;let h;try{h=o.handle({url:n,request:t,event:s,params:r})}catch(u){h=Promise.reject(u)}const l=i&&i.catchHandler;return h instanceof Promise&&(this._catchHandler||l)&&(h=h.catch((async e=>{if(l){0;try{return await l.handle({url:n,request:t,event:s,params:r})}catch(a){a instanceof Error&&(e=a)}}if(this._catchHandler)return this._catchHandler.handle({url:n,request:t,event:s});throw e}))),h}findMatchingRoute(e){let{url:t,sameOrigin:s,request:n,event:a}=e;const r=this._routes.get(n.method)||[];for(const i of r){let e;const r=i.match({url:t,sameOrigin:s,request:n,event:a});if(r)return e=r,(Array.isArray(e)&&0===e.length||r.constructor===Object&&0===Object.keys(r).length||"boolean"===typeof r)&&(e=void 0),{route:i,params:e}}return{}}setDefaultHandler(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"GET";this._defaultHandlerMap.set(t,$(e))}setCatchHandler(e){this._catchHandler=$(e)}registerRoute(e){this._routes.has(e.method)||this._routes.set(e.method,[]),this._routes.get(e.method).push(e)}unregisterRoute(e){if(!this._routes.has(e.method))throw new t("unregister-route-but-not-found-with-method",{method:e.method});const s=this._routes.get(e.method).indexOf(e);if(!(s>-1))throw new t("unregister-route-route-not-registered");this._routes.get(e.method).splice(s,1)}}let X;const Y=()=>(X||(X=new z,X.addFetchListener(),X.addCacheListener()),X);function Z(e,s,n){let a;if("string"===typeof e){const t=new URL(e,location.href);0;a=new Q((e=>{let{url:s}=e;return s.href===t.href}),s,n)}else if(e instanceof RegExp)a=new J(e,s,n);else if("function"===typeof e)a=new Q(e,s,n);else{if(!(e instanceof Q))throw new t("unsupported-route-type",{moduleName:"workbox-routing",funcName:"registerRoute",paramName:"capture"});a=e}return Y().registerRoute(a),a}class ee extends Q{constructor(e,t){super((s=>{let{request:n}=s;const a=e.getURLsToCacheKeys();for(const r of function(e){let{ignoreURLParametersMatching:t=[/^utm_/,/^fbclid$/],directoryIndex:s="index.html",cleanURLs:n=!0,urlManipulation:a}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return function*(){const r=new URL(e,location.href);r.hash="",yield r.href;const i=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];for(const s of[...e.searchParams.keys()])t.some((e=>e.test(s)))&&e.searchParams.delete(s);return e}(r,t);if(yield i.href,s&&i.pathname.endsWith("/")){const e=new URL(i.href);e.pathname+=s,yield e.href}if(n){const e=new URL(i.href);e.pathname+=".html",yield e.href}if(a){const e=a({url:r});for(const t of e)yield t.href}}()}(n.url,t)){const t=a.get(r);if(t){return{cacheKey:t,integrity:e.getIntegrityForCacheKey(t)}}}}),e.strategy)}}const te={cacheWillUpdate:async e=>{let{response:t}=e;return 200===t.status||0===t.status?t:null}};var se;self.addEventListener("activate",(()=>self.clients.claim())),function(e){G().precache(e)}([{'revision':'17c62dabd038121aee6763b22f243477','url':'/cv_os/index.html'},{'revision':null,'url':'/cv_os/static/css/main.f07419a5.css'},{'revision':null,'url':'/cv_os/static/js/main.07065c38.js'},{'revision':null,'url':'/cv_os/static/media/academic-icon.536aead5d42c99f6a44b.png'},{'revision':null,'url':'/cv_os/static/media/octocat.3e264aba5c92d1a2dc78.png'},{'revision':null,'url':'/cv_os/static/media/pdf-icon.666ee1b4ac9eb31bd955.png'},{'revision':null,'url':'/cv_os/static/media/terminal-icon.a695be0b97e70962e513.png'},{'revision':null,'url':'/cv_os/static/media/user-icon.8d49e377c7c342895ec2.png'}]),function(e){const t=G();Z(new ee(t,e))}(se);const ne=new RegExp("/[^/?]+\\.[^/]+$");var ae;Z((e=>{let{request:t,url:s}=e;return"navigate"===t.mode&&(!s.pathname.startsWith("/_")&&!s.pathname.match(ne))}),(ae="/cv_os/index.html",G().createHandlerBoundToURL(ae))),Z((e=>{let{url:t}=e;return t.origin===self.location.origin&&t.pathname.endsWith(".png")}),new class extends j{constructor(){super(arguments.length>0&&void 0!==arguments[0]?arguments[0]:{}),this.plugins.some((e=>"cacheWillUpdate"in e))||this.plugins.unshift(te)}async _handle(e,s){const n=s.fetchAndCachePut(e).catch((()=>{}));s.waitUntil(n);let a,r=await s.cacheMatch(e);if(r)0;else{0;try{r=await n}catch(i){i instanceof Error&&(a=i)}}if(!r)throw new t("no-response",{url:e.url,error:a});return r}}({cacheName:"images",plugins:[new class{constructor(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.cachedResponseWillBeUsed=async e=>{let{event:t,request:s,cacheName:n,cachedResponse:a}=e;if(!a)return null;const r=this._isResponseDateFresh(a),i=this._getCacheExpiration(n);l(i.expireEntries());const o=i.updateTimestamp(s.url);if(t)try{t.waitUntil(o)}catch(c){0}return r?a:null},this.cacheDidUpdate=async e=>{let{cacheName:t,request:s}=e;const n=this._getCacheExpiration(t);await n.updateTimestamp(s.url),await n.expireEntries()},this._config=e,this._maxAgeSeconds=e.maxAgeSeconds,this._cacheExpirations=new Map,e.purgeOnQuotaError&&function(e){n.add(e)}((()=>this.deleteCacheAndMetadata()))}_getCacheExpiration(e){if(e===o())throw new t("expire-custom-caches-only");let s=this._cacheExpirations.get(e);return s||(s=new A(e,this._config),this._cacheExpirations.set(e,s)),s}_isResponseDateFresh(e){if(!this._maxAgeSeconds)return!0;const t=this._getDateHeaderTimestamp(e);if(null===t)return!0;return t>=Date.now()-1e3*this._maxAgeSeconds}_getDateHeaderTimestamp(e){if(!e.headers.has("date"))return null;const t=e.headers.get("date"),s=new Date(t).getTime();return isNaN(s)?null:s}async deleteCacheAndMetadata(){for(const[e,t]of this._cacheExpirations)await self.caches.delete(e),await t.delete();this._cacheExpirations=new Map}}({maxEntries:50})]})),self.addEventListener("message",(e=>{e.data&&"SKIP_WAITING"===e.data.type&&self.skipWaiting()}))})()})(); +(()=>{"use strict";var e={295:()=>{try{self["workbox:core:6.5.4"]&&_()}catch(e){}},229:()=>{try{self["workbox:expiration:6.5.4"]&&_()}catch(e){}},740:()=>{try{self["workbox:precaching:6.5.4"]&&_()}catch(e){}},130:()=>{try{self["workbox:routing:6.5.4"]&&_()}catch(e){}},205:()=>{try{self["workbox:strategies:6.5.4"]&&_()}catch(e){}}},t={};function s(n){var a=t[n];if(void 0!==a)return a.exports;var r=t[n]={exports:{}};return e[n](r,r.exports,s),r.exports}(()=>{s(295);const e=function(e){let t=e;for(var s=arguments.length,n=new Array(s>1?s-1:0),a=1;a0&&(t+=" :: ".concat(JSON.stringify(n))),t};class t extends Error{constructor(t,s){super(e(t,s)),this.name=t,this.details=s}}const n=new Set;const a={googleAnalytics:"googleAnalytics",precache:"precache-v2",prefix:"workbox",runtime:"runtime",suffix:"undefined"!==typeof registration?registration.scope:""},r=e=>[a.prefix,e,a.suffix].filter((e=>e&&e.length>0)).join("-"),i=e=>e||r(a.precache),o=e=>e||r(a.runtime);function c(e,t){const s=new URL(e);for(const n of t)s.searchParams.delete(n);return s.href}let h;function l(e){e.then((()=>{}))}class u{constructor(){this.promise=new Promise(((e,t)=>{this.resolve=e,this.reject=t}))}}const d=e=>new URL(String(e),location.href).href.replace(new RegExp("^".concat(location.origin)),"");function f(e){return new Promise((t=>setTimeout(t,e)))}function p(e,t){const s=t();return e.waitUntil(s),s}async function g(e,s){let n=null;if(e.url){n=new URL(e.url).origin}if(n!==self.location.origin)throw new t("cross-origin-copy-response",{origin:n});const a=e.clone(),r={headers:new Headers(a.headers),status:a.status,statusText:a.statusText},i=s?s(r):r,o=function(){if(void 0===h){const t=new Response("");if("body"in t)try{new Response(t.body),h=!0}catch(e){h=!1}h=!1}return h}()?a.body:await a.blob();return new Response(o,i)}const w=(e,t)=>t.some((t=>e instanceof t));let m,y;const _=new WeakMap,v=new WeakMap,b=new WeakMap,R=new WeakMap,x=new WeakMap;let C={get(e,t,s){if(e instanceof IDBTransaction){if("done"===t)return v.get(e);if("objectStoreNames"===t)return e.objectStoreNames||b.get(e);if("store"===t)return s.objectStoreNames[1]?void 0:s.objectStore(s.objectStoreNames[0])}return q(e[t])},set:(e,t,s)=>(e[t]=s,!0),has:(e,t)=>e instanceof IDBTransaction&&("done"===t||"store"===t)||t in e};function L(e){return e!==IDBDatabase.prototype.transaction||"objectStoreNames"in IDBTransaction.prototype?(y||(y=[IDBCursor.prototype.advance,IDBCursor.prototype.continue,IDBCursor.prototype.continuePrimaryKey])).includes(e)?function(){for(var t=arguments.length,s=new Array(t),n=0;n1?s-1:0),a=1;a{const n=()=>{e.removeEventListener("complete",a),e.removeEventListener("error",r),e.removeEventListener("abort",r)},a=()=>{t(),n()},r=()=>{s(e.error||new DOMException("AbortError","AbortError")),n()};e.addEventListener("complete",a),e.addEventListener("error",r),e.addEventListener("abort",r)}));v.set(e,t)}(e),w(e,m||(m=[IDBDatabase,IDBObjectStore,IDBIndex,IDBCursor,IDBTransaction]))?new Proxy(e,C):e)}function q(e){if(e instanceof IDBRequest)return function(e){const t=new Promise(((t,s)=>{const n=()=>{e.removeEventListener("success",a),e.removeEventListener("error",r)},a=()=>{t(q(e.result)),n()},r=()=>{s(e.error),n()};e.addEventListener("success",a),e.addEventListener("error",r)}));return t.then((t=>{t instanceof IDBCursor&&_.set(t,e)})).catch((()=>{})),x.set(t,e),t}(e);if(R.has(e))return R.get(e);const t=E(e);return t!==e&&(R.set(e,t),x.set(t,e)),t}const D=e=>x.get(e);const U=["get","getKey","getAll","getAllKeys","count"],T=["put","add","delete","clear"],k=new Map;function N(e,t){if(!(e instanceof IDBDatabase)||t in e||"string"!==typeof t)return;if(k.get(t))return k.get(t);const s=t.replace(/FromIndex$/,""),n=t!==s,a=T.includes(s);if(!(s in(n?IDBIndex:IDBObjectStore).prototype)||!a&&!U.includes(s))return;const r=async function(e){const t=this.transaction(e,a?"readwrite":"readonly");let r=t.store;for(var i=arguments.length,o=new Array(i>1?i-1:0),c=1;c({...e,get:(t,s,n)=>N(t,s)||e.get(t,s,n),has:(t,s)=>!!N(t,s)||e.has(t,s)}))(C);s(229);const I="cache-entries",K=e=>{const t=new URL(e,location.href);return t.hash="",t.href};class M{constructor(e){this._db=null,this._cacheName=e}_upgradeDb(e){const t=e.createObjectStore(I,{keyPath:"id"});t.createIndex("cacheName","cacheName",{unique:!1}),t.createIndex("timestamp","timestamp",{unique:!1})}_upgradeDbAndDeleteOldDbs(e){this._upgradeDb(e),this._cacheName&&function(e){let{blocked:t}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const s=indexedDB.deleteDatabase(e);t&&s.addEventListener("blocked",(e=>t(e.oldVersion,e))),q(s).then((()=>{}))}(this._cacheName)}async setTimestamp(e,t){const s={url:e=K(e),timestamp:t,cacheName:this._cacheName,id:this._getId(e)},n=(await this.getDb()).transaction(I,"readwrite",{durability:"relaxed"});await n.store.put(s),await n.done}async getTimestamp(e){const t=await this.getDb(),s=await t.get(I,this._getId(e));return null===s||void 0===s?void 0:s.timestamp}async expireEntries(e,t){const s=await this.getDb();let n=await s.transaction(I).store.index("timestamp").openCursor(null,"prev");const a=[];let r=0;for(;n;){const s=n.value;s.cacheName===this._cacheName&&(e&&s.timestamp=t?a.push(n.value):r++),n=await n.continue()}const i=[];for(const o of a)await s.delete(I,o.id),i.push(o.url);return i}_getId(e){return this._cacheName+"|"+K(e)}async getDb(){return this._db||(this._db=await function(e,t){let{blocked:s,upgrade:n,blocking:a,terminated:r}=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};const i=indexedDB.open(e,t),o=q(i);return n&&i.addEventListener("upgradeneeded",(e=>{n(q(i.result),e.oldVersion,e.newVersion,q(i.transaction),e)})),s&&i.addEventListener("blocked",(e=>s(e.oldVersion,e.newVersion,e))),o.then((e=>{r&&e.addEventListener("close",(()=>r())),a&&e.addEventListener("versionchange",(e=>a(e.oldVersion,e.newVersion,e)))})).catch((()=>{})),o}("workbox-expiration",1,{upgrade:this._upgradeDbAndDeleteOldDbs.bind(this)})),this._db}}class A{constructor(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};this._isRunning=!1,this._rerunRequested=!1,this._maxEntries=t.maxEntries,this._maxAgeSeconds=t.maxAgeSeconds,this._matchOptions=t.matchOptions,this._cacheName=e,this._timestampModel=new M(e)}async expireEntries(){if(this._isRunning)return void(this._rerunRequested=!0);this._isRunning=!0;const e=this._maxAgeSeconds?Date.now()-1e3*this._maxAgeSeconds:0,t=await this._timestampModel.expireEntries(e,this._maxEntries),s=await self.caches.open(this._cacheName);for(const n of t)await s.delete(n,this._matchOptions);this._isRunning=!1,this._rerunRequested&&(this._rerunRequested=!1,l(this.expireEntries()))}async updateTimestamp(e){await this._timestampModel.setTimestamp(e,Date.now())}async isURLExpired(e){if(this._maxAgeSeconds){const t=await this._timestampModel.getTimestamp(e),s=Date.now()-1e3*this._maxAgeSeconds;return void 0===t||t{let{request:t,state:s}=e;s&&(s.originalRequest=t)},this.cachedResponseWillBeUsed=async e=>{let{event:t,state:s,cachedResponse:n}=e;if("install"===t.type&&s&&s.originalRequest&&s.originalRequest instanceof Request){const e=s.originalRequest.url;n?this.notUpdatedURLs.push(e):this.updatedURLs.push(e)}return n}}}class O{constructor(e){let{precacheController:t}=e;this.cacheKeyWillBeUsed=async e=>{let{request:t,params:s}=e;const n=(null===s||void 0===s?void 0:s.cacheKey)||this._precacheController.getCacheKeyForURL(t.url);return n?new Request(n,{headers:t.headers}):t},this._precacheController=t}}s(205);function W(e){return"string"===typeof e?new Request(e):e}class B{constructor(e,t){this._cacheKeys={},Object.assign(this,t),this.event=t.event,this._strategy=e,this._handlerDeferred=new u,this._extendLifetimePromises=[],this._plugins=[...e.plugins],this._pluginStateMap=new Map;for(const s of this._plugins)this._pluginStateMap.set(s,{});this.event.waitUntil(this._handlerDeferred.promise)}async fetch(e){const{event:s}=this;let n=W(e);if("navigate"===n.mode&&s instanceof FetchEvent&&s.preloadResponse){const e=await s.preloadResponse;if(e)return e}const a=this.hasCallback("fetchDidFail")?n.clone():null;try{for(const e of this.iterateCallbacks("requestWillFetch"))n=await e({request:n.clone(),event:s})}catch(i){if(i instanceof Error)throw new t("plugin-error-request-will-fetch",{thrownErrorMessage:i.message})}const r=n.clone();try{let e;e=await fetch(n,"navigate"===n.mode?void 0:this._strategy.fetchOptions);for(const t of this.iterateCallbacks("fetchDidSucceed"))e=await t({event:s,request:r,response:e});return e}catch(o){throw a&&await this.runCallbacks("fetchDidFail",{error:o,event:s,originalRequest:a.clone(),request:r.clone()}),o}}async fetchAndCachePut(e){const t=await this.fetch(e),s=t.clone();return this.waitUntil(this.cachePut(e,s)),t}async cacheMatch(e){const t=W(e);let s;const{cacheName:n,matchOptions:a}=this._strategy,r=await this.getCacheKey(t,"read"),i=Object.assign(Object.assign({},a),{cacheName:n});s=await caches.match(r,i);for(const o of this.iterateCallbacks("cachedResponseWillBeUsed"))s=await o({cacheName:n,matchOptions:a,cachedResponse:s,request:r,event:this.event})||void 0;return s}async cachePut(e,s){const a=W(e);await f(0);const r=await this.getCacheKey(a,"write");if(!s)throw new t("cache-put-with-no-response",{url:d(r.url)});const i=await this._ensureResponseSafeToCache(s);if(!i)return!1;const{cacheName:o,matchOptions:h}=this._strategy,l=await self.caches.open(o),u=this.hasCallback("cacheDidUpdate"),p=u?await async function(e,t,s,n){const a=c(t.url,s);if(t.url===a)return e.match(t,n);const r=Object.assign(Object.assign({},n),{ignoreSearch:!0}),i=await e.keys(t,r);for(const o of i)if(a===c(o.url,s))return e.match(o,n)}(l,r.clone(),["__WB_REVISION__"],h):null;try{await l.put(r,u?i.clone():i)}catch(g){if(g instanceof Error)throw"QuotaExceededError"===g.name&&await async function(){for(const e of n)await e()}(),g}for(const t of this.iterateCallbacks("cacheDidUpdate"))await t({cacheName:o,oldResponse:p,newResponse:i.clone(),request:r,event:this.event});return!0}async getCacheKey(e,t){const s="".concat(e.url," | ").concat(t);if(!this._cacheKeys[s]){let n=e;for(const e of this.iterateCallbacks("cacheKeyWillBeUsed"))n=W(await e({mode:t,request:n,event:this.event,params:this.params}));this._cacheKeys[s]=n}return this._cacheKeys[s]}hasCallback(e){for(const t of this._strategy.plugins)if(e in t)return!0;return!1}async runCallbacks(e,t){for(const s of this.iterateCallbacks(e))await s(t)}*iterateCallbacks(e){for(const t of this._strategy.plugins)if("function"===typeof t[e]){const s=this._pluginStateMap.get(t),n=n=>{const a=Object.assign(Object.assign({},n),{state:s});return t[e](a)};yield n}}waitUntil(e){return this._extendLifetimePromises.push(e),e}async doneWaiting(){let e;for(;e=this._extendLifetimePromises.shift();)await e}destroy(){this._handlerDeferred.resolve(null)}async _ensureResponseSafeToCache(e){let t=e,s=!1;for(const n of this.iterateCallbacks("cacheWillUpdate"))if(t=await n({request:this.request,response:t,event:this.event})||void 0,s=!0,!t)break;return s||t&&200!==t.status&&(t=void 0),t}}class j{constructor(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.cacheName=o(e.cacheName),this.plugins=e.plugins||[],this.fetchOptions=e.fetchOptions,this.matchOptions=e.matchOptions}handle(e){const[t]=this.handleAll(e);return t}handleAll(e){e instanceof FetchEvent&&(e={event:e,request:e.request});const t=e.event,s="string"===typeof e.request?new Request(e.request):e.request,n="params"in e?e.params:void 0,a=new B(this,{event:t,request:s,params:n}),r=this._getResponse(a,s,t);return[r,this._awaitComplete(r,a,s,t)]}async _getResponse(e,s,n){let a;await e.runCallbacks("handlerWillStart",{event:n,request:s});try{if(a=await this._handle(s,e),!a||"error"===a.type)throw new t("no-response",{url:s.url})}catch(r){if(r instanceof Error)for(const t of e.iterateCallbacks("handlerDidError"))if(a=await t({error:r,event:n,request:s}),a)break;if(!a)throw r}for(const t of e.iterateCallbacks("handlerWillRespond"))a=await t({event:n,request:s,response:a});return a}async _awaitComplete(e,t,s,n){let a,r;try{a=await e}catch(r){}try{await t.runCallbacks("handlerDidRespond",{event:n,request:s,response:a}),await t.doneWaiting()}catch(i){i instanceof Error&&(r=i)}if(await t.runCallbacks("handlerDidComplete",{event:n,request:s,response:a,error:r}),t.destroy(),r)throw r}}class F extends j{constructor(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};e.cacheName=i(e.cacheName),super(e),this._fallbackToNetwork=!1!==e.fallbackToNetwork,this.plugins.push(F.copyRedirectedCacheableResponsesPlugin)}async _handle(e,t){const s=await t.cacheMatch(e);return s||(t.event&&"install"===t.event.type?await this._handleInstall(e,t):await this._handleFetch(e,t))}async _handleFetch(e,s){let n;const a=s.params||{};if(!this._fallbackToNetwork)throw new t("missing-precache-entry",{cacheName:this.cacheName,url:e.url});{0;const t=a.integrity,r=e.integrity,i=!r||r===t;if(n=await s.fetch(new Request(e,{integrity:"no-cors"!==e.mode?r||t:void 0})),t&&i&&"no-cors"!==e.mode){this._useDefaultCacheabilityPluginIfNeeded();await s.cachePut(e,n.clone());0}}return n}async _handleInstall(e,s){this._useDefaultCacheabilityPluginIfNeeded();const n=await s.fetch(e);if(!await s.cachePut(e,n.clone()))throw new t("bad-precaching-response",{url:e.url,status:n.status});return n}_useDefaultCacheabilityPluginIfNeeded(){let e=null,t=0;for(const[s,n]of this.plugins.entries())n!==F.copyRedirectedCacheableResponsesPlugin&&(n===F.defaultPrecacheCacheabilityPlugin&&(e=s),n.cacheWillUpdate&&t++);0===t?this.plugins.push(F.defaultPrecacheCacheabilityPlugin):t>1&&null!==e&&this.plugins.splice(e,1)}}F.defaultPrecacheCacheabilityPlugin={async cacheWillUpdate(e){let{response:t}=e;return!t||t.status>=400?null:t}},F.copyRedirectedCacheableResponsesPlugin={async cacheWillUpdate(e){let{response:t}=e;return t.redirected?await g(t):t}};class H{constructor(){let{cacheName:e,plugins:t=[],fallbackToNetwork:s=!0}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this._urlsToCacheKeys=new Map,this._urlsToCacheModes=new Map,this._cacheKeysToIntegrities=new Map,this._strategy=new F({cacheName:i(e),plugins:[...t,new O({precacheController:this})],fallbackToNetwork:s}),this.install=this.install.bind(this),this.activate=this.activate.bind(this)}get strategy(){return this._strategy}precache(e){this.addToCacheList(e),this._installAndActiveListenersAdded||(self.addEventListener("install",this.install),self.addEventListener("activate",this.activate),this._installAndActiveListenersAdded=!0)}addToCacheList(e){const s=[];for(const n of e){"string"===typeof n?s.push(n):n&&void 0===n.revision&&s.push(n.url);const{cacheKey:e,url:a}=P(n),r="string"!==typeof n&&n.revision?"reload":"default";if(this._urlsToCacheKeys.has(a)&&this._urlsToCacheKeys.get(a)!==e)throw new t("add-to-cache-list-conflicting-entries",{firstEntry:this._urlsToCacheKeys.get(a),secondEntry:e});if("string"!==typeof n&&n.integrity){if(this._cacheKeysToIntegrities.has(e)&&this._cacheKeysToIntegrities.get(e)!==n.integrity)throw new t("add-to-cache-list-conflicting-integrities",{url:a});this._cacheKeysToIntegrities.set(e,n.integrity)}if(this._urlsToCacheKeys.set(a,e),this._urlsToCacheModes.set(a,r),s.length>0){const e="Workbox is precaching URLs without revision "+"info: ".concat(s.join(", "),"\nThis is generally NOT safe. ")+"Learn more at https://bit.ly/wb-precache";console.warn(e)}}}install(e){return p(e,(async()=>{const t=new S;this.strategy.plugins.push(t);for(const[a,r]of this._urlsToCacheKeys){const t=this._cacheKeysToIntegrities.get(r),s=this._urlsToCacheModes.get(a),n=new Request(a,{integrity:t,cache:s,credentials:"same-origin"});await Promise.all(this.strategy.handleAll({params:{cacheKey:r},request:n,event:e}))}const{updatedURLs:s,notUpdatedURLs:n}=t;return{updatedURLs:s,notUpdatedURLs:n}}))}activate(e){return p(e,(async()=>{const e=await self.caches.open(this.strategy.cacheName),t=await e.keys(),s=new Set(this._urlsToCacheKeys.values()),n=[];for(const a of t)s.has(a.url)||(await e.delete(a),n.push(a.url));return{deletedURLs:n}}))}getURLsToCacheKeys(){return this._urlsToCacheKeys}getCachedURLs(){return[...this._urlsToCacheKeys.keys()]}getCacheKeyForURL(e){const t=new URL(e,location.href);return this._urlsToCacheKeys.get(t.href)}getIntegrityForCacheKey(e){return this._cacheKeysToIntegrities.get(e)}async matchPrecache(e){const t=e instanceof Request?e.url:e,s=this.getCacheKeyForURL(t);if(s){return(await self.caches.open(this.strategy.cacheName)).match(s)}}createHandlerBoundToURL(e){const s=this.getCacheKeyForURL(e);if(!s)throw new t("non-precached-url",{url:e});return t=>(t.request=new Request(e),t.params=Object.assign({cacheKey:s},t.params),this.strategy.handle(t))}}let V;const G=()=>(V||(V=new H),V);s(130);const $=e=>e&&"object"===typeof e?e:{handle:e};class Q{constructor(e,t){let s=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"GET";this.handler=$(t),this.match=e,this.method=s}setCatchHandler(e){this.catchHandler=$(e)}}class J extends Q{constructor(e,t,s){super((t=>{let{url:s}=t;const n=e.exec(s.href);if(n&&(s.origin===location.origin||0===n.index))return n.slice(1)}),t,s)}}class z{constructor(){this._routes=new Map,this._defaultHandlerMap=new Map}get routes(){return this._routes}addFetchListener(){self.addEventListener("fetch",(e=>{const{request:t}=e,s=this.handleRequest({request:t,event:e});s&&e.respondWith(s)}))}addCacheListener(){self.addEventListener("message",(e=>{if(e.data&&"CACHE_URLS"===e.data.type){const{payload:t}=e.data;0;const s=Promise.all(t.urlsToCache.map((t=>{"string"===typeof t&&(t=[t]);const s=new Request(...t);return this.handleRequest({request:s,event:e})})));e.waitUntil(s),e.ports&&e.ports[0]&&s.then((()=>e.ports[0].postMessage(!0)))}}))}handleRequest(e){let{request:t,event:s}=e;const n=new URL(t.url,location.href);if(!n.protocol.startsWith("http"))return void 0;const a=n.origin===location.origin,{params:r,route:i}=this.findMatchingRoute({event:s,request:t,sameOrigin:a,url:n});let o=i&&i.handler;const c=t.method;if(!o&&this._defaultHandlerMap.has(c)&&(o=this._defaultHandlerMap.get(c)),!o)return void 0;let h;try{h=o.handle({url:n,request:t,event:s,params:r})}catch(u){h=Promise.reject(u)}const l=i&&i.catchHandler;return h instanceof Promise&&(this._catchHandler||l)&&(h=h.catch((async e=>{if(l){0;try{return await l.handle({url:n,request:t,event:s,params:r})}catch(a){a instanceof Error&&(e=a)}}if(this._catchHandler)return this._catchHandler.handle({url:n,request:t,event:s});throw e}))),h}findMatchingRoute(e){let{url:t,sameOrigin:s,request:n,event:a}=e;const r=this._routes.get(n.method)||[];for(const i of r){let e;const r=i.match({url:t,sameOrigin:s,request:n,event:a});if(r)return e=r,(Array.isArray(e)&&0===e.length||r.constructor===Object&&0===Object.keys(r).length||"boolean"===typeof r)&&(e=void 0),{route:i,params:e}}return{}}setDefaultHandler(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"GET";this._defaultHandlerMap.set(t,$(e))}setCatchHandler(e){this._catchHandler=$(e)}registerRoute(e){this._routes.has(e.method)||this._routes.set(e.method,[]),this._routes.get(e.method).push(e)}unregisterRoute(e){if(!this._routes.has(e.method))throw new t("unregister-route-but-not-found-with-method",{method:e.method});const s=this._routes.get(e.method).indexOf(e);if(!(s>-1))throw new t("unregister-route-route-not-registered");this._routes.get(e.method).splice(s,1)}}let X;const Y=()=>(X||(X=new z,X.addFetchListener(),X.addCacheListener()),X);function Z(e,s,n){let a;if("string"===typeof e){const t=new URL(e,location.href);0;a=new Q((e=>{let{url:s}=e;return s.href===t.href}),s,n)}else if(e instanceof RegExp)a=new J(e,s,n);else if("function"===typeof e)a=new Q(e,s,n);else{if(!(e instanceof Q))throw new t("unsupported-route-type",{moduleName:"workbox-routing",funcName:"registerRoute",paramName:"capture"});a=e}return Y().registerRoute(a),a}class ee extends Q{constructor(e,t){super((s=>{let{request:n}=s;const a=e.getURLsToCacheKeys();for(const r of function(e){let{ignoreURLParametersMatching:t=[/^utm_/,/^fbclid$/],directoryIndex:s="index.html",cleanURLs:n=!0,urlManipulation:a}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return function*(){const r=new URL(e,location.href);r.hash="",yield r.href;const i=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];for(const s of[...e.searchParams.keys()])t.some((e=>e.test(s)))&&e.searchParams.delete(s);return e}(r,t);if(yield i.href,s&&i.pathname.endsWith("/")){const e=new URL(i.href);e.pathname+=s,yield e.href}if(n){const e=new URL(i.href);e.pathname+=".html",yield e.href}if(a){const e=a({url:r});for(const t of e)yield t.href}}()}(n.url,t)){const t=a.get(r);if(t){return{cacheKey:t,integrity:e.getIntegrityForCacheKey(t)}}}}),e.strategy)}}const te={cacheWillUpdate:async e=>{let{response:t}=e;return 200===t.status||0===t.status?t:null}};var se;self.addEventListener("activate",(()=>self.clients.claim())),function(e){G().precache(e)}([{'revision':'18b80477b3471a73fcd808cc60549177','url':'/cv_os/index.html'},{'revision':null,'url':'/cv_os/static/css/main.565cdca6.css'},{'revision':null,'url':'/cv_os/static/js/main.ddb46178.js'},{'revision':null,'url':'/cv_os/static/media/academic-icon.536aead5d42c99f6a44b.png'},{'revision':null,'url':'/cv_os/static/media/octocat.3e264aba5c92d1a2dc78.png'},{'revision':null,'url':'/cv_os/static/media/pdf-icon.666ee1b4ac9eb31bd955.png'},{'revision':null,'url':'/cv_os/static/media/terminal-icon.a695be0b97e70962e513.png'},{'revision':null,'url':'/cv_os/static/media/user-icon.8d49e377c7c342895ec2.png'}]),function(e){const t=G();Z(new ee(t,e))}(se);const ne=new RegExp("/[^/?]+\\.[^/]+$");var ae;Z((e=>{let{request:t,url:s}=e;return"navigate"===t.mode&&(!s.pathname.startsWith("/_")&&!s.pathname.match(ne))}),(ae="/cv_os/index.html",G().createHandlerBoundToURL(ae))),Z((e=>{let{url:t}=e;return t.origin===self.location.origin&&t.pathname.endsWith(".png")}),new class extends j{constructor(){super(arguments.length>0&&void 0!==arguments[0]?arguments[0]:{}),this.plugins.some((e=>"cacheWillUpdate"in e))||this.plugins.unshift(te)}async _handle(e,s){const n=s.fetchAndCachePut(e).catch((()=>{}));s.waitUntil(n);let a,r=await s.cacheMatch(e);if(r)0;else{0;try{r=await n}catch(i){i instanceof Error&&(a=i)}}if(!r)throw new t("no-response",{url:e.url,error:a});return r}}({cacheName:"images",plugins:[new class{constructor(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.cachedResponseWillBeUsed=async e=>{let{event:t,request:s,cacheName:n,cachedResponse:a}=e;if(!a)return null;const r=this._isResponseDateFresh(a),i=this._getCacheExpiration(n);l(i.expireEntries());const o=i.updateTimestamp(s.url);if(t)try{t.waitUntil(o)}catch(c){0}return r?a:null},this.cacheDidUpdate=async e=>{let{cacheName:t,request:s}=e;const n=this._getCacheExpiration(t);await n.updateTimestamp(s.url),await n.expireEntries()},this._config=e,this._maxAgeSeconds=e.maxAgeSeconds,this._cacheExpirations=new Map,e.purgeOnQuotaError&&function(e){n.add(e)}((()=>this.deleteCacheAndMetadata()))}_getCacheExpiration(e){if(e===o())throw new t("expire-custom-caches-only");let s=this._cacheExpirations.get(e);return s||(s=new A(e,this._config),this._cacheExpirations.set(e,s)),s}_isResponseDateFresh(e){if(!this._maxAgeSeconds)return!0;const t=this._getDateHeaderTimestamp(e);if(null===t)return!0;return t>=Date.now()-1e3*this._maxAgeSeconds}_getDateHeaderTimestamp(e){if(!e.headers.has("date"))return null;const t=e.headers.get("date"),s=new Date(t).getTime();return isNaN(s)?null:s}async deleteCacheAndMetadata(){for(const[e,t]of this._cacheExpirations)await self.caches.delete(e),await t.delete();this._cacheExpirations=new Map}}({maxEntries:50})]})),self.addEventListener("message",(e=>{e.data&&"SKIP_WAITING"===e.data.type&&self.skipWaiting()}))})()})(); //# sourceMappingURL=service-worker.js.map \ No newline at end of file diff --git a/static/css/main.565cdca6.css b/static/css/main.565cdca6.css new file mode 100644 index 0000000..24a5053 --- /dev/null +++ b/static/css/main.565cdca6.css @@ -0,0 +1,2 @@ +:root{--background-color:#fff;--reverse-background-color:#232239;--text-color:#000;--reverse-text-color:#fff;--window-color:#d1d3db}[data-theme=dark]{--background-color:#232239;--reverse-background-color:#fff;--text-color:#fff;--reverse-text-color:#000;--window-color:#5e5e61}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:#fff;background-color:var(--background-color);color:#000;color:var(--text-color);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;margin:0}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}.App{background:linear-gradient(45deg,#af3a16,#77116f,#512750,#2a001e,#5e2750,#77216f);flex-direction:row;min-height:100vh}.App,.suspended_screen{align-items:center;color:var(--text-color);display:flex;height:100vh;justify-content:center;text-align:center;width:100vw}.suspended_screen{background-color:var(--background-color);flex-direction:column;font-size:1.5rem;font-weight:600;padding:2%}.suspended_screen button{background-color:var(--window-color);border:1px solid var(--reverse-background-color);border-radius:5px;color:var(--text-color);margin-top:1.5%}.suspended_screen img{max-height:100px;max-width:100px}.octocat{bottom:3px;height:70px;left:1px;position:fixed;transition:transform .3s;width:70px}.octocat:hover{transform:scale(1.1)}.dock{align-items:center;align-self:center;background:var(--background-color);border:2px solid #252344;border-radius:20px;bottom:10px;box-shadow:0 4px 10px #0000001a;display:flex;flex-wrap:wrap;justify-content:space-between;padding:1%;position:fixed;z-index:0}.dock-icon{height:6vw;margin-left:8px;margin-right:8px;max-height:50px;max-width:50px;transition:transform .3s;width:6vw}.dock-icon img{border-radius:10px;height:100%;transition:transform .3s;width:100%}.dock-icon:hover img{transform:scale(1.4)}.tooltip{background:#000000b3;border-radius:5px;bottom:50%;color:#fff;font-size:12px;left:50%;padding:5px 10px;position:absolute;transform:translateX(-50%);z-index:1000}.desktop{align-content:flex-start;align-items:self-start;align-self:flex-start;background:none;height:100%;height:-webkit-fit-content;height:-moz-fit-content;height:fit-content;padding:1.5%;width:100%;z-index:0}.desktop,.desktop_icon{display:flex;flex-wrap:wrap}.desktop_icon{align-items:center;cursor:"pointer";flex-direction:column;justify-content:center;margin-left:12px;margin-right:12px;padding:.5%;transition:transform .3s;width:8vw}.desktop_icon img{cursor:pointer;height:50%;margin:0;max-height:70px;min-width:50px;transition:transform .3s;width:50%}.desktop_icon:hover img{transform:scale(1.2)}.desktop_icon p{color:#fff;cursor:move;font-size:1.2vw;text-overflow:ellipsis;word-break:break-all}.desktop_icon p:first-letter{text-transform:uppercase}.folder_content{scrollbar-highlight-color:var(--window-color);align-content:flex-start;background-color:var(--background-color);cursor:default;flex-direction:column;flex-grow:1;justify-content:left;overflow-y:auto}.folder_content,.folder_top_bar{box-sizing:border-box;display:flex}.folder_top_bar{align-items:center;background-color:var(--window-color);justify-content:start;max-height:60px;min-height:40px}.top_bar_select{font-size:.8em;margin-right:1%;padding:5px;width:35%}.folder_top_bar input,.top_bar_select{background-color:var(--window-color);border:1px solid #fff;border-radius:4px;color:var(--text-color)}.folder_top_bar input{height:60%;margin:2px 1% 2px 2px;width:40%}.folder_top_bar input::placeholder{color:gray}.folder_top_bar button{align-items:center;background-color:var(--window-color);border-radius:5px;color:var(--text-color);cursor:pointer;display:flex;height:80%;justify-content:center;margin-left:1%}.folder_top_bar button:disabled{color:grey;cursor:not-allowed}.folder_top_bar button img{height:100%;width:100%}.folder_entry_linear{align-content:center;align-items:center;border:1px solid #fff;border-radius:5px;box-sizing:border-box;cursor:pointer;display:flex;flex-direction:row;justify-content:left;padding:.5%;width:100%}.folder_entry_linear:hover{background-color:#d1d0e5;border:1px solid #d1d0e5}.folder_entry_linear img{cursor:pointer;height:3vh;margin-left:2%;margin-right:1%;min-height:20px;min-width:20px;width:3vh}.folder_entry_linear p{cursor:pointer;max-width:90%;overflow:hidden;padding:5px;text-align:center;text-overflow:ellipsis;transition:transform .3s;white-space:nowrap;word-break:keep-all}.tooltip-container{position:relative}.line_tooltip{background:#000000b3;border-radius:5px;color:#fff;font-size:15px;left:80%;padding:5px 10px;pointer-events:none;position:absolute;top:10%;transform:translateX(-50%);z-index:5}.file_window{cursor:move;display:flex;flex:1 1;flex-direction:column;font-family:source-code-pro,Courier,monospace;height:70%;max-height:99vh;min-width:35%;z-index:2}.file_content,.file_window{background-color:var(--background-color)}.file_content{box-sizing:border-box;cursor:text;max-height:95vh;max-width:100vw;min-height:10vh;overflow:scroll;overflow-wrap:normal;padding:1%;text-align:left;width:100%}.file_line{display:flex;padding-inline:1%;white-space:pre-wrap}.file_output{background-color:var(--background-color);color:var(--text-color);-webkit-user-select:text;user-select:text}.file_output strong:first-letter{text-transform:uppercase}.file_top_buttons{align-items:center;align-items:space-between;display:flex;justify-content:start;max-height:60px;min-height:40px}.file_button,.file_top_buttons{background-color:var(--window-color)}.file_button{border:1px solid #fff;border-radius:3px;color:var(--text-color);cursor:pointer;margin:1%}.app_window{border:1px solid var(--window-color);border-radius:3px;box-sizing:border-box;flex-direction:column;font-family:Courier New,Courier,monospace;height:100%;width:100%;z-index:2}.app_bar,.app_window{display:flex;pointer-events:auto}.app_bar{align-items:center;align-items:space-between;background-color:var(--window-color);cursor:move;justify-content:space-between;max-height:55px;min-height:20px;padding-inline:1%;position:-webkit-sticky}.bar_header{align-items:center;flex:1 1;overflow:hidden;padding:1% 3%;text-align:center;text-overflow:ellipsis;white-space:nowrap}.bar_header:first-letter{text-transform:uppercase}.buttons{align-items:center;box-sizing:border-box;cursor:pointer;display:flex;justify-content:left;width:20%;width:auto}.bar_button{border-radius:100%;cursor:pointer;margin-left:3px;margin-right:3px;min-height:12px;min-width:12px;width:30%}.close{background-color:#ff5f56}.minimize{background-color:#ffbd2e}.disabled{background-color:#838281;pointer-events:none}.maximize{background-color:#27c93f}.react-resizable{position:relative}.react-resizable-handle{background-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiNmZmZmZmYwMCIgd2lkdGg9IjYiIGhlaWdodD0iNiI+PHBhdGggZD0iTTYgNkgwVjQuMmg0LjJWMEg2djZaIiBvcGFjaXR5PSIuMzAyIi8+PC9zdmc+);background-origin:content-box;background-position:100% 100%;background-repeat:no-repeat;box-sizing:border-box;height:20px;padding:0 3px 3px 0;position:absolute;width:20px}.react-resizable-handle-sw{bottom:0;cursor:sw-resize;left:0;transform:rotate(90deg)}.react-resizable-handle-se{bottom:0;cursor:se-resize;right:0}.react-resizable-handle-nw{cursor:nw-resize;left:0;top:0;transform:rotate(180deg)}.react-resizable-handle-ne{cursor:ne-resize;right:0;top:0;transform:rotate(270deg)}.react-resizable-handle-e,.react-resizable-handle-w{cursor:ew-resize;margin-top:-10px;top:50%}.react-resizable-handle-w{left:0;transform:rotate(135deg)}.react-resizable-handle-e{right:0;transform:rotate(315deg)}.react-resizable-handle-n,.react-resizable-handle-s{cursor:ns-resize;left:50%;margin-left:-10px}.react-resizable-handle-n{top:0;transform:rotate(225deg)}.react-resizable-handle-s{bottom:0;transform:rotate(45deg)}.term_content{align-items:flex-start;display:flex;flex-direction:column;height:100%;max-height:99vh;min-height:20vh;overflow:scroll;pointer-events:auto;scrollbar-color:grey;text-align:left}.input,.term_content{background-color:var(--background-color);width:100%}.input{border:none;color:var(--text-color);font-family:Courier New,Courier,monospace;outline:none}.prompt_line{box-sizing:border-box;flex-direction:row;padding-inline:1%}.output,.prompt_line{display:flex;width:100%}.output{flex-direction:column;justify-content:flex-end;-webkit-user-select:text;user-select:text}.prompt_string{width:-webkit-fit-content;width:-moz-fit-content;width:fit-content}.output_line{display:flex;padding-inline:1%}.output_line,.selectable{-webkit-user-select:text;user-select:text}.open-windows-space{background-color:initial;box-sizing:border-box;flex-wrap:wrap;height:100vh;max-height:100vh;max-width:100vw;pointer-events:none;position:absolute;width:100vw;z-index:1}.open-windows-space,.settings{align-items:center;display:flex;justify-content:center}.settings{background-color:var(--background-color);color:var(--text-color);cursor:pointer;flex-direction:column;height:100%;padding:3%}.settings_line{align-items:center;border:1px solid var(--text-color);border-radius:3px;display:flex;justify-content:space-between;margin:.5%;padding:2%;width:100%}.toggle-switch{display:inline-block;height:20px;margin-left:20px;position:relative;width:40px}.toggle-switch input{display:none}.slider{background-color:#ccc;border-radius:20px;bottom:0;cursor:pointer;left:0;right:0;top:0}.slider,.slider:before{position:absolute;transition:.4s}.slider:before{background-color:#fff;border-radius:50%;bottom:2px;content:"";height:16px;left:2px;width:16px}input:checked+.slider{background-color:#2196f3}input:checked+.slider:before{transform:translateX(20px)}.settings_button{background-color:var(--background-color);border-color:var(--text-color);border-radius:5px;cursor:pointer;display:flex;justify-content:center;padding:3px}.settings_button:hover{background-color:#ccc}.settings_button img{color:var(--text-color);height:2.5vh;max-height:50px;max-width:50px} +/*# sourceMappingURL=main.565cdca6.css.map*/ \ No newline at end of file diff --git a/static/css/main.565cdca6.css.map b/static/css/main.565cdca6.css.map new file mode 100644 index 0000000..9590371 --- /dev/null +++ b/static/css/main.565cdca6.css.map @@ -0,0 +1 @@ +{"version":3,"file":"static/css/main.565cdca6.css","mappings":"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","sources":["styles/index.css","styles/App.css","styles/view/Dock.css","styles/view/DockIcon.css","styles/view/Desktop.css","styles/view/AppFolder.css","styles/view/TextFile.css","styles/view/AppWindow.css","../node_modules/react-resizable/css/styles.css","styles/view/Terminal.css","styles/view/OpenWindowsSpace.css","styles/view/Settings.css"],"sourcesContent":["\n\n:root {\n --background-color: #ffffff;\n --reverse-background-color: #232239;\n --text-color: #000000;\n --reverse-text-color: #ffffff;\n --window-color: rgb(209, 211, 219);\n}\n\n[data-theme='dark'] {\n --background-color: #232239;\n --reverse-background-color: #ffffff;\n --text-color: #ffffff;\n --reverse-text-color: #000000;\n --window-color: rgb(94, 94, 97);\n}\n\n\nbody {\n margin: 0;\n font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen',\n 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue',\n sans-serif;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n background-color: var(--background-color);\n color: var(--text-color);\n}\n\ncode {\n font-family: source-code-pro, Menlo, Monaco, Consolas, 'Courier New',\n monospace;\n}\n","@import url('index.css');\n\n.App {\n text-align: center;\n min-height: 100vh;\n height: 100vh;\n width: 100vw;\n display: flex;\n color: var(--text-color);\n background: linear-gradient(45deg, #af3a16, #77116f, #512750, #2a001e, #5e2750, #77216f);\n flex-direction: row;\n justify-content: center;\n align-items: center;\n}\n\n.suspended_screen {\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n height: 100vh;\n width: 100vw;\n background-color: var(--background-color);\n color: var(--text-color);\n font-size: 1.5rem;\n font-weight: 600;\n text-align: center;\n padding: 2%;\n}\n\n.suspended_screen button {\n margin-top: 1.5%;\n border-radius: 5px;\n color: var(--text-color);\n background-color: var(--window-color);\n border: 1px solid var(--reverse-background-color);\n}\n\n.suspended_screen img {\n max-width: 100px;\n max-height: 100px;\n}\n\n.octocat {\n position: fixed;\n bottom: 3px;\n left: 1px;\n width: 70px;\n height: 70px;\n transition: transform 0.3s;\n}\n\n.octocat:hover {\n transform: scale(1.1);\n}","@import url('../index.css');\n\n.dock {\n display: flex;\n justify-content: space-between;\n align-items: center;\n align-self: center;\n flex-wrap: wrap;\n position: fixed;\n bottom: 10px;\n background: var(--background-color);\n border-radius: 20px;\n padding: 1%;\n box-shadow: 0 4px 10px rgba(0, 0, 0, 0.1);\n z-index: 0;\n border: 2px solid #252344;\n }\n \n \n ",".dock-icon {\n margin-left: 8px;\n margin-right: 8px;\n transition: transform 0.3s;\n width: 6vw;\n height: 6vw;\n max-height: 50px;\n max-width: 50px; \n}\n\n.dock-icon img {\n width: 100%;\n height: 100%;\n border-radius: 10px;\n transition: transform 0.3s;\n}\n\n.dock-icon:hover img {\n transform: scale(1.4);\n}\n\n.tooltip {\n position: absolute;\n bottom: 50%;\n left: 50%;\n transform: translateX(-50%);\n background: rgba(0, 0, 0, 0.7);\n color: #fff;\n padding: 5px 10px;\n border-radius: 5px;\n font-size: 12px;\n\n z-index: 1000;\n}\n",".desktop {\n align-self: flex-start;\n display: flex;\n align-items: self-start;\n align-content: flex-start;\n flex-wrap: wrap;\n background: none;\n height: 100%;\n width: 100%;\n height: fit-content;\n z-index: 0;\n padding: 1.5%;\n}\n\n.desktop_icon {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n flex-wrap: wrap;\n margin-left: 12px;\n margin-right: 12px;\n transition: transform 0.3s;\n width: 8vw;\n padding: 0.5%;\n cursor:'pointer';\n}\n\n .desktop_icon img {\n margin: 0px 0px 0px 0px;\n width: 50%;\n height: 50%;\n max-height: 70px;\n min-width: 50px;\n transition: transform 0.3s;\n cursor: pointer;\n }\n \n .desktop_icon:hover img {\n transform: scale(1.2);\n }\n\n .desktop_icon p {\n color: #fff;\n cursor: move;\n font-size: 1.2vw;\n word-break: break-all;\n text-overflow: ellipsis; \n }\n\n .desktop_icon p:first-letter {\n text-transform: uppercase;\n}","@import url('../index.css');\n\n.folder_content {\n cursor: default;\n overflow-y: auto;\n flex-grow: 1;\n display: flex;\n flex-direction: column;\n align-content: flex-start;\n justify-content: left;\n scrollbar-highlight-color: var(--window-color);\n background-color: var(--background-color);\n box-sizing: border-box;\n \n}\n\n.folder_top_bar {\n display: flex;\n background-color: var(--window-color);\n max-height: 60px;\n min-height: 40px;\n align-items: center;\n justify-content: start;\n box-sizing: border-box;\n \n}\n\n.top_bar_select {\n width: 35%;\n padding: 5px;\n margin-right: 1%;\n font-size: 0.8em;\n border-radius: 4px;\n background-color: var(--window-color);\n color: var(--text-color);\n border: 1px solid #fff;\n}\n\n.folder_top_bar input {\n width: 40%;\n height: 60%;\n margin: 2px;\n border-radius: 4px;\n border: 1px solid #fff;\n margin-right: 1%;\n background-color: var(--window-color);\n color: var(--text-color);}\n\n\n.folder_top_bar input::placeholder {\n color: gray;\n}\n.folder_top_bar button {\n background-color: var(--window-color);\n color: var(--text-color);\n height: 80%;\n border-radius: 5px;\n cursor: pointer;\n display: flex;\n justify-content: center;\n align-items: center;\n margin-left: 1%;\n}\n\n.folder_top_bar button:disabled {\n color: grey;\n cursor: not-allowed;\n}\n\n.folder_top_bar button img{\n width: 100%;\n height: 100%;\n}\n\n\n.folder_entry_linear {\n display: flex;\n flex-direction: row;\n align-items: center;\n justify-content: left;\n align-content: center;\n border-radius: 5px;\n cursor: pointer;\n border: 1px solid #fff;\n padding: 0.5%;\n width: 100%;\n box-sizing: border-box;\n}\n\n.folder_entry_linear:hover {\n background-color: #d1d0e5;\n border: 1px solid #d1d0e5;\n \n}\n\n.folder_entry_linear img { \n min-width: 20px;\n min-height: 20px;\n height: 3vh;\n width: 3vh;\n cursor: pointer;\n margin-left: 2%;\n margin-right: 1%;\n }\n \n .folder_entry_linear p { \n max-width: 90%;\n padding: 5px;\n text-align: center;\n word-break: keep-all;\n transition: transform 0.3s;\n cursor: pointer;\n white-space: nowrap;\n overflow: hidden; \n text-overflow: ellipsis; \n }\n\n.tooltip-container {\n position: relative;\n}\n\n.line_tooltip {\n position: absolute;\n top: 10%;\n left: 80%;\n transform: translateX(-50%);\n background: rgba(0, 0, 0, 0.7);\n color: #fff;\n padding: 5px 10px;\n border-radius: 5px;\n font-size: 15px;\n pointer-events: none;\n z-index: 5;\n}","@import url('../index.css');\n\n.file_window {\n min-width: 35%;\n font-family: 'source-code-pro', Courier, monospace;\n cursor: move; \n z-index: 2;\n display: flex;\n flex-direction: column;\n max-height: 99vh;\n flex: 1;\n height: 70%;\n background-color: var(--background-color);\n\n}\n\n.file_content {\n min-height: 10vh;\n max-height: 95vh;\n width: 100%;\n max-width: 100vw;\n cursor: text;\n text-align: left;\n overflow: scroll;\n overflow-wrap: normal;\n background-color: var(--background-color);\n box-sizing: border-box;\n padding: 1%;\n}\n\n.file_line{\n display: flex;\n padding-inline: 1%;\n white-space: pre-wrap;\n}\n\n.file_output {\n user-select: text;\n color: var(--text-color);\n background-color: var(--background-color);\n}\n\n.file_output strong:first-letter {\n text-transform: uppercase;\n}\n\n.file_top_buttons {\n display: flex;\n background-color: var(--window-color);\n max-height: 60px;\n min-height: 40px;\n align-items: center;\n align-items: space-between;\n justify-content: start;\n}\n\n.file_button {\n margin: 1%;\n border-radius: 3px;\n border: 1px solid #ffff;\n color: var(--text-color);\n background-color: var(--window-color);\n cursor: pointer;\n}","@import url('../index.css');\n\n.app_window {\n font-family: 'Courier New', Courier, monospace;\n border-radius: 3px;\n border: 1px solid var(--window-color);\n z-index: 2;\n display: flex;\n flex-direction: column;\n width: 100%;\n height: 100%; \n box-sizing: border-box;\n pointer-events: auto; /* Allows clicks to pass through this div */\n \n}\n\n\n.app_bar {\n display: flex;\n background-color: var(--window-color);\n padding-inline: 1%;\n cursor: move;\n max-height: 55px;\n min-height: 20px;\n align-items: center;\n align-items: space-between;\n justify-content: space-between;\n position: -webkit-sticky; /* For Safari */\n pointer-events: auto;\n}\n\n.bar_header {\n text-align: center;\n align-items: center;\n flex: 1;\n white-space: nowrap;\n overflow: hidden;\n padding: 1% 3%;\n text-overflow: ellipsis; \n}\n\n.bar_header:first-letter {\n text-transform: uppercase;\n}\n\n.buttons {\n display: flex;\n align-items: center;\n justify-content: left;\n width: 20%;\n cursor: pointer;\n box-sizing: border-box;\n width: auto; /* Adjust width based on content */\n }\n\n.bar_button {\n width: 30%;\n min-width: 12px;\n min-height: 12px;\n border-radius: 100%;\n margin-right: 3px;\n margin-left: 3px;\n cursor: pointer;\n}\n\n.close {\n background-color: #ff5f56;\n }\n \n .minimize {\n background-color: #ffbd2e;\n }\n \n .disabled {\n background-color: #838281;\n pointer-events: none;\n }\n\n .maximize {\n background-color: #27c93f;\n }\n\n ",".react-resizable {\n position: relative;\n}\n.react-resizable-handle {\n position: absolute;\n width: 20px;\n height: 20px;\n background-repeat: no-repeat;\n background-origin: content-box;\n box-sizing: border-box;\n background-image: url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA2IDYiIHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiNmZmZmZmYwMCIgeD0iMHB4IiB5PSIwcHgiIHdpZHRoPSI2cHgiIGhlaWdodD0iNnB4Ij48ZyBvcGFjaXR5PSIwLjMwMiI+PHBhdGggZD0iTSA2IDYgTCAwIDYgTCAwIDQuMiBMIDQgNC4yIEwgNC4yIDQuMiBMIDQuMiAwIEwgNiAwIEwgNiA2IEwgNiA2IFoiIGZpbGw9IiMwMDAwMDAiLz48L2c+PC9zdmc+');\n background-position: bottom right;\n padding: 0 3px 3px 0;\n}\n.react-resizable-handle-sw {\n bottom: 0;\n left: 0;\n cursor: sw-resize;\n transform: rotate(90deg);\n}\n.react-resizable-handle-se {\n bottom: 0;\n right: 0;\n cursor: se-resize;\n}\n.react-resizable-handle-nw {\n top: 0;\n left: 0;\n cursor: nw-resize;\n transform: rotate(180deg);\n}\n.react-resizable-handle-ne {\n top: 0;\n right: 0;\n cursor: ne-resize;\n transform: rotate(270deg);\n}\n.react-resizable-handle-w,\n.react-resizable-handle-e {\n top: 50%;\n margin-top: -10px;\n cursor: ew-resize;\n}\n.react-resizable-handle-w {\n left: 0;\n transform: rotate(135deg);\n}\n.react-resizable-handle-e {\n right: 0;\n transform: rotate(315deg);\n}\n.react-resizable-handle-n,\n.react-resizable-handle-s {\n left: 50%;\n margin-left: -10px;\n cursor: ns-resize;\n}\n.react-resizable-handle-n {\n top: 0;\n transform: rotate(225deg);\n}\n.react-resizable-handle-s {\n bottom: 0;\n transform: rotate(45deg);\n}","\n.term_content {\n background-color: var(--background-color);\n min-height: 20vh;\n width: 100%;\n max-height: 99vh;\n text-align: left;\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n height: 100%;\n overflow: scroll;\n pointer-events: auto;\n scrollbar-color: grey;\n}\n\n\n.input {\n background-color: var(--background-color);\n color: var(--text-color);;\n border: none;\n outline: none;\n font-family: 'Courier New', Courier, monospace;\n width: 100%;\n }\n\n.prompt_line{\n display: flex;\n padding-inline: 1%;\n flex-direction: row;\n width: 100%;\n box-sizing: border-box;\n}\n\n.output {\n display: flex;\n flex-direction: column;\n justify-content: flex-end;\n width: 100%;\n user-select: text;\n}\n\n.prompt_string {\n width: fit-content;\n}\n\n.output_line{\n display: flex;\n padding-inline: 1%;\n user-select: text;\n}\n\n.selectable {\n -webkit-user-select: text; /* Safari */\n -moz-user-select: text; /* Firefox */\n -ms-user-select: text; /* IE/Edge */\n user-select: text; /* Non-prefixed version */\n}","/* OpenWindowsSpace.css */\n\n.open-windows-space {\n display: flex;\n flex-wrap: wrap;\n justify-content: center;\n align-items: center;\n background-color: transparent; \n z-index: 1;\n max-width: 100vw;\n max-height: 100vh;\n pointer-events: none; /* Allow clicks to pass through */\n height: 100vh;\n width: 100vw;\n box-sizing: border-box;\n position: absolute;\n \n}\n","@import url('../index.css');\n\n.settings {\n padding: 3%;\n background-color: var(--background-color);\n color: var(--text-color);\n display: flex;\n align-items: center;\n height: 100%;\n display: flex;\n flex-direction: column;\n justify-content: center;\n cursor: pointer;\n align-items: center;\n }\n\n.settings_line {\n display: flex;\n justify-content: space-between;\n align-items: center;\n width: 100%;\n margin: 0.5%;\n border: 1px solid var(--text-color);\n border-radius: 3px;\n padding: 2%;\n }\n\n .toggle-switch {\n margin-left: 20px;\n position: relative;\n display: inline-block;\n width: 40px;\n height: 20px;\n }\n \n .toggle-switch input {\n display: none;\n }\n \n .slider {\n position: absolute;\n cursor: pointer;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background-color: #ccc;\n transition: 0.4s;\n border-radius: 20px;\n }\n \n .slider:before {\n position: absolute;\n content: \"\";\n height: 16px;\n width: 16px;\n left: 2px;\n bottom: 2px;\n background-color: white;\n transition: 0.4s;\n border-radius: 50%;\n }\n \n input:checked + .slider {\n background-color: #2196F3;\n }\n \n input:checked + .slider:before {\n transform: translateX(20px);\n }\n\n .settings_button {\n background-color: var(--background-color);\n border-radius: 5px;\n padding: 3px;\n cursor: pointer;\n display: flex;\n justify-content: center;\n border-color: var(--text-color);\n }\n\n .settings_button:hover {\n background-color: #ccc;/* Darker red */\n }\n\n .settings_button img {\n max-height: 50px;\n max-width: 50px;\n height: 2.5vh;\n\n color: var(--text-color);\n }"],"names":[],"sourceRoot":""} \ No newline at end of file diff --git a/static/css/main.f07419a5.css b/static/css/main.f07419a5.css deleted file mode 100644 index a8d3d25..0000000 --- a/static/css/main.f07419a5.css +++ /dev/null @@ -1,2 +0,0 @@ -:root{--background-color:#fff;--reverse-background-color:#232239;--text-color:#000;--reverse-text-color:#fff;--window-color:#d1d3db}[data-theme=dark]{--background-color:#232239;--reverse-background-color:#fff;--text-color:#fff;--reverse-text-color:#000;--window-color:#5e5e61}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:#fff;background-color:var(--background-color);color:#000;color:var(--text-color);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;margin:0}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}.App{background:linear-gradient(45deg,#af3a16,#77116f,#512750,#2a001e,#5e2750,#77216f);flex-direction:row;min-height:100vh}.App,.suspended_screen{align-items:center;color:var(--text-color);display:flex;height:100vh;justify-content:center;text-align:center;width:100vw}.suspended_screen{background-color:var(--background-color);flex-direction:column;font-size:1.5rem;font-weight:600;padding:2%}.suspended_screen button{background-color:var(--window-color);border:1px solid var(--reverse-background-color);border-radius:5px;color:var(--text-color);margin-top:1.5%}.suspended_screen img{max-height:100px;max-width:100px}.octocat{bottom:3px;height:70px;left:1px;position:fixed;transition:transform .3s;width:70px}.octocat:hover{transform:scale(1.1)}.app_window{border:1px solid var(--window-color);border-radius:3px;box-sizing:border-box;flex-direction:column;font-family:Courier New,Courier,monospace;height:100%;width:100%;z-index:2}.app_bar,.app_window{display:flex;pointer-events:auto}.app_bar{align-items:center;align-items:space-between;background-color:var(--window-color);cursor:move;justify-content:space-between;max-height:55px;min-height:20px;padding-inline:1%;position:-webkit-sticky}.bar_header{align-items:center;flex:1 1;overflow:hidden;padding:1% 3%;text-align:center;text-overflow:ellipsis;white-space:nowrap}.bar_header:first-letter{text-transform:uppercase}.buttons{align-items:center;box-sizing:border-box;cursor:pointer;display:flex;justify-content:left;width:20%;width:auto}.bar_button{border-radius:100%;cursor:pointer;margin-left:3px;margin-right:3px;min-height:12px;min-width:12px;width:30%}.close{background-color:#ff5f56}.minimize{background-color:#ffbd2e}.disabled{background-color:#838281;pointer-events:none}.maximize{background-color:#27c93f}.react-resizable{position:relative}.react-resizable-handle{background-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiNmZmZmZmYwMCIgd2lkdGg9IjYiIGhlaWdodD0iNiI+PHBhdGggZD0iTTYgNkgwVjQuMmg0LjJWMEg2djZaIiBvcGFjaXR5PSIuMzAyIi8+PC9zdmc+);background-origin:content-box;background-position:100% 100%;background-repeat:no-repeat;box-sizing:border-box;height:20px;padding:0 3px 3px 0;position:absolute;width:20px}.react-resizable-handle-sw{bottom:0;cursor:sw-resize;left:0;transform:rotate(90deg)}.react-resizable-handle-se{bottom:0;cursor:se-resize;right:0}.react-resizable-handle-nw{cursor:nw-resize;left:0;top:0;transform:rotate(180deg)}.react-resizable-handle-ne{cursor:ne-resize;right:0;top:0;transform:rotate(270deg)}.react-resizable-handle-e,.react-resizable-handle-w{cursor:ew-resize;margin-top:-10px;top:50%}.react-resizable-handle-w{left:0;transform:rotate(135deg)}.react-resizable-handle-e{right:0;transform:rotate(315deg)}.react-resizable-handle-n,.react-resizable-handle-s{cursor:ns-resize;left:50%;margin-left:-10px}.react-resizable-handle-n{top:0;transform:rotate(225deg)}.react-resizable-handle-s{bottom:0;transform:rotate(45deg)}.dock{align-items:center;align-self:center;background:var(--background-color);border:2px solid #252344;border-radius:20px;bottom:10px;box-shadow:0 4px 10px #0000001a;display:flex;flex-wrap:wrap;justify-content:space-between;padding:1%;position:fixed;z-index:0}.dock-icon{height:6vw;margin-left:8px;margin-right:8px;max-height:50px;max-width:50px;transition:transform .3s;width:6vw}.dock-icon img{border-radius:10px;height:100%;transition:transform .3s;width:100%}.dock-icon:hover img{transform:scale(1.4)}.tooltip{background:#000000b3;border-radius:5px;bottom:50%;color:#fff;font-size:12px;left:50%;padding:5px 10px;position:absolute;transform:translateX(-50%);z-index:1000}.desktop{align-content:flex-start;align-items:self-start;align-self:flex-start;background:none;height:100%;height:-webkit-fit-content;height:-moz-fit-content;height:fit-content;padding:1.5%;width:100%;z-index:0}.desktop,.desktop_icon{display:flex;flex-wrap:wrap}.desktop_icon{align-items:center;cursor:"pointer";flex-direction:column;justify-content:center;margin-left:12px;margin-right:12px;padding:.5%;transition:transform .3s;width:8vw}.desktop_icon img{cursor:pointer;height:50%;margin:0;max-height:70px;min-width:50px;transition:transform .3s;width:50%}.desktop_icon:hover img{transform:scale(1.2)}.desktop_icon p{color:#fff;cursor:move;font-size:1.2vw;text-overflow:ellipsis;word-break:break-all}.desktop_icon p:first-letter{text-transform:uppercase}.folder_content{scrollbar-highlight-color:var(--window-color);align-content:flex-start;background-color:var(--background-color);cursor:default;flex-direction:column;flex-grow:1;justify-content:left;overflow-y:auto}.folder_content,.folder_top_bar{box-sizing:border-box;display:flex}.folder_top_bar{align-items:center;background-color:var(--window-color);justify-content:start;max-height:60px;min-height:40px}.top_bar_select{font-size:.8em;margin-right:1%;padding:5px;width:35%}.folder_top_bar input,.top_bar_select{background-color:var(--window-color);border:1px solid #fff;border-radius:4px;color:var(--text-color)}.folder_top_bar input{height:60%;margin:2px 1% 2px 2px;width:40%}.folder_top_bar input::placeholder{color:gray}.folder_top_bar button{align-items:center;background-color:var(--window-color);border-radius:5px;color:var(--text-color);cursor:pointer;display:flex;height:80%;justify-content:center;margin-left:1%}.folder_top_bar button:disabled{color:grey;cursor:not-allowed}.folder_top_bar button img{height:100%;width:100%}.folder_entry_linear{align-content:center;align-items:center;border:1px solid #fff;border-radius:5px;box-sizing:border-box;cursor:pointer;display:flex;flex-direction:row;justify-content:left;padding:.5%;width:100%}.folder_entry_linear:hover{background-color:#d1d0e5;border:1px solid #d1d0e5}.folder_entry_linear img{cursor:pointer;height:3vh;margin-left:2%;margin-right:1%;min-height:20px;min-width:20px;width:3vh}.folder_entry_linear p{cursor:pointer;max-width:90%;overflow:hidden;padding:5px;text-align:center;text-overflow:ellipsis;transition:transform .3s;white-space:nowrap;word-break:keep-all}.tooltip-container{position:relative}.line_tooltip{background:#000000b3;border-radius:5px;color:#fff;font-size:15px;left:80%;padding:5px 10px;pointer-events:none;position:absolute;top:30%;transform:translateX(-50%);z-index:1000}.file_window{cursor:move;display:flex;flex:1 1;flex-direction:column;font-family:source-code-pro,Courier,monospace;height:70%;max-height:99vh;min-width:35%;z-index:2}.file_content,.file_window{background-color:var(--background-color)}.file_content{box-sizing:border-box;cursor:text;max-height:95vh;max-width:100vw;min-height:10vh;overflow:scroll;overflow-wrap:normal;padding:1%;text-align:left;width:100%}.file_line{display:flex;padding-inline:1%;white-space:pre-wrap}.file_output{background-color:var(--background-color);color:var(--text-color);-webkit-user-select:text;user-select:text}.file_output strong:first-letter{text-transform:uppercase}.file_top_buttons{align-items:center;align-items:space-between;display:flex;justify-content:start;max-height:60px;min-height:40px}.file_button,.file_top_buttons{background-color:var(--window-color)}.file_button{border:1px solid #fff;border-radius:3px;color:var(--text-color);cursor:pointer;margin:1%}.term_content{align-items:flex-start;display:flex;flex-direction:column;height:100%;max-height:99vh;min-height:20vh;overflow:scroll;pointer-events:auto;scrollbar-color:grey;text-align:left}.input,.term_content{background-color:var(--background-color);width:100%}.input{border:none;color:var(--text-color);font-family:Courier New,Courier,monospace;outline:none}.prompt_line{box-sizing:border-box;flex-direction:row;padding-inline:1%}.output,.prompt_line{display:flex;width:100%}.output{flex-direction:column;justify-content:flex-end;-webkit-user-select:text;user-select:text}.prompt_string{width:-webkit-fit-content;width:-moz-fit-content;width:fit-content}.output_line{display:flex;padding-inline:1%}.output_line,.selectable{-webkit-user-select:text;user-select:text}.open-windows-space{background-color:initial;box-sizing:border-box;flex-wrap:wrap;height:100vh;max-height:100vh;max-width:100vw;pointer-events:none;position:absolute;width:100vw;z-index:1}.open-windows-space,.settings{align-items:center;display:flex;justify-content:center}.settings{background-color:var(--background-color);color:var(--text-color);cursor:pointer;flex-direction:column;height:100%;padding:3%}.settings_line{align-items:center;border:1px solid var(--text-color);border-radius:3px;display:flex;justify-content:space-between;margin:.5%;padding:2%;width:100%}.toggle-switch{display:inline-block;height:20px;margin-left:20px;position:relative;width:40px}.toggle-switch input{display:none}.slider{background-color:#ccc;border-radius:20px;bottom:0;cursor:pointer;left:0;right:0;top:0}.slider,.slider:before{position:absolute;transition:.4s}.slider:before{background-color:#fff;border-radius:50%;bottom:2px;content:"";height:16px;left:2px;width:16px}input:checked+.slider{background-color:#2196f3}input:checked+.slider:before{transform:translateX(20px)}.settings_button{background-color:var(--background-color);border-color:var(--text-color);border-radius:5px;cursor:pointer;display:flex;justify-content:center;padding:3px}.settings_button:hover{background-color:#ccc}.settings_button img{color:var(--text-color);height:2.5vh;max-height:50px;max-width:50px} -/*# sourceMappingURL=main.f07419a5.css.map*/ \ No newline at end of file diff --git a/static/css/main.f07419a5.css.map b/static/css/main.f07419a5.css.map deleted file mode 100644 index a3dbc80..0000000 --- a/static/css/main.f07419a5.css.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"static/css/main.f07419a5.css","mappings":"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","sources":["styles/index.css","styles/App.css","styles/view/AppWindow.css","../node_modules/react-resizable/css/styles.css","styles/view/Dock.css","styles/view/DockIcon.css","styles/view/Desktop.css","styles/view/AppFolder.css","styles/view/TextFile.css","styles/view/Terminal.css","styles/view/OpenWindowsSpace.css","styles/view/Settings.css"],"sourcesContent":["\n\n:root {\n --background-color: #ffffff;\n --reverse-background-color: #232239;\n --text-color: #000000;\n --reverse-text-color: #ffffff;\n --window-color: rgb(209, 211, 219);\n}\n\n[data-theme='dark'] {\n --background-color: #232239;\n --reverse-background-color: #ffffff;\n --text-color: #ffffff;\n --reverse-text-color: #000000;\n --window-color: rgb(94, 94, 97);\n}\n\n\nbody {\n margin: 0;\n font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen',\n 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue',\n sans-serif;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n background-color: var(--background-color);\n color: var(--text-color);\n}\n\ncode {\n font-family: source-code-pro, Menlo, Monaco, Consolas, 'Courier New',\n monospace;\n}\n","@import url('index.css');\n\n.App {\n text-align: center;\n min-height: 100vh;\n height: 100vh;\n width: 100vw;\n display: flex;\n color: var(--text-color);\n background: linear-gradient(45deg, #af3a16, #77116f, #512750, #2a001e, #5e2750, #77216f);\n flex-direction: row;\n justify-content: center;\n align-items: center;\n}\n\n.suspended_screen {\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n height: 100vh;\n width: 100vw;\n background-color: var(--background-color);\n color: var(--text-color);\n font-size: 1.5rem;\n font-weight: 600;\n text-align: center;\n padding: 2%;\n}\n\n.suspended_screen button {\n margin-top: 1.5%;\n border-radius: 5px;\n color: var(--text-color);\n background-color: var(--window-color);\n border: 1px solid var(--reverse-background-color);\n}\n\n.suspended_screen img {\n max-width: 100px;\n max-height: 100px;\n}\n\n.octocat {\n position: fixed;\n bottom: 3px;\n left: 1px;\n width: 70px;\n height: 70px;\n transition: transform 0.3s;\n}\n\n.octocat:hover {\n transform: scale(1.1);\n}","@import url('../index.css');\n\n.app_window {\n font-family: 'Courier New', Courier, monospace;\n border-radius: 3px;\n border: 1px solid var(--window-color);\n z-index: 2;\n display: flex;\n flex-direction: column;\n width: 100%;\n height: 100%; \n box-sizing: border-box;\n pointer-events: auto; /* Allows clicks to pass through this div */\n \n}\n\n\n.app_bar {\n display: flex;\n background-color: var(--window-color);\n padding-inline: 1%;\n cursor: move;\n max-height: 55px;\n min-height: 20px;\n align-items: center;\n align-items: space-between;\n justify-content: space-between;\n position: -webkit-sticky; /* For Safari */\n pointer-events: auto;\n}\n\n.bar_header {\n text-align: center;\n align-items: center;\n flex: 1;\n white-space: nowrap;\n overflow: hidden;\n padding: 1% 3%;\n text-overflow: ellipsis; \n}\n\n.bar_header:first-letter {\n text-transform: uppercase;\n}\n\n.buttons {\n display: flex;\n align-items: center;\n justify-content: left;\n width: 20%;\n cursor: pointer;\n box-sizing: border-box;\n width: auto; /* Adjust width based on content */\n }\n\n.bar_button {\n width: 30%;\n min-width: 12px;\n min-height: 12px;\n border-radius: 100%;\n margin-right: 3px;\n margin-left: 3px;\n cursor: pointer;\n}\n\n.close {\n background-color: #ff5f56;\n }\n \n .minimize {\n background-color: #ffbd2e;\n }\n \n .disabled {\n background-color: #838281;\n pointer-events: none;\n }\n\n .maximize {\n background-color: #27c93f;\n }\n\n ",".react-resizable {\n position: relative;\n}\n.react-resizable-handle {\n position: absolute;\n width: 20px;\n height: 20px;\n background-repeat: no-repeat;\n background-origin: content-box;\n box-sizing: border-box;\n background-image: url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA2IDYiIHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiNmZmZmZmYwMCIgeD0iMHB4IiB5PSIwcHgiIHdpZHRoPSI2cHgiIGhlaWdodD0iNnB4Ij48ZyBvcGFjaXR5PSIwLjMwMiI+PHBhdGggZD0iTSA2IDYgTCAwIDYgTCAwIDQuMiBMIDQgNC4yIEwgNC4yIDQuMiBMIDQuMiAwIEwgNiAwIEwgNiA2IEwgNiA2IFoiIGZpbGw9IiMwMDAwMDAiLz48L2c+PC9zdmc+');\n background-position: bottom right;\n padding: 0 3px 3px 0;\n}\n.react-resizable-handle-sw {\n bottom: 0;\n left: 0;\n cursor: sw-resize;\n transform: rotate(90deg);\n}\n.react-resizable-handle-se {\n bottom: 0;\n right: 0;\n cursor: se-resize;\n}\n.react-resizable-handle-nw {\n top: 0;\n left: 0;\n cursor: nw-resize;\n transform: rotate(180deg);\n}\n.react-resizable-handle-ne {\n top: 0;\n right: 0;\n cursor: ne-resize;\n transform: rotate(270deg);\n}\n.react-resizable-handle-w,\n.react-resizable-handle-e {\n top: 50%;\n margin-top: -10px;\n cursor: ew-resize;\n}\n.react-resizable-handle-w {\n left: 0;\n transform: rotate(135deg);\n}\n.react-resizable-handle-e {\n right: 0;\n transform: rotate(315deg);\n}\n.react-resizable-handle-n,\n.react-resizable-handle-s {\n left: 50%;\n margin-left: -10px;\n cursor: ns-resize;\n}\n.react-resizable-handle-n {\n top: 0;\n transform: rotate(225deg);\n}\n.react-resizable-handle-s {\n bottom: 0;\n transform: rotate(45deg);\n}","@import url('../index.css');\n\n.dock {\n display: flex;\n justify-content: space-between;\n align-items: center;\n align-self: center;\n flex-wrap: wrap;\n position: fixed;\n bottom: 10px;\n background: var(--background-color);\n border-radius: 20px;\n padding: 1%;\n box-shadow: 0 4px 10px rgba(0, 0, 0, 0.1);\n z-index: 0;\n border: 2px solid #252344;\n }\n \n \n ",".dock-icon {\n margin-left: 8px;\n margin-right: 8px;\n transition: transform 0.3s;\n width: 6vw;\n height: 6vw;\n max-height: 50px;\n max-width: 50px; \n}\n\n.dock-icon img {\n width: 100%;\n height: 100%;\n border-radius: 10px;\n transition: transform 0.3s;\n}\n\n.dock-icon:hover img {\n transform: scale(1.4);\n}\n\n.tooltip {\n position: absolute;\n bottom: 50%;\n left: 50%;\n transform: translateX(-50%);\n background: rgba(0, 0, 0, 0.7);\n color: #fff;\n padding: 5px 10px;\n border-radius: 5px;\n font-size: 12px;\n\n z-index: 1000;\n}\n",".desktop {\n align-self: flex-start;\n display: flex;\n align-items: self-start;\n align-content: flex-start;\n flex-wrap: wrap;\n background: none;\n height: 100%;\n width: 100%;\n height: fit-content;\n z-index: 0;\n padding: 1.5%;\n}\n\n.desktop_icon {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n flex-wrap: wrap;\n margin-left: 12px;\n margin-right: 12px;\n transition: transform 0.3s;\n width: 8vw;\n padding: 0.5%;\n cursor:'pointer';\n}\n\n .desktop_icon img {\n margin: 0px 0px 0px 0px;\n width: 50%;\n height: 50%;\n max-height: 70px;\n min-width: 50px;\n transition: transform 0.3s;\n cursor: pointer;\n }\n \n .desktop_icon:hover img {\n transform: scale(1.2);\n }\n\n .desktop_icon p {\n color: #fff;\n cursor: move;\n font-size: 1.2vw;\n word-break: break-all;\n text-overflow: ellipsis; \n }\n\n .desktop_icon p:first-letter {\n text-transform: uppercase;\n}","@import url('../index.css');\n\n.folder_content {\n cursor: default;\n overflow-y: auto;\n flex-grow: 1;\n display: flex;\n flex-direction: column;\n align-content: flex-start;\n justify-content: left;\n scrollbar-highlight-color: var(--window-color);\n background-color: var(--background-color);\n box-sizing: border-box;\n \n}\n\n.folder_top_bar {\n display: flex;\n background-color: var(--window-color);\n max-height: 60px;\n min-height: 40px;\n align-items: center;\n justify-content: start;\n box-sizing: border-box;\n \n}\n\n.top_bar_select {\n width: 35%;\n padding: 5px;\n margin-right: 1%;\n font-size: 0.8em;\n border-radius: 4px;\n background-color: var(--window-color);\n color: var(--text-color);\n border: 1px solid #fff;\n}\n\n.folder_top_bar input {\n width: 40%;\n height: 60%;\n margin: 2px;\n border-radius: 4px;\n border: 1px solid #fff;\n margin-right: 1%;\n background-color: var(--window-color);\n color: var(--text-color);}\n\n\n.folder_top_bar input::placeholder {\n color: gray;\n}\n.folder_top_bar button {\n background-color: var(--window-color);\n color: var(--text-color);\n height: 80%;\n border-radius: 5px;\n cursor: pointer;\n display: flex;\n justify-content: center;\n align-items: center;\n margin-left: 1%;\n}\n\n.folder_top_bar button:disabled {\n color: grey;\n cursor: not-allowed;\n}\n\n.folder_top_bar button img{\n width: 100%;\n height: 100%;\n}\n\n\n.folder_entry_linear {\n display: flex;\n flex-direction: row;\n align-items: center;\n justify-content: left;\n align-content: center;\n border-radius: 5px;\n cursor: pointer;\n border: 1px solid #fff;\n padding: 0.5%;\n width: 100%;\n box-sizing: border-box;\n}\n\n.folder_entry_linear:hover {\n background-color: #d1d0e5;\n border: 1px solid #d1d0e5;\n \n}\n\n.folder_entry_linear img { \n min-width: 20px;\n min-height: 20px;\n height: 3vh;\n width: 3vh;\n cursor: pointer;\n margin-left: 2%;\n margin-right: 1%;\n }\n \n .folder_entry_linear p { \n max-width: 90%;\n padding: 5px;\n text-align: center;\n word-break: keep-all;\n transition: transform 0.3s;\n cursor: pointer;\n white-space: nowrap;\n overflow: hidden; \n text-overflow: ellipsis; \n }\n\n.tooltip-container {\n position: relative;\n}\n\n.line_tooltip {\n position: absolute;\n top: 30%;\n left: 80%;\n transform: translateX(-50%);\n background: rgba(0, 0, 0, 0.7);\n color: #fff;\n padding: 5px 10px;\n border-radius: 5px;\n font-size: 15px;\n pointer-events: none;\n z-index: 1000;\n}\n\n","@import url('../index.css');\n\n.file_window {\n min-width: 35%;\n font-family: 'source-code-pro', Courier, monospace;\n cursor: move; \n z-index: 2;\n display: flex;\n flex-direction: column;\n max-height: 99vh;\n flex: 1;\n height: 70%;\n background-color: var(--background-color);\n\n}\n\n.file_content {\n min-height: 10vh;\n max-height: 95vh;\n width: 100%;\n max-width: 100vw;\n cursor: text;\n text-align: left;\n overflow: scroll;\n overflow-wrap: normal;\n background-color: var(--background-color);\n box-sizing: border-box;\n padding: 1%;\n}\n\n.file_line{\n display: flex;\n padding-inline: 1%;\n white-space: pre-wrap;\n}\n\n.file_output {\n user-select: text;\n color: var(--text-color);\n background-color: var(--background-color);\n}\n\n.file_output strong:first-letter {\n text-transform: uppercase;\n}\n\n.file_top_buttons {\n display: flex;\n background-color: var(--window-color);\n max-height: 60px;\n min-height: 40px;\n align-items: center;\n align-items: space-between;\n justify-content: start;\n}\n\n.file_button {\n margin: 1%;\n border-radius: 3px;\n border: 1px solid #ffff;\n color: var(--text-color);\n background-color: var(--window-color);\n cursor: pointer;\n}","\n.term_content {\n background-color: var(--background-color);\n min-height: 20vh;\n width: 100%;\n max-height: 99vh;\n text-align: left;\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n height: 100%;\n overflow: scroll;\n pointer-events: auto;\n scrollbar-color: grey;\n}\n\n\n.input {\n background-color: var(--background-color);\n color: var(--text-color);;\n border: none;\n outline: none;\n font-family: 'Courier New', Courier, monospace;\n width: 100%;\n }\n\n.prompt_line{\n display: flex;\n padding-inline: 1%;\n flex-direction: row;\n width: 100%;\n box-sizing: border-box;\n}\n\n.output {\n display: flex;\n flex-direction: column;\n justify-content: flex-end;\n width: 100%;\n user-select: text;\n}\n\n.prompt_string {\n width: fit-content;\n}\n\n.output_line{\n display: flex;\n padding-inline: 1%;\n user-select: text;\n}\n\n.selectable {\n -webkit-user-select: text; /* Safari */\n -moz-user-select: text; /* Firefox */\n -ms-user-select: text; /* IE/Edge */\n user-select: text; /* Non-prefixed version */\n}","/* OpenWindowsSpace.css */\n\n.open-windows-space {\n display: flex;\n flex-wrap: wrap;\n justify-content: center;\n align-items: center;\n background-color: transparent; \n z-index: 1;\n max-width: 100vw;\n max-height: 100vh;\n pointer-events: none; /* Allow clicks to pass through */\n height: 100vh;\n width: 100vw;\n box-sizing: border-box;\n position: absolute;\n \n}\n","@import url('../index.css');\n\n.settings {\n padding: 3%;\n background-color: var(--background-color);\n color: var(--text-color);\n display: flex;\n align-items: center;\n height: 100%;\n display: flex;\n flex-direction: column;\n justify-content: center;\n cursor: pointer;\n align-items: center;\n }\n\n.settings_line {\n display: flex;\n justify-content: space-between;\n align-items: center;\n width: 100%;\n margin: 0.5%;\n border: 1px solid var(--text-color);\n border-radius: 3px;\n padding: 2%;\n }\n\n .toggle-switch {\n margin-left: 20px;\n position: relative;\n display: inline-block;\n width: 40px;\n height: 20px;\n }\n \n .toggle-switch input {\n display: none;\n }\n \n .slider {\n position: absolute;\n cursor: pointer;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background-color: #ccc;\n transition: 0.4s;\n border-radius: 20px;\n }\n \n .slider:before {\n position: absolute;\n content: \"\";\n height: 16px;\n width: 16px;\n left: 2px;\n bottom: 2px;\n background-color: white;\n transition: 0.4s;\n border-radius: 50%;\n }\n \n input:checked + .slider {\n background-color: #2196F3;\n }\n \n input:checked + .slider:before {\n transform: translateX(20px);\n }\n\n .settings_button {\n background-color: var(--background-color);\n border-radius: 5px;\n padding: 3px;\n cursor: pointer;\n display: flex;\n justify-content: center;\n border-color: var(--text-color);\n }\n\n .settings_button:hover {\n background-color: #ccc;/* Darker red */\n }\n\n .settings_button img {\n max-height: 50px;\n max-width: 50px;\n height: 2.5vh;\n\n color: var(--text-color);\n }"],"names":[],"sourceRoot":""} \ No newline at end of file diff --git a/static/js/main.07065c38.js b/static/js/main.07065c38.js deleted file mode 100644 index 90a4720..0000000 --- a/static/js/main.07065c38.js +++ /dev/null @@ -1,3 +0,0 @@ -/*! For license information please see main.07065c38.js.LICENSE.txt */ -(()=>{var e={24:(e,t,n)=>{"use strict";function r(e){var t,n,o="";if("string"==typeof e||"number"==typeof e)o+=e;else if("object"==typeof e)if(Array.isArray(e))for(t=0;to,default:()=>l});const l=o},240:e=>{"use strict";var t=Object.prototype.hasOwnProperty,n=Object.prototype.toString,r=Object.defineProperty,o=Object.getOwnPropertyDescriptor,l=function(e){return"function"===typeof Array.isArray?Array.isArray(e):"[object Array]"===n.call(e)},i=function(e){if(!e||"[object Object]"!==n.call(e))return!1;var r,o=t.call(e,"constructor"),l=e.constructor&&e.constructor.prototype&&t.call(e.constructor.prototype,"isPrototypeOf");if(e.constructor&&!o&&!l)return!1;for(r in e);return"undefined"===typeof r||t.call(e,r)},a=function(e,t){r&&"__proto__"===t.name?r(e,t.name,{enumerable:!0,configurable:!0,value:t.newValue,writable:!0}):e[t.name]=t.newValue},u=function(e,n){if("__proto__"===n){if(!t.call(e,n))return;if(o)return o(e,n).value}return e[n]};e.exports=function e(){var t,n,r,o,s,c,f=arguments[0],d=1,p=arguments.length,h=!1;for("boolean"===typeof f&&(h=f,f=arguments[1]||{},d=2),(null==f||"object"!==typeof f&&"function"!==typeof f)&&(f={});d{var t=/\/\*[^*]*\*+([^/*][^*]*\*+)*\//g,n=/\n/g,r=/^\s*/,o=/^(\*?[-#/*\\\w]+(\[[0-9a-z_-]+\])?)\s*/,l=/^:\s*/,i=/^((?:'(?:\\'|.)*?'|"(?:\\"|.)*?"|\([^)]*?\)|[^};])+)/,a=/^[;\s]*/,u=/^\s+|\s+$/g,s="";function c(e){return e?e.replace(u,s):s}e.exports=function(e,u){if("string"!==typeof e)throw new TypeError("First argument must be a string");if(!e)return[];u=u||{};var f=1,d=1;function p(e){var t=e.match(n);t&&(f+=t.length);var r=e.lastIndexOf("\n");d=~r?e.length-r:d+e.length}function h(){var e={line:f,column:d};return function(t){return t.position=new g(e),A(),t}}function g(e){this.start=e,this.end={line:f,column:d},this.source=u.source}g.prototype.content=e;var m=[];function y(t){var n=new Error(u.source+":"+f+":"+d+": "+t);if(n.reason=t,n.filename=u.source,n.line=f,n.column=d,n.source=e,!u.silent)throw n;m.push(n)}function v(t){var n=t.exec(e);if(n){var r=n[0];return p(r),e=e.slice(r.length),n}}function A(){v(r)}function b(e){var t;for(e=e||[];t=k();)!1!==t&&e.push(t);return e}function k(){var t=h();if("/"==e.charAt(0)&&"*"==e.charAt(1)){for(var n=2;s!=e.charAt(n)&&("*"!=e.charAt(n)||"/"!=e.charAt(n+1));)++n;if(n+=2,s===e.charAt(n-1))return y("End of comment missing");var r=e.slice(2,n-2);return d+=2,p(r),e=e.slice(n),d+=2,t({type:"comment",comment:r})}}function w(){var e=h(),n=v(o);if(n){if(k(),!v(l))return y("property missing ':'");var r=v(i),u=e({type:"declaration",property:c(n[0].replace(t,s)),value:r?c(r[0].replace(t,s)):s});return v(a),u}}return A(),function(){var e,t=[];for(b(t);e=w();)!1!==e&&(t.push(e),b(t));return t}()}},497:(e,t,n)=>{"use strict";var r=n(218);function o(){}function l(){}l.resetWarningCache=o,e.exports=function(){function e(e,t,n,o,l,i){if(i!==r){var a=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw a.name="Invariant Violation",a}}function t(){return e}e.isRequired=e;var n={array:e,bigint:e,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:t,element:e,elementType:e,instanceOf:t,node:e,objectOf:t,oneOf:t,oneOfType:t,shape:t,exact:t,checkPropTypes:l,resetWarningCache:o};return n.PropTypes=n,n}},173:(e,t,n)=>{e.exports=n(497)()},218:e=>{"use strict";e.exports="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"},730:(e,t,n)=>{"use strict";var r=n(43),o=n(853);function l(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,n=1;n