0.3.40 • Published 7 years ago

ng4-gridstack v0.3.40

Weekly downloads
69
License
MIT
Repository
github
Last release
7 years ago

ng4-gridstack

Installation

To install this library, run:

$ npm install ng4-gridstack --save

Consuming your library

Once you have published your library to npm, you can import your library in any Angular application by running:

$ npm install ng4-gridstack

Then add reference to the gridstask.js and lodash to your index.html for how to do it check their site at

and then from your Angular AppModule:

import { BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';

import { AppComponent } from './app.component';

// Import your library
import { GridStackModule } from 'ng4-gridstack';

@NgModule({
  declarations: [
    AppComponent
  ],
  imports: [
    BrowserModule,

    // Specify your library as an import
    GridStackModule
  ],
  providers: [],
  bootstrap: [AppComponent]
})
export class AppModule { }

Once your library is imported, you can use its components, directives and pipes in your Angular application:

<!-- You can now use your library component in app.component.html -->
<grid-stack class="grid-stack" [options]="options">
  <grid-stack-item [option]="widget1" class="grid-stack-item"  >
  </grid-stack-item>
  <grid-stack-item [option]="widget2" class="grid-stack-item" >
  </grid-stack-item>
</grid-stack>

If you want to dynamically generate widgets:

<!-- You can now use your library component in app.component.html -->  <grid-stack #gridStackMain id="gridStackMain" class="grid-stack" [options]="area">
	<button (click)="AddWidget()">Add Widget</button>
<grid-stack #gridStackMain id="gridStackMain" class="grid-stack" [options]="area">
    <grid-stack-item *ngFor="let widget of widgets" id="widget-{{widget.ID}}" [option]="widget.Item" class="grid-stack-item">
      <div class="widget-header">
        <div class="widget-header-text">{{widget.Caption}}</div>
      </div>
      <div class="widget-content">
        
      </div>
	</grid-stack-item>
</grid-stack>
import { Component, OnInit, ViewChildren, QueryList, ViewChild, ChangeDetectorRef } from '@angular/core';
import { GridStackItem, GridStackOptions, GridStackItemComponent, GridStackComponent} from 'ng4-gridstack'

@Component({
  selector: 'app-grid-stack',
  templateUrl: './app-grid-stack.component.html'
})
export class DashboardComponent implements OnInit {
	@ViewChildren(GridStackItemComponent) items: QueryList<GridStackItemComponent>;
    @ViewChild('gridStackMain') gridStackMain: GridStackComponent;
	area: GridStackOptions = new GridStackOptions();
    widgets: GridStackItem[] = [];
	
	constructor(private cd: ChangeDetectorRef) {
      
	}

	AddWidget(widgetType: DashboardWidgetTypeEnum) {
      var widget = new GridStackItem();
      
      widget.width = 6;
      widget.height = 4;
      widget.x = 0;
      widget.y = 0;
      this.widgets.push(widget);
      this.cd.detectChanges();
      var arr = this.items.toArray();
      this.gridStackMain.AddWidget(arr[this.items.length - 1]);
  }
}

Development

To generate all *.js, *.d.ts and *.metadata.json files:

$ npm run build

To lint all *.ts files:

$ npm run lint

Credit

I was looking for integrating cleanly the amazing gridstack.js (https://github.com/gridstack/gridstack.js) library with angular 4 and found this thread on stack overflow https://stackoverflow.com/questions/39901473/wrap-gridstack-js-into-angular-2-component Credit Goes to Answers from those users https://stackoverflow.com/users/3758236/user3758236 https://stackoverflow.com/users/3112339/etchelon

License

MIT © Ramy Othman

0.3.40

7 years ago

0.3.39

7 years ago

0.3.38

7 years ago

0.3.37

7 years ago

0.3.36

7 years ago

0.3.35

7 years ago

0.3.34

7 years ago

0.3.33

7 years ago

0.3.32

7 years ago

0.3.31

7 years ago

0.3.30

7 years ago

0.3.29

7 years ago

0.3.28

7 years ago

0.3.27

7 years ago

0.3.26

7 years ago

0.3.25

7 years ago

0.3.24

7 years ago

0.3.23

7 years ago

0.3.22

7 years ago

0.3.21

7 years ago

0.3.20

7 years ago

0.3.19

7 years ago

0.3.18

7 years ago

0.3.17

7 years ago

0.3.16

7 years ago

0.3.15

7 years ago

0.3.14

7 years ago

0.3.13

7 years ago

0.3.12

7 years ago

0.3.11

7 years ago

0.3.10

7 years ago

0.3.8

7 years ago

0.3.7

7 years ago

0.3.6

7 years ago

0.3.5

7 years ago

0.3.4

7 years ago

0.3.3

7 years ago

0.3.2

7 years ago

0.3.1

7 years ago

0.3.0

7 years ago

0.2.0

7 years ago