title: Issue with Angular2 file manager - cannot find modules
body: <p>I trying to run this file manager in my application: 
  <a href="https://github.com/qjon/angular/tree/master/projects/filemanager" rel="nofollow noreferrer">Angular2 file manager</a></p>
  
  <p>The issue occurs inside app module, where i want to import this modules. At this moment it looks like this:</p>
  
  <pre><code>...
  import { FileManagerModule } from '@rign/angular2-filemanager';
  import { TreeModule } from '@rign/angular2-tree';
  import { ConfirmationPopoverModule } from 'angular-confirmation-popover';
  ...
   imports: [
      FileManagerModule.forRoot(fileManagerConfiguration),
      TreeModule.forRoot(),
      ConfirmationPopoverModule.forRoot(),
  ...
  </code></pre>
  
  <p>I can't deal with these errors:</p>
  
  <blockquote>
  <pre><code>ERROR in projects/file-manager/src/app/app.module.ts(26,35): error TS2307: Cannot find module '@rign/angular2-filemanager'.
  projects/file-manager/src/app/app.module.ts(27,28): error TS2307: Cannot find module '@ring/angular2-tree'.
  projects/file-manager/src/app/app.module.ts(51,31): error TS2304: Cannot find name 'fileManagerConfiguration'.
  projects/file-manager/src/app/app.module.ts(53,5): error TS2304: Cannot find name 'ConfirmationPopoverModule'
  </code></pre>
  </blockquote>
  
  <p>Trying</p>
  
  <pre><code>npm i @rign/angular2-filemanager --save
  npm i @rign/angular2-tree --save
  npm install --save angular-confirmation-popover
  </code></pre>
  
  <p>Sadly nothing helps. Somebody know a solution?</p>
  
  <h1>Clue 1</h1>
  
  <p>After: </p>
  
  <blockquote>
    <p>npm i @rign/angular2-filemanager --save</p>
  </blockquote>
  
  <p>I have visible angular2-tree in my app, now i try:</p>
  
  <blockquote>
    <p>npm i @rign/angular2-filemanager --save</p>
  </blockquote>
  
  <p>Now angular2-tree disappears and angular2-filemanager appears in app. If i try again add angular2-tree, filemanager disappear. Whats going out?</p>
  
  <h1>Update 1</h1>
  
  <p>Ok, i put it inside package.json and i make it forward to this moment with that error (i just want import @rign/angular2-filemanager to my app):</p>
  
  <blockquote>
    <p>ERROR in
    ../../node_modules/@rign/angular2-filemanager/lib/store/fileManagerApi.service.d.ts:14:5
    - error TS2416: Property 'add' in type 'FileManagerApiService' is not assignable to the same property in base type 'INodeService'.   Type
    '(node: IOuterNode, parentNodeId?: string | undefined) =>
    Observable' is not assignable to type '(node: IOuterNode,
    parentNodeId: string | null) => Observable'.
        Types of parameters 'parentNodeId' and 'parentNodeId' are incompatible.
          Type 'string | null' is not assignable to type 'string | undefined'.
            Type 'null' is not assignable to type 'string | undefined'.</p>
    
    <p>14     add(node: IOuterNode, parentNodeId?: string):
    Observable;
           ~~~ ../../node_modules/@rign/angular2-filemanager/lib/store/fileManagerBackendApi.service.d.ts:21:5
    - error TS2416: Property 'add' in type 'FileManagerBackendApiService' is not assignable to the same property in base type 'INodeService'.<br>
    Type '(node: IOuterNode, parentNodeId?: string | undefined) =>
    Observable' is not assignable to type '(node: IOuterNode,
    parentNodeId: string | null) => Observable'.
        Types of parameters 'parentNodeId' and 'parentNodeId' are incompatible.
          Type 'string | null' is not assignable to type 'string | undefined'.
            Type 'null' is not assignable to type 'string | undefined'.</p>
    
    <p>21     add(node: IOuterNode, parentNodeId?: string):
    Observable;
           ~~~ ../../node_modules/@rign/angular2-tree/lib/service/node.service.d.ts:23:5
    - error TS2416: Property 'add' in type 'NodeService' is not assignable to the same property in base type 'INodeService'.   Type '(node:
    IOuterNode, parentNodeId?: string | undefined) =>
    Observable' is not assignable to type '(node: IOuterNode,
    parentNodeId: string | null) => Observable'.
        Types of parameters 'parentNodeId' and 'parentNodeId' are incompatible.
          Type 'string | null' is not assignable to type 'string | undefined'.
            Type 'null' is not assignable to type 'string | undefined'.</p>
    
    <p>23     add(node: IOuterNode, parentNodeId?: string):
    Observable;</p>
  </blockquote>
  
  <p>The code in app module looks like this:</p>
  
  <pre><code>// angular
  import { NgModule, NgZone} from '@angular/core';
  import { BrowserModule } from '@angular/platform-browser';
  import { MAT_RIPPLE_GLOBAL_OPTIONS } from '@angular/material';
  
  // ngrx
  import { EffectsModule } from '@ngrx/effects';
  import { StoreModule } from '@ngrx/store';
  import { StoreDevtoolsModule } from '@ngrx/store-devtools';
  
  // mpcore
  import {
    MpCoreModule,
    TokenService,
    LonginusLoggerService,
    LonginusLogger,
    MpTranslateModule,
    TRANSLATION_STORE,
    CoreService,
    IS_PRODUCTION,
    MpTranslateService,
    MpTranslationLoader,
    MpMissingTranslationHandler
  } from 'mpcore';
  // translate
  import { TranslateLoader, TranslateService, MissingTranslationHandler } from '@ngx-translate/core';
  import { TranslationStore } from './shared/classes/TranslationStore';
  // routing
  import { AppRoutingModule } from './app-routing.module';
  // shared
  import { SharedModule } from './shared/shared.module';
  import { environment } from '../environments/environment';
  // components
  import { AppComponent } from './app.component';
  import { MainComponent } from './main/main.component';
  
  import { FileManagerModule, IFileManagerConfiguration } from '@rign/angular2-filemanager';
  import { TreeModule } from '@rign/angular2-tree';
  import { ConfirmationPopoverModule } from 'angular-confirmation-popover';
  import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
  import { ContextMenuComponent } from 'ngx-contextmenu';
  
  const fileManagerConfiguration: IFileManagerConfiguration = {
    urls: {
      foldersUrl: '/api/folder',
      filesUrl: '/api/files',
      folderMoveUrl: '/api/folder/move'
    },
    isMultiSelection: true,
    mimeTypes: ['image/jpg', 'image/jpeg', 'image/png'],
    maxFileSize: 50 * 1024,
    allowChooseMultipleFiles: true
  }
  
  @NgModule({
    declarations: [AppComponent, MainComponent],
    imports: [
      FileManagerModule.forRoot(fileManagerConfiguration),
      BrowserAnimationsModule,
      ConfirmationPopoverModule.forRoot(),
      TreeModule.forRoot(),
      ContextMenuComponent,
      BrowserModule,
      SharedModule,
      MpCoreModule.forRoot(),
      AppRoutingModule,
      MpTranslateModule.forRoot({
        loader: {
          provide: TranslateLoader,
          useClass: MpTranslationLoader,
          deps: [TRANSLATION_STORE]
        },
        missingTranslationHandler: { provide: MissingTranslationHandler, useClass: MpMissingTranslationHandler, deps: [CoreService] },
        isolate: true,
        useDefaultLang: true
      }) ,
        StoreModule.forRoot(
        {},
        {
          runtimeChecks: {
            strictActionImmutability: true,
            strictActionSerializability: true,
            strictStateImmutability: true,
            strictStateSerializability: true
          }
        }
      ),
      EffectsModule.forRoot([]),
      !environment.production
        ? StoreDevtoolsModule.instrument({
            maxAge: 25, // Retains last 25 states
            logOnly: !environment.production,
            serialize: {
              options: {
                undefined: true
              }
            } // Restrict extension to log-only mode
          })
      : []
    ],
    providers: [
      { provide: IS_PRODUCTION, useValue: environment.production },
      { provide: TRANSLATION_STORE, useValue: new TranslationStore() },
      MpTranslateService,
      { provide: TranslateService, useExisting: MpTranslateService },
      { provide: MAT_RIPPLE_GLOBAL_OPTIONS, useValue: { disabled: true } }
    ],
    bootstrap: [AppComponent]
  })
  export class AppModule {
    constructor(private tokenService: TokenService, private coreService: CoreService, private longinusLoggerService: LonginusLoggerService, private zone: NgZone) {
      this.coreService.siteId = environment.production ? '' : environment.siteId;
      this.coreService.branch = environment.production ? '%Branch%' : environment.branch;
      Date.prototype.toJSON = function() {
        const isValidDate = new Date(this).toString() !== 'Invalid Date' &amp;&amp; !isNaN(new Date(this).getTime());
        if (isValidDate) {
          return '/Date(' + (this as Date).getTime().toString() + ')/';
        } else {
          return '';
        }
      };
      LonginusLogger.CreateInstance(this.tokenService, this.longinusLoggerService, 'file-manager', this.zone);
    }
  }
  </code></pre>