Updated angular material to v9

Added further translation support
pull/30/head
Isaac Grynsztein 5 years ago
parent 0981dd216d
commit c17d29075e

@ -19,20 +19,20 @@
"dependencies": {
"@angular-devkit/core": "^9.0.6",
"@angular/animations": "^9.0.6",
"@angular/cdk": "^8.2.3",
"@angular/cdk": "^9.1.2",
"@angular/common": "^9.0.6",
"@angular/compiler": "^9.0.6",
"@angular/core": "^9.0.6",
"@angular/forms": "^9.0.6",
"@angular/http": "^7.2.15",
"@angular/localize": "^9.0.6",
"@angular/material": "^8.2.3",
"@angular/material": "^9.1.2",
"@angular/platform-browser": "^9.0.6",
"@angular/platform-browser-dynamic": "^9.0.6",
"@angular/router": "^9.0.6",
"@soluling/angular": "^1.0.0",
"core-js": "^2.4.1",
"file-saver": "^2.0.2",
"hammerjs": "^2.0.8",
"ng-lazyload-image": "^7.0.1",
"ng4-configure": "^0.1.7",
"ngx-content-loading": "^0.1.3",

@ -4,7 +4,9 @@ import {FileCardComponent} from './file-card/file-card.component';
import { Observable } from 'rxjs/Observable';
import {FormControl, Validators} from '@angular/forms';
import {BrowserAnimationsModule} from '@angular/platform-browser/animations';
import {MatSnackBar, MatDialog, MatSidenav} from '@angular/material';
import { MatDialog } from '@angular/material/dialog';
import { MatSidenav } from '@angular/material/sidenav';
import { MatSnackBar } from '@angular/material/snack-bar';
import { saveAs } from 'file-saver';
import 'rxjs/add/observable/of';
import 'rxjs/add/operator/mapTo';

@ -1,14 +1,27 @@
import { BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';
import {MatNativeDateModule, MatRadioModule, MatInputModule, MatButtonModule, MatSidenavModule, MatIconModule, MatListModule,
MatSnackBarModule, MatCardModule, MatSelectModule, MatToolbarModule, MatCheckboxModule, MatGridListModule,
MatProgressBarModule, MatExpansionModule,
MatProgressSpinnerModule,
MatButtonToggleModule,
MatDialogModule,
MatRippleModule,
MatSlideToggleModule,
MatMenuModule} from '@angular/material';
import { NgModule, LOCALE_ID } from '@angular/core';
import { registerLocaleData } from '@angular/common';
import { LocaleService } from '@soluling/angular';
import { MatButtonModule } from '@angular/material/button';
import { MatButtonToggleModule } from '@angular/material/button-toggle';
import { MatCardModule } from '@angular/material/card';
import { MatCheckboxModule } from '@angular/material/checkbox';
import { MatNativeDateModule, MatRippleModule } from '@angular/material/core';
import { MatDialogModule } from '@angular/material/dialog';
import { MatExpansionModule } from '@angular/material/expansion';
import { MatGridListModule } from '@angular/material/grid-list';
import { MatIconModule } from '@angular/material/icon';
import { MatInputModule } from '@angular/material/input';
import { MatListModule } from '@angular/material/list';
import { MatMenuModule } from '@angular/material/menu';
import { MatProgressBarModule } from '@angular/material/progress-bar';
import { MatProgressSpinnerModule } from '@angular/material/progress-spinner';
import { MatRadioModule } from '@angular/material/radio';
import { MatSelectModule } from '@angular/material/select';
import { MatSidenavModule } from '@angular/material/sidenav';
import { MatSlideToggleModule } from '@angular/material/slide-toggle';
import { MatSnackBarModule } from '@angular/material/snack-bar';
import { MatToolbarModule } from '@angular/material/toolbar';
import {DragDropModule} from '@angular/cdk/drag-drop';
import {FormsModule, ReactiveFormsModule} from '@angular/forms';
import { AppComponent } from './app.component';
@ -38,6 +51,9 @@ import { SubscriptionFileCardComponent } from './subscription/subscription-file-
import { SubscriptionInfoDialogComponent } from './dialogs/subscription-info-dialog/subscription-info-dialog.component';
import { SettingsComponent } from './settings/settings.component';
import es from '@angular/common/locales/es';
registerLocaleData(es, 'es');
export function isVisible({ event, element, scrollContainer, offset }: IsVisibleProps<any>) {
return (element.id === 'video' ? videoFilesMouseHovering || videoFilesOpened : audioFilesMouseHovering || audioFilesOpened);
}
@ -97,14 +113,11 @@ export function isVisible({ event, element, scrollContainer, offset }: IsVisible
RouterModule,
AppRoutingModule,
],
entryComponents: [
InputDialogComponent,
CreatePlaylistComponent,
SubscribeDialogComponent,
SubscriptionInfoDialogComponent,
SettingsComponent
providers: [
PostsService,
LocaleService,
{ provide: LOCALE_ID, deps: [LocaleService], useFactory: (service: LocaleService) => service.localeId },
],
providers: [PostsService],
bootstrap: [AppComponent]
})
export class AppModule { }

@ -1,5 +1,5 @@
import { Component, OnInit, Inject } from '@angular/core';
import { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material';
import { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';
import { FormControl } from '@angular/forms';
import { PostsService } from 'app/posts.services';

@ -1,5 +1,6 @@
import { Component, OnInit } from '@angular/core';
import { MatSnackBar, MatDialogRef } from '@angular/material';
import { MatDialogRef } from '@angular/material/dialog';
import { MatSnackBar } from '@angular/material/snack-bar';
import { PostsService } from 'app/posts.services';
@Component({

@ -1,5 +1,5 @@
import { Component, OnInit, Inject } from '@angular/core';
import { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material';
import { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';
import { PostsService } from 'app/posts.services';
@Component({

@ -1,6 +1,6 @@
import { Component, OnInit, Input, Output } from '@angular/core';
import {PostsService} from '../posts.services';
import {MatSnackBar} from '@angular/material';
import { MatSnackBar } from '@angular/material/snack-bar';
import {EventEmitter} from '@angular/core';
import { MainComponent } from 'app/main/main.component';
import { Subject, Observable } from 'rxjs';

@ -1,5 +1,5 @@
import { Component, OnInit, Input, Inject, EventEmitter } from '@angular/core';
import { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material';
import { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';
@Component({
selector: 'app-input-dialog',

@ -4,7 +4,8 @@ import {FileCardComponent} from '../file-card/file-card.component';
import { Observable } from 'rxjs/Observable';
import {FormControl, Validators} from '@angular/forms';
import {BrowserAnimationsModule} from '@angular/platform-browser/animations';
import {MatSnackBar, MatDialog} from '@angular/material';
import { MatDialog } from '@angular/material/dialog';
import { MatSnackBar } from '@angular/material/snack-bar';
import { saveAs } from 'file-saver';
import 'rxjs/add/observable/of';
import 'rxjs/add/operator/mapTo';

@ -2,7 +2,8 @@ import { Component, OnInit, HostListener, EventEmitter } from '@angular/core';
import { VgAPI } from 'videogular2/compiled/core';
import { PostsService } from 'app/posts.services';
import { ActivatedRoute, Router } from '@angular/router';
import { MatDialog, MatSnackBar } from '@angular/material';
import { MatDialog } from '@angular/material/dialog';
import { MatSnackBar } from '@angular/material/snack-bar';
import { InputDialogComponent } from 'app/input-dialog/input-dialog.component';
import { CdkDragDrop, moveItemInArray } from '@angular/cdk/drag-drop';

@ -1,6 +1,6 @@
import { Component, OnInit, Input, Output, EventEmitter } from '@angular/core';
import { Observable, Subject } from 'rxjs';
import { MatSnackBar } from '@angular/material';
import { MatSnackBar } from '@angular/material/snack-bar';
import { Router } from '@angular/router';
import { PostsService } from 'app/posts.services';

@ -1,5 +1,6 @@
import { Component, OnInit, EventEmitter } from '@angular/core';
import { MatDialog, MatSnackBar } from '@angular/material';
import { MatDialog } from '@angular/material/dialog';
import { MatSnackBar } from '@angular/material/snack-bar';
import { SubscribeDialogComponent } from 'app/dialogs/subscribe-dialog/subscribe-dialog.component';
import { PostsService } from 'app/posts.services';
import { Router } from '@angular/router';

@ -0,0 +1,106 @@
{
"17f0ea5d2d7a262b0e875acc70475f102aee84e6": "Create a playlist",
"cff1428d10d59d14e45edec3c735a27b5482db59": "Name",
"f47e2d56dd8a145b2e9599da9730c049d52962a2": "Audio files",
"a52dae09be10ca3a65da918533ced3d3f4992238": "Videos",
"038ebcb2a89155d90c24fa1c17bfe83dbadc3c20": "Youtube Downloader",
"6d2ec8898344c8955542b0542c942038ef28bb80": "Please enter a valid URL!",
"a38ae1082fec79ba1f379978337385a539a28e73": " Quality ",
"4be966a9dcfbc9b54dfcc604b831c0289f847fa4": "Use URL",
"d3f02f845e62cebd75fde451ab8479d2a8ad784d": " View ",
"4a9889d36910edc8323d7bab60858ab3da6d91df": " Only Audio ",
"96a01fafe135afc58b0f8071a4ab00234495ce18": " Multi-download Mode ",
"6a21ba5fb0ac804a525bf9ab168038c3ee88e661": " Download ",
"6a3777f913cf3f288664f0632b9f24794fdcc24e": " Cancel ",
"322ed150e02666fe2259c5b4614eac7066f4ffa0": " Advanced ",
"b7ffe7c6586d6f3f18a9246806a7c7d5538ab43e": " Simulated command: ",
"4e4c721129466be9c3862294dc40241b64045998": " Use custom args ",
"ad2f8ac8b7de7945b80c8e424484da94e597125f": "Custom args",
"ccc7e92cbdd35e901acf9ad80941abee07bd8f60": " No need to include URL, just everything after. ",
"3a92a3443c65a52f37ca7efb8f453b35dbefbf29": " Use custom output ",
"d9c02face477f2f9cdaae318ccee5f89856851fb": "Custom output",
"fcfd4675b4c90f08d18d3abede9a9a4dff4cfdc7": "Documentation",
"19d1ae64d94d28a29b2c57ae8671aace906b5401": "Path is relative to the config download path. Don't include extension.",
"8fad10737d3e3735a6699a4d89cbf6c20f6bb55f": " Use authentication ",
"08c74dc9762957593b91f6eb5d65efdfc975bf48": "Username",
"c32ef07f8803a223a83ed17024b38e8d82292407": "Password",
"4a0dada6e841a425de3e5006e6a04df26c644fa5": " Audio ",
"9779715ac05308973d8f1c8658b29b986e92450f": " Your audio files are here ",
"47546e45bbb476baaaad38244db444c427ddc502": "Playlists",
"78bd81adb4609b68cfa4c589222bdc233ba1faaa": " No playlists available. Create one from your downloading audio files by clicking the blue plus button. ",
"9d2b62bb0b91e2e17fb4177a7e3d6756a2e6ee33": " Video ",
"960582a8b9d7942716866ecfb7718309728f2916": " Your video files are here ",
"0f59c46ca29e9725898093c9ea6b586730d0624e": " No playlists available. Create one from your downloading video files by clicking the blue plus button. ",
"ca3dbbc7f3e011bffe32a10a3ea45cc84f30ecf1": "ID:",
"e684046d73bcee88e82f7ff01e2852789a05fc32": "Count:",
"121cc5391cd2a5115bc2b3160379ee5b36cd7716": "Settings",
"fe22ca53e651df951dac25b67c17894b0980f767": "Host",
"801b98c6f02fe3b32f6afa3ee854c99ed83474e6": "URL",
"54c512cca1923ab72faf1a0bd98d3d172469629a": "URL this app will be accessed from, without the port.",
"cb2741a46e3560f6bc6dfd99d385e86b08b26d72": "Port",
"22e8f1d0423a3b784fe40fab187b92c06541b577": "The desired port. Default is 17442.",
"948758e1412bb2ecdb98e3a4f1cbb6d7458456f2": "Encryption",
"cbe16a57be414e84b6a68309d08fad894df797d6": "Use encryption",
"0c1875a79b7ecc792cc1bebca3e063e40b5764f9": "Cert file path",
"736551b93461d2de64b118cf4043eee1d1c2cb2c": "Key file path",
"0ba25ad86a240576c4f20a2fada4722ebba77b1e": "Downloader",
"ab2756805742e84ad0cc0468f4be2d8aa9f855a5": "Audio folder path",
"c2c89cdf45d46ea64d2ed2f9ac15dfa4d77e26ca": "Path for audio only downloads. It is relative to YTDL-Material's root folder.",
"46826331da1949bd6fb74624447057099c9d20cd": "Video folder path",
"17c92e6d47a213fa95b5aa344b3f258147123f93": "Path for video downloads. It is relative to YTDL-Material's root folder.",
"f41145afc02fd47ef0576ac79acd2c47ebbf4901": "Global custom args for downloads on the home page.",
"d5f69691f9f05711633128b5a3db696783266b58": "Extra",
"61f8fd90b5f8cb20c70371feb2ee5e1fac5a9095": "Top title",
"78d3531417c0d4ba4c90f0d4ae741edc261ec8df": "File manager enabled",
"c33bd5392b39dbed36b8e5a1145163a15d45835f": "Allow quality select",
"bda5508e24e0d77debb28bcd9194d8fefb1cfb92": "Download only mode",
"09d31c803a7252658694e1e3176b97f5655a3fe3": "Allow multi-download mode",
"e351b40b3869a5c7d19c3d4918cb1ac7aaab95c4": "API",
"d5d7c61349f3b0859336066e6d453fc35d334fe5": "Use YouTube API",
"ce10d31febb3d9d60c160750570310f303a22c22": "Youtube API Key",
"8602e313cdfa7c4cc475ccbe86459fce3c3fd986": "Generating a key is easy!",
"60c855c323706a04ccd2ff22d634bde9b6233bbf": "Themes",
"ff7cee38a2259526c519f878e71b964f41db4348": "Default",
"adb4562d2dbd3584370e44496969d58c511ecb63": "Dark",
"7a6bacee4c31cb5c0ac2d24274fb4610d8858602": "Allow theme change",
"357064ca9d9ac859eb618e28e8126fa32be049e2": "Subscriptions",
"4e3120311801c4acd18de7146add2ee4a4417773": "Allow subscriptions",
"4bee2a4bef2d26d37c9b353c278e24e5cd309ce3": "Subscriptions base path",
"bc9892814ee2d119ae94378c905ea440a249b84a": "Base path for videos from your subscribed channels and playlists. It is relative to YTDL-Material's root folder.",
"5bef4b25ba680da7fff06b86a91b1fc7e6a926e3": "Check interval",
"0f56a7449b77630c114615395bbda4cab398efd8": "Unit is seconds, only include numbers.",
"78e49b7339b4fa7184dd21bcaae107ce9b7076f6": "Use youtube-dl archive",
"fa9fe4255231dd1cc6b29d3d254a25cb7c764f0f": "With youtube-dl's archive",
"09006404cccc24b7a8f8d1ce0b39f2761ab841d8": "feature, downloaded videos from your subscriptions get recorded in a text file in the subscriptions archive sub-directory.",
"29ed79a98fc01e7f9537777598e31dbde3aa7981": "This enables the ability to permanently delete videos from your subscriptions without unsubscribing, and allows you to record which videos you downloaded in case of data loss.",
"bc2e854e111ecf2bd7db170da5e3c2ed08181d88": "Advanced",
"5fab47f146b0a4b809dcebf3db9da94df6299ea1": "Use default downloading agent",
"cdf75b1bdda80487e2ce1ff264ae171cbc5dc3b1": "Custom agent",
"dc3d990391c944d1fbfc7cfb402f7b5e112fb3a8": "Allow advanced download",
"52c9a103b812f258bcddc3d90a6e3f46871d25fe": "Save",
"d7b35c384aecd25a516200d6921836374613dfe7": "Cancel",
"92eee6be6de0b11c924e3ab27db30257159c0a7c": "Home",
"5b3075e8dc3f3921ec316b0bd83b6d14a06c1a4f": "Save changes",
"a9806cf78ce00eb2613eeca11354a97e033377b8": "Subscribe to playlist or channel",
"93efc99ae087fc116de708ecd3ace86ca237cf30": "The playlist or channel URL",
"08f5d0ef937ae17feb1b04aff15ad88911e87baf": "Custom name",
"f3f62aa84d59f3a8b900cc9a7eec3ef279a7b4e7": "This is optional",
"ea30873bd3f0d5e4fb2378eec3f0a1db77634a28": "Download all uploads",
"28a678e9cabf86e44c32594c43fa0e890135c20f": "Download videos uploaded in the last",
"e78c0d60ac39787f62c9159646fe0b3c1ed55a1d": "Type:",
"c52db455cca9109ee47e1a612c3f4117c09eb71b": "URL:",
"a44d86aa1e6c20ced07aca3a7c081d8db9ded1c6": "Archive:",
"f4e529ae5ffd73001d1ff4bbdeeb0a72e342e5c8": "Close",
"8efc77bf327659c0fec1f518cf48a98cdcd9dddf": "Export Archive",
"3042bd3ad8dffcfeca5fd1ae6159fd1047434e95": "Unsubscribe",
"e2319dec5b4ccfb6ed9f55ccabd63650a8fdf547": "Your subscriptions",
"807cf11e6ac1cde912496f764c176bdfdd6b7e19": "Channels",
"29b89f751593e1b347eef103891b7a1ff36ec03f": "Name not available. Channel retrieval in progress.",
"4636cd4a1379c50d471e98786098c4d39e1e82ad": "You have no channel subscriptions.",
"2e0a410652cb07d069f576b61eab32586a18320d": "Name not available. Playlist retrieval in progress.",
"587b57ced54965d8874c3fd0e9dfedb987e5df04": "You have no playlist subscriptions.",
"7e892ba15f2c6c17e83510e273b3e10fc32ea016": "Search",
"2054791b822475aeaea95c0119113de3200f5e1c": "Length:",
"94e01842dcee90531caa52e4147f70679bac87fe": "Delete and redownload",
"2031adb51e07a41844e8ba7704b054e98345c9c1": "Delete forever"
}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

@ -1,12 +1,29 @@
import { enableProdMode } from '@angular/core';
import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';
import 'hammerjs';
import { AppModule } from './app/app.module';
import { environment } from './environments/environment';
import { loadTranslations } from '@angular/localize';
import { getTranslations } from '@soluling/angular';
import '@angular/localize/init';
if (environment.production) {
enableProdMode();
}
// const locale = localStorage.getItem('locale');
getTranslations('assets/i18n', false, true, true, 'en', null, 'locale').then(translations => {
if (translations) {
loadTranslations(translations);
}
import('./app/app.module').then(module =>
{
platformBrowserDynamic()
.bootstrapModule(module.AppModule)
.catch(err => console.error(err));
});
});
platformBrowserDynamic().bootstrapModule(AppModule);

Loading…
Cancel
Save