All Projects → jaumard → Ngx Dashboard

jaumard / Ngx Dashboard

Licence: mit
Dashboard library for angular 4 and more

Programming Languages

typescript
32286 projects

Projects that are alternatives of or similar to Ngx Dashboard

ngx-widget-grid
Angular 2.x or in general ng-x module for dashboards
Stars: ✭ 65 (-7.14%)
Mutual labels:  widget, angular4
Xfce4 Genmon Scripts
🐭 XFCE panel generic monitor scripts
Stars: ✭ 69 (-1.43%)
Mutual labels:  widget
Angular 4 Material Pos
POS written in Angular 4 with Angular Material UI
Stars: ✭ 54 (-22.86%)
Mutual labels:  angular4
Ngx Tree Select
Angular select component with tree items
Stars: ✭ 59 (-15.71%)
Mutual labels:  angular4
Tube Status Ios
A sample iOS app for displaying the status of the London Underground using WidgetKit.
Stars: ✭ 55 (-21.43%)
Mutual labels:  widget
Imageselector
图片选择器, 支持多图选择和图片预览
Stars: ✭ 62 (-11.43%)
Mutual labels:  widget
Yii2 Quill
Yii 2 implementation of Quill, modern WYSIWYG editor
Stars: ✭ 52 (-25.71%)
Mutual labels:  widget
Create Discord Bot
Create Discord bots using a simple widget-based framework.
Stars: ✭ 70 (+0%)
Mutual labels:  widget
Foobugs Dashboard
various dashing dashboard jobs
Stars: ✭ 64 (-8.57%)
Mutual labels:  widget
Miniflix
Miniflix - A smaller version of Netflix powered by Cloudinary
Stars: ✭ 58 (-17.14%)
Mutual labels:  widget
Ngx Excel Export
Angular6 application with export data to excel file functionality.
Stars: ✭ 58 (-17.14%)
Mutual labels:  angular4
Toothyprogress
A polyline determinated ProgressBar written in Kotlin
Stars: ✭ 56 (-20%)
Mutual labels:  widget
Pure Css3 Animated Border
Pure CSS3 animated border for all html element.
Stars: ✭ 63 (-10%)
Mutual labels:  widget
Yii2 Sortable Widgets
🍨 Rubaxa/Sortable for Yii2
Stars: ✭ 54 (-22.86%)
Mutual labels:  widget
Egeo
EGEO is the open-source UI library used to build Stratio's UI. It includes UI Components, Utilities, Services and much more to build user interfaces quickly and with ease. The library is distributed in AoT mode.
Stars: ✭ 69 (-1.43%)
Mutual labels:  angular4
Node Crisp Api
⚡️ Crisp API Node Wrapper
Stars: ✭ 53 (-24.29%)
Mutual labels:  widget
Rainbarf
it's like Rainmeter, but for CLI!
Stars: ✭ 1,087 (+1452.86%)
Mutual labels:  widget
Electron Angular4 Sqlite3
Sample project to show how to build a desktop app using Electron, Angular 4 and Sqlite3
Stars: ✭ 60 (-14.29%)
Mutual labels:  angular4
Oh My Desk
web widget desktop application
Stars: ✭ 70 (+0%)
Mutual labels:  widget
Pd Admin
Powerful Admin Dashboard for Symfony 5
Stars: ✭ 70 (+0%)
Mutual labels:  widget

ngx-dashboard

Dashboard library for angular 4 and more

NPM version NPM downloads Dependency Status Code Climate Beerpay Beerpay

Demo at: https://jaumard.github.io/ngx-dashboard/demo/demoDist/index.html

Installation

npm i ngx-dashboard
// or with yarn 
yarn add ngx-dashboard

Usage

See demo source code here: https://github.com/jaumard/ngx-dashboard/tree/master/demo

Create my own widget

To do this you need to extend the WidgetComponent like this:

import {Component, Renderer2, ElementRef, forwardRef} from "@angular/core";
import {WidgetComponent} from "ngx-dashboard";

@Component({
  selector: 'app-my-widget',
  templateUrl: './my-widget.component.html',
  styleUrls: ['./my-widget.component.css'],
  providers: [{provide: WidgetComponent, useExisting: forwardRef(() => MyWidgetComponent) }]
})
export class MyWidgetComponent extends WidgetComponent {
  @Input() public widgetId: string;
  
  constructor(ngEl: ElementRef, renderer: Renderer2) {
    super(ngEl, renderer);
  }
}

The providers part is mandatory, if you miss it your widget will not be see as a widget.

The @Input() is also mandatory if you want to use removeById because angular 4 doesn't inherit annotations yet.

To dynamically add your widget you also need to declare it under "entryComponents" on your app module like this:

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

import { AppComponent } from './app.component';
import {MyWidgetComponent} from './my-widget/my-widget.component';

@NgModule({
  declarations: [
    AppComponent,
    MyWidgetComponent
  ],
  entryComponents: [
    MyWidgetComponent
  ],
  imports: [
    BrowserModule,
    NgDashboardModule
  ],
  providers: [],
  bootstrap: [AppComponent]
})
export class AppModule { }

Use custom drag handle

To do this, you can use the widgetHandle directive to select witch handle you want from your template. Example:

<widget [size]="[2, 1]" widgetId="large">
    <div widgetHandle class="head handle">Large widget [2, 1] handle only on this text</div>
    <div>All other stuff...</div>
</widget>

Development

To run the demo locally, you need to do:

cd ngx-dashboard
npm i 
npm run build
cd demo 
npm i
cd src
ln -s ../../src/dist/ . //for linux and Mac, for Windows use mklink /D dist ..\..\src 
cd ..
npm start

License

MIT

Support on Beerpay

Hey dude! Help me out for a couple of 🍻!

Beerpay Beerpay

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].