Commit f8ac02da627a6fdbaa9351e848e89460bca6e580

Authored by Igor Kulikov
1 parent 77eb33df

Refactoring

Showing 68 changed files with 425 additions and 178 deletions
@@ -104,7 +104,6 @@ @@ -104,7 +104,6 @@
104 <module>tools</module> 104 <module>tools</module>
105 <module>application</module> 105 <module>application</module>
106 <module>msa</module> 106 <module>msa</module>
107 - <module>ui</module>  
108 </modules> 107 </modules>
109 108
110 <profiles> 109 <profiles>
@@ -307,6 +306,7 @@ @@ -307,6 +306,7 @@
307 <exclude>**/*.proto.js</exclude> 306 <exclude>**/*.proto.js</exclude>
308 <exclude>docker/haproxy/**</exclude> 307 <exclude>docker/haproxy/**</exclude>
309 <exclude>docker/tb-node/**</exclude> 308 <exclude>docker/tb-node/**</exclude>
  309 + <exclude>ui/**</exclude>
310 </excludes> 310 </excludes>
311 <mapping> 311 <mapping>
312 <proto>JAVADOC_STYLE</proto> 312 <proto>JAVADOC_STYLE</proto>
ui-ngx/src/app/modules/home/components/contact.component.html renamed from ui-ngx/src/app/shared/components/contact.component.html
ui-ngx/src/app/modules/home/components/contact.component.ts renamed from ui-ngx/src/app/shared/components/contact.component.ts
@@ -16,7 +16,7 @@ @@ -16,7 +16,7 @@
16 16
17 import { Component, Input } from '@angular/core'; 17 import { Component, Input } from '@angular/core';
18 import { FormGroup } from '@angular/forms'; 18 import { FormGroup } from '@angular/forms';
19 -import { COUNTRIES } from '@shared/components/contact.models'; 19 +import { COUNTRIES } from '@home/models/contact.models';
20 20
21 @Component({ 21 @Component({
22 selector: 'tb-contact', 22 selector: 'tb-contact',
ui-ngx/src/app/modules/home/components/details-panel.component.html renamed from ui-ngx/src/app/shared/components/details-panel.component.html
ui-ngx/src/app/modules/home/components/details-panel.component.scss renamed from ui-ngx/src/app/shared/components/details-panel.component.scss
@@ -13,7 +13,7 @@ @@ -13,7 +13,7 @@
13 * See the License for the specific language governing permissions and 13 * See the License for the specific language governing permissions and
14 * limitations under the License. 14 * limitations under the License.
15 */ 15 */
16 -@import '../../../scss/constants'; 16 +@import '../../../../scss/constants';
17 17
18 :host { 18 :host {
19 width: 100%; 19 width: 100%;
ui-ngx/src/app/modules/home/components/details-panel.component.ts renamed from ui-ngx/src/app/shared/components/details-panel.component.ts
ui-ngx/src/app/modules/home/components/entity/add-entity-dialog.component.html renamed from ui-ngx/src/app/shared/components/entity/add-entity-dialog.component.html
ui-ngx/src/app/modules/home/components/entity/add-entity-dialog.component.scss renamed from ui-ngx/src/app/shared/components/entity/add-entity-dialog.component.scss
ui-ngx/src/app/modules/home/components/entity/add-entity-dialog.component.ts renamed from ui-ngx/src/app/shared/components/entity/add-entity-dialog.component.ts
@@ -14,26 +14,19 @@ @@ -14,26 +14,19 @@
14 /// limitations under the License. 14 /// limitations under the License.
15 /// 15 ///
16 16
17 -import {  
18 - Component,  
19 - ComponentFactoryResolver,  
20 - Inject,  
21 - OnInit,  
22 - SkipSelf,  
23 - ViewChild  
24 -} from '@angular/core';  
25 -import { ErrorStateMatcher, MAT_DIALOG_DATA, MatDialogRef } from '@angular/material';  
26 -import { PageComponent } from '@shared/components/page.component';  
27 -import { Store } from '@ngrx/store';  
28 -import { AppState } from '@core/core.state';  
29 -import { FormControl, FormGroupDirective, NgForm } from '@angular/forms';  
30 -import { EntityTypeResource, EntityTypeTranslation } from '@shared/models/entity-type.models';  
31 -import { EntityTableConfig } from '@shared/components/entity/entities-table-config.models';  
32 -import { BaseData, HasId } from '@shared/models/base-data';  
33 -import { EntityId } from '@shared/models/id/entity-id';  
34 -import { AddEntityDialogData } from '@shared/components/entity/entity-component.models';  
35 -import { TbAnchorComponent } from '@shared/components/tb-anchor.component';  
36 -import { EntityComponent } from '@shared/components/entity/entity.component'; 17 +import {Component, ComponentFactoryResolver, Inject, OnInit, SkipSelf, ViewChild} from '@angular/core';
  18 +import {ErrorStateMatcher, MAT_DIALOG_DATA, MatDialogRef} from '@angular/material';
  19 +import {PageComponent} from '@shared/components/page.component';
  20 +import {Store} from '@ngrx/store';
  21 +import {AppState} from '@core/core.state';
  22 +import {FormControl, FormGroupDirective, NgForm} from '@angular/forms';
  23 +import {EntityTypeResource, EntityTypeTranslation} from '@shared/models/entity-type.models';
  24 +import {BaseData, HasId} from '@shared/models/base-data';
  25 +import {EntityId} from '@shared/models/id/entity-id';
  26 +import {TbAnchorComponent} from '@shared/components/tb-anchor.component';
  27 +import {EntityComponent} from './entity.component';
  28 +import {EntityTableConfig} from '@home/models/entity/entities-table-config.models';
  29 +import {AddEntityDialogData} from '@home/models/entity/entity-component.models';
37 30
38 @Component({ 31 @Component({
39 selector: 'tb-add-entity-dialog', 32 selector: 'tb-add-entity-dialog',
ui-ngx/src/app/modules/home/components/entity/contact-based.component.ts renamed from ui-ngx/src/app/shared/components/entity/contact-based.component.ts
@@ -16,12 +16,12 @@ @@ -16,12 +16,12 @@
16 16
17 import { Store } from '@ngrx/store'; 17 import { Store } from '@ngrx/store';
18 import { AppState } from '@core/core.state'; 18 import { AppState } from '@core/core.state';
19 -import { EntityComponent } from '@shared/components/entity/entity.component';  
20 import { FormBuilder, FormGroup, ValidatorFn, Validators } from '@angular/forms'; 19 import { FormBuilder, FormGroup, ValidatorFn, Validators } from '@angular/forms';
21 import { ContactBased } from '@shared/models/contact-based.model'; 20 import { ContactBased } from '@shared/models/contact-based.model';
22 import { AfterViewInit } from '@angular/core'; 21 import { AfterViewInit } from '@angular/core';
23 -import { POSTAL_CODE_PATTERNS } from '@shared/components/contact.models'; 22 +import { POSTAL_CODE_PATTERNS } from '@home/models/contact.models';
24 import { HasId } from '@shared/models/base-data'; 23 import { HasId } from '@shared/models/base-data';
  24 +import {EntityComponent} from './entity.component';
25 25
26 export abstract class ContactBasedComponent<T extends ContactBased<HasId>> extends EntityComponent<T> implements AfterViewInit { 26 export abstract class ContactBasedComponent<T extends ContactBased<HasId>> extends EntityComponent<T> implements AfterViewInit {
27 27
ui-ngx/src/app/modules/home/components/entity/entities-table.component.html renamed from ui-ngx/src/app/shared/components/entity/entities-table.component.html
ui-ngx/src/app/modules/home/components/entity/entities-table.component.scss renamed from ui-ngx/src/app/shared/components/entity/entities-table.component.scss
ui-ngx/src/app/modules/home/components/entity/entities-table.component.ts renamed from ui-ngx/src/app/shared/components/entity/entities-table.component.ts
@@ -29,7 +29,7 @@ import { Store } from '@ngrx/store'; @@ -29,7 +29,7 @@ import { Store } from '@ngrx/store';
29 import { AppState } from '@core/core.state'; 29 import { AppState } from '@core/core.state';
30 import { PageLink, TimePageLink } from '@shared/models/page/page-link'; 30 import { PageLink, TimePageLink } from '@shared/models/page/page-link';
31 import { MatDialog, MatPaginator, MatSort } from '@angular/material'; 31 import { MatDialog, MatPaginator, MatSort } from '@angular/material';
32 -import { EntitiesDataSource } from '@shared/models/datasource/entity-datasource'; 32 +import { EntitiesDataSource } from '@home/models/datasource/entity-datasource';
33 import { debounceTime, distinctUntilChanged, tap } from 'rxjs/operators'; 33 import { debounceTime, distinctUntilChanged, tap } from 'rxjs/operators';
34 import { Direction, SortOrder } from '@shared/models/page/sort-order'; 34 import { Direction, SortOrder } from '@shared/models/page/sort-order';
35 import { forkJoin, fromEvent, merge, Observable } from 'rxjs'; 35 import { forkJoin, fromEvent, merge, Observable } from 'rxjs';
@@ -43,14 +43,14 @@ import { @@ -43,14 +43,14 @@ import {
43 EntityTableConfig, 43 EntityTableConfig,
44 GroupActionDescriptor, 44 GroupActionDescriptor,
45 HeaderActionDescriptor 45 HeaderActionDescriptor
46 -} from '@shared/components/entity/entities-table-config.models'; 46 +} from '@home/models/entity/entities-table-config.models';
47 import { EntityTypeTranslation } from '@shared/models/entity-type.models'; 47 import { EntityTypeTranslation } from '@shared/models/entity-type.models';
48 import { DialogService } from '@core/services/dialog.service'; 48 import { DialogService } from '@core/services/dialog.service';
49 -import { AddEntityDialogComponent } from '@shared/components/entity/add-entity-dialog.component'; 49 +import { AddEntityDialogComponent } from './add-entity-dialog.component';
50 import { 50 import {
51 AddEntityDialogData, 51 AddEntityDialogData,
52 EntityAction 52 EntityAction
53 -} from '@shared/components/entity/entity-component.models'; 53 +} from '@home/models/entity/entity-component.models';
54 import { Timewindow } from '@shared/models/time/time.models'; 54 import { Timewindow } from '@shared/models/time/time.models';
55 import {DomSanitizer, SafeHtml} from '@angular/platform-browser'; 55 import {DomSanitizer, SafeHtml} from '@angular/platform-browser';
56 import { TbAnchorComponent } from '@shared/components/tb-anchor.component'; 56 import { TbAnchorComponent } from '@shared/components/tb-anchor.component';
ui-ngx/src/app/modules/home/components/entity/entity-details-panel.component.html renamed from ui-ngx/src/app/shared/components/entity/entity-details-panel.component.html
@@ -31,13 +31,6 @@ @@ -31,13 +31,6 @@
31 <mat-tab label="{{ 'details.details' | translate }}"> 31 <mat-tab label="{{ 'details.details' | translate }}">
32 <tb-anchor #entityDetailsForm></tb-anchor> 32 <tb-anchor #entityDetailsForm></tb-anchor>
33 </mat-tab> 33 </mat-tab>
34 - <!--mat-tab *ngIf="entity && entitiesTableConfig.entityType !== entityTypes.CUSTOMER"  
35 - label="{{ 'audit-log.audit-logs' | translate }}">  
36 - <tb-audit-log-table [active]="selectedTab === 1" [auditLogMode]="auditLogModes.ENTITY" [entityId]="entity.id" detailsMode="true"></tb-audit-log-table>  
37 - </mat-tab>  
38 - <mat-tab *ngIf="entity && entitiesTableConfig.entityType === entityTypes.CUSTOMER"  
39 - label="{{ 'audit-log.audit-logs' | translate }}">  
40 - <tb-audit-log-table [active]="selectedTab === 1" [auditLogMode]="auditLogModes.CUSTOMER" [customerId]="entity.id" detailsMode="true"></tb-audit-log-table>  
41 - </mat-tab--> 34 + <tb-anchor #entityTabs></tb-anchor>
42 </mat-tab-group> 35 </mat-tab-group>
43 </tb-details-panel> 36 </tb-details-panel>
ui-ngx/src/app/modules/home/components/entity/entity-details-panel.component.scss renamed from ui-ngx/src/app/shared/components/entity/entity-details-panel.component.scss
ui-ngx/src/app/modules/home/components/entity/entity-details-panel.component.ts renamed from ui-ngx/src/app/shared/components/entity/entity-details-panel.component.ts
@@ -23,12 +23,15 @@ import { @@ -23,12 +23,15 @@ import {
23 OnDestroy, 23 OnDestroy,
24 OnInit, 24 OnInit,
25 Output, 25 Output,
26 - ViewChild 26 + ViewChild,
  27 + ViewChildren,
  28 + QueryList,
  29 + ContentChildren, AfterViewInit
27 } from '@angular/core'; 30 } from '@angular/core';
28 import { PageComponent } from '@shared/components/page.component'; 31 import { PageComponent } from '@shared/components/page.component';
29 import { Store } from '@ngrx/store'; 32 import { Store } from '@ngrx/store';
30 import { AppState } from '@core/core.state'; 33 import { AppState } from '@core/core.state';
31 -import { EntityTableConfig } from '@shared/components/entity/entities-table-config.models'; 34 +import { EntityTableConfig } from '@home/models/entity/entities-table-config.models';
32 import { BaseData, HasId } from '@shared/models/base-data'; 35 import { BaseData, HasId } from '@shared/models/base-data';
33 import { 36 import {
34 EntityType, 37 EntityType,
@@ -36,11 +39,12 @@ import { @@ -36,11 +39,12 @@ import {
36 EntityTypeTranslation 39 EntityTypeTranslation
37 } from '@shared/models/entity-type.models'; 40 } from '@shared/models/entity-type.models';
38 import { NgForm } from '@angular/forms'; 41 import { NgForm } from '@angular/forms';
39 -import { EntityComponent } from '@shared/components/entity/entity.component'; 42 +import { EntityComponent } from './entity.component';
40 import { TbAnchorComponent } from '@shared/components/tb-anchor.component'; 43 import { TbAnchorComponent } from '@shared/components/tb-anchor.component';
41 -import { EntityAction } from '@shared/components/entity/entity-component.models'; 44 +import { EntityAction } from '@home/models/entity/entity-component.models';
42 import { Subscription } from 'rxjs'; 45 import { Subscription } from 'rxjs';
43 -// import { AuditLogMode } from '@shared/models/audit-log.models'; 46 +import { MatTabGroup, MatTab } from '@angular/material';
  47 +import { EntityTabsComponent } from '@home/components/entity/entity-tabs.component';
44 48
45 @Component({ 49 @Component({
46 selector: 'tb-entity-details-panel', 50 selector: 'tb-entity-details-panel',
@@ -48,7 +52,7 @@ import { Subscription } from 'rxjs'; @@ -48,7 +52,7 @@ import { Subscription } from 'rxjs';
48 styleUrls: ['./entity-details-panel.component.scss'], 52 styleUrls: ['./entity-details-panel.component.scss'],
49 changeDetection: ChangeDetectionStrategy.OnPush 53 changeDetection: ChangeDetectionStrategy.OnPush
50 }) 54 })
51 -export class EntityDetailsPanelComponent extends PageComponent implements OnInit, OnDestroy { 55 +export class EntityDetailsPanelComponent extends PageComponent implements OnInit, AfterViewInit, OnDestroy {
52 56
53 @Input() entitiesTableConfig: EntityTableConfig<BaseData<HasId>>; 57 @Input() entitiesTableConfig: EntityTableConfig<BaseData<HasId>>;
54 58
@@ -62,6 +66,7 @@ export class EntityDetailsPanelComponent extends PageComponent implements OnInit @@ -62,6 +66,7 @@ export class EntityDetailsPanelComponent extends PageComponent implements OnInit
62 entityAction = new EventEmitter<EntityAction<BaseData<HasId>>>(); 66 entityAction = new EventEmitter<EntityAction<BaseData<HasId>>>();
63 67
64 entityComponent: EntityComponent<BaseData<HasId>>; 68 entityComponent: EntityComponent<BaseData<HasId>>;
  69 + entityTabsComponent: EntityTabsComponent<BaseData<HasId>>;
65 detailsForm: NgForm; 70 detailsForm: NgForm;
66 71
67 isEditValue = false; 72 isEditValue = false;
@@ -71,6 +76,12 @@ export class EntityDetailsPanelComponent extends PageComponent implements OnInit @@ -71,6 +76,12 @@ export class EntityDetailsPanelComponent extends PageComponent implements OnInit
71 76
72 @ViewChild('entityDetailsForm', {static: true}) entityDetailsFormAnchor: TbAnchorComponent; 77 @ViewChild('entityDetailsForm', {static: true}) entityDetailsFormAnchor: TbAnchorComponent;
73 78
  79 + @ViewChild('entityTabs', {static: true}) entityTabsAnchor: TbAnchorComponent;
  80 +
  81 + @ViewChild(MatTabGroup, {static: true}) matTabGroup: MatTabGroup;
  82 +
  83 + @ViewChildren(MatTab) inclusiveTabs: QueryList<MatTab>;
  84 +
74 translations: EntityTypeTranslation; 85 translations: EntityTypeTranslation;
75 resources: EntityTypeResource; 86 resources: EntityTypeResource;
76 entity: BaseData<HasId>; 87 entity: BaseData<HasId>;
@@ -94,6 +105,9 @@ export class EntityDetailsPanelComponent extends PageComponent implements OnInit @@ -94,6 +105,9 @@ export class EntityDetailsPanelComponent extends PageComponent implements OnInit
94 set isEdit(val: boolean) { 105 set isEdit(val: boolean) {
95 this.isEditValue = val; 106 this.isEditValue = val;
96 this.entityComponent.isEdit = val; 107 this.entityComponent.isEdit = val;
  108 + if (this.entityTabsComponent) {
  109 + this.entityTabsComponent.isEdit = val;
  110 + }
97 } 111 }
98 112
99 get isEdit() { 113 get isEdit() {
@@ -125,6 +139,19 @@ export class EntityDetailsPanelComponent extends PageComponent implements OnInit @@ -125,6 +139,19 @@ export class EntityDetailsPanelComponent extends PageComponent implements OnInit
125 this.entityActionSubscription = this.entityComponent.entityAction.subscribe((action) => { 139 this.entityActionSubscription = this.entityComponent.entityAction.subscribe((action) => {
126 this.entityAction.emit(action); 140 this.entityAction.emit(action);
127 }); 141 });
  142 + this.buildEntityTabsComponent();
  143 + }
  144 +
  145 + buildEntityTabsComponent() {
  146 + if (this.entitiesTableConfig.entityTabsComponent) {
  147 + const componentTabsFactory = this.componentFactoryResolver.resolveComponentFactory(this.entitiesTableConfig.entityTabsComponent);
  148 + const viewContainerRef = this.entityTabsAnchor.viewContainerRef;
  149 + viewContainerRef.clear();
  150 + const componentTabsRef = viewContainerRef.createComponent(componentTabsFactory);
  151 + this.entityTabsComponent = componentTabsRef.instance;
  152 + this.entityTabsComponent.isEdit = this.isEdit;
  153 + this.entityTabsComponent.entitiesTableConfig = this.entitiesTableConfig;
  154 + }
128 } 155 }
129 156
130 reload(): void { 157 reload(): void {
@@ -133,6 +160,9 @@ export class EntityDetailsPanelComponent extends PageComponent implements OnInit @@ -133,6 +160,9 @@ export class EntityDetailsPanelComponent extends PageComponent implements OnInit
133 (entity) => { 160 (entity) => {
134 this.entity = entity; 161 this.entity = entity;
135 this.entityComponent.entity = entity; 162 this.entityComponent.entity = entity;
  163 + if (this.entityTabsComponent) {
  164 + this.entityTabsComponent.entity = entity;
  165 + }
136 } 166 }
137 ); 167 );
138 } 168 }
@@ -145,6 +175,9 @@ export class EntityDetailsPanelComponent extends PageComponent implements OnInit @@ -145,6 +175,9 @@ export class EntityDetailsPanelComponent extends PageComponent implements OnInit
145 this.isEdit = isEdit; 175 this.isEdit = isEdit;
146 if (!this.isEdit) { 176 if (!this.isEdit) {
147 this.entityComponent.entity = this.entity; 177 this.entityComponent.entity = this.entity;
  178 + if (this.entityTabsComponent) {
  179 + this.entityTabsComponent.entity = this.entity;
  180 + }
148 } else { 181 } else {
149 this.selectedTab = 0; 182 this.selectedTab = 0;
150 } 183 }
@@ -157,6 +190,9 @@ export class EntityDetailsPanelComponent extends PageComponent implements OnInit @@ -157,6 +190,9 @@ export class EntityDetailsPanelComponent extends PageComponent implements OnInit
157 (entity) => { 190 (entity) => {
158 this.entity = entity; 191 this.entity = entity;
159 this.entityComponent.entity = entity; 192 this.entityComponent.entity = entity;
  193 + if (this.entityTabsComponent) {
  194 + this.entityTabsComponent.entity = entity;
  195 + }
160 this.isEdit = false; 196 this.isEdit = false;
161 this.entityUpdated.emit(this.entity); 197 this.entityUpdated.emit(this.entity);
162 } 198 }
@@ -164,4 +200,17 @@ export class EntityDetailsPanelComponent extends PageComponent implements OnInit @@ -164,4 +200,17 @@ export class EntityDetailsPanelComponent extends PageComponent implements OnInit
164 } 200 }
165 } 201 }
166 202
  203 + ngAfterViewInit(): void {
  204 + if (this.entityTabsComponent) {
  205 + this.entityTabsComponent.entityTabsChanged.subscribe(
  206 + (entityTabs) => {
  207 + if (entityTabs) {
  208 + this.matTabGroup._tabs.reset([...this.inclusiveTabs.toArray(), ...entityTabs]);
  209 + this.matTabGroup._tabs.notifyOnChanges();
  210 + }
  211 + }
  212 + );
  213 + }
  214 + }
  215 +
167 } 216 }
ui-ngx/src/app/modules/home/components/entity/entity-table-header.component.ts renamed from ui-ngx/src/app/shared/components/entity/entity-table-header.component.ts
@@ -19,7 +19,7 @@ import { PageComponent } from '@shared/components/page.component'; @@ -19,7 +19,7 @@ import { PageComponent } from '@shared/components/page.component';
19 import { Input, OnInit } from '@angular/core'; 19 import { Input, OnInit } from '@angular/core';
20 import { Store } from '@ngrx/store'; 20 import { Store } from '@ngrx/store';
21 import { AppState } from '@core/core.state'; 21 import { AppState } from '@core/core.state';
22 -import { EntityTableConfig } from '@shared/components/entity/entities-table-config.models'; 22 +import { EntityTableConfig } from '@home/models/entity/entities-table-config.models';
23 23
24 export abstract class EntityTableHeaderComponent<T extends BaseData<HasId>> extends PageComponent implements OnInit { 24 export abstract class EntityTableHeaderComponent<T extends BaseData<HasId>> extends PageComponent implements OnInit {
25 25
  1 +///
  2 +/// Copyright © 2016-2019 The Thingsboard Authors
  3 +///
  4 +/// Licensed under the Apache License, Version 2.0 (the "License");
  5 +/// you may not use this file except in compliance with the License.
  6 +/// You may obtain a copy of the License at
  7 +///
  8 +/// http://www.apache.org/licenses/LICENSE-2.0
  9 +///
  10 +/// Unless required by applicable law or agreed to in writing, software
  11 +/// distributed under the License is distributed on an "AS IS" BASIS,
  12 +/// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  13 +/// See the License for the specific language governing permissions and
  14 +/// limitations under the License.
  15 +///
  16 +
  17 +import { BaseData, HasId } from '@shared/models/base-data';
  18 +import { PageComponent } from '@shared/components/page.component';
  19 +import {
  20 + AfterViewInit,
  21 + ContentChildren,
  22 + EventEmitter,
  23 + Input,
  24 + OnInit,
  25 + Output,
  26 + QueryList,
  27 + ViewChildren
  28 +} from '@angular/core';
  29 +import { Store } from '@ngrx/store';
  30 +import { AppState } from '@core/core.state';
  31 +import { EntityTableConfig } from '@home/models/entity/entities-table-config.models';
  32 +import { MatTab } from '@angular/material';
  33 +import { EntityAction } from '@home/models/entity/entity-component.models';
  34 +import { BehaviorSubject } from 'rxjs';
  35 +
  36 +export abstract class EntityTabsComponent<T extends BaseData<HasId>> extends PageComponent implements OnInit, AfterViewInit {
  37 +
  38 + entityValue: T;
  39 +
  40 + @ViewChildren(MatTab) entityTabs: QueryList<MatTab>;
  41 +
  42 + isEditValue: boolean;
  43 +
  44 + @Input()
  45 + set isEdit(isEdit: boolean) {
  46 + this.isEditValue = isEdit;
  47 + }
  48 +
  49 + get isEdit() {
  50 + return this.isEditValue;
  51 + }
  52 +
  53 + @Input()
  54 + set entity(entity: T) {
  55 + this.entityValue = entity;
  56 + }
  57 +
  58 + get entity(): T {
  59 + return this.entityValue;
  60 + }
  61 +
  62 + @Input()
  63 + entitiesTableConfig: EntityTableConfig<T>;
  64 +
  65 + private entityTabsSubject = new BehaviorSubject<Array<MatTab>>(null);
  66 +
  67 + entityTabsChanged = this.entityTabsSubject.asObservable();
  68 +
  69 + protected constructor(protected store: Store<AppState>) {
  70 + super(store);
  71 + }
  72 +
  73 + ngOnInit() {
  74 + }
  75 +
  76 + ngAfterViewInit(): void {
  77 + this.entityTabsSubject.next(this.entityTabs.toArray());
  78 + this.entityTabs.changes.subscribe(
  79 + () => {
  80 + this.entityTabsSubject.next(this.entityTabs.toArray());
  81 + }
  82 + );
  83 + }
  84 +
  85 +}
ui-ngx/src/app/modules/home/components/entity/entity.component.ts renamed from ui-ngx/src/app/shared/components/entity/entity.component.ts
@@ -20,8 +20,8 @@ import { PageComponent } from '@shared/components/page.component'; @@ -20,8 +20,8 @@ import { PageComponent } from '@shared/components/page.component';
20 import { EventEmitter, Input, OnInit, Output, ViewChild } from '@angular/core'; 20 import { EventEmitter, Input, OnInit, Output, ViewChild } from '@angular/core';
21 import { Store } from '@ngrx/store'; 21 import { Store } from '@ngrx/store';
22 import { AppState } from '@core/core.state'; 22 import { AppState } from '@core/core.state';
23 -import { EntityAction } from '@shared/components/entity/entity-component.models';  
24 -import { EntityTableConfig } from '@shared/components/entity/entities-table-config.models'; 23 +import { EntityAction } from '@home/models/entity/entity-component.models';
  24 +import { EntityTableConfig } from '@home/models/entity/entities-table-config.models';
25 25
26 export abstract class EntityComponent<T extends BaseData<HasId>> extends PageComponent implements OnInit { 26 export abstract class EntityComponent<T extends BaseData<HasId>> extends PageComponent implements OnInit {
27 27
  1 +///
  2 +/// Copyright © 2016-2019 The Thingsboard Authors
  3 +///
  4 +/// Licensed under the Apache License, Version 2.0 (the "License");
  5 +/// you may not use this file except in compliance with the License.
  6 +/// You may obtain a copy of the License at
  7 +///
  8 +/// http://www.apache.org/licenses/LICENSE-2.0
  9 +///
  10 +/// Unless required by applicable law or agreed to in writing, software
  11 +/// distributed under the License is distributed on an "AS IS" BASIS,
  12 +/// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  13 +/// See the License for the specific language governing permissions and
  14 +/// limitations under the License.
  15 +///
  16 +
  17 +import {NgModule} from '@angular/core';
  18 +import {CommonModule} from '@angular/common';
  19 +import {SharedModule} from '@app/shared/shared.module';
  20 +import {AddEntityDialogComponent} from './entity/add-entity-dialog.component';
  21 +import {EntitiesTableComponent} from './entity/entities-table.component';
  22 +import {DetailsPanelComponent} from './details-panel.component';
  23 +import {EntityDetailsPanelComponent} from './entity/entity-details-panel.component';
  24 +import {ContactComponent} from './contact.component';
  25 +
  26 +@NgModule({
  27 + entryComponents: [
  28 + AddEntityDialogComponent
  29 + ],
  30 + declarations:
  31 + [
  32 + EntitiesTableComponent,
  33 + AddEntityDialogComponent,
  34 + DetailsPanelComponent,
  35 + EntityDetailsPanelComponent,
  36 + ContactComponent,
  37 + ],
  38 + imports: [
  39 + CommonModule,
  40 + SharedModule
  41 + ],
  42 + exports: [
  43 + EntitiesTableComponent,
  44 + AddEntityDialogComponent,
  45 + DetailsPanelComponent,
  46 + EntityDetailsPanelComponent,
  47 + ContactComponent
  48 + ]
  49 +})
  50 +export class HomeComponentsModule { }
ui-ngx/src/app/modules/home/models/contact.models.ts renamed from ui-ngx/src/app/shared/components/contact.models.ts
ui-ngx/src/app/modules/home/models/datasource/entity-datasource.ts renamed from ui-ngx/src/app/shared/models/datasource/entity-datasource.ts
@@ -22,7 +22,7 @@ import { BaseData, HasId } from '@shared/models/base-data'; @@ -22,7 +22,7 @@ import { BaseData, HasId } from '@shared/models/base-data';
22 import { CollectionViewer, DataSource } from '@angular/cdk/typings/collections'; 22 import { CollectionViewer, DataSource } from '@angular/cdk/typings/collections';
23 import { catchError, map, take, tap } from 'rxjs/operators'; 23 import { catchError, map, take, tap } from 'rxjs/operators';
24 import { SelectionModel } from '@angular/cdk/collections'; 24 import { SelectionModel } from '@angular/cdk/collections';
25 -import {EntityBooleanFunction} from '@shared/components/entity/entities-table-config.models'; 25 +import {EntityBooleanFunction} from '@home/models/entity/entities-table-config.models';
26 26
27 export type EntitiesFetchFunction<T extends BaseData<HasId>, P extends PageLink> = (pageLink: P) => Observable<PageData<T>>; 27 export type EntitiesFetchFunction<T extends BaseData<HasId>, P extends PageLink> = (pageLink: P) => Observable<PageData<T>>;
28 28
ui-ngx/src/app/modules/home/models/entity/entities-table-config.models.ts renamed from ui-ngx/src/app/shared/components/entity/entities-table-config.models.ts
@@ -14,26 +14,22 @@ @@ -14,26 +14,22 @@
14 /// limitations under the License. 14 /// limitations under the License.
15 /// 15 ///
16 16
17 -import { BaseData, HasId } from '@shared/models/base-data';  
18 -import { EntityId } from '@shared/models/id/entity-id';  
19 -import { EntitiesFetchFunction } from '@shared/models/datasource/entity-datasource';  
20 -import { Observable, of } from 'rxjs';  
21 -import { emptyPageData } from '@shared/models/page/page-data';  
22 -import { DatePipe } from '@angular/common';  
23 -import { Direction, SortOrder } from '@shared/models/page/sort-order';  
24 -import {  
25 - EntityType,  
26 - EntityTypeResource,  
27 - EntityTypeTranslation  
28 -} from '@shared/models/entity-type.models';  
29 -import { EntityComponent } from '@shared/components/entity/entity.component';  
30 -import { Type } from '@angular/core';  
31 -import { EntityAction } from '@shared/components/entity/entity-component.models';  
32 -import { HasUUID } from '@shared/models/id/has-uuid';  
33 -import { PageLink } from '@shared/models/page/page-link';  
34 -import { EntitiesTableComponent } from '@shared/components/entity/entities-table.component';  
35 -import { EntityTableHeaderComponent } from '@shared/components/entity/entity-table-header.component';  
36 -import { ActivatedRoute } from '@angular/router'; 17 +import {BaseData, HasId} from '@shared/models/base-data';
  18 +import {EntitiesFetchFunction} from '@home/models/datasource/entity-datasource';
  19 +import {Observable, of} from 'rxjs';
  20 +import {emptyPageData} from '@shared/models/page/page-data';
  21 +import {DatePipe} from '@angular/common';
  22 +import {Direction, SortOrder} from '@shared/models/page/sort-order';
  23 +import {EntityType, EntityTypeResource, EntityTypeTranslation} from '@shared/models/entity-type.models';
  24 +import {EntityComponent} from '@home/components/entity/entity.component';
  25 +import {Type} from '@angular/core';
  26 +import {EntityAction} from './entity-component.models';
  27 +import {HasUUID} from '@shared/models/id/has-uuid';
  28 +import {PageLink} from '@shared/models/page/page-link';
  29 +import {EntitiesTableComponent} from '@home/components/entity/entities-table.component';
  30 +import {EntityTableHeaderComponent} from '@home/components/entity/entity-table-header.component';
  31 +import {ActivatedRoute} from '@angular/router';
  32 +import { EntityTabsComponent } from '../../components/entity/entity-tabs.component';
37 33
38 export type EntityBooleanFunction<T extends BaseData<HasId>> = (entity: T) => boolean; 34 export type EntityBooleanFunction<T extends BaseData<HasId>> = (entity: T) => boolean;
39 export type EntityStringFunction<T extends BaseData<HasId>> = (entity: T) => string; 35 export type EntityStringFunction<T extends BaseData<HasId>> = (entity: T) => string;
@@ -117,6 +113,7 @@ export class EntityTableConfig<T extends BaseData<HasId>, P extends PageLink = P @@ -117,6 +113,7 @@ export class EntityTableConfig<T extends BaseData<HasId>, P extends PageLink = P
117 entityTranslations: EntityTypeTranslation; 113 entityTranslations: EntityTypeTranslation;
118 entityResources: EntityTypeResource; 114 entityResources: EntityTypeResource;
119 entityComponent: Type<EntityComponent<T>>; 115 entityComponent: Type<EntityComponent<T>>;
  116 + entityTabsComponent: Type<EntityTabsComponent<T>>;
120 addDialogStyle = {}; 117 addDialogStyle = {};
121 defaultSortOrder: SortOrder = {property: 'createdTime', direction: Direction.ASC}; 118 defaultSortOrder: SortOrder = {property: 'createdTime', direction: Direction.ASC};
122 columns: Array<EntityTableColumn<T>> = []; 119 columns: Array<EntityTableColumn<T>> = [];
ui-ngx/src/app/modules/home/models/entity/entity-component.models.ts renamed from ui-ngx/src/app/shared/components/entity/entity-component.models.ts
@@ -14,8 +14,8 @@ @@ -14,8 +14,8 @@
14 /// limitations under the License. 14 /// limitations under the License.
15 /// 15 ///
16 16
17 -import { BaseData, HasId } from '@shared/models/base-data';  
18 -import { EntityTableConfig } from '@shared/components/entity/entities-table-config.models'; 17 +import {BaseData, HasId} from '@shared/models/base-data';
  18 +import {EntityTableConfig} from './entities-table-config.models';
19 19
20 export interface AddEntityDialogData<T extends BaseData<HasId>> { 20 export interface AddEntityDialogData<T extends BaseData<HasId>> {
21 entitiesTableConfig: EntityTableConfig<T>; 21 entitiesTableConfig: EntityTableConfig<T>;
@@ -20,8 +20,9 @@ import { CommonModule } from '@angular/common'; @@ -20,8 +20,9 @@ import { CommonModule } from '@angular/common';
20 import { AdminRoutingModule } from './admin-routing.module'; 20 import { AdminRoutingModule } from './admin-routing.module';
21 import { SharedModule } from '@app/shared/shared.module'; 21 import { SharedModule } from '@app/shared/shared.module';
22 import { MailServerComponent } from '@modules/home/pages/admin/mail-server.component'; 22 import { MailServerComponent } from '@modules/home/pages/admin/mail-server.component';
23 -import {GeneralSettingsComponent} from "@modules/home/pages/admin/general-settings.component";  
24 -import {SecuritySettingsComponent} from "@modules/home/pages/admin/security-settings.component"; 23 +import {GeneralSettingsComponent} from '@modules/home/pages/admin/general-settings.component';
  24 +import {SecuritySettingsComponent} from '@modules/home/pages/admin/security-settings.component';
  25 +import {HomeComponentsModule} from '@modules/home/components/home-components.module';
25 26
26 @NgModule({ 27 @NgModule({
27 declarations: 28 declarations:
@@ -33,6 +34,7 @@ import {SecuritySettingsComponent} from "@modules/home/pages/admin/security-sett @@ -33,6 +34,7 @@ import {SecuritySettingsComponent} from "@modules/home/pages/admin/security-sett
33 imports: [ 34 imports: [
34 CommonModule, 35 CommonModule,
35 SharedModule, 36 SharedModule,
  37 + HomeComponentsModule,
36 AdminRoutingModule 38 AdminRoutingModule
37 ] 39 ]
38 }) 40 })
@@ -17,7 +17,7 @@ @@ -17,7 +17,7 @@
17 import {NgModule} from '@angular/core'; 17 import {NgModule} from '@angular/core';
18 import {RouterModule, Routes} from '@angular/router'; 18 import {RouterModule, Routes} from '@angular/router';
19 19
20 -import {EntitiesTableComponent} from '@shared/components/entity/entities-table.component'; 20 +import {EntitiesTableComponent} from '../../components/entity/entities-table.component';
21 import {Authority} from '@shared/models/authority.enum'; 21 import {Authority} from '@shared/models/authority.enum';
22 import {AssetsTableConfigResolver} from './assets-table-config.resolver'; 22 import {AssetsTableConfigResolver} from './assets-table-config.resolver';
23 23
@@ -17,7 +17,7 @@ @@ -17,7 +17,7 @@
17 import {Component} from '@angular/core'; 17 import {Component} from '@angular/core';
18 import {Store} from '@ngrx/store'; 18 import {Store} from '@ngrx/store';
19 import {AppState} from '@core/core.state'; 19 import {AppState} from '@core/core.state';
20 -import {EntityTableHeaderComponent} from '@shared/components/entity/entity-table-header.component'; 20 +import {EntityTableHeaderComponent} from '../../components/entity/entity-table-header.component';
21 import {EntityType} from '@shared/models/entity-type.models'; 21 import {EntityType} from '@shared/models/entity-type.models';
22 import {AssetInfo} from '@shared/models/asset.models'; 22 import {AssetInfo} from '@shared/models/asset.models';
23 23
@@ -17,7 +17,7 @@ @@ -17,7 +17,7 @@
17 import {Component} from '@angular/core'; 17 import {Component} from '@angular/core';
18 import {Store} from '@ngrx/store'; 18 import {Store} from '@ngrx/store';
19 import {AppState} from '@core/core.state'; 19 import {AppState} from '@core/core.state';
20 -import {EntityComponent} from '@shared/components/entity/entity.component'; 20 +import {EntityComponent} from '../../components/entity/entity.component';
21 import {FormBuilder, FormGroup, Validators} from '@angular/forms'; 21 import {FormBuilder, FormGroup, Validators} from '@angular/forms';
22 import {EntityType} from '@shared/models/entity-type.models'; 22 import {EntityType} from '@shared/models/entity-type.models';
23 import {NULL_UUID} from '@shared/models/id/has-uuid'; 23 import {NULL_UUID} from '@shared/models/id/has-uuid';
@@ -21,6 +21,7 @@ import {HomeDialogsModule} from '../../dialogs/home-dialogs.module'; @@ -21,6 +21,7 @@ import {HomeDialogsModule} from '../../dialogs/home-dialogs.module';
21 import {AssetComponent} from './asset.component'; 21 import {AssetComponent} from './asset.component';
22 import {AssetTableHeaderComponent} from './asset-table-header.component'; 22 import {AssetTableHeaderComponent} from './asset-table-header.component';
23 import {AssetRoutingModule} from './asset-routing.module'; 23 import {AssetRoutingModule} from './asset-routing.module';
  24 +import {HomeComponentsModule} from '@modules/home/components/home-components.module';
24 25
25 @NgModule({ 26 @NgModule({
26 entryComponents: [ 27 entryComponents: [
@@ -34,6 +35,7 @@ import {AssetRoutingModule} from './asset-routing.module'; @@ -34,6 +35,7 @@ import {AssetRoutingModule} from './asset-routing.module';
34 imports: [ 35 imports: [
35 CommonModule, 36 CommonModule,
36 SharedModule, 37 SharedModule,
  38 + HomeComponentsModule,
37 HomeDialogsModule, 39 HomeDialogsModule,
38 AssetRoutingModule 40 AssetRoutingModule
39 ] 41 ]
@@ -25,11 +25,11 @@ import { @@ -25,11 +25,11 @@ import {
25 EntityTableConfig, 25 EntityTableConfig,
26 GroupActionDescriptor, 26 GroupActionDescriptor,
27 HeaderActionDescriptor 27 HeaderActionDescriptor
28 -} from '@shared/components/entity/entities-table-config.models'; 28 +} from '@home/models/entity/entities-table-config.models';
29 import {TranslateService} from '@ngx-translate/core'; 29 import {TranslateService} from '@ngx-translate/core';
30 import {DatePipe} from '@angular/common'; 30 import {DatePipe} from '@angular/common';
31 import {EntityType, entityTypeResources, entityTypeTranslations} from '@shared/models/entity-type.models'; 31 import {EntityType, entityTypeResources, entityTypeTranslations} from '@shared/models/entity-type.models';
32 -import {EntityAction} from '@shared/components/entity/entity-component.models'; 32 +import {EntityAction} from '@home/models/entity/entity-component.models';
33 import {forkJoin, Observable, of} from 'rxjs'; 33 import {forkJoin, Observable, of} from 'rxjs';
34 import {select, Store} from '@ngrx/store'; 34 import {select, Store} from '@ngrx/store';
35 import {selectAuthUser} from '@core/auth/auth.selectors'; 35 import {selectAuthUser} from '@core/auth/auth.selectors';
@@ -17,7 +17,7 @@ @@ -17,7 +17,7 @@
17 import {NgModule} from '@angular/core'; 17 import {NgModule} from '@angular/core';
18 import {RouterModule, Routes} from '@angular/router'; 18 import {RouterModule, Routes} from '@angular/router';
19 19
20 -import {EntitiesTableComponent} from '@shared/components/entity/entities-table.component'; 20 +import {EntitiesTableComponent} from '../../components/entity/entities-table.component';
21 import {Authority} from '@shared/models/authority.enum'; 21 import {Authority} from '@shared/models/authority.enum';
22 import {UsersTableConfigResolver} from '../user/users-table-config.resolver'; 22 import {UsersTableConfigResolver} from '../user/users-table-config.resolver';
23 import {CustomersTableConfigResolver} from './customers-table-config.resolver'; 23 import {CustomersTableConfigResolver} from './customers-table-config.resolver';
@@ -19,10 +19,10 @@ import { Store } from '@ngrx/store'; @@ -19,10 +19,10 @@ import { Store } from '@ngrx/store';
19 import { AppState } from '@core/core.state'; 19 import { AppState } from '@core/core.state';
20 import { FormBuilder, FormGroup, Validators } from '@angular/forms'; 20 import { FormBuilder, FormGroup, Validators } from '@angular/forms';
21 import { Customer } from '@shared/models/customer.model'; 21 import { Customer } from '@shared/models/customer.model';
22 -import { ContactBasedComponent } from '@shared/components/entity/contact-based.component';  
23 import {Tenant} from '@app/shared/models/tenant.model'; 22 import {Tenant} from '@app/shared/models/tenant.model';
24 import {ActionNotificationShow} from '@app/core/notification/notification.actions'; 23 import {ActionNotificationShow} from '@app/core/notification/notification.actions';
25 import {TranslateService} from '@ngx-translate/core'; 24 import {TranslateService} from '@ngx-translate/core';
  25 +import {ContactBasedComponent} from '../../components/entity/contact-based.component';
26 26
27 @Component({ 27 @Component({
28 selector: 'tb-customer', 28 selector: 'tb-customer',
@@ -19,6 +19,7 @@ import { CommonModule } from '@angular/common'; @@ -19,6 +19,7 @@ import { CommonModule } from '@angular/common';
19 import { SharedModule } from '@shared/shared.module'; 19 import { SharedModule } from '@shared/shared.module';
20 import {CustomerComponent} from '@modules/home/pages/customer/customer.component'; 20 import {CustomerComponent} from '@modules/home/pages/customer/customer.component';
21 import {CustomerRoutingModule} from './customer-routing.module'; 21 import {CustomerRoutingModule} from './customer-routing.module';
  22 +import {HomeComponentsModule} from '@modules/home/components/home-components.module';
22 23
23 @NgModule({ 24 @NgModule({
24 entryComponents: [ 25 entryComponents: [
@@ -30,6 +31,7 @@ import {CustomerRoutingModule} from './customer-routing.module'; @@ -30,6 +31,7 @@ import {CustomerRoutingModule} from './customer-routing.module';
30 imports: [ 31 imports: [
31 CommonModule, 32 CommonModule,
32 SharedModule, 33 SharedModule,
  34 + HomeComponentsModule,
33 CustomerRoutingModule 35 CustomerRoutingModule
34 ] 36 ]
35 }) 37 })
@@ -23,7 +23,7 @@ import { @@ -23,7 +23,7 @@ import {
23 DateEntityTableColumn, 23 DateEntityTableColumn,
24 EntityTableColumn, 24 EntityTableColumn,
25 EntityTableConfig 25 EntityTableConfig
26 -} from '@shared/components/entity/entities-table-config.models'; 26 +} from '@home/models/entity/entities-table-config.models';
27 import { TranslateService } from '@ngx-translate/core'; 27 import { TranslateService } from '@ngx-translate/core';
28 import { DatePipe } from '@angular/common'; 28 import { DatePipe } from '@angular/common';
29 import { 29 import {
@@ -31,7 +31,7 @@ import { @@ -31,7 +31,7 @@ import {
31 entityTypeResources, 31 entityTypeResources,
32 entityTypeTranslations 32 entityTypeTranslations
33 } from '@shared/models/entity-type.models'; 33 } from '@shared/models/entity-type.models';
34 -import { EntityAction } from '@shared/components/entity/entity-component.models'; 34 +import { EntityAction } from '@home/models/entity/entity-component.models';
35 import {Customer} from '@app/shared/models/customer.model'; 35 import {Customer} from '@app/shared/models/customer.model';
36 import {CustomerService} from '@app/core/http/customer.service'; 36 import {CustomerService} from '@app/core/http/customer.service';
37 import {CustomerComponent} from '@modules/home/pages/customer/customer.component'; 37 import {CustomerComponent} from '@modules/home/pages/customer/customer.component';
@@ -17,7 +17,7 @@ @@ -17,7 +17,7 @@
17 import {Component} from '@angular/core'; 17 import {Component} from '@angular/core';
18 import {Store} from '@ngrx/store'; 18 import {Store} from '@ngrx/store';
19 import {AppState} from '@core/core.state'; 19 import {AppState} from '@core/core.state';
20 -import {EntityComponent} from '@shared/components/entity/entity.component'; 20 +import {EntityComponent} from '../../components/entity/entity.component';
21 import {FormBuilder, FormGroup, Validators} from '@angular/forms'; 21 import {FormBuilder, FormGroup, Validators} from '@angular/forms';
22 import {ActionNotificationShow} from '@core/notification/notification.actions'; 22 import {ActionNotificationShow} from '@core/notification/notification.actions';
23 import {TranslateService} from '@ngx-translate/core'; 23 import {TranslateService} from '@ngx-translate/core';
@@ -35,7 +35,7 @@ import {DashboardService} from '@core/http/dashboard.service'; @@ -35,7 +35,7 @@ import {DashboardService} from '@core/http/dashboard.service';
35 templateUrl: './dashboard-form.component.html', 35 templateUrl: './dashboard-form.component.html',
36 styleUrls: ['./dashboard-form.component.scss'] 36 styleUrls: ['./dashboard-form.component.scss']
37 }) 37 })
38 -export class DashboardFormComponent extends EntityComponent<Dashboard | DashboardInfo> { 38 +export class DashboardFormComponent extends EntityComponent<Dashboard> {
39 39
40 dashboardScope: 'tenant' | 'customer' | 'customer_user'; 40 dashboardScope: 'tenant' | 'customer' | 'customer_user';
41 customerId: string; 41 customerId: string;
@@ -17,7 +17,7 @@ @@ -17,7 +17,7 @@
17 import {NgModule} from '@angular/core'; 17 import {NgModule} from '@angular/core';
18 import {RouterModule, Routes} from '@angular/router'; 18 import {RouterModule, Routes} from '@angular/router';
19 19
20 -import {EntitiesTableComponent} from '@shared/components/entity/entities-table.component'; 20 +import {EntitiesTableComponent} from '../../components/entity/entities-table.component';
21 import {Authority} from '@shared/models/authority.enum'; 21 import {Authority} from '@shared/models/authority.enum';
22 import {DashboardsTableConfigResolver} from './dashboards-table-config.resolver'; 22 import {DashboardsTableConfigResolver} from './dashboards-table-config.resolver';
23 23
@@ -22,6 +22,7 @@ import {DashboardFormComponent} from '@modules/home/pages/dashboard/dashboard-fo @@ -22,6 +22,7 @@ import {DashboardFormComponent} from '@modules/home/pages/dashboard/dashboard-fo
22 import {ManageDashboardCustomersDialogComponent} from '@modules/home/pages/dashboard/manage-dashboard-customers-dialog.component'; 22 import {ManageDashboardCustomersDialogComponent} from '@modules/home/pages/dashboard/manage-dashboard-customers-dialog.component';
23 import {DashboardRoutingModule} from './dashboard-routing.module'; 23 import {DashboardRoutingModule} from './dashboard-routing.module';
24 import {MakeDashboardPublicDialogComponent} from '@modules/home/pages/dashboard/make-dashboard-public-dialog.component'; 24 import {MakeDashboardPublicDialogComponent} from '@modules/home/pages/dashboard/make-dashboard-public-dialog.component';
  25 +import {HomeComponentsModule} from '@modules/home/components/home-components.module';
25 26
26 @NgModule({ 27 @NgModule({
27 entryComponents: [ 28 entryComponents: [
@@ -37,6 +38,7 @@ import {MakeDashboardPublicDialogComponent} from '@modules/home/pages/dashboard/ @@ -37,6 +38,7 @@ import {MakeDashboardPublicDialogComponent} from '@modules/home/pages/dashboard/
37 imports: [ 38 imports: [
38 CommonModule, 39 CommonModule,
39 SharedModule, 40 SharedModule,
  41 + HomeComponentsModule,
40 HomeDialogsModule, 42 HomeDialogsModule,
41 DashboardRoutingModule 43 DashboardRoutingModule
42 ] 44 ]
@@ -25,11 +25,11 @@ import { @@ -25,11 +25,11 @@ import {
25 EntityTableConfig, 25 EntityTableConfig,
26 GroupActionDescriptor, 26 GroupActionDescriptor,
27 HeaderActionDescriptor 27 HeaderActionDescriptor
28 -} from '@shared/components/entity/entities-table-config.models'; 28 +} from '@home/models/entity/entities-table-config.models';
29 import {TranslateService} from '@ngx-translate/core'; 29 import {TranslateService} from '@ngx-translate/core';
30 import {DatePipe} from '@angular/common'; 30 import {DatePipe} from '@angular/common';
31 import {EntityType, entityTypeResources, entityTypeTranslations} from '@shared/models/entity-type.models'; 31 import {EntityType, entityTypeResources, entityTypeTranslations} from '@shared/models/entity-type.models';
32 -import {EntityAction} from '@shared/components/entity/entity-component.models'; 32 +import {EntityAction} from '@home/models/entity/entity-component.models';
33 import {forkJoin, Observable, of} from 'rxjs'; 33 import {forkJoin, Observable, of} from 'rxjs';
34 import {select, Store} from '@ngrx/store'; 34 import {select, Store} from '@ngrx/store';
35 import {selectAuthUser} from '@core/auth/auth.selectors'; 35 import {selectAuthUser} from '@core/auth/auth.selectors';
@@ -17,7 +17,7 @@ @@ -17,7 +17,7 @@
17 import {NgModule} from '@angular/core'; 17 import {NgModule} from '@angular/core';
18 import {RouterModule, Routes} from '@angular/router'; 18 import {RouterModule, Routes} from '@angular/router';
19 19
20 -import {EntitiesTableComponent} from '@shared/components/entity/entities-table.component'; 20 +import {EntitiesTableComponent} from '../../components/entity/entities-table.component';
21 import {Authority} from '@shared/models/authority.enum'; 21 import {Authority} from '@shared/models/authority.enum';
22 import {DevicesTableConfigResolver} from '@modules/home/pages/device/devices-table-config.resolver'; 22 import {DevicesTableConfigResolver} from '@modules/home/pages/device/devices-table-config.resolver';
23 23
@@ -17,7 +17,7 @@ @@ -17,7 +17,7 @@
17 import { Component } from '@angular/core'; 17 import { Component } from '@angular/core';
18 import { Store } from '@ngrx/store'; 18 import { Store } from '@ngrx/store';
19 import { AppState } from '@core/core.state'; 19 import { AppState } from '@core/core.state';
20 -import { EntityTableHeaderComponent } from '@shared/components/entity/entity-table-header.component'; 20 +import { EntityTableHeaderComponent } from '../../components/entity/entity-table-header.component';
21 import {DeviceInfo} from '@app/shared/models/device.models'; 21 import {DeviceInfo} from '@app/shared/models/device.models';
22 import {EntityType} from '@shared/models/entity-type.models'; 22 import {EntityType} from '@shared/models/entity-type.models';
23 23
  1 +<!--
  2 +
  3 + Copyright © 2016-2019 The Thingsboard Authors
  4 +
  5 + Licensed under the Apache License, Version 2.0 (the "License");
  6 + you may not use this file except in compliance with the License.
  7 + You may obtain a copy of the License at
  8 +
  9 + http://www.apache.org/licenses/LICENSE-2.0
  10 +
  11 + Unless required by applicable law or agreed to in writing, software
  12 + distributed under the License is distributed on an "AS IS" BASIS,
  13 + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  14 + See the License for the specific language governing permissions and
  15 + limitations under the License.
  16 +
  17 +-->
  18 +<mat-tab label="{{entity?.name}}">
  19 + Hobotok<br/> {{ test }}
  20 + {{ entity | json }}
  21 +</mat-tab>
  22 +<mat-tab *ngIf="entity?.additionalInfo?.gateway" label="Gateway">
  23 + Hobotok 2<br/>
  24 + {{ entity | json }}
  25 +</mat-tab>
  26 +<mat-tab label="{{ 'extension.extensions' | translate }}">
  27 + Hobotok 2<br/>
  28 + {{ entity | json }}
  29 +</mat-tab>
  1 +///
  2 +/// Copyright © 2016-2019 The Thingsboard Authors
  3 +///
  4 +/// Licensed under the Apache License, Version 2.0 (the "License");
  5 +/// you may not use this file except in compliance with the License.
  6 +/// You may obtain a copy of the License at
  7 +///
  8 +/// http://www.apache.org/licenses/LICENSE-2.0
  9 +///
  10 +/// Unless required by applicable law or agreed to in writing, software
  11 +/// distributed under the License is distributed on an "AS IS" BASIS,
  12 +/// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  13 +/// See the License for the specific language governing permissions and
  14 +/// limitations under the License.
  15 +///
  16 +
  17 +import { Component } from '@angular/core';
  18 +import { Store } from '@ngrx/store';
  19 +import { AppState } from '@core/core.state';
  20 +import { DeviceInfo } from '@shared/models/device.models';
  21 +import { EntityType } from '@shared/models/entity-type.models';
  22 +import { EntityTabsComponent } from '../../components/entity/entity-tabs.component';
  23 +
  24 +@Component({
  25 + selector: 'tb-device-tabs',
  26 + templateUrl: './device-tabs.component.html',
  27 + styleUrls: []
  28 +})
  29 +export class DeviceTabsComponent extends EntityTabsComponent<DeviceInfo> {
  30 +
  31 + entityType = EntityType;
  32 +
  33 + constructor(protected store: Store<AppState>) {
  34 + super(store);
  35 + }
  36 +
  37 + ngOnInit() {
  38 + super.ngOnInit();
  39 + }
  40 +
  41 +}
@@ -17,7 +17,7 @@ @@ -17,7 +17,7 @@
17 import { Component, OnInit } from '@angular/core'; 17 import { Component, OnInit } from '@angular/core';
18 import { select, Store } from '@ngrx/store'; 18 import { select, Store } from '@ngrx/store';
19 import { AppState } from '@core/core.state'; 19 import { AppState } from '@core/core.state';
20 -import { EntityComponent } from '@shared/components/entity/entity.component'; 20 +import { EntityComponent } from '../../components/entity/entity.component';
21 import { FormBuilder, FormGroup, Validators } from '@angular/forms'; 21 import { FormBuilder, FormGroup, Validators } from '@angular/forms';
22 import { User } from '@shared/models/user.model'; 22 import { User } from '@shared/models/user.model';
23 import { selectAuth, selectUserDetails } from '@core/auth/auth.selectors'; 23 import { selectAuth, selectUserDetails } from '@core/auth/auth.selectors';
@@ -22,21 +22,26 @@ import {DeviceRoutingModule} from './device-routing.module'; @@ -22,21 +22,26 @@ import {DeviceRoutingModule} from './device-routing.module';
22 import {DeviceTableHeaderComponent} from '@modules/home/pages/device/device-table-header.component'; 22 import {DeviceTableHeaderComponent} from '@modules/home/pages/device/device-table-header.component';
23 import {DeviceCredentialsDialogComponent} from '@modules/home/pages/device/device-credentials-dialog.component'; 23 import {DeviceCredentialsDialogComponent} from '@modules/home/pages/device/device-credentials-dialog.component';
24 import {HomeDialogsModule} from '../../dialogs/home-dialogs.module'; 24 import {HomeDialogsModule} from '../../dialogs/home-dialogs.module';
  25 +import {HomeComponentsModule} from '@modules/home/components/home-components.module';
  26 +import { DeviceTabsComponent } from '@home/pages/device/device-tabs.component';
25 27
26 @NgModule({ 28 @NgModule({
27 entryComponents: [ 29 entryComponents: [
28 DeviceComponent, 30 DeviceComponent,
  31 + DeviceTabsComponent,
29 DeviceTableHeaderComponent, 32 DeviceTableHeaderComponent,
30 DeviceCredentialsDialogComponent 33 DeviceCredentialsDialogComponent
31 ], 34 ],
32 declarations: [ 35 declarations: [
33 DeviceComponent, 36 DeviceComponent,
  37 + DeviceTabsComponent,
34 DeviceTableHeaderComponent, 38 DeviceTableHeaderComponent,
35 DeviceCredentialsDialogComponent 39 DeviceCredentialsDialogComponent
36 ], 40 ],
37 imports: [ 41 imports: [
38 CommonModule, 42 CommonModule,
39 SharedModule, 43 SharedModule,
  44 + HomeComponentsModule,
40 HomeDialogsModule, 45 HomeDialogsModule,
41 DeviceRoutingModule 46 DeviceRoutingModule
42 ] 47 ]
@@ -24,11 +24,11 @@ import { @@ -24,11 +24,11 @@ import {
24 EntityTableColumn, 24 EntityTableColumn,
25 EntityTableConfig, GroupActionDescriptor, 25 EntityTableConfig, GroupActionDescriptor,
26 HeaderActionDescriptor 26 HeaderActionDescriptor
27 -} from '@shared/components/entity/entities-table-config.models'; 27 +} from '@home/models/entity/entities-table-config.models';
28 import {TranslateService} from '@ngx-translate/core'; 28 import {TranslateService} from '@ngx-translate/core';
29 import {DatePipe} from '@angular/common'; 29 import {DatePipe} from '@angular/common';
30 import {EntityType, entityTypeResources, entityTypeTranslations} from '@shared/models/entity-type.models'; 30 import {EntityType, entityTypeResources, entityTypeTranslations} from '@shared/models/entity-type.models';
31 -import {EntityAction} from '@shared/components/entity/entity-component.models'; 31 +import {EntityAction} from '@home/models/entity/entity-component.models';
32 import {Device, DeviceCredentials, DeviceInfo} from '@app/shared/models/device.models'; 32 import {Device, DeviceCredentials, DeviceInfo} from '@app/shared/models/device.models';
33 import {DeviceComponent} from '@modules/home/pages/device/device.component'; 33 import {DeviceComponent} from '@modules/home/pages/device/device.component';
34 import {forkJoin, Observable, of} from 'rxjs'; 34 import {forkJoin, Observable, of} from 'rxjs';
@@ -58,6 +58,7 @@ import { @@ -58,6 +58,7 @@ import {
58 AddEntitiesToCustomerDialogComponent, 58 AddEntitiesToCustomerDialogComponent,
59 AddEntitiesToCustomerDialogData 59 AddEntitiesToCustomerDialogData
60 } from '../../dialogs/add-entities-to-customer-dialog.component'; 60 } from '../../dialogs/add-entities-to-customer-dialog.component';
  61 +import { DeviceTabsComponent } from '@home/pages/device/device-tabs.component';
61 62
62 @Injectable() 63 @Injectable()
63 export class DevicesTableConfigResolver implements Resolve<EntityTableConfig<DeviceInfo>> { 64 export class DevicesTableConfigResolver implements Resolve<EntityTableConfig<DeviceInfo>> {
@@ -78,6 +79,7 @@ export class DevicesTableConfigResolver implements Resolve<EntityTableConfig<Dev @@ -78,6 +79,7 @@ export class DevicesTableConfigResolver implements Resolve<EntityTableConfig<Dev
78 79
79 this.config.entityType = EntityType.DEVICE; 80 this.config.entityType = EntityType.DEVICE;
80 this.config.entityComponent = DeviceComponent; 81 this.config.entityComponent = DeviceComponent;
  82 + this.config.entityTabsComponent = DeviceTabsComponent;
81 this.config.entityTranslations = entityTypeTranslations.get(EntityType.DEVICE); 83 this.config.entityTranslations = entityTypeTranslations.get(EntityType.DEVICE);
82 this.config.entityResources = entityTypeResources.get(EntityType.DEVICE); 84 this.config.entityResources = entityTypeResources.get(EntityType.DEVICE);
83 85
@@ -17,7 +17,7 @@ @@ -17,7 +17,7 @@
17 import {NgModule} from '@angular/core'; 17 import {NgModule} from '@angular/core';
18 import {RouterModule, Routes} from '@angular/router'; 18 import {RouterModule, Routes} from '@angular/router';
19 19
20 -import {EntitiesTableComponent} from '@shared/components/entity/entities-table.component'; 20 +import {EntitiesTableComponent} from '../../components/entity/entities-table.component';
21 import {Authority} from '@shared/models/authority.enum'; 21 import {Authority} from '@shared/models/authority.enum';
22 import {EntityViewsTableConfigResolver} from '@modules/home/pages/entity-view/entity-views-table-config.resolver'; 22 import {EntityViewsTableConfigResolver} from '@modules/home/pages/entity-view/entity-views-table-config.resolver';
23 23
@@ -17,7 +17,7 @@ @@ -17,7 +17,7 @@
17 import {Component} from '@angular/core'; 17 import {Component} from '@angular/core';
18 import {Store} from '@ngrx/store'; 18 import {Store} from '@ngrx/store';
19 import {AppState} from '@core/core.state'; 19 import {AppState} from '@core/core.state';
20 -import {EntityTableHeaderComponent} from '@shared/components/entity/entity-table-header.component'; 20 +import {EntityTableHeaderComponent} from '../../components/entity/entity-table-header.component';
21 import {EntityType} from '@shared/models/entity-type.models'; 21 import {EntityType} from '@shared/models/entity-type.models';
22 import {EntityViewInfo} from '@app/shared/models/entity-view.models'; 22 import {EntityViewInfo} from '@app/shared/models/entity-view.models';
23 23
@@ -17,7 +17,7 @@ @@ -17,7 +17,7 @@
17 import {Component} from '@angular/core'; 17 import {Component} from '@angular/core';
18 import {Store} from '@ngrx/store'; 18 import {Store} from '@ngrx/store';
19 import {AppState} from '@core/core.state'; 19 import {AppState} from '@core/core.state';
20 -import {EntityComponent} from '@shared/components/entity/entity.component'; 20 +import {EntityComponent} from '../../components/entity/entity.component';
21 import {FormBuilder, FormGroup, Validators} from '@angular/forms'; 21 import {FormBuilder, FormGroup, Validators} from '@angular/forms';
22 import {EntityType} from '@shared/models/entity-type.models'; 22 import {EntityType} from '@shared/models/entity-type.models';
23 import {NULL_UUID} from '@shared/models/id/has-uuid'; 23 import {NULL_UUID} from '@shared/models/id/has-uuid';
@@ -21,6 +21,7 @@ import {HomeDialogsModule} from '../../dialogs/home-dialogs.module'; @@ -21,6 +21,7 @@ import {HomeDialogsModule} from '../../dialogs/home-dialogs.module';
21 import {EntityViewComponent} from '@modules/home/pages/entity-view/entity-view.component'; 21 import {EntityViewComponent} from '@modules/home/pages/entity-view/entity-view.component';
22 import {EntityViewTableHeaderComponent} from './entity-view-table-header.component'; 22 import {EntityViewTableHeaderComponent} from './entity-view-table-header.component';
23 import {EntityViewRoutingModule} from './entity-view-routing.module'; 23 import {EntityViewRoutingModule} from './entity-view-routing.module';
  24 +import {HomeComponentsModule} from '@modules/home/components/home-components.module';
24 25
25 @NgModule({ 26 @NgModule({
26 entryComponents: [ 27 entryComponents: [
@@ -34,6 +35,7 @@ import {EntityViewRoutingModule} from './entity-view-routing.module'; @@ -34,6 +35,7 @@ import {EntityViewRoutingModule} from './entity-view-routing.module';
34 imports: [ 35 imports: [
35 CommonModule, 36 CommonModule,
36 SharedModule, 37 SharedModule,
  38 + HomeComponentsModule,
37 HomeDialogsModule, 39 HomeDialogsModule,
38 EntityViewRoutingModule 40 EntityViewRoutingModule
39 ] 41 ]
@@ -25,11 +25,11 @@ import { @@ -25,11 +25,11 @@ import {
25 EntityTableConfig, 25 EntityTableConfig,
26 GroupActionDescriptor, 26 GroupActionDescriptor,
27 HeaderActionDescriptor 27 HeaderActionDescriptor
28 -} from '@shared/components/entity/entities-table-config.models'; 28 +} from '@home/models/entity/entities-table-config.models';
29 import {TranslateService} from '@ngx-translate/core'; 29 import {TranslateService} from '@ngx-translate/core';
30 import {DatePipe} from '@angular/common'; 30 import {DatePipe} from '@angular/common';
31 import {EntityType, entityTypeResources, entityTypeTranslations} from '@shared/models/entity-type.models'; 31 import {EntityType, entityTypeResources, entityTypeTranslations} from '@shared/models/entity-type.models';
32 -import {EntityAction} from '@shared/components/entity/entity-component.models'; 32 +import {EntityAction} from '@home/models/entity/entity-component.models';
33 import {forkJoin, Observable, of} from 'rxjs'; 33 import {forkJoin, Observable, of} from 'rxjs';
34 import {select, Store} from '@ngrx/store'; 34 import {select, Store} from '@ngrx/store';
35 import {selectAuthUser} from '@core/auth/auth.selectors'; 35 import {selectAuthUser} from '@core/auth/auth.selectors';
@@ -17,7 +17,7 @@ @@ -17,7 +17,7 @@
17 import {NgModule} from '@angular/core'; 17 import {NgModule} from '@angular/core';
18 import {RouterModule, Routes} from '@angular/router'; 18 import {RouterModule, Routes} from '@angular/router';
19 19
20 -import {EntitiesTableComponent} from '@shared/components/entity/entities-table.component'; 20 +import {EntitiesTableComponent} from '../../components/entity/entities-table.component';
21 import {Authority} from '@shared/models/authority.enum'; 21 import {Authority} from '@shared/models/authority.enum';
22 import {RuleChainsTableConfigResolver} from '@modules/home/pages/rulechain/rulechains-table-config.resolver'; 22 import {RuleChainsTableConfigResolver} from '@modules/home/pages/rulechain/rulechains-table-config.resolver';
23 23
@@ -17,14 +17,14 @@ @@ -17,14 +17,14 @@
17 import {Component} from '@angular/core'; 17 import {Component} from '@angular/core';
18 import {Store} from '@ngrx/store'; 18 import {Store} from '@ngrx/store';
19 import {AppState} from '@core/core.state'; 19 import {AppState} from '@core/core.state';
20 -import {EntityComponent} from '@shared/components/entity/entity.component'; 20 +import {EntityComponent} from '../../components/entity/entity.component';
21 import {FormBuilder, FormGroup, Validators} from '@angular/forms'; 21 import {FormBuilder, FormGroup, Validators} from '@angular/forms';
22 import {EntityType} from '@shared/models/entity-type.models'; 22 import {EntityType} from '@shared/models/entity-type.models';
23 import {NULL_UUID} from '@shared/models/id/has-uuid'; 23 import {NULL_UUID} from '@shared/models/id/has-uuid';
24 import {ActionNotificationShow} from '@core/notification/notification.actions'; 24 import {ActionNotificationShow} from '@core/notification/notification.actions';
25 import {TranslateService} from '@ngx-translate/core'; 25 import {TranslateService} from '@ngx-translate/core';
26 import {AssetInfo} from '@app/shared/models/asset.models'; 26 import {AssetInfo} from '@app/shared/models/asset.models';
27 -import {RuleChain} from "@shared/models/rule-chain.models"; 27 +import {RuleChain} from '@shared/models/rule-chain.models';
28 28
29 @Component({ 29 @Component({
30 selector: 'tb-rulechain', 30 selector: 'tb-rulechain',
@@ -19,6 +19,7 @@ import {CommonModule} from '@angular/common'; @@ -19,6 +19,7 @@ import {CommonModule} from '@angular/common';
19 import {SharedModule} from '@shared/shared.module'; 19 import {SharedModule} from '@shared/shared.module';
20 import {RuleChainComponent} from '@modules/home/pages/rulechain/rulechain.component'; 20 import {RuleChainComponent} from '@modules/home/pages/rulechain/rulechain.component';
21 import {RuleChainRoutingModule} from '@modules/home/pages/rulechain/rulechain-routing.module'; 21 import {RuleChainRoutingModule} from '@modules/home/pages/rulechain/rulechain-routing.module';
  22 +import {HomeComponentsModule} from '@modules/home/components/home-components.module';
22 23
23 @NgModule({ 24 @NgModule({
24 entryComponents: [ 25 entryComponents: [
@@ -30,6 +31,7 @@ import {RuleChainRoutingModule} from '@modules/home/pages/rulechain/rulechain-ro @@ -30,6 +31,7 @@ import {RuleChainRoutingModule} from '@modules/home/pages/rulechain/rulechain-ro
30 imports: [ 31 imports: [
31 CommonModule, 32 CommonModule,
32 SharedModule, 33 SharedModule,
  34 + HomeComponentsModule,
33 RuleChainRoutingModule 35 RuleChainRoutingModule
34 ] 36 ]
35 }) 37 })
@@ -22,11 +22,11 @@ import { @@ -22,11 +22,11 @@ import {
22 DateEntityTableColumn, 22 DateEntityTableColumn,
23 EntityTableColumn, 23 EntityTableColumn,
24 EntityTableConfig 24 EntityTableConfig
25 -} from '@shared/components/entity/entities-table-config.models'; 25 +} from '@home/models/entity/entities-table-config.models';
26 import {TranslateService} from '@ngx-translate/core'; 26 import {TranslateService} from '@ngx-translate/core';
27 import {DatePipe} from '@angular/common'; 27 import {DatePipe} from '@angular/common';
28 import {EntityType, entityTypeResources, entityTypeTranslations} from '@shared/models/entity-type.models'; 28 import {EntityType, entityTypeResources, entityTypeTranslations} from '@shared/models/entity-type.models';
29 -import {EntityAction} from '@shared/components/entity/entity-component.models'; 29 +import {EntityAction} from '@home/models/entity/entity-component.models';
30 import {RuleChain} from '@shared/models/rule-chain.models'; 30 import {RuleChain} from '@shared/models/rule-chain.models';
31 import {RuleChainService} from '@core/http/rule-chain.service'; 31 import {RuleChainService} from '@core/http/rule-chain.service';
32 import {RuleChainComponent} from '@modules/home/pages/rulechain/rulechain.component'; 32 import {RuleChainComponent} from '@modules/home/pages/rulechain/rulechain.component';
@@ -17,7 +17,7 @@ @@ -17,7 +17,7 @@
17 import { Injectable, NgModule } from '@angular/core'; 17 import { Injectable, NgModule } from '@angular/core';
18 import { Resolve, RouterModule, Routes } from '@angular/router'; 18 import { Resolve, RouterModule, Routes } from '@angular/router';
19 19
20 -import { EntitiesTableComponent } from '@shared/components/entity/entities-table.component'; 20 +import { EntitiesTableComponent } from '../../components/entity/entities-table.component';
21 import { Authority } from '@shared/models/authority.enum'; 21 import { Authority } from '@shared/models/authority.enum';
22 import { TenantsTableConfigResolver } from '@modules/home/pages/tenant/tenants-table-config.resolver'; 22 import { TenantsTableConfigResolver } from '@modules/home/pages/tenant/tenants-table-config.resolver';
23 import { ProfileComponent } from '@modules/home/pages/profile/profile.component'; 23 import { ProfileComponent } from '@modules/home/pages/profile/profile.component';
@@ -19,10 +19,10 @@ import { Store } from '@ngrx/store'; @@ -19,10 +19,10 @@ import { Store } from '@ngrx/store';
19 import { AppState } from '@core/core.state'; 19 import { AppState } from '@core/core.state';
20 import { FormBuilder, FormGroup, Validators } from '@angular/forms'; 20 import { FormBuilder, FormGroup, Validators } from '@angular/forms';
21 import { Customer } from '@shared/models/customer.model'; 21 import { Customer } from '@shared/models/customer.model';
22 -import { ContactBasedComponent } from '@shared/components/entity/contact-based.component';  
23 import {Tenant} from '@app/shared/models/tenant.model'; 22 import {Tenant} from '@app/shared/models/tenant.model';
24 import {ActionNotificationShow} from '@app/core/notification/notification.actions'; 23 import {ActionNotificationShow} from '@app/core/notification/notification.actions';
25 import {TranslateService} from '@ngx-translate/core'; 24 import {TranslateService} from '@ngx-translate/core';
  25 +import {ContactBasedComponent} from '../../components/entity/contact-based.component';
26 26
27 @Component({ 27 @Component({
28 selector: 'tb-tenant', 28 selector: 'tb-tenant',
@@ -19,6 +19,7 @@ import { CommonModule } from '@angular/common'; @@ -19,6 +19,7 @@ import { CommonModule } from '@angular/common';
19 import { SharedModule } from '@shared/shared.module'; 19 import { SharedModule } from '@shared/shared.module';
20 import {TenantComponent} from '@modules/home/pages/tenant/tenant.component'; 20 import {TenantComponent} from '@modules/home/pages/tenant/tenant.component';
21 import {TenantRoutingModule} from '@modules/home/pages/tenant/tenant-routing.module'; 21 import {TenantRoutingModule} from '@modules/home/pages/tenant/tenant-routing.module';
  22 +import {HomeComponentsModule} from '@modules/home/components/home-components.module';
22 23
23 @NgModule({ 24 @NgModule({
24 entryComponents: [ 25 entryComponents: [
@@ -30,6 +31,7 @@ import {TenantRoutingModule} from '@modules/home/pages/tenant/tenant-routing.mod @@ -30,6 +31,7 @@ import {TenantRoutingModule} from '@modules/home/pages/tenant/tenant-routing.mod
30 imports: [ 31 imports: [
31 CommonModule, 32 CommonModule,
32 SharedModule, 33 SharedModule,
  34 + HomeComponentsModule,
33 TenantRoutingModule 35 TenantRoutingModule
34 ] 36 ]
35 }) 37 })
@@ -23,7 +23,7 @@ import { @@ -23,7 +23,7 @@ import {
23 DateEntityTableColumn, 23 DateEntityTableColumn,
24 EntityTableColumn, 24 EntityTableColumn,
25 EntityTableConfig 25 EntityTableConfig
26 -} from '@shared/components/entity/entities-table-config.models'; 26 +} from '@home/models/entity/entities-table-config.models';
27 import { TenantService } from '@core/http/tenant.service'; 27 import { TenantService } from '@core/http/tenant.service';
28 import { TranslateService } from '@ngx-translate/core'; 28 import { TranslateService } from '@ngx-translate/core';
29 import { DatePipe } from '@angular/common'; 29 import { DatePipe } from '@angular/common';
@@ -33,7 +33,7 @@ import { @@ -33,7 +33,7 @@ import {
33 entityTypeTranslations 33 entityTypeTranslations
34 } from '@shared/models/entity-type.models'; 34 } from '@shared/models/entity-type.models';
35 import { TenantComponent } from '@modules/home/pages/tenant/tenant.component'; 35 import { TenantComponent } from '@modules/home/pages/tenant/tenant.component';
36 -import { EntityAction } from '@shared/components/entity/entity-component.models'; 36 +import { EntityAction } from '@home/models/entity/entity-component.models';
37 import { User } from '@shared/models/user.model'; 37 import { User } from '@shared/models/user.model';
38 38
39 @Injectable() 39 @Injectable()
@@ -17,7 +17,7 @@ @@ -17,7 +17,7 @@
17 import { Component, OnInit } from '@angular/core'; 17 import { Component, OnInit } from '@angular/core';
18 import { select, Store } from '@ngrx/store'; 18 import { select, Store } from '@ngrx/store';
19 import { AppState } from '@core/core.state'; 19 import { AppState } from '@core/core.state';
20 -import { EntityComponent } from '@shared/components/entity/entity.component'; 20 +import { EntityComponent } from '../../components/entity/entity.component';
21 import { FormBuilder, FormGroup, Validators } from '@angular/forms'; 21 import { FormBuilder, FormGroup, Validators } from '@angular/forms';
22 import { User } from '@shared/models/user.model'; 22 import { User } from '@shared/models/user.model';
23 import { selectAuth, selectUserDetails } from '@core/auth/auth.selectors'; 23 import { selectAuth, selectUserDetails } from '@core/auth/auth.selectors';
@@ -21,6 +21,7 @@ import { UserComponent } from '@modules/home/pages/user/user.component'; @@ -21,6 +21,7 @@ import { UserComponent } from '@modules/home/pages/user/user.component';
21 import { UserRoutingModule } from '@modules/home/pages/user/user-routing.module'; 21 import { UserRoutingModule } from '@modules/home/pages/user/user-routing.module';
22 import { AddUserDialogComponent } from '@modules/home/pages/user/add-user-dialog.component'; 22 import { AddUserDialogComponent } from '@modules/home/pages/user/add-user-dialog.component';
23 import { ActivationLinkDialogComponent } from '@modules/home/pages/user/activation-link-dialog.component'; 23 import { ActivationLinkDialogComponent } from '@modules/home/pages/user/activation-link-dialog.component';
  24 +import {HomeComponentsModule} from '@modules/home/components/home-components.module';
24 25
25 @NgModule({ 26 @NgModule({
26 entryComponents: [ 27 entryComponents: [
@@ -36,6 +37,7 @@ import { ActivationLinkDialogComponent } from '@modules/home/pages/user/activati @@ -36,6 +37,7 @@ import { ActivationLinkDialogComponent } from '@modules/home/pages/user/activati
36 imports: [ 37 imports: [
37 CommonModule, 38 CommonModule,
38 SharedModule, 39 SharedModule,
  40 + HomeComponentsModule,
39 UserRoutingModule 41 UserRoutingModule
40 ] 42 ]
41 }) 43 })
@@ -21,7 +21,7 @@ import { @@ -21,7 +21,7 @@ import {
21 DateEntityTableColumn, 21 DateEntityTableColumn,
22 EntityTableColumn, 22 EntityTableColumn,
23 EntityTableConfig 23 EntityTableConfig
24 -} from '@shared/components/entity/entities-table-config.models'; 24 +} from '@home/models/entity/entities-table-config.models';
25 import { TranslateService } from '@ngx-translate/core'; 25 import { TranslateService } from '@ngx-translate/core';
26 import { DatePipe } from '@angular/common'; 26 import { DatePipe } from '@angular/common';
27 import { 27 import {
@@ -38,7 +38,7 @@ import { forkJoin, noop, Observable, of } from 'rxjs'; @@ -38,7 +38,7 @@ import { forkJoin, noop, Observable, of } from 'rxjs';
38 import { Authority } from '@shared/models/authority.enum'; 38 import { Authority } from '@shared/models/authority.enum';
39 import { CustomerId } from '@shared/models/id/customer-id'; 39 import { CustomerId } from '@shared/models/id/customer-id';
40 import { MatDialog } from '@angular/material'; 40 import { MatDialog } from '@angular/material';
41 -import { EntityAction } from '@shared/components/entity/entity-component.models'; 41 +import { EntityAction } from '@home/models/entity/entity-component.models';
42 import { 42 import {
43 AddUserDialogComponent, 43 AddUserDialogComponent,
44 AddUserDialogData 44 AddUserDialogData
@@ -17,7 +17,7 @@ @@ -17,7 +17,7 @@
17 import {NgModule} from '@angular/core'; 17 import {NgModule} from '@angular/core';
18 import {RouterModule, Routes} from '@angular/router'; 18 import {RouterModule, Routes} from '@angular/router';
19 19
20 -import {EntitiesTableComponent} from '@shared/components/entity/entities-table.component'; 20 +import {EntitiesTableComponent} from '../../components/entity/entities-table.component';
21 import {Authority} from '@shared/models/authority.enum'; 21 import {Authority} from '@shared/models/authority.enum';
22 import {RuleChainsTableConfigResolver} from '@modules/home/pages/rulechain/rulechains-table-config.resolver'; 22 import {RuleChainsTableConfigResolver} from '@modules/home/pages/rulechain/rulechains-table-config.resolver';
23 import {WidgetsBundlesTableConfigResolver} from '@modules/home/pages/widget/widgets-bundles-table-config.resolver'; 23 import {WidgetsBundlesTableConfigResolver} from '@modules/home/pages/widget/widgets-bundles-table-config.resolver';
@@ -19,6 +19,7 @@ import {CommonModule} from '@angular/common'; @@ -19,6 +19,7 @@ import {CommonModule} from '@angular/common';
19 import {SharedModule} from '@shared/shared.module'; 19 import {SharedModule} from '@shared/shared.module';
20 import {WidgetsBundleComponent} from '@modules/home/pages/widget/widgets-bundle.component'; 20 import {WidgetsBundleComponent} from '@modules/home/pages/widget/widgets-bundle.component';
21 import {WidgetLibraryRoutingModule} from '@modules/home/pages/widget/widget-library-routing.module'; 21 import {WidgetLibraryRoutingModule} from '@modules/home/pages/widget/widget-library-routing.module';
  22 +import {HomeComponentsModule} from '@modules/home/components/home-components.module';
22 23
23 @NgModule({ 24 @NgModule({
24 entryComponents: [ 25 entryComponents: [
@@ -30,6 +31,7 @@ import {WidgetLibraryRoutingModule} from '@modules/home/pages/widget/widget-libr @@ -30,6 +31,7 @@ import {WidgetLibraryRoutingModule} from '@modules/home/pages/widget/widget-libr
30 imports: [ 31 imports: [
31 CommonModule, 32 CommonModule,
32 SharedModule, 33 SharedModule,
  34 + HomeComponentsModule,
33 WidgetLibraryRoutingModule 35 WidgetLibraryRoutingModule
34 ] 36 ]
35 }) 37 })
@@ -17,7 +17,7 @@ @@ -17,7 +17,7 @@
17 import {Component} from '@angular/core'; 17 import {Component} from '@angular/core';
18 import {Store} from '@ngrx/store'; 18 import {Store} from '@ngrx/store';
19 import {AppState} from '@core/core.state'; 19 import {AppState} from '@core/core.state';
20 -import {EntityComponent} from '@shared/components/entity/entity.component'; 20 +import {EntityComponent} from '../../components/entity/entity.component';
21 import {FormBuilder, FormGroup, Validators} from '@angular/forms'; 21 import {FormBuilder, FormGroup, Validators} from '@angular/forms';
22 import {WidgetsBundle} from '@shared/models/widgets-bundle.model'; 22 import {WidgetsBundle} from '@shared/models/widgets-bundle.model';
23 23
@@ -22,11 +22,11 @@ import { @@ -22,11 +22,11 @@ import {
22 DateEntityTableColumn, 22 DateEntityTableColumn,
23 EntityTableColumn, 23 EntityTableColumn,
24 EntityTableConfig 24 EntityTableConfig
25 -} from '@shared/components/entity/entities-table-config.models'; 25 +} from '@home/models/entity/entities-table-config.models';
26 import {TranslateService} from '@ngx-translate/core'; 26 import {TranslateService} from '@ngx-translate/core';
27 import {DatePipe} from '@angular/common'; 27 import {DatePipe} from '@angular/common';
28 import {EntityType, entityTypeResources, entityTypeTranslations} from '@shared/models/entity-type.models'; 28 import {EntityType, entityTypeResources, entityTypeTranslations} from '@shared/models/entity-type.models';
29 -import {EntityAction} from '@shared/components/entity/entity-component.models'; 29 +import {EntityAction} from '@home/models/entity/entity-component.models';
30 import {WidgetsBundle} from '@shared/models/widgets-bundle.model'; 30 import {WidgetsBundle} from '@shared/models/widgets-bundle.model';
31 import {WidgetService} from '@app/core/http/widget.service'; 31 import {WidgetService} from '@app/core/http/widget.service';
32 import {WidgetsBundleComponent} from '@modules/home/pages/widget/widgets-bundle.component'; 32 import {WidgetsBundleComponent} from '@modules/home/pages/widget/widgets-bundle.component';
@@ -17,11 +17,11 @@ @@ -17,11 +17,11 @@
17 import {AfterViewInit, Component, forwardRef, Input, OnInit} from '@angular/core'; 17 import {AfterViewInit, Component, forwardRef, Input, OnInit} from '@angular/core';
18 import {ControlValueAccessor, FormBuilder, FormGroup, NG_VALUE_ACCESSOR} from '@angular/forms'; 18 import {ControlValueAccessor, FormBuilder, FormGroup, NG_VALUE_ACCESSOR} from '@angular/forms';
19 import {Store} from '@ngrx/store'; 19 import {Store} from '@ngrx/store';
20 -import {AppState} from '@app/core/core.state'; 20 +import {AppState} from '@core/core.state';
21 import {TranslateService} from '@ngx-translate/core'; 21 import {TranslateService} from '@ngx-translate/core';
22 -import {AliasEntityType, EntityType, entityTypeTranslations} from '@app/shared/models/entity-type.models'; 22 +import {AliasEntityType, EntityType, entityTypeTranslations} from '@shared/models/entity-type.models';
23 import {EntityService} from '@core/http/entity.service'; 23 import {EntityService} from '@core/http/entity.service';
24 -import {EntityId} from '@app/shared/models/id/entity-id'; 24 +import {EntityId} from '@shared/models/id/entity-id';
25 import {coerceBooleanProperty} from '@angular/cdk/coercion'; 25 import {coerceBooleanProperty} from '@angular/cdk/coercion';
26 26
27 @Component({ 27 @Component({
@@ -58,9 +58,9 @@ export class EntitySelectComponent implements ControlValueAccessor, OnInit, Afte @@ -58,9 +58,9 @@ export class EntitySelectComponent implements ControlValueAccessor, OnInit, Afte
58 @Input() 58 @Input()
59 disabled: boolean; 59 disabled: boolean;
60 60
61 - private defaultEntityType: EntityType | AliasEntityType = null; 61 + displayEntityTypeSelect: boolean;
62 62
63 - private displayEntityTypeSelect: boolean; 63 + private defaultEntityType: EntityType | AliasEntityType = null;
64 64
65 private propagateChange = (v: any) => { }; 65 private propagateChange = (v: any) => { };
66 66
@@ -14,72 +14,67 @@ @@ -14,72 +14,67 @@
14 /// limitations under the License. 14 /// limitations under the License.
15 /// 15 ///
16 16
17 -import { NgModule } from '@angular/core';  
18 -import { CommonModule, DatePipe } from '@angular/common';  
19 -import { FooterComponent } from './components/footer.component';  
20 -import { LogoComponent } from './components/logo.component';  
21 -import { ToastDirective, TbSnackBarComponent } from './components/toast.directive';  
22 -import { BreadcrumbComponent } from '@app/shared/components/breadcrumb.component'; 17 +import {NgModule} from '@angular/core';
  18 +import {CommonModule, DatePipe} from '@angular/common';
  19 +import {FooterComponent} from './components/footer.component';
  20 +import {LogoComponent} from './components/logo.component';
  21 +import {TbSnackBarComponent, ToastDirective} from './components/toast.directive';
  22 +import {BreadcrumbComponent} from '@app/shared/components/breadcrumb.component';
23 23
24 import { 24 import {
  25 + MatAutocompleteModule,
25 MatButtonModule, 26 MatButtonModule,
  27 + MatCardModule,
26 MatCheckboxModule, 28 MatCheckboxModule,
  29 + MatChipsModule,
  30 + MatDatepickerModule,
  31 + MatDialogModule,
  32 + MatDividerModule,
  33 + MatExpansionModule,
  34 + MatGridListModule,
27 MatIconModule, 35 MatIconModule,
28 - MatCardModule,  
29 - MatProgressBarModule,  
30 MatInputModule, 36 MatInputModule,
31 - MatSnackBarModule,  
32 - MatSidenavModule,  
33 - MatToolbarModule,  
34 MatMenuModule, 37 MatMenuModule,
35 - MatGridListModule,  
36 - MatDialogModule,  
37 - MatSelectModule,  
38 - MatTooltipModule,  
39 - MatTableModule,  
40 MatPaginatorModule, 38 MatPaginatorModule,
41 - MatSortModule, 39 + MatProgressBarModule,
42 MatProgressSpinnerModule, 40 MatProgressSpinnerModule,
43 - MatDividerModule,  
44 - MatTabsModule,  
45 MatRadioModule, 41 MatRadioModule,
46 - MatSlideToggleModule,  
47 - MatDatepickerModule, 42 + MatSelectModule,
  43 + MatSidenavModule,
48 MatSliderModule, 44 MatSliderModule,
49 - MatExpansionModule, 45 + MatSlideToggleModule,
  46 + MatSnackBarModule,
  47 + MatSortModule,
50 MatStepperModule, 48 MatStepperModule,
51 - MatAutocompleteModule,  
52 - MatChipsModule 49 + MatTableModule,
  50 + MatTabsModule,
  51 + MatToolbarModule,
  52 + MatTooltipModule
53 } from '@angular/material'; 53 } from '@angular/material';
54 -import { MatDatetimepickerModule, MatNativeDatetimeModule } from '@mat-datetimepicker/core';  
55 -import { FlexLayoutModule } from '@angular/flex-layout';  
56 -import { FormsModule, ReactiveFormsModule } from '@angular/forms';  
57 -import { RouterModule } from '@angular/router';  
58 -import { ShareModule as ShareButtonsModule } from '@ngx-share/core';  
59 -import { UserMenuComponent } from '@shared/components/user-menu.component';  
60 -import { NospacePipe } from './pipe/nospace.pipe';  
61 -import { TranslateModule } from '@ngx-translate/core';  
62 -import { TbCheckboxComponent } from '@shared/components/tb-checkbox.component';  
63 -import { HelpComponent } from '@shared/components/help.component';  
64 -import { EntitiesTableComponent } from '@shared/components/entity/entities-table.component';  
65 -import { AddEntityDialogComponent } from '@shared/components/entity/add-entity-dialog.component';  
66 -import { DetailsPanelComponent } from '@shared/components/details-panel.component';  
67 -import { EntityDetailsPanelComponent } from '@shared/components/entity/entity-details-panel.component';  
68 -import { TbAnchorComponent } from '@shared/components/tb-anchor.component';  
69 -import { ContactComponent } from '@shared/components/contact.component'; 54 +import {MatDatetimepickerModule, MatNativeDatetimeModule} from '@mat-datetimepicker/core';
  55 +import {FlexLayoutModule} from '@angular/flex-layout';
  56 +import {FormsModule, ReactiveFormsModule} from '@angular/forms';
  57 +import {RouterModule} from '@angular/router';
  58 +import {ShareModule as ShareButtonsModule} from '@ngx-share/core';
  59 +import {UserMenuComponent} from '@shared/components/user-menu.component';
  60 +import {NospacePipe} from './pipe/nospace.pipe';
  61 +import {TranslateModule} from '@ngx-translate/core';
  62 +import {TbCheckboxComponent} from '@shared/components/tb-checkbox.component';
  63 +import {HelpComponent} from '@shared/components/help.component';
  64 +import {TbAnchorComponent} from '@shared/components/tb-anchor.component';
70 // import { AuditLogDetailsDialogComponent } from '@shared/components/audit-log/audit-log-details-dialog.component'; 65 // import { AuditLogDetailsDialogComponent } from '@shared/components/audit-log/audit-log-details-dialog.component';
71 // import { AuditLogTableComponent } from '@shared/components/audit-log/audit-log-table.component'; 66 // import { AuditLogTableComponent } from '@shared/components/audit-log/audit-log-table.component';
72 -import { MillisecondsToTimeStringPipe } from '@shared/pipe/milliseconds-to-time-string.pipe';  
73 -import { TimewindowComponent } from '@shared/components/time/timewindow.component';  
74 -import { OverlayModule } from '@angular/cdk/overlay';  
75 -import { TimewindowPanelComponent } from '@shared/components/time/timewindow-panel.component';  
76 -import { TimeintervalComponent } from '@shared/components/time/timeinterval.component';  
77 -import { DatetimePeriodComponent } from '@shared/components/time/datetime-period.component';  
78 -import { EnumToArrayPipe } from '@shared/pipe/enum-to-array.pipe';  
79 -import { ClipboardModule } from 'ngx-clipboard'; 67 +import {MillisecondsToTimeStringPipe} from '@shared/pipe/milliseconds-to-time-string.pipe';
  68 +import {TimewindowComponent} from '@shared/components/time/timewindow.component';
  69 +import {OverlayModule} from '@angular/cdk/overlay';
  70 +import {TimewindowPanelComponent} from '@shared/components/time/timewindow-panel.component';
  71 +import {TimeintervalComponent} from '@shared/components/time/timeinterval.component';
  72 +import {DatetimePeriodComponent} from '@shared/components/time/datetime-period.component';
  73 +import {EnumToArrayPipe} from '@shared/pipe/enum-to-array.pipe';
  74 +import {ClipboardModule} from 'ngx-clipboard';
80 // import { ValueInputComponent } from '@shared/components/value-input.component'; 75 // import { ValueInputComponent } from '@shared/components/value-input.component';
81 -import { FullscreenDirective } from '@shared/components/fullscreen.directive';  
82 -import { HighlightPipe } from '@shared/pipe/highlight.pipe'; 76 +import {FullscreenDirective} from '@shared/components/fullscreen.directive';
  77 +import {HighlightPipe} from '@shared/pipe/highlight.pipe';
83 import {DashboardAutocompleteComponent} from '@shared/components/dashboard-autocomplete.component'; 78 import {DashboardAutocompleteComponent} from '@shared/components/dashboard-autocomplete.component';
84 import {EntitySubTypeAutocompleteComponent} from '@shared/components/entity/entity-subtype-autocomplete.component'; 79 import {EntitySubTypeAutocompleteComponent} from '@shared/components/entity/entity-subtype-autocomplete.component';
85 import {EntitySubTypeSelectComponent} from './components/entity/entity-subtype-select.component'; 80 import {EntitySubTypeSelectComponent} from './components/entity/entity-subtype-select.component';
@@ -102,7 +97,6 @@ import {SocialSharePanelComponent} from './components/socialshare-panel.componen @@ -102,7 +97,6 @@ import {SocialSharePanelComponent} from './components/socialshare-panel.componen
102 entryComponents: [ 97 entryComponents: [
103 TbSnackBarComponent, 98 TbSnackBarComponent,
104 TbAnchorComponent, 99 TbAnchorComponent,
105 - AddEntityDialogComponent,  
106 // AuditLogDetailsDialogComponent, 100 // AuditLogDetailsDialogComponent,
107 TimewindowPanelComponent, 101 TimewindowPanelComponent,
108 ], 102 ],
@@ -117,11 +111,6 @@ import {SocialSharePanelComponent} from './components/socialshare-panel.componen @@ -117,11 +111,6 @@ import {SocialSharePanelComponent} from './components/socialshare-panel.componen
117 TbSnackBarComponent, 111 TbSnackBarComponent,
118 BreadcrumbComponent, 112 BreadcrumbComponent,
119 UserMenuComponent, 113 UserMenuComponent,
120 - EntitiesTableComponent,  
121 - AddEntityDialogComponent,  
122 - DetailsPanelComponent,  
123 - EntityDetailsPanelComponent,  
124 - ContactComponent,  
125 // AuditLogTableComponent, 114 // AuditLogTableComponent,
126 // AuditLogDetailsDialogComponent, 115 // AuditLogDetailsDialogComponent,
127 TimewindowComponent, 116 TimewindowComponent,
@@ -195,11 +184,6 @@ import {SocialSharePanelComponent} from './components/socialshare-panel.componen @@ -195,11 +184,6 @@ import {SocialSharePanelComponent} from './components/socialshare-panel.componen
195 TbCheckboxComponent, 184 TbCheckboxComponent,
196 BreadcrumbComponent, 185 BreadcrumbComponent,
197 UserMenuComponent, 186 UserMenuComponent,
198 - EntitiesTableComponent,  
199 - AddEntityDialogComponent,  
200 - DetailsPanelComponent,  
201 - EntityDetailsPanelComponent,  
202 - ContactComponent,  
203 // AuditLogTableComponent, 187 // AuditLogTableComponent,
204 TimewindowComponent, 188 TimewindowComponent,
205 TimewindowPanelComponent, 189 TimewindowPanelComponent,
@@ -21,7 +21,8 @@ @@ -21,7 +21,8 @@
21 ], 21 ],
22 "@core/*": ["src/app/core/*"], 22 "@core/*": ["src/app/core/*"],
23 "@modules/*": ["src/app/modules/*"], 23 "@modules/*": ["src/app/modules/*"],
24 - "@shared/*": ["src/app/shared/*"] 24 + "@shared/*": ["src/app/shared/*"],
  25 + "@home/*": ["src/app/modules/home/*"]
25 }, 26 },
26 "lib": [ 27 "lib": [
27 "es2018", 28 "es2018",