]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
mgr/dashboard: Provide all services in root 35586/head
authorTiago Melo <tmelo@suse.com>
Tue, 16 Jun 2020 08:50:20 +0000 (08:50 +0000)
committerTiago Melo <tmelo@suse.com>
Thu, 18 Jun 2020 10:31:29 +0000 (10:31 +0000)
Fixes: https://tracker.ceph.com/issues/46030
Signed-off-by: Tiago Melo <tmelo@suse.com>
35 files changed:
src/pybind/mgr/dashboard/frontend/src/app/ceph/block/rbd-namespace-form/rbd-namespace-form-modal.component.spec.ts
src/pybind/mgr/dashboard/frontend/src/app/ceph/block/rbd-snapshot-form/rbd-snapshot-form-modal.component.spec.ts
src/pybind/mgr/dashboard/frontend/src/app/ceph/block/rbd-snapshot-list/rbd-snapshot-list.component.spec.ts
src/pybind/mgr/dashboard/frontend/src/app/shared/api/api.module.ts [deleted file]
src/pybind/mgr/dashboard/frontend/src/app/shared/api/auth.service.ts
src/pybind/mgr/dashboard/frontend/src/app/shared/api/ceph-service.service.ts
src/pybind/mgr/dashboard/frontend/src/app/shared/api/cephfs.service.ts
src/pybind/mgr/dashboard/frontend/src/app/shared/api/configuration.service.ts
src/pybind/mgr/dashboard/frontend/src/app/shared/api/crush-rule.service.ts
src/pybind/mgr/dashboard/frontend/src/app/shared/api/erasure-code-profile.service.ts
src/pybind/mgr/dashboard/frontend/src/app/shared/api/health.service.ts
src/pybind/mgr/dashboard/frontend/src/app/shared/api/host.service.ts
src/pybind/mgr/dashboard/frontend/src/app/shared/api/iscsi.service.ts
src/pybind/mgr/dashboard/frontend/src/app/shared/api/logging.service.ts
src/pybind/mgr/dashboard/frontend/src/app/shared/api/logs.service.ts
src/pybind/mgr/dashboard/frontend/src/app/shared/api/mgr-module.service.ts
src/pybind/mgr/dashboard/frontend/src/app/shared/api/monitor.service.ts
src/pybind/mgr/dashboard/frontend/src/app/shared/api/nfs.service.ts
src/pybind/mgr/dashboard/frontend/src/app/shared/api/orchestrator.service.ts
src/pybind/mgr/dashboard/frontend/src/app/shared/api/osd.service.ts
src/pybind/mgr/dashboard/frontend/src/app/shared/api/performance-counter.service.ts
src/pybind/mgr/dashboard/frontend/src/app/shared/api/pool.service.ts
src/pybind/mgr/dashboard/frontend/src/app/shared/api/prometheus.service.ts
src/pybind/mgr/dashboard/frontend/src/app/shared/api/rbd-mirroring.service.ts
src/pybind/mgr/dashboard/frontend/src/app/shared/api/rbd.service.ts
src/pybind/mgr/dashboard/frontend/src/app/shared/api/rgw-bucket.service.ts
src/pybind/mgr/dashboard/frontend/src/app/shared/api/rgw-daemon.service.ts
src/pybind/mgr/dashboard/frontend/src/app/shared/api/rgw-site.service.ts
src/pybind/mgr/dashboard/frontend/src/app/shared/api/rgw-user.service.ts
src/pybind/mgr/dashboard/frontend/src/app/shared/api/role.service.ts
src/pybind/mgr/dashboard/frontend/src/app/shared/api/scope.service.ts
src/pybind/mgr/dashboard/frontend/src/app/shared/api/settings.service.ts
src/pybind/mgr/dashboard/frontend/src/app/shared/api/telemetry.service.ts
src/pybind/mgr/dashboard/frontend/src/app/shared/api/user.service.ts
src/pybind/mgr/dashboard/frontend/src/app/shared/shared.module.ts

index f7760157c05f5cb39beb8c38ab5fc8ca61a9fb51..18906016514341816c5d10b3b1e7bf9719a2c6b2 100644 (file)
@@ -7,7 +7,6 @@ import { BsModalRef, BsModalService } from 'ngx-bootstrap/modal';
 import { ToastrModule } from 'ngx-toastr';
 
 import { configureTestBed, i18nProviders } from '../../../../testing/unit-test-helper';
-import { ApiModule } from '../../../shared/api/api.module';
 import { ComponentsModule } from '../../../shared/components/components.module';
 import { AuthStorageService } from '../../../shared/services/auth-storage.service';
 import { RbdNamespaceFormModalComponent } from './rbd-namespace-form-modal.component';
@@ -21,7 +20,6 @@ describe('RbdNamespaceFormModalComponent', () => {
       ReactiveFormsModule,
       ComponentsModule,
       HttpClientTestingModule,
-      ApiModule,
       ToastrModule.forRoot(),
       RouterTestingModule
     ],
index 8feb20ae343eb37adcbf098e249acfa6bc5f4773..6523562e08782e32d1f15be31db5a589c2585492 100644 (file)
@@ -7,7 +7,6 @@ import { BsModalRef, BsModalService } from 'ngx-bootstrap/modal';
 import { ToastrModule } from 'ngx-toastr';
 
 import { configureTestBed, i18nProviders } from '../../../../testing/unit-test-helper';
-import { ApiModule } from '../../../shared/api/api.module';
 import { ComponentsModule } from '../../../shared/components/components.module';
 import { PipesModule } from '../../../shared/pipes/pipes.module';
 import { AuthStorageService } from '../../../shared/services/auth-storage.service';
@@ -23,7 +22,6 @@ describe('RbdSnapshotFormModalComponent', () => {
       ComponentsModule,
       PipesModule,
       HttpClientTestingModule,
-      ApiModule,
       ToastrModule.forRoot(),
       RouterTestingModule
     ],
index 25f4ba3b83e51ac560f5b20657c04a6a54f7a28d..f1603d6364ab7750e721d8255986e683e7d9615a 100644 (file)
@@ -15,7 +15,6 @@ import {
   i18nProviders,
   PermissionHelper
 } from '../../../../testing/unit-test-helper';
-import { ApiModule } from '../../../shared/api/api.module';
 import { RbdService } from '../../../shared/api/rbd.service';
 import { ComponentsModule } from '../../../shared/components/components.module';
 import { ActionLabelsI18n } from '../../../shared/constants/app.constants';
@@ -50,7 +49,6 @@ describe('RbdSnapshotListComponent', () => {
   configureTestBed({
     declarations: [RbdSnapshotListComponent, RbdTabsComponent],
     imports: [
-      ApiModule,
       BrowserAnimationsModule,
       ComponentsModule,
       DataTableModule,
diff --git a/src/pybind/mgr/dashboard/frontend/src/app/shared/api/api.module.ts b/src/pybind/mgr/dashboard/frontend/src/app/shared/api/api.module.ts
deleted file mode 100644 (file)
index 4066a30..0000000
+++ /dev/null
@@ -1,7 +0,0 @@
-import { CommonModule } from '@angular/common';
-import { NgModule } from '@angular/core';
-
-@NgModule({
-  imports: [CommonModule]
-})
-export class ApiModule {}
index c8ac216f78b91ce36af631296c201df6cdfbe44d..b8bf955832387ad13facb57e5f7427b030d44ea9 100644 (file)
@@ -8,10 +8,9 @@ import { tap } from 'rxjs/operators';
 import { Credentials } from '../models/credentials';
 import { LoginResponse } from '../models/login-response';
 import { AuthStorageService } from '../services/auth-storage.service';
-import { ApiModule } from './api.module';
 
 @Injectable({
-  providedIn: ApiModule
+  providedIn: 'root'
 })
 export class AuthService {
   constructor(
index f1e4003b11b9340e6952efbfefed9f1aa3048c98..87d67d8cd49007590c80f4efc8f72fd9ce3d1add 100644 (file)
@@ -5,10 +5,9 @@ import { Observable } from 'rxjs';
 
 import { Daemon } from '../models/daemon.interface';
 import { CephServiceSpec } from '../models/service.interface';
-import { ApiModule } from './api.module';
 
 @Injectable({
-  providedIn: ApiModule
+  providedIn: 'root'
 })
 export class CephServiceService {
   private url = 'api/service';
index 246b5213fe510ec1b9968700085729c082a0e624..7f071900ec25a82a40c4aa8b250fafcf018af439 100644 (file)
@@ -6,11 +6,10 @@ import { Observable } from 'rxjs';
 
 import { cdEncode } from '../decorators/cd-encode';
 import { CephfsDir, CephfsQuotas } from '../models/cephfs-directory-models';
-import { ApiModule } from './api.module';
 
 @cdEncode
 @Injectable({
-  providedIn: ApiModule
+  providedIn: 'root'
 })
 export class CephfsService {
   baseURL = 'api/cephfs';
index 68be515101db17788f37452205cb5977ca3114a0..44284d7342750bb695edefe730fdda463230a50a 100644 (file)
@@ -2,10 +2,9 @@ import { HttpClient } from '@angular/common/http';
 import { Injectable } from '@angular/core';
 
 import { ConfigFormCreateRequestModel } from '../../ceph/cluster/configuration/configuration-form/configuration-form-create-request.model';
-import { ApiModule } from './api.module';
 
 @Injectable({
-  providedIn: ApiModule
+  providedIn: 'root'
 })
 export class ConfigurationService {
   constructor(private http: HttpClient) {}
index 506fa23d4e62fe24507daccd55676dc4b4b36b30..74d061a0205122cb36ccf7082b4f509312a31e63 100644 (file)
@@ -4,10 +4,9 @@ import { Injectable } from '@angular/core';
 import { I18n } from '@ngx-translate/i18n-polyfill';
 
 import { CrushRuleConfig } from '../models/crush-rule';
-import { ApiModule } from './api.module';
 
 @Injectable({
-  providedIn: ApiModule
+  providedIn: 'root'
 })
 export class CrushRuleService {
   apiPath = 'api/crush_rule';
index c452779c683a5db3cfea37f06e5a5ca566aa20fe..f99841250f591c7cd0ca04f59f993e6e1ec26b19 100644 (file)
@@ -5,10 +5,9 @@ import { I18n } from '@ngx-translate/i18n-polyfill';
 import { Observable } from 'rxjs';
 
 import { ErasureCodeProfile } from '../models/erasure-code-profile';
-import { ApiModule } from './api.module';
 
 @Injectable({
-  providedIn: ApiModule
+  providedIn: 'root'
 })
 export class ErasureCodeProfileService {
   apiPath = 'api/erasure_code_profile';
index e3ac39342e518b0401b913ef4d1f48b8c64a124e..a8f7c467a0ca742c5e11911e2fc9e479f2af7caf 100644 (file)
@@ -1,10 +1,8 @@
 import { HttpClient } from '@angular/common/http';
 import { Injectable } from '@angular/core';
 
-import { ApiModule } from './api.module';
-
 @Injectable({
-  providedIn: ApiModule
+  providedIn: 'root'
 })
 export class HealthService {
   constructor(private http: HttpClient) {}
index 60e1d3e97ea5d898dc373a73f35e96537b5b08d3..fef43950cc70b93f149211a66449191d9e213d28 100644 (file)
@@ -8,10 +8,9 @@ import { Daemon } from '../models/daemon.interface';
 import { CdDevice } from '../models/devices';
 import { SmartDataResponseV1 } from '../models/smart';
 import { DeviceService } from '../services/device.service';
-import { ApiModule } from './api.module';
 
 @Injectable({
-  providedIn: ApiModule
+  providedIn: 'root'
 })
 export class HostService {
   baseURL = 'api/host';
index 991b7e2e062064e828fa0af3f97e806b0746c15f..9ef0310c7ccf68069ad7e0494775060a80d43daa 100644 (file)
@@ -2,11 +2,10 @@ import { HttpClient } from '@angular/common/http';
 import { Injectable } from '@angular/core';
 
 import { cdEncode } from '../decorators/cd-encode';
-import { ApiModule } from './api.module';
 
 @cdEncode
 @Injectable({
-  providedIn: ApiModule
+  providedIn: 'root'
 })
 export class IscsiService {
   constructor(private http: HttpClient) {}
index 7c3bdc586ec05e3ce14ffbce2b5f2c8a97a11d2c..85846946b6c795d27babedd6c77e90b7ca9c7176 100644 (file)
@@ -1,10 +1,8 @@
 import { HttpClient } from '@angular/common/http';
 import { Injectable } from '@angular/core';
 
-import { ApiModule } from './api.module';
-
 @Injectable({
-  providedIn: ApiModule
+  providedIn: 'root'
 })
 export class LoggingService {
   constructor(private http: HttpClient) {}
index 4571c37dfeb07367b0e23aede40cebfe8adac221..252769dbd014152c4a9c42b4f4e42287d754466d 100644 (file)
@@ -1,10 +1,8 @@
 import { HttpClient } from '@angular/common/http';
 import { Injectable } from '@angular/core';
 
-import { ApiModule } from './api.module';
-
 @Injectable({
-  providedIn: ApiModule
+  providedIn: 'root'
 })
 export class LogsService {
   constructor(private http: HttpClient) {}
index ef937d8d159fda85fef07c7e7ba93dbca243b2c1..3942a1a44780e59f9e002e8ff9f17d04d1978822 100644 (file)
@@ -3,10 +3,8 @@ import { Injectable } from '@angular/core';
 
 import { Observable } from 'rxjs';
 
-import { ApiModule } from './api.module';
-
 @Injectable({
-  providedIn: ApiModule
+  providedIn: 'root'
 })
 export class MgrModuleService {
   private url = 'api/mgr/module';
index 115d1ca37883596131ff2ff331d87ff01da3cb2a..42ca9a7af158565c403f19ed86e717507b788f03 100644 (file)
@@ -1,10 +1,8 @@
 import { HttpClient } from '@angular/common/http';
 import { Injectable } from '@angular/core';
 
-import { ApiModule } from './api.module';
-
 @Injectable({
-  providedIn: ApiModule
+  providedIn: 'root'
 })
 export class MonitorService {
   constructor(private http: HttpClient) {}
index 1a53047ecdce0ea14f2bbc2d7a0d57ed9f7e1b09..f5de5bd412b3de662f39de6156cac6257e331f8c 100644 (file)
@@ -3,10 +3,8 @@ import { Injectable } from '@angular/core';
 
 import { I18n } from '@ngx-translate/i18n-polyfill';
 
-import { ApiModule } from './api.module';
-
 @Injectable({
-  providedIn: ApiModule
+  providedIn: 'root'
 })
 export class NfsService {
   apiPath = 'api/nfs-ganesha';
index cea8d4bccd93bfc7d408ff33b888cbfb6e308511..df05ff9c695007a11e035bf61cb20960d8b16f3d 100644 (file)
@@ -7,10 +7,9 @@ import { mergeMap } from 'rxjs/operators';
 
 import { InventoryDevice } from '../../ceph/cluster/inventory/inventory-devices/inventory-device.model';
 import { InventoryHost } from '../../ceph/cluster/inventory/inventory-host.model';
-import { ApiModule } from './api.module';
 
 @Injectable({
-  providedIn: ApiModule
+  providedIn: 'root'
 })
 export class OrchestratorService {
   private url = 'api/orchestrator';
index f35fad2748a70210e3abd0c8334cdbbad7c2a7ad..fd0e6bf606e3799118ea8c3edffda1cb695658dc 100644 (file)
@@ -8,10 +8,9 @@ import { map } from 'rxjs/operators';
 import { CdDevice } from '../models/devices';
 import { SmartDataResponseV1 } from '../models/smart';
 import { DeviceService } from '../services/device.service';
-import { ApiModule } from './api.module';
 
 @Injectable({
-  providedIn: ApiModule
+  providedIn: 'root'
 })
 export class OsdService {
   private path = 'api/osd';
index 49c6816faee0f78252727232832b0efddf27b46b..36be6f38315831436906e936e142861c5a753ad4 100644 (file)
@@ -5,11 +5,10 @@ import { of as observableOf } from 'rxjs';
 import { mergeMap } from 'rxjs/operators';
 
 import { cdEncode } from '../decorators/cd-encode';
-import { ApiModule } from './api.module';
 
 @cdEncode
 @Injectable({
-  providedIn: ApiModule
+  providedIn: 'root'
 })
 export class PerformanceCounterService {
   private url = 'api/perf_counters';
index d4382a631e5d220d7124fe1523c0078c93621d0b..78d5819ec8dee894773d45b2c63ee63ee565a317 100644 (file)
@@ -7,11 +7,10 @@ import { map } from 'rxjs/operators';
 import { cdEncode } from '../decorators/cd-encode';
 import { RbdConfigurationEntry } from '../models/configuration';
 import { RbdConfigurationService } from '../services/rbd-configuration.service';
-import { ApiModule } from './api.module';
 
 @cdEncode
 @Injectable({
-  providedIn: ApiModule
+  providedIn: 'root'
 })
 export class PoolService {
   apiPath = 'api/pool';
index 7b56161d4cfbaf5c561e6d13d54f8693c95f65e7..58191721953d57441f189218d94246f2aceff762 100644 (file)
@@ -10,11 +10,10 @@ import {
   AlertmanagerNotification,
   PrometheusRuleGroup
 } from '../models/prometheus-alerts';
-import { ApiModule } from './api.module';
 import { SettingsService } from './settings.service';
 
 @Injectable({
-  providedIn: ApiModule
+  providedIn: 'root'
 })
 export class PrometheusService {
   private baseURL = 'api/prometheus';
index 6a378b359971a691d3f03be0de060f6a5edd3562..4958382e27982a1a1f06aeaafbbe6a1775e28e78 100644 (file)
@@ -7,11 +7,10 @@ import { filter } from 'rxjs/operators';
 import { cdEncode, cdEncodeNot } from '../decorators/cd-encode';
 import { MirroringSummary } from '../models/mirroring-summary';
 import { TimerService } from '../services/timer.service';
-import { ApiModule } from './api.module';
 
 @cdEncode
 @Injectable({
-  providedIn: ApiModule
+  providedIn: 'root'
 })
 export class RbdMirroringService {
   readonly REFRESH_INTERVAL = 30000;
index 5a3a8747e9a3e9103e19d479fa3ad55bee50c791..38c02bd0557bdd13cbde120c07a6d37245861088 100644 (file)
@@ -7,12 +7,11 @@ import { map } from 'rxjs/operators';
 import { cdEncode, cdEncodeNot } from '../decorators/cd-encode';
 import { ImageSpec } from '../models/image-spec';
 import { RbdConfigurationService } from '../services/rbd-configuration.service';
-import { ApiModule } from './api.module';
 import { RbdPool } from './rbd.model';
 
 @cdEncode
 @Injectable({
-  providedIn: ApiModule
+  providedIn: 'root'
 })
 export class RbdService {
   constructor(private http: HttpClient, private rbdConfigurationService: RbdConfigurationService) {}
index 71907497d701f2306d03ed30e421b3026f751eb3..f939a55c104dd6cd9dc66eb2e0443e9925df12a2 100644 (file)
@@ -6,11 +6,10 @@ import { forkJoin as observableForkJoin, of as observableOf } from 'rxjs';
 import { mergeMap } from 'rxjs/operators';
 
 import { cdEncode } from '../decorators/cd-encode';
-import { ApiModule } from './api.module';
 
 @cdEncode
 @Injectable({
-  providedIn: ApiModule
+  providedIn: 'root'
 })
 export class RgwBucketService {
   private url = 'api/rgw/bucket';
index 9dde8ea75e0dbc9cdd73d08f939242b6ca502501..ae2a5d697595e23edde4eb15930408e7f22c8417 100644 (file)
@@ -2,11 +2,10 @@ import { HttpClient } from '@angular/common/http';
 import { Injectable } from '@angular/core';
 
 import { cdEncode } from '../decorators/cd-encode';
-import { ApiModule } from './api.module';
 
 @cdEncode
 @Injectable({
-  providedIn: ApiModule
+  providedIn: 'root'
 })
 export class RgwDaemonService {
   private url = 'api/rgw/daemon';
index a0bd328c7044396121342c52c6a9f3ca7cd24c80..8c761668831ff78bb4bb74f02e9e5943aa161f30 100644 (file)
@@ -2,11 +2,10 @@ import { HttpClient, HttpParams } from '@angular/common/http';
 import { Injectable } from '@angular/core';
 
 import { cdEncode } from '../decorators/cd-encode';
-import { ApiModule } from './api.module';
 
 @cdEncode
 @Injectable({
-  providedIn: ApiModule
+  providedIn: 'root'
 })
 export class RgwSiteService {
   private url = 'api/rgw/site';
index aff3d803ce8775875913f4d70a8c34bf04a8d214..6adc55dda4a82832770656237700764700f1b749 100644 (file)
@@ -6,11 +6,10 @@ import { forkJoin as observableForkJoin, Observable, of as observableOf } from '
 import { mergeMap } from 'rxjs/operators';
 
 import { cdEncode } from '../decorators/cd-encode';
-import { ApiModule } from './api.module';
 
 @cdEncode
 @Injectable({
-  providedIn: ApiModule
+  providedIn: 'root'
 })
 export class RgwUserService {
   private url = 'api/rgw/user';
index 08c1097115d4690842c28155f125181dafcec5c3..fada767e42ae827c75ceca9bdb6a51018999aa8d 100644 (file)
@@ -5,10 +5,9 @@ import { Observable, of as observableOf } from 'rxjs';
 import { mergeMap } from 'rxjs/operators';
 
 import { RoleFormModel } from '../../core/auth/role-form/role-form.model';
-import { ApiModule } from './api.module';
 
 @Injectable({
-  providedIn: ApiModule
+  providedIn: 'root'
 })
 export class RoleService {
   constructor(private http: HttpClient) {}
index 8808f21251e4546cad9639c630963bc1d3ffadea..11e5da80a03abf89b227ddeba8dd33cf5fd7701b 100644 (file)
@@ -1,10 +1,8 @@
 import { HttpClient } from '@angular/common/http';
 import { Injectable } from '@angular/core';
 
-import { ApiModule } from './api.module';
-
 @Injectable({
-  providedIn: ApiModule
+  providedIn: 'root'
 })
 export class ScopeService {
   constructor(private http: HttpClient) {}
index 05a46caec610aa0ae701e7984f1d05da7a877225..52433a8a419d055a65d32e8f7405da3ae6ca2be1 100644 (file)
@@ -5,8 +5,6 @@ import * as _ from 'lodash';
 import { Observable } from 'rxjs';
 import { map } from 'rxjs/operators';
 
-import { ApiModule } from './api.module';
-
 class SettingResponse {
   name: string;
   default: any;
@@ -15,7 +13,7 @@ class SettingResponse {
 }
 
 @Injectable({
-  providedIn: ApiModule
+  providedIn: 'root'
 })
 export class SettingsService {
   constructor(private http: HttpClient) {}
index 60365c1494b9664707394c851d7302deb6deffb0..8a175f66d1e313e45dae32c4d1147dacfb71c70a 100644 (file)
@@ -1,10 +1,8 @@
 import { HttpClient } from '@angular/common/http';
 import { Injectable } from '@angular/core';
 
-import { ApiModule } from './api.module';
-
 @Injectable({
-  providedIn: ApiModule
+  providedIn: 'root'
 })
 export class TelemetryService {
   private url = 'api/telemetry';
index ba35c061429374f42235bb63ef6d7efebb79aff7..f68250c022571446983f8f40e68b21fb2724a2c4 100644 (file)
@@ -5,10 +5,9 @@ import { Observable, of as observableOf } from 'rxjs';
 import { catchError, mapTo } from 'rxjs/operators';
 
 import { UserFormModel } from '../../core/auth/user-form/user-form.model';
-import { ApiModule } from './api.module';
 
 @Injectable({
-  providedIn: ApiModule
+  providedIn: 'root'
 })
 export class UserService {
   constructor(private http: HttpClient) {}
index ae3a1c08358adcfe8c7016e2f67359493f361861..0bffcf749e5cb5aa2fe000c407eb78b0cacb233f 100644 (file)
@@ -1,7 +1,6 @@
 import { CommonModule } from '@angular/common';
 import { NgModule } from '@angular/core';
 
-import { ApiModule } from './api/api.module';
 import { ComponentsModule } from './components/components.module';
 import { DataTableModule } from './datatable/datatable.module';
 import { DirectivesModule } from './directives/directives.module';
@@ -11,16 +10,9 @@ import { AuthStorageService } from './services/auth-storage.service';
 import { FormatterService } from './services/formatter.service';
 
 @NgModule({
-  imports: [
-    CommonModule,
-    PipesModule,
-    ComponentsModule,
-    DataTableModule,
-    ApiModule,
-    DirectivesModule
-  ],
+  imports: [CommonModule, PipesModule, ComponentsModule, DataTableModule, DirectivesModule],
   declarations: [],
-  exports: [ComponentsModule, PipesModule, DataTableModule, ApiModule, DirectivesModule],
+  exports: [ComponentsModule, PipesModule, DataTableModule, DirectivesModule],
   providers: [AuthStorageService, AuthGuardService, FormatterService]
 })
 export class SharedModule {}