@@ -25,7 +25,8 @@ | |||||
"aot": true, | "aot": true, | ||||
"assets": [ | "assets": [ | ||||
"src/favicon.ico", | "src/favicon.ico", | ||||
"src/assets" | |||||
"src/assets", | |||||
"src/manifest.webmanifest" | |||||
], | ], | ||||
"styles": [ | "styles": [ | ||||
"src/styles.scss" | "src/styles.scss" | ||||
@@ -59,7 +60,9 @@ | |||||
"maximumWarning": "6kb", | "maximumWarning": "6kb", | ||||
"maximumError": "10kb" | "maximumError": "10kb" | ||||
} | } | ||||
] | |||||
], | |||||
"serviceWorker": true, | |||||
"ngswConfigPath": "ngsw-config.json" | |||||
} | } | ||||
} | } | ||||
}, | }, | ||||
@@ -89,7 +92,8 @@ | |||||
"karmaConfig": "karma.conf.js", | "karmaConfig": "karma.conf.js", | ||||
"assets": [ | "assets": [ | ||||
"src/favicon.ico", | "src/favicon.ico", | ||||
"src/assets" | |||||
"src/assets", | |||||
"src/manifest.webmanifest" | |||||
], | ], | ||||
"styles": [ | "styles": [ | ||||
"src/styles.scss" | "src/styles.scss" | ||||
@@ -0,0 +1,29 @@ | |||||
{ | |||||
"$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/**", | |||||
"/*.(eot|svg|cur|jpg|png|webp|gif|otf|ttf|woff|woff2|ani)" | |||||
] | |||||
} | |||||
} | |||||
] | |||||
} |
@@ -485,6 +485,11 @@ | |||||
"resolved": "https://registry.npmjs.org/@angular/router/-/router-9.1.9.tgz", | "resolved": "https://registry.npmjs.org/@angular/router/-/router-9.1.9.tgz", | ||||
"integrity": "sha512-4u+CWMPB4hCkAsFCEzC94YEWT0wVozqGkc/Dortt2hFaqvZpIegg6iJVZlDxuyDjzFYBPnnbTDdgiTTA8ckfuA==" | "integrity": "sha512-4u+CWMPB4hCkAsFCEzC94YEWT0wVozqGkc/Dortt2hFaqvZpIegg6iJVZlDxuyDjzFYBPnnbTDdgiTTA8ckfuA==" | ||||
}, | }, | ||||
"@angular/service-worker": { | |||||
"version": "9.1.9", | |||||
"resolved": "https://registry.npmjs.org/@angular/service-worker/-/service-worker-9.1.9.tgz", | |||||
"integrity": "sha512-TRN9SD38VfyrVwObeAYhogQqSHl9hax51Vi/egEt/LXdOFBIssLsW0Wa3WOByzo25zcR3M2mMbQ7UuWtUnfduA==" | |||||
}, | |||||
"@babel/code-frame": { | "@babel/code-frame": { | ||||
"version": "7.10.1", | "version": "7.10.1", | ||||
"resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.1.tgz", | "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.1.tgz", | ||||
@@ -19,6 +19,7 @@ | |||||
"@angular/platform-browser": "~9.1.1", | "@angular/platform-browser": "~9.1.1", | ||||
"@angular/platform-browser-dynamic": "~9.1.1", | "@angular/platform-browser-dynamic": "~9.1.1", | ||||
"@angular/router": "~9.1.1", | "@angular/router": "~9.1.1", | ||||
"@angular/service-worker": "~9.1.1", | |||||
"angular-svg-icon": "^9.2.0", | "angular-svg-icon": "^9.2.0", | ||||
"rxjs": "~6.5.4", | "rxjs": "~6.5.4", | ||||
"tslib": "^1.10.0", | "tslib": "^1.10.0", | ||||
@@ -14,6 +14,8 @@ import { MoreComponent } from './tabs/more/more.component'; | |||||
import { DetailsComponent } from './tabs/courses/details/details.component'; | import { DetailsComponent } from './tabs/courses/details/details.component'; | ||||
import { VideoChapterComponent } from './tabs/courses/video-chapter/video-chapter.component'; | import { VideoChapterComponent } from './tabs/courses/video-chapter/video-chapter.component'; | ||||
import { NotesDetailsComponent } from './tabs/courses/notes-details/notes-details.component'; | import { NotesDetailsComponent } from './tabs/courses/notes-details/notes-details.component'; | ||||
import { ServiceWorkerModule } from '@angular/service-worker'; | |||||
import { environment } from '../environments/environment'; | |||||
@NgModule({ | @NgModule({ | ||||
declarations: [ | declarations: [ | ||||
@@ -32,7 +34,8 @@ import { NotesDetailsComponent } from './tabs/courses/notes-details/notes-detail | |||||
BrowserModule, | BrowserModule, | ||||
AppRoutingModule, | AppRoutingModule, | ||||
HttpClientModule, | HttpClientModule, | ||||
AngularSvgIconModule.forRoot() | |||||
AngularSvgIconModule.forRoot(), | |||||
ServiceWorkerModule.register('ngsw-worker.js', { enabled: environment.production }) | |||||
], | ], | ||||
providers: [], | providers: [], | ||||
bootstrap: [AppComponent] | bootstrap: [AppComponent] | ||||
@@ -7,11 +7,14 @@ | |||||
<base href="/"> | <base href="/"> | ||||
<meta name="viewport" content="width=device-width, initial-scale=1"> | <meta name="viewport" content="width=device-width, initial-scale=1"> | ||||
<link rel="icon" type="image/x-icon" href="favicon.ico"> | <link rel="icon" type="image/x-icon" href="favicon.ico"> | ||||
<link href="https://fonts.googleapis.com/css2?family=Roboto:wght@400;500;700&display=swap" rel="stylesheet"> | |||||
<link href="https://fonts.googleapis.com/css2?family=Roboto:wght@400;500;700&display=swap" rel="stylesheet"> | |||||
<link rel="manifest" href="manifest.webmanifest"> | |||||
<meta name="theme-color" content="#4d4d4d"> | |||||
</head> | </head> | ||||
<body> | <body> | ||||
<app-root></app-root> | <app-root></app-root> | ||||
<noscript>Please enable JavaScript to continue using this application.</noscript> | |||||
</body> | </body> | ||||
</html> | </html> |
@@ -0,0 +1,59 @@ | |||||
{ | |||||
"name": "LMS", | |||||
"short_name": "LMS", | |||||
"theme_color": "#4d4d4d", | |||||
"background_color": "#4d4d4d", | |||||
"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-384x384.png", | |||||
"sizes": "384x384", | |||||
"type": "image/png", | |||||
"purpose": "maskable any" | |||||
}, | |||||
{ | |||||
"src": "assets/icons/icon-512x512.png", | |||||
"sizes": "512x512", | |||||
"type": "image/png", | |||||
"purpose": "maskable any" | |||||
} | |||||
] | |||||
} |