Migrate to Angular 9

This commit is contained in:
Igor Kulikov 2020-02-10 13:10:14 +02:00
parent b7344da12c
commit 544d50c6c7
37 changed files with 2094 additions and 1370 deletions

3280
ui-ngx/package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@ -12,17 +12,17 @@
},
"private": true,
"dependencies": {
"@angular/animations": "~8.2.14",
"@angular/animations": "~9.0.0",
"@angular/cdk": "~8.2.3",
"@angular/common": "~8.2.14",
"@angular/compiler": "~8.2.14",
"@angular/core": "~8.2.14",
"@angular/common": "~9.0.0",
"@angular/compiler": "~9.0.0",
"@angular/core": "~9.0.0",
"@angular/flex-layout": "^8.0.0-beta.27",
"@angular/forms": "~8.2.14",
"@angular/forms": "~9.0.0",
"@angular/material": "^8.2.3",
"@angular/platform-browser": "~8.2.14",
"@angular/platform-browser-dynamic": "~8.2.14",
"@angular/router": "~8.2.14",
"@angular/platform-browser": "~9.0.0",
"@angular/platform-browser-dynamic": "~9.0.0",
"@angular/router": "~9.0.0",
"@auth0/angular-jwt": "^3.0.1",
"@date-io/date-fns": "^1.3.13",
"@flowjs/flow.js": "^2.14.0",
@ -83,27 +83,27 @@
"tslib": "^1.10.0",
"tv4": "^1.3.0",
"typeface-roboto": "^0.0.75",
"zone.js": "~0.9.1"
"zone.js": "~0.10.2"
},
"devDependencies": {
"@angular-builders/custom-webpack": "^8.4.1",
"@angular-devkit/build-angular": "^0.803.25",
"@angular/cli": "^8.3.25",
"@angular/compiler-cli": "~8.2.14",
"@angular/language-service": "~8.2.14",
"@angular-devkit/build-angular": "~0.900.1",
"@angular/cli": "^9.0.1",
"@angular/compiler-cli": "~9.0.0",
"@angular/language-service": "~9.0.0",
"@types/flot": "0.0.31",
"@types/jasmine": "^3.5.2",
"@types/jasminewd2": "~2.0.8",
"@types/jquery": "^3.3.31",
"@types/js-beautify": "^1.8.1",
"@types/jstree": "^3.3.39",
"@types/node": "^12.12.26",
"@types/node": "^12.11.1",
"@types/raphael": "^2.1.30",
"@types/react": "^16.9.19",
"@types/react-dom": "^16.9.5",
"@types/tinycolor2": "^1.4.2",
"@types/tooltipster": "0.0.29",
"codelyzer": "^5.2.1",
"codelyzer": "^5.1.2",
"compression-webpack-plugin": "^3.1.0",
"directory-tree": "^2.2.4",
"jasmine-core": "~3.5.0",
@ -117,7 +117,7 @@
"protractor": "^5.4.3",
"ts-node": "~8.5.4",
"tslint": "~5.20.1",
"typescript": "~3.5.3"
"typescript": "~3.7.5"
},
"resolutions": {
"serialize-javascript": "^2.1.1"

View File

@ -16,7 +16,7 @@
import { isPlatformBrowser } from '@angular/common';
import { ClassProvider, FactoryProvider, InjectionToken, PLATFORM_ID } from '@angular/core';
import { ClassProvider, FactoryProvider, InjectionToken, PLATFORM_ID, Injectable } from '@angular/core';
/* Create a new injection token for injecting the window into a component. */
export const WINDOW = new InjectionToken('WindowToken');
@ -31,6 +31,7 @@ export abstract class WindowRef {
}
/* Define class that implements the abstract class and returns the native window object. */
@Injectable()
export class BrowserWindowRef extends WindowRef {
constructor() {

View File

@ -30,7 +30,7 @@ const routes: Routes = [
},
canActivate: [AuthGuard],
canActivateChild: [AuthGuard],
loadChildren: './dashboard-pages.module#DashboardPagesModule'
loadChildren: () => import('./dashboard-pages.module').then(m => m.DashboardPagesModule)
}
];

View File

@ -46,7 +46,7 @@ export class AliasesEntitySelectComponent implements OnInit, OnDestroy {
@Input() disabled: boolean;
@ViewChild('aliasEntitySelectPanelOrigin', {static: false}) aliasEntitySelectPanelOrigin: CdkOverlayOrigin;
@ViewChild('aliasEntitySelectPanelOrigin') aliasEntitySelectPanelOrigin: CdkOverlayOrigin;
displayValue: string;

View File

@ -70,8 +70,8 @@ export class EntityAliasSelectComponent implements ControlValueAccessor, OnInit,
@Input()
callbacks: EntityAliasSelectCallbacks;
@ViewChild('entityAliasAutocomplete', {static: false}) entityAliasAutocomplete: MatAutocomplete;
@ViewChild('autocomplete', {static: false, read: MatAutocompleteTrigger}) autoCompleteTrigger: MatAutocompleteTrigger;
@ViewChild('entityAliasAutocomplete') entityAliasAutocomplete: MatAutocomplete;
@ViewChild('autocomplete', { read: MatAutocompleteTrigger }) autoCompleteTrigger: MatAutocompleteTrigger;
private requiredValue: boolean;

View File

@ -161,10 +161,10 @@ export class AttributeTableComponent extends PageComponent implements AfterViewI
@Input()
entityName: string;
@ViewChild('searchInput', {static: false}) searchInputField: ElementRef;
@ViewChild('searchInput') searchInputField: ElementRef;
@ViewChild(MatPaginator, {static: false}) paginator: MatPaginator;
@ViewChild(MatSort, {static: false}) sort: MatSort;
@ViewChild(MatPaginator) paginator: MatPaginator;
@ViewChild(MatSort) sort: MatSort;
constructor(protected store: Store<AppState>,
private attributeService: AttributeService,

View File

@ -94,10 +94,10 @@ export class EntitiesTableComponent extends PageComponent implements AfterViewIn
@ViewChild('entityTableHeader', {static: true}) entityTableHeaderAnchor: TbAnchorComponent;
@ViewChild('searchInput', {static: false}) searchInputField: ElementRef;
@ViewChild('searchInput') searchInputField: ElementRef;
@ViewChild(MatPaginator, {static: false}) paginator: MatPaginator;
@ViewChild(MatSort, {static: false}) sort: MatSort;
@ViewChild(MatPaginator) paginator: MatPaginator;
@ViewChild(MatSort) sort: MatSort;
constructor(protected store: Store<AppState>,
private route: ActivatedRoute,

View File

@ -16,11 +16,12 @@
import { BaseData, HasId } from '@shared/models/base-data';
import { PageComponent } from '@shared/components/page.component';
import { Input, OnInit } from '@angular/core';
import { Input, OnInit, Directive } from '@angular/core';
import { Store } from '@ngrx/store';
import { AppState } from '@core/core.state';
import { EntityTableConfig } from '@home/models/entity/entities-table-config.models';
@Directive()
export abstract class EntityTableHeaderComponent<T extends BaseData<HasId>> extends PageComponent implements OnInit {
@Input()

View File

@ -16,16 +16,7 @@
import { BaseData, HasId } from '@shared/models/base-data';
import { PageComponent } from '@shared/components/page.component';
import {
AfterViewInit,
ContentChildren,
EventEmitter,
Input,
OnInit,
Output,
QueryList,
ViewChildren
} from '@angular/core';
import { AfterViewInit, ContentChildren, EventEmitter, Input, OnInit, Output, QueryList, ViewChildren, Directive } from '@angular/core';
import { Store } from '@ngrx/store';
import { AppState } from '@core/core.state';
import { EntityTableConfig } from '@home/models/entity/entities-table-config.models';
@ -41,6 +32,7 @@ import { DebugEventType, EventType } from '@shared/models/event.models';
import { AttributeScope, LatestTelemetry } from '@shared/models/telemetry/telemetry.models';
import { NULL_UUID } from '@shared/models/id/has-uuid';
@Directive()
export abstract class EntityTabsComponent<T extends BaseData<HasId>> extends PageComponent implements OnInit, AfterViewInit {
attributeScopes = AttributeScope;

View File

@ -17,12 +17,13 @@
import { BaseData, HasId } from '@shared/models/base-data';
import { FormGroup, NgForm } from '@angular/forms';
import { PageComponent } from '@shared/components/page.component';
import { EventEmitter, Input, OnInit, Output, ViewChild } from '@angular/core';
import { EventEmitter, Input, OnInit, Output, ViewChild, Directive } from '@angular/core';
import { Store } from '@ngrx/store';
import { AppState } from '@core/core.state';
import { EntityAction } from '@home/models/entity/entity-component.models';
import { EntityTableConfig } from '@home/models/entity/entities-table-config.models';
@Directive()
export abstract class EntityComponent<T extends BaseData<HasId>> extends PageComponent implements OnInit {
entityValue: T;

View File

@ -91,10 +91,10 @@ export class RelationTableComponent extends PageComponent implements AfterViewIn
}
}
@ViewChild('searchInput', {static: false}) searchInputField: ElementRef;
@ViewChild('searchInput') searchInputField: ElementRef;
@ViewChild(MatPaginator, {static: false}) paginator: MatPaginator;
@ViewChild(MatSort, {static: false}) sort: MatSort;
@ViewChild(MatPaginator) paginator: MatPaginator;
@ViewChild(MatSort) sort: MatSort;
constructor(protected store: Store<AppState>,
private entityRelationService: EntityRelationService,

View File

@ -82,10 +82,10 @@ export class ManageWidgetActionsComponent extends PageComponent implements OnIni
viewsInited = false;
dirtyValue = false;
@ViewChild('searchInput', {static: false}) searchInputField: ElementRef;
@ViewChild('searchInput') searchInputField: ElementRef;
@ViewChild(MatPaginator, {static: false}) paginator: MatPaginator;
@ViewChild(MatSort, {static: false}) sort: MatSort;
@ViewChild(MatPaginator) paginator: MatPaginator;
@ViewChild(MatSort) sort: MatSort;
private propagateChange = (_: any) => {};

View File

@ -59,7 +59,7 @@ export interface WidgetActionDialogData {
export class WidgetActionDialogComponent extends DialogComponent<WidgetActionDialogComponent,
WidgetActionDescriptorInfo> implements OnInit, ErrorStateMatcher {
@ViewChild('dashboardStateInput', {static: false}) dashboardStateInput: ElementRef;
@ViewChild('dashboardStateInput') dashboardStateInput: ElementRef;
widgetActionFormGroup: FormGroup;
actionTypeFormGroup: FormGroup;

View File

@ -71,10 +71,10 @@ export class DataKeyConfigComponent extends PageComponent implements OnInit, Con
@Input()
dataKeySettingsSchema: any;
@ViewChild('keyInput', {static: false}) keyInput: ElementRef;
@ViewChild('keyInput') keyInput: ElementRef;
@ViewChild('funcBodyEdit', {static: false}) funcBodyEdit: JsFuncComponent;
@ViewChild('postFuncBodyEdit', {static: false}) postFuncBodyEdit: JsFuncComponent;
@ViewChild('funcBodyEdit') funcBodyEdit: JsFuncComponent;
@ViewChild('postFuncBodyEdit') postFuncBodyEdit: JsFuncComponent;
displayAdvanced = false;

View File

@ -124,9 +124,9 @@ export class DataKeysComponent implements ControlValueAccessor, OnInit, AfterVie
@Input()
disabled: boolean;
@ViewChild('keyInput', {static: false}) keyInput: ElementRef<HTMLInputElement>;
@ViewChild('keyAutocomplete', {static: false}) matAutocomplete: MatAutocomplete;
@ViewChild('chipList', {static: false}) chipList: MatChipList;
@ViewChild('keyInput') keyInput: ElementRef<HTMLInputElement>;
@ViewChild('keyAutocomplete') matAutocomplete: MatAutocomplete;
@ViewChild('chipList') chipList: MatChipList;
keys: Array<DataKey> = [];
filteredKeys: Observable<Array<DataKey>>;

View File

@ -76,7 +76,7 @@ export class LegendConfigComponent implements OnInit, OnDestroy, ControlValueAcc
@Input() disabled: boolean;
@ViewChild('legendConfigPanelOrigin', {static: false}) legendConfigPanelOrigin: CdkOverlayOrigin;
@ViewChild('legendConfigPanelOrigin') legendConfigPanelOrigin: CdkOverlayOrigin;
innerValue: LegendConfig;

View File

@ -116,9 +116,9 @@ export class AlarmsTableWidgetComponent extends PageComponent implements OnInit,
@Input()
ctx: WidgetContext;
@ViewChild('searchInput', {static: false}) searchInputField: ElementRef;
@ViewChild(MatPaginator, {static: false}) paginator: MatPaginator;
@ViewChild(MatSort, {static: false}) sort: MatSort;
@ViewChild('searchInput') searchInputField: ElementRef;
@ViewChild(MatPaginator) paginator: MatPaginator;
@ViewChild(MatSort) sort: MatSort;
public enableSelection = true;
public displayPagination = true;

View File

@ -73,7 +73,7 @@ export class EntitiesHierarchyWidgetComponent extends PageComponent implements O
@Input()
ctx: WidgetContext;
@ViewChild('searchInput', {static: false}) searchInputField: ElementRef;
@ViewChild('searchInput') searchInputField: ElementRef;
public toastTargetId = 'entities-hierarchy-' + this.utils.guid();

View File

@ -95,9 +95,9 @@ export class EntitiesTableWidgetComponent extends PageComponent implements OnIni
@Input()
ctx: WidgetContext;
@ViewChild('searchInput', {static: false}) searchInputField: ElementRef;
@ViewChild(MatPaginator, {static: false}) paginator: MatPaginator;
@ViewChild(MatSort, {static: false}) sort: MatSort;
@ViewChild('searchInput') searchInputField: ElementRef;
@ViewChild(MatPaginator) paginator: MatPaginator;
@ViewChild(MatSort) sort: MatSort;
public displayPagination = true;
public pageSizeOptions;

View File

@ -107,7 +107,7 @@ export class TimeseriesTableWidgetComponent extends PageComponent implements OnI
@Input()
ctx: WidgetContext;
@ViewChild('searchInput', {static: false}) searchInputField: ElementRef;
@ViewChild('searchInput') searchInputField: ElementRef;
@ViewChildren(MatPaginator) paginators: QueryList<MatPaginator>;
@ViewChildren(MatSort) sorts: QueryList<MatSort>;

View File

@ -32,7 +32,7 @@ const routes: Routes = [
},
canActivate: [AuthGuard],
canActivateChild: [AuthGuard],
loadChildren: './pages/home-pages.module#HomePagesModule'
loadChildren: () => import('./pages/home-pages.module').then(m => m.HomePagesModule)
}
];

View File

@ -55,10 +55,10 @@ export class HomeComponent extends PageComponent implements AfterViewInit, OnIni
logo = require('../../../assets/logo_title_white.svg');
@ViewChild('sidenav', {static: false})
@ViewChild('sidenav')
sidenav: MatSidenav;
@ViewChild('searchInput', {static: false}) searchInputField: ElementRef;
@ViewChild('searchInput') searchInputField: ElementRef;
// @ts-ignore
fullscreenEnabled = screenfull.enabled;

View File

@ -212,7 +212,7 @@ export class DashboardPageComponent extends PageComponent implements IDashboardC
set rightLayoutOpened(rightLayoutOpened: boolean) {
}
@ViewChild('tbEditWidget', {static: false}) editWidgetComponent: EditWidgetComponent;
@ViewChild('tbEditWidget') editWidgetComponent: EditWidgetComponent;
constructor(protected store: Store<AppState>,
@Inject(WINDOW) private window: Window,

View File

@ -74,10 +74,10 @@ export class ManageDashboardStatesDialogComponent extends
submitted = false;
@ViewChild('searchInput', {static: false}) searchInputField: ElementRef;
@ViewChild('searchInput') searchInputField: ElementRef;
@ViewChild(MatPaginator, {static: false}) paginator: MatPaginator;
@ViewChild(MatSort, {static: false}) sort: MatSort;
@ViewChild(MatPaginator) paginator: MatPaginator;
@ViewChild(MatSort) sort: MatSort;
constructor(protected store: Store<AppState>,
protected router: Router,

View File

@ -38,9 +38,9 @@ import { map, mergeMap, share, startWith } from 'rxjs/operators';
})
export class LinkLabelsComponent implements ControlValueAccessor, OnInit, OnChanges {
@ViewChild('chipList', {static: false}) chipList: MatChipList;
@ViewChild('labelAutocomplete', {static: false}) matAutocomplete: MatAutocomplete;
@ViewChild('labelInput', {static: false}) labelInput: ElementRef<HTMLInputElement>;
@ViewChild('chipList') chipList: MatChipList;
@ViewChild('labelAutocomplete') matAutocomplete: MatAutocomplete;
@ViewChild('labelInput') labelInput: ElementRef<HTMLInputElement>;
private requiredValue: boolean;
get required(): boolean {

View File

@ -52,7 +52,7 @@ export class RuleNodeConfigComponent implements ControlValueAccessor, OnInit, On
@ViewChild('definedConfigContent', {read: ViewContainerRef, static: true}) definedConfigContainer: ViewContainerRef;
@ViewChild('jsonObjectEditComponent', {static: false}) jsonObjectEditComponent: JsonObjectEditComponent;
@ViewChild('jsonObjectEditComponent') jsonObjectEditComponent: JsonObjectEditComponent;
private requiredValue: boolean;
get required(): boolean {

View File

@ -34,7 +34,7 @@ export class RuleNodeDetailsComponent extends PageComponent implements OnInit, O
@ViewChild('ruleNodeForm', {static: true}) ruleNodeForm: NgForm;
@ViewChild('ruleNodeConfigComponent', {static: false}) ruleNodeConfigComponent: RuleNodeConfigComponent;
@ViewChild('ruleNodeConfigComponent') ruleNodeConfigComponent: RuleNodeConfigComponent;
@Input()
ruleNode: FcRuleNode;

View File

@ -90,7 +90,7 @@ export class RuleChainPageComponent extends PageComponent
@HostBinding('style.width') width = '100%';
@HostBinding('style.height') height = '100%';
@ViewChild('ruleNodeSearchInput', {static: false}) ruleNodeSearchInputField: ElementRef;
@ViewChild('ruleNodeSearchInput') ruleNodeSearchInputField: ElementRef;
@ViewChild('ruleChainCanvas', {static: true}) ruleChainCanvas: NgxFlowchartComponent;
@ -124,8 +124,8 @@ export class RuleChainPageComponent extends PageComponent
editingRuleNodeAllowCustomLabels = false;
editingRuleNodeLinkLabels: {[label: string]: LinkLabel};
@ViewChild('tbRuleNode', {static: false}) ruleNodeComponent: RuleNodeDetailsComponent;
@ViewChild('tbRuleNodeLink', {static: false}) ruleNodeLinkComponent: RuleNodeLinkComponent;
@ViewChild('tbRuleNode') ruleNodeComponent: RuleNodeDetailsComponent;
@ViewChild('tbRuleNodeLink') ruleNodeLinkComponent: RuleNodeLinkComponent;
editingRuleNodeLink: FcRuleEdge = null;
isEditingRuleNodeLink = false;

View File

@ -78,7 +78,7 @@ export class DashboardSelectComponent implements ControlValueAccessor, OnInit {
dashboardId: string | null;
@ViewChild('dashboardSelectPanelOrigin', {static: false}) dashboardSelectPanelOrigin: CdkOverlayOrigin;
@ViewChild('dashboardSelectPanelOrigin') dashboardSelectPanelOrigin: CdkOverlayOrigin;
private propagateChange = (v: any) => { };

View File

@ -84,9 +84,9 @@ export class EntityKeysListComponent implements ControlValueAccessor, OnInit, Af
@Input()
disabled: boolean;
@ViewChild('keyInput', {static: false}) keyInput: ElementRef<HTMLInputElement>;
@ViewChild('keyAutocomplete', {static: false}) matAutocomplete: MatAutocomplete;
@ViewChild('chipList', {static: false}) chipList: MatChipList;
@ViewChild('keyInput') keyInput: ElementRef<HTMLInputElement>;
@ViewChild('keyAutocomplete') matAutocomplete: MatAutocomplete;
@ViewChild('chipList') chipList: MatChipList;
filteredKeys: Observable<Array<string>>;

View File

@ -83,8 +83,8 @@ export class EntityListComponent implements ControlValueAccessor, OnInit, AfterV
@Input()
disabled: boolean;
@ViewChild('entityInput', {static: false}) entityInput: ElementRef<HTMLInputElement>;
@ViewChild('entityAutocomplete', {static: false}) matAutocomplete: MatAutocomplete;
@ViewChild('entityInput') entityInput: ElementRef<HTMLInputElement>;
@ViewChild('entityAutocomplete') matAutocomplete: MatAutocomplete;
@ViewChild('chipList', {static: true}) chipList: MatChipList;
entities: Array<BaseData<EntityId>> = [];

View File

@ -89,8 +89,8 @@ export class EntitySubTypeListComponent implements ControlValueAccessor, OnInit,
@Input()
entityType: EntityType;
@ViewChild('entitySubtypeInput', {static: false}) entitySubtypeInput: ElementRef<HTMLInputElement>;
@ViewChild('entitySubtypeAutocomplete', {static: false}) entitySubtypeAutocomplete: MatAutocomplete;
@ViewChild('entitySubtypeInput') entitySubtypeInput: ElementRef<HTMLInputElement>;
@ViewChild('entitySubtypeAutocomplete') entitySubtypeAutocomplete: MatAutocomplete;
@ViewChild('chipList', {static: true}) chipList: MatChipList;
entitySubtypeList: Array<string> = [];

View File

@ -91,8 +91,8 @@ export class EntityTypeListComponent implements ControlValueAccessor, OnInit, Af
@Input()
ignoreAuthorityFilter: boolean;
@ViewChild('entityTypeInput', {static: false}) entityTypeInput: ElementRef<HTMLInputElement>;
@ViewChild('entityTypeAutocomplete', {static: false}) entityTypeAutocomplete: MatAutocomplete;
@ViewChild('entityTypeInput') entityTypeInput: ElementRef<HTMLInputElement>;
@ViewChild('entityTypeAutocomplete') entityTypeAutocomplete: MatAutocomplete;
@ViewChild('chipList', {static: true}) chipList: MatChipList;
allEntityTypeList: Array<EntityTypeInfo> = [];

View File

@ -14,18 +14,7 @@
/// limitations under the License.
///
import {
AfterViewInit,
Directive,
ElementRef,
OnDestroy,
Renderer,
Renderer2,
HostListener,
QueryList,
Output,
EventEmitter
} from '@angular/core';
import { AfterViewInit, Directive, ElementRef, OnDestroy, Renderer, Renderer2, HostListener, QueryList, Output, EventEmitter } from '@angular/core';
import { MatChip, MatChipList } from '@angular/material/chips';
import DragStartEvent = JQuery.DragStartEvent;
import Timeout = NodeJS.Timeout;

View File

@ -121,7 +121,7 @@ export class TimewindowComponent implements OnInit, OnDestroy, ControlValueAcces
@Input() disabled: boolean;
@ViewChild('timewindowPanelOrigin', {static: false}) timewindowPanelOrigin: CdkOverlayOrigin;
@ViewChild('timewindowPanelOrigin') timewindowPanelOrigin: CdkOverlayOrigin;
innerValue: Timewindow;

View File

@ -5,7 +5,7 @@
"outDir": "./dist/out-tsc",
"sourceMap": true,
"declaration": false,
"module": "es2015",
"module": "esnext",
"moduleResolution": "node",
"emitDecoratorMetadata": true,
"experimentalDecorators": true,