How to implement ng2-ui (NPM package) using Angular CLI?

I want to use the following NPM package with Angular CLI: ng2-ui

The implementation guide for SystemJS, not Webpack, is used by the Angular CLI, which I should use in this project.

What have I already done?

  • Package installed npm install ng2-ui --save
  • The following line is added in app.module.ts

    import { Ng2UIModule } from 'ng2-ui';
    
  • Added Ng2UIModuleto array importsin @NgModule.

At this point, I had not used it Ng2UIModulein any of the components, and the application worked perfectly before performing the indicated operations.

When I try to run the application ng serve, I get the following error in the console:

ERROR in [default] C:\tools\test-package.net\node_modules\ng2-ui\dist\index.d.ts:1:31
Cannot find module 'ng2-overlay'.

ERROR in [default] C:\tools\test-package.net\node_modules\ng2-ui\dist\index.d.ts:2:32
Cannot find module 'ng2-map'.

ERROR in [default] C:\tools\test-package.net\node_modules\ng2-ui\dist\index.d.ts:3:60
Cannot find module 'ng2-popup'.

ERROR in [default] C:\tools\test-package.net\node_modules\ng2-ui\dist\index.d.ts:4:39
Cannot find module 'ng2-scrollable'.

I assume that the following settings are simply missing from the application systemjs.config.js:

map['ng2-ui'] =  'node_modules/ng2-ui/dist';
packages['ng2-ui'] = {main: 'ng2-ui.umd.js', defaultExtension: 'js'}

, Angular CLI Webpack...

( Angular CLI 1.0.0-beta.17)

!

+4
1

ng2-ui @ngui/overlay https://github.com/ng2-ui/overlay.

.

ex.component.html

<div id='div1' class='container row'>
  Div 1


</div>

<div id="overlay" ngui-overlay-of="div1" style='background-color:black'>
  Loading data......
</div>

<div id="overlay2" ngui-overlay-of="div1" style='background-color:blue'>
  Loading data......
</div>

<button (click)="showOverlay($event)" class='btn btn-success'>Show Overlay</button>
<button (click)="hideOverlay()" class='btn btn-danger'>Hide Overlay</button>

<br /><br />
<button (click)="showOverlay2($event)" class='btn btn-success'>Show Overlay</button>
<button (click)="hideOverlay2()" class='btn btn-danger'>Hide Overlay</button>
Hide result

ex.component.ts

import { Component, OnInit } from '@angular/core';
import { NguiOverlayManager } from '@ngui/overlay';
@Component({
  selector: 'app-ex',
  templateUrl: './ex.component.html',
  styleUrls: [ './ex.component.css' ],
  providers:[NguiOverlayManager]
  
})
export class ExComponent implements OnInit {

  constructor(private overManager:NguiOverlayManager) { }

  ngOnInit() {
  }

  showOverlay(event: Event) { 

    this.overManager.open('overlay',event);
  }

  hideOverlay() { 
    this.overManager.close('overlay');
  }

  showOverlay2(event: Event) {

    this.overManager.open('overlay2', event);
  }

  hideOverlay2() {
    this.overManager.close('overlay2');
  }

}
Hide result

import { NguiOverlayModule } from '@ngui/overlay'; NguiOverlayModule .

0

Source: https://habr.com/ru/post/1661450/


All Articles