From fd19c7f97122dcf99161eda669da8b07a673b470 Mon Sep 17 00:00:00 2001 From: Alexander Friesen Date: Tue, 24 Oct 2023 14:01:42 +0200 Subject: [PATCH 1/2] =?UTF-8?q?=E2=9C=A8=20PWA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- angular.json | 9 +++-- ngsw-config.json | 30 +++++++++++++++++ package-lock.json | 19 +++++++++++ package.json | 1 + src/app/app.config.ts | 13 ++++++-- src/assets/icons/icon-128x128.png | Bin 0 -> 1296 bytes src/assets/icons/icon-144x144.png | Bin 0 -> 1431 bytes src/assets/icons/icon-152x152.png | Bin 0 -> 1494 bytes src/assets/icons/icon-192x192.png | Bin 0 -> 1865 bytes src/assets/icons/icon-512x512.png | Bin 0 -> 5495 bytes src/assets/icons/icon-72x72.png | Bin 0 -> 784 bytes src/assets/icons/icon-96x96.png | Bin 0 -> 1029 bytes src/index.html | 15 +++++---- src/manifest.webmanifest | 53 ++++++++++++++++++++++++++++++ 14 files changed, 129 insertions(+), 11 deletions(-) create mode 100644 ngsw-config.json create mode 100644 src/assets/icons/icon-128x128.png create mode 100644 src/assets/icons/icon-144x144.png create mode 100644 src/assets/icons/icon-152x152.png create mode 100644 src/assets/icons/icon-192x192.png create mode 100644 src/assets/icons/icon-512x512.png create mode 100644 src/assets/icons/icon-72x72.png create mode 100644 src/assets/icons/icon-96x96.png create mode 100644 src/manifest.webmanifest diff --git a/angular.json b/angular.json index 99690c0..ad87417 100644 --- a/angular.json +++ b/angular.json @@ -23,7 +23,11 @@ "polyfills": ["zone.js"], "tsConfig": "tsconfig.app.json", "inlineStyleLanguage": "scss", - "assets": ["src/favicon.ico", "src/assets"], + "assets": [ + "src/favicon.ico", + "src/manifest.webmanifest", + "src/assets" + ], "styles": [ "@angular/material/prebuilt-themes/indigo-pink.css", "src/styles.scss" @@ -44,7 +48,8 @@ "maximumError": "4kb" } ], - "outputHashing": "all" + "outputHashing": "all", + "serviceWorker": "ngsw-config.json" }, "development": { "optimization": false, diff --git a/ngsw-config.json b/ngsw-config.json new file mode 100644 index 0000000..4d80eea --- /dev/null +++ b/ngsw-config.json @@ -0,0 +1,30 @@ +{ + "$schema": "./node_modules/@angular/service-worker/config/schema.json", + "index": "/index.html", + "assetGroups": [ + { + "name": "app", + "installMode": "prefetch", + "resources": { + "files": [ + "/favicon.ico", + "/index.html", + "/manifest.webmanifest", + "/*.css", + "/*.js" + ] + } + }, + { + "name": "assets", + "installMode": "lazy", + "updateMode": "prefetch", + "resources": { + "files": [ + "/assets/**", + "/media/*.(svg|cur|jpg|jpeg|png|apng|webp|avif|gif|otf|ttf|woff|woff2)" + ] + } + } + ] +} diff --git a/package-lock.json b/package-lock.json index 9a1d421..37aea6f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -18,6 +18,7 @@ "@angular/platform-browser": "^17.0.0", "@angular/platform-browser-dynamic": "^17.0.0", "@angular/router": "^17.0.0", + "@angular/service-worker": "^17.0.0", "@ngneat/elf": "^2.4.0", "@ngneat/elf-entities": "^4.4.3", "@ngneat/transloco": "^6.0.0", @@ -530,6 +531,24 @@ "rxjs": "^6.5.3 || ^7.4.0" } }, + "node_modules/@angular/service-worker": { + "version": "17.0.5", + "resolved": "https://registry.npmjs.org/@angular/service-worker/-/service-worker-17.0.5.tgz", + "integrity": "sha512-AHvlZhLVI6hVMwGg2wBUeklzjU9GZEWrKfLf2i/139NVPDluyiB1H7jUwWlNcu/jCBnnd9G1usAfy9ugP54yUg==", + "dependencies": { + "tslib": "^2.3.0" + }, + "bin": { + "ngsw-config": "ngsw-config.js" + }, + "engines": { + "node": "^18.13.0 || >=20.9.0" + }, + "peerDependencies": { + "@angular/common": "17.0.5", + "@angular/core": "17.0.5" + } + }, "node_modules/@assemblyscript/loader": { "version": "0.10.1", "resolved": "https://registry.npmjs.org/@assemblyscript/loader/-/loader-0.10.1.tgz", diff --git a/package.json b/package.json index 89ba4aa..e561415 100644 --- a/package.json +++ b/package.json @@ -20,6 +20,7 @@ "@angular/platform-browser": "^17.0.0", "@angular/platform-browser-dynamic": "^17.0.0", "@angular/router": "^17.0.0", + "@angular/service-worker": "^17.0.0", "@ngneat/elf": "^2.4.0", "@ngneat/elf-entities": "^4.4.3", "@ngneat/transloco": "^6.0.0", diff --git a/src/app/app.config.ts b/src/app/app.config.ts index 0863bfb..317d16e 100644 --- a/src/app/app.config.ts +++ b/src/app/app.config.ts @@ -1,6 +1,11 @@ -import { ApplicationConfig, importProvidersFrom } from '@angular/core'; -import { provideHttpClient } from '@angular/common/http'; +import { + ApplicationConfig, + importProvidersFrom, + isDevMode, +} from '@angular/core'; import { provideAnimations } from '@angular/platform-browser/animations'; +import { provideServiceWorker } from '@angular/service-worker'; +import { provideHttpClient } from '@angular/common/http'; import { MixedCdkDragDropModule } from 'angular-mixed-cdk-drag-drop'; import { provideTransloco } from '@ngneat/transloco'; @@ -13,6 +18,10 @@ export const appConfig: ApplicationConfig = { providers: [ provideAnimations(), provideHttpClient(), + provideServiceWorker('ngsw-worker.js', { + enabled: !isDevMode(), + registrationStrategy: 'registerWhenStable:30000', + }), importProvidersFrom(MixedCdkDragDropModule), provideTransloco({ config: generateAutoConfig(['en', 'de']), diff --git a/src/assets/icons/icon-128x128.png b/src/assets/icons/icon-128x128.png new file mode 100644 index 0000000000000000000000000000000000000000..1408dbff73f7b76270ca969842b4a328dcb65e94 GIT binary patch literal 1296 zcmeAS@N?(olHy`uVBq!ia0vp^4Is?H1|$#LC7uRSoCO|{#S9F5M?jcysy3fA0|Uz; zPZ!6KiaBrRJ`BBWAkrFt?q&Urh8%~P491Li7u;ho%dm31%qgYDpr(++AiYF-i|~&3 zrbedgCR_9=|9*Mzy^O5&#-$BkBkRhRyl584&|t6-VUXcs;A3TIXKHX}Jg|`AK>$Mm zZsBI`0Fk31;?rl@wM{v>-K*%`H4!0mIKF+eVzG}CMlG0Cj|bR z!Mtyqit<4LrX@~7LPx|DCT}UwKlp&Z$?e44W#_BkypLky3UJmoynbp+CN0U=0}bV&rhaIdV6c72G{Jiv}G^%Y z_U;>!b26=NPpFT&8+LyE`n8?syOaJfTmL>VmtoVsZFW=jw=4?VwSzfSN?p1d>{dc|oX^y8eSZ3x3Xg-PUYEG+@mSbIEJoW3=|Jy#@v$Nk+AoVGlr!eq# zTIxOTLrWAIE*?(_k^kB=FO=D>Tl>r2`;Qc6z4y{$vbhphK6lo;sB3E-MYDZl%s=1u zaBQ%)4Sv4$`=-8B)2%AE-~E0obWvsY)W=CpKK)ELBr8R)g+KiEwpZZkcgelCpU0Z# z-uTk&H_vUxZeazNSErZdPK`YId(K>w$t{KI4#Eo`z17+3eNb`g|6R|YKf6>j+d@=* zhp+?xuGsj~YB#SfzjS}fmiJ936|QY#Fc5!O+;C&c_qVml+pD{8RmUygncwTq*w+|Z z7sju#^wSZ8PyyD6Os)C8PuZ;uX_BB`S$pX9G_{-{nhcj>6`d|l->26bG^>}!ryWhIhGAx zk#ZC4r`O+qFMldV=x{T`lMWm?@Q7G~=A=CS+j0@d{vEi%#A6rx>x5_BtBBw1ljSlB z8Oma&ZL~L8#qg~+=7q=1F9oano_zJwH0+RLX?qyfziHumTaEt2it3WKUEC*9?=nwk zTo|@*P5*HP9wmp2SDP-p&r_RW*ckgco%isqMMf`*8Gb(xWyiY))LVM@{Jgt>w7 zPElrGgSyTFbK@b$2oA}XgRBaNod}m1sLB2(v%AX?lT+4caTa()7BevL9RXp+soH$f3=FKE zo-U3d6?5L+eK_%!n?(D^=`(BmgBm?q%Vk?a9+VX9V4APZA^XG1VqMc5ZG(3QUNV$F zSl#eOdYZ&(CdGeESKry~m*h>KDctj=N2O%LpOl7%1_eb04-O6?rluBRnUez9w%p8F z_VAgS&-TPwk#hHZ)h3@0n;FO|a=3C!&7zy%4Q>A0XLV^;A4k+RoL_FY@6M5F~7zkU~5HvjyOy-LbnwR}^Q@Bi?& zet$K&P*CuKDUY>4MGaX!9Sv+@ z(Jm|{jHa$G4&p)HK&GRq3y>LB1!S_S0yTsOWdWJ4s%}7LSd>o4GkjmQV22EUrrh*$ofZCxGmT#>>eP$o)otfVl@18Ess0}MOT=u_{d=bG zHof~8p*=szr`uq!X~ene1#vb0!tA;`j2(Mk+UcBTFFlpS(BiG7wqS$f-wT^=Yp=rwA{wyKi~q&;#_8YfT)yn7xA-g=bl7J9lnIQ3x|1q?2p8KKaL(g z_W0Mm<*$$Yxwc~h$L%f?#|v8URL&V@4Xd*7ZUZi+1~&7Qt`;*K-MIo99&CeD8( zQoHGGVs@^w(X57;7|YE+c7BU~{lD(Xr8PQrX1O^J-}GoLn7djDcA^Z=OZfz66%E44$rjF6*2UngArkcrX9} literal 0 HcmV?d00001 diff --git a/src/assets/icons/icon-152x152.png b/src/assets/icons/icon-152x152.png new file mode 100644 index 0000000000000000000000000000000000000000..d3f06ea6b55ecdc236670580149160aeb8e4a51b GIT binary patch literal 1494 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 literal 0 HcmV?d00001 diff --git a/src/assets/icons/icon-512x512.png b/src/assets/icons/icon-512x512.png new file mode 100644 index 0000000000000000000000000000000000000000..5ed761550215aace9ab29c174746cc4a2ca30264 GIT binary patch literal 5495 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 literal 0 HcmV?d00001 diff --git a/src/assets/icons/icon-72x72.png b/src/assets/icons/icon-72x72.png new file mode 100644 index 0000000000000000000000000000000000000000..4ae5844ddd530873fb5aeb254e9868f9388c0c87 GIT binary patch literal 784 zcmeAS@N?(olHy`uVBq!ia0vp^9w5xY1|&n@ZgvM!oCO|{#S9F5M?jcysy3fA0|V0` zPZ!6KiaBp*eJq@9Akr>h{?}f%k$09~LTYnPLV1&laEsrCz6U-NQkpJsp5iEJ+9kZ> zz4#Pu_YV2K3zJveFJG?QmfpC}Mn(BcV^8x81x8_&geDfB2@RY=298W>9tT)BXDBq@ zWO@7jw`so2^hwW_Yj!-=AGWYTX=iV=IYVztbuB{faM< zg4C0GCY`oDUfbsJDsS~_#~x+XEv&XxmIpXDzF00bKlgBQe0BZwE2od_3=}-lyJki7 z%8xzsbP0l+XkKG&@a{ literal 0 HcmV?d00001 diff --git a/src/assets/icons/icon-96x96.png b/src/assets/icons/icon-96x96.png new file mode 100644 index 0000000000000000000000000000000000000000..4bee6f6c150f24279ca98f5dd0ac583ded1adbb3 GIT binary patch literal 1029 zcmeAS@N?(olHy`uVBq!ia0vp^2_VeD1|%QND7OGooCO|{#S9F5M?jcysy3fA0|WDR zPZ!6KiaBrRz74$XAkcQ*_@}(p2CD|XMIi#qn`Uq+h`Ov~SfSv@x{%q2wa}`-%0SfO z_oK@NVgfq1mzVqBN`LlD<>xu4-!D>X?{tCHitqyI`b9VO6nt^SmXGoz~Qg_EI-q^p6*|K511^;c`>`;O#z{>fP|1X)4!~!wwJMTE3P~>6nPb5 z)TWiNWX~3x9^=_ryQVBxbpIZ;r)H^*i;vUXWe37vyMDdybjXYQh7ZLW5GhC(s+p8Ui>hGW0ZE&5q>yedPq)n=}*Zk$H*`F-Zo7V^E_ zkm7kD{pOpu-5(Z5&A+>a({E*_+_LFs`CrR_ub8=Rv55Ewi8;3`>{$N$-Rj*l-~Dp# ztBVH83a>7Pok;UPR#|(y+)rom%k;gs58bO%Z!=JK*!KNi?T*g6hJ)%S8N8YJ9=a_` zuHGS`t-@R++F(4Ve@4c)>-jNDW~zHLKGeyS)9*evLu=#jeT&iqSTio{+p1y5_w@P2 zO-d?nzAoJ(^P_OfJg1(6d5odmn_AzLODEp1ntMRZpaLc7&JuC=67iD`ooRUwp z2{;(M?vCn%`wM)6YAcNxANHk6?rKk9E)s4$aDUmY&)Jjax3%$B-03J-fA81YN1=C5 zuI9Gd%lD$_aM3~iBPVt+80j_ia4S4!!p8i}zxQNN%+6f9`@nq7;OXk;vd$@?2>_{; Bz6byS literal 0 HcmV?d00001 diff --git a/src/index.html b/src/index.html index 984a302..1578660 100644 --- a/src/index.html +++ b/src/index.html @@ -1,7 +1,7 @@ - + PDF-Tools @@ -9,15 +9,16 @@ - - + + - - + + - - + + + diff --git a/src/manifest.webmanifest b/src/manifest.webmanifest new file mode 100644 index 0000000..1b95365 --- /dev/null +++ b/src/manifest.webmanifest @@ -0,0 +1,53 @@ +{ + "name": "PDF-tools", + "short_name": "PDF-tools", + "theme_color": "#3f51b5", + "background_color": "#fafafa", + "display": "standalone", + "scope": "./", + "start_url": "./", + "icons": [ + { + "src": "assets/icons/icon-72x72.png", + "sizes": "72x72", + "type": "image/png", + "purpose": "maskable any" + }, + { + "src": "assets/icons/icon-96x96.png", + "sizes": "96x96", + "type": "image/png", + "purpose": "maskable any" + }, + { + "src": "assets/icons/icon-128x128.png", + "sizes": "128x128", + "type": "image/png", + "purpose": "maskable any" + }, + { + "src": "assets/icons/icon-144x144.png", + "sizes": "144x144", + "type": "image/png", + "purpose": "maskable any" + }, + { + "src": "assets/icons/icon-152x152.png", + "sizes": "152x152", + "type": "image/png", + "purpose": "maskable any" + }, + { + "src": "assets/icons/icon-192x192.png", + "sizes": "192x192", + "type": "image/png", + "purpose": "maskable any" + }, + { + "src": "assets/icons/icon-512x512.png", + "sizes": "512x512", + "type": "image/png", + "purpose": "maskable any" + } + ] +} From 80077906211d42500fdc957fda55f06ff43d36cf Mon Sep 17 00:00:00 2001 From: Alexander Friesen Date: Sat, 2 Dec 2023 13:20:23 +0100 Subject: [PATCH 2/2] update config --- angular.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/angular.json b/angular.json index ad87417..1582176 100644 --- a/angular.json +++ b/angular.json @@ -32,7 +32,8 @@ "@angular/material/prebuilt-themes/indigo-pink.css", "src/styles.scss" ], - "scripts": [] + "scripts": [], + "serviceWorker": "ngsw-config.json" }, "configurations": { "production": { @@ -48,8 +49,7 @@ "maximumError": "4kb" } ], - "outputHashing": "all", - "serviceWorker": "ngsw-config.json" + "outputHashing": "all" }, "development": { "optimization": false,