ngx-dynamic-dashboard
Version:
an dashboard lib for angular 10
87 lines • 11.7 kB
JavaScript
/**
* Created by jayhamilton on 1/24/17.
*/
import { Component, EventEmitter, Input, Output, ViewChild } from '@angular/core';
import { animate, state, style, transition, trigger } from '@angular/animations';
import { tabsModel } from './tabs.model';
import { environment } from '../../environments/environment';
/**
* Message Modal - clasable modal with message
*
* Selector message-modal
*
* Methods
* popMessageModal - display a message modal for a sepcified duration
* showMessageModal - show the message modal
* hideMessageModal - hide the message modal
*/
export class ConfigurationComponent {
constructor() {
this.dashboardCreateEvent = new EventEmitter();
this.dashboardEditEvent = new EventEmitter();
this.dashboardDeleteEvent = new EventEmitter();
this.newDashboardItem = '';
Object.assign(this, { tabsModel });
this.setCurrentTab(0);
this.env = environment;
}
showConfigurationModal(header) {
this.modalheader = header;
this.configModal.modal('show');
}
hideMessageModal() {
this.modalicon = '';
this.modalheader = '';
this.modalconfig = '';
this.configModal.modal('hide');
}
createBoard(name) {
if (name !== '') {
this.dashboardCreateEvent.emit(name);
this.newDashboardItem = '';
}
console.log('Creating new board event from configuration component: ' + name);
}
editBoard(name) {
this.dashboardEditEvent.emit(name);
}
deleteBoard(name) {
this.dashboardDeleteEvent.emit(name);
}
ngAfterViewInit() {
this.configModal = jQuery(this.boardconfigmodalaRef.nativeElement);
this.configModal.modal('hide');
}
setCurrentTab(tab_index) {
this.currentTab = this.tabsModel[tab_index].displayName;
}
}
ConfigurationComponent.decorators = [
{ type: Component, args: [{
selector: 'dashboard-configuration-modal',
moduleId: module.id,
template: "<div #boardconfigmodal_tag class=\"ui long modal\">\n <div class=\"header\">\n <h2>{{modalheader}}</h2>\n </div>\n\n\n <div class=\"ui top attached tabular menu\">\n\n <a (click)=\"setCurrentTab(i)\" *ngFor=\"let tab of tabsModel; let i = index\"\n [ngClass]=\"{'active': tab.displayName == currentTab }\"\n attr.data-tab=\"{{tab.groupId}}\" class=\"item\">{{tab.displayName}}</a>\n\n </div>\n\n <div *ngFor=\"let tab of tabsModel; let i = index\" [@contentSwitch]=\"tab.displayName == currentTab ? 'active':'inactive'\"\n [ngClass]=\"{'active': tab.displayName == currentTab }\"\n attr.data-tab=\"{{tab.groupId}}\" class=\"ui bottom attached tab segment\">\n\n\n <div *ngIf=\"tab.groupId == 'boards'\">\n\n <dashboard-config-tab (dashboardCreateEvent)=\"createBoard($event)\"\n (dashboardDeleteEvent)=\"deleteBoard($event)\"\n (dashboardEditEvent)=\"editBoard($event)\"\n [dashboardList]=\"dashboardList\"></dashboard-config-tab>\n </div>\n\n <div *ngIf=\"tab.groupId == 'options'\">\n\n <dashboard-options-config-tab></dashboard-options-config-tab>\n\n </div>\n </div>\n\n\n <div class=\"actions\">\n <button (click)=\"hideMessageModal()\" class=\"ui button\">Close</button>\n </div>\n</div>\n",
animations: [
trigger('contentSwitch', [
state('inactive', style({
opacity: 0
})),
state('active', style({
opacity: 1
})),
transition('inactive => active', animate('750ms ease-in')),
transition('active => inactive', animate('750ms ease-out'))
])
],
styles: [".ui.tabular.menu .active.item{border-top:3px solid #3f51b5!important}.ui.attached.segment{margin:0;width:100%}"]
},] }
];
ConfigurationComponent.ctorParameters = () => [];
ConfigurationComponent.propDecorators = {
dashboardCreateEvent: [{ type: Output }],
dashboardEditEvent: [{ type: Output }],
dashboardDeleteEvent: [{ type: Output }],
dashboardList: [{ type: Input }],
boardconfigmodalaRef: [{ type: ViewChild, args: ['boardconfigmodal_tag', { static: true },] }]
};
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlndXJhdGlvbi1jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiL1VzZXJzL2JlbmxpL3dvcmtzcGFjZXMvbmd4LWR5bmFtaWMtZGFzaGJvYXJkLWZyYW1ld29yay9wcm9qZWN0cy9uZ3gtZHluYW1pYy1kYXNoYm9hcmQvc3JjLyIsInNvdXJjZXMiOlsiZGFzaGJvYXJkL2NvbmZpZ3VyYXRpb24vY29uZmlndXJhdGlvbi1jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFDSCxPQUFPLEVBQWdCLFNBQVMsRUFBYyxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDM0csT0FBTyxFQUFDLE9BQU8sRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUUvRSxPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0sY0FBYyxDQUFDO0FBQ3ZDLE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSxnQ0FBZ0MsQ0FBQTtBQUsxRDs7Ozs7Ozs7O0dBU0c7QUFzQkgsTUFBTSxPQUFPLHNCQUFzQjtJQXFCL0I7UUFuQlUseUJBQW9CLEdBQXNCLElBQUksWUFBWSxFQUFFLENBQUM7UUFDN0QsdUJBQWtCLEdBQXNCLElBQUksWUFBWSxFQUFFLENBQUM7UUFDM0QseUJBQW9CLEdBQXNCLElBQUksWUFBWSxFQUFFLENBQUM7UUFJdkUscUJBQWdCLEdBQUcsRUFBRSxDQUFDO1FBZWxCLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLEVBQUMsU0FBUyxFQUFDLENBQUMsQ0FBQztRQUNqQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3RCLElBQUksQ0FBQyxHQUFHLEdBQUcsV0FBVyxDQUFDO0lBRTNCLENBQUM7SUFHRCxzQkFBc0IsQ0FBQyxNQUFjO1FBQ2pDLElBQUksQ0FBQyxXQUFXLEdBQUcsTUFBTSxDQUFDO1FBQzFCLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ25DLENBQUM7SUFFRCxnQkFBZ0I7UUFDWixJQUFJLENBQUMsU0FBUyxHQUFHLEVBQUUsQ0FBQztRQUNwQixJQUFJLENBQUMsV0FBVyxHQUFHLEVBQUUsQ0FBQztRQUN0QixJQUFJLENBQUMsV0FBVyxHQUFHLEVBQUUsQ0FBQztRQUN0QixJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNuQyxDQUFDO0lBRUQsV0FBVyxDQUFDLElBQVk7UUFDcEIsSUFBSSxJQUFJLEtBQUssRUFBRSxFQUFFO1lBQ2IsSUFBSSxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUNyQyxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsRUFBRSxDQUFDO1NBQzlCO1FBQ0QsT0FBTyxDQUFDLEdBQUcsQ0FBQyx5REFBeUQsR0FBRyxJQUFJLENBQUMsQ0FBQztJQUNsRixDQUFDO0lBRUQsU0FBUyxDQUFDLElBQVk7UUFDbEIsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN2QyxDQUFDO0lBRUQsV0FBVyxDQUFDLElBQVk7UUFDcEIsSUFBSSxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN6QyxDQUFDO0lBR0QsZUFBZTtRQUNYLElBQUksQ0FBQyxXQUFXLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUNuRSxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNuQyxDQUFDO0lBRUQsYUFBYSxDQUFDLFNBQVM7UUFDbkIsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxDQUFDLFdBQVcsQ0FBQztJQUM1RCxDQUFDOzs7WUF2RkosU0FBUyxTQUFDO2dCQUNQLFFBQVEsRUFBRSwrQkFBK0I7Z0JBQ3pDLFFBQVEsRUFBRSxNQUFNLENBQUMsRUFBRTtnQkFDbkIsNjVDQUEwQjtnQkFFMUIsVUFBVSxFQUFFO29CQUVSLE9BQU8sQ0FBQyxlQUFlLEVBQUU7d0JBQ3JCLEtBQUssQ0FBQyxVQUFVLEVBQUUsS0FBSyxDQUFDOzRCQUNwQixPQUFPLEVBQUUsQ0FBQzt5QkFDYixDQUFDLENBQUM7d0JBQ0gsS0FBSyxDQUFDLFFBQVEsRUFBRSxLQUFLLENBQUM7NEJBQ2xCLE9BQU8sRUFBRSxDQUFDO3lCQUNiLENBQUMsQ0FBQzt3QkFDSCxVQUFVLENBQUMsb0JBQW9CLEVBQUUsT0FBTyxDQUFDLGVBQWUsQ0FBQyxDQUFDO3dCQUMxRCxVQUFVLENBQUMsb0JBQW9CLEVBQUUsT0FBTyxDQUFDLGdCQUFnQixDQUFDLENBQUM7cUJBQzlELENBQUM7aUJBQ0w7O2FBR0o7Ozs7bUNBR0ksTUFBTTtpQ0FDTixNQUFNO21DQUNOLE1BQU07NEJBQ04sS0FBSzttQ0FXTCxTQUFTLFNBQUMsc0JBQXNCLEVBQUUsRUFBQyxNQUFNLEVBQUUsSUFBSSxFQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDcmVhdGVkIGJ5IGpheWhhbWlsdG9uIG9uIDEvMjQvMTcuXG4gKi9cbmltcG9ydCB7QWZ0ZXJWaWV3SW5pdCwgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBFdmVudEVtaXR0ZXIsIElucHV0LCBPdXRwdXQsIFZpZXdDaGlsZH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge2FuaW1hdGUsIHN0YXRlLCBzdHlsZSwgdHJhbnNpdGlvbiwgdHJpZ2dlcn0gZnJvbSAnQGFuZ3VsYXIvYW5pbWF0aW9ucyc7XG5cbmltcG9ydCB7dGFic01vZGVsfSBmcm9tICcuL3RhYnMubW9kZWwnO1xuaW1wb3J0IHtlbnZpcm9ubWVudH0gZnJvbSAnLi4vLi4vZW52aXJvbm1lbnRzL2Vudmlyb25tZW50J1xuXG5cbmRlY2xhcmUgdmFyIGpRdWVyeTogYW55O1xuXG4vKipcbiAqIE1lc3NhZ2UgTW9kYWwgLSBjbGFzYWJsZSBtb2RhbCB3aXRoIG1lc3NhZ2VcbiAqXG4gKiBTZWxlY3RvciBtZXNzYWdlLW1vZGFsXG4gKlxuICogTWV0aG9kc1xuICogICAgICBwb3BNZXNzYWdlTW9kYWwgLSBkaXNwbGF5IGEgbWVzc2FnZSBtb2RhbCBmb3IgYSBzZXBjaWZpZWQgZHVyYXRpb25cbiAqICAgICAgc2hvd01lc3NhZ2VNb2RhbCAtIHNob3cgdGhlIG1lc3NhZ2UgbW9kYWxcbiAqICAgICAgaGlkZU1lc3NhZ2VNb2RhbCAtIGhpZGUgdGhlIG1lc3NhZ2UgbW9kYWxcbiAqL1xuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdkYXNoYm9hcmQtY29uZmlndXJhdGlvbi1tb2RhbCcsXG4gICAgbW9kdWxlSWQ6IG1vZHVsZS5pZCxcbiAgICB0ZW1wbGF0ZVVybDogJy4vdmlldy5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9zdHlsZXMuY3NzJ10sXG4gICAgYW5pbWF0aW9uczogW1xuXG4gICAgICAgIHRyaWdnZXIoJ2NvbnRlbnRTd2l0Y2gnLCBbXG4gICAgICAgICAgICBzdGF0ZSgnaW5hY3RpdmUnLCBzdHlsZSh7XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMFxuICAgICAgICAgICAgfSkpLFxuICAgICAgICAgICAgc3RhdGUoJ2FjdGl2ZScsIHN0eWxlKHtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAxXG4gICAgICAgICAgICB9KSksXG4gICAgICAgICAgICB0cmFuc2l0aW9uKCdpbmFjdGl2ZSA9PiBhY3RpdmUnLCBhbmltYXRlKCc3NTBtcyBlYXNlLWluJykpLFxuICAgICAgICAgICAgdHJhbnNpdGlvbignYWN0aXZlID0+IGluYWN0aXZlJywgYW5pbWF0ZSgnNzUwbXMgZWFzZS1vdXQnKSlcbiAgICAgICAgXSlcbiAgICBdXG5cblxufSlcbmV4cG9ydCBjbGFzcyBDb25maWd1cmF0aW9uQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCB7XG5cbiAgICBAT3V0cHV0KCkgZGFzaGJvYXJkQ3JlYXRlRXZlbnQ6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICAgIEBPdXRwdXQoKSBkYXNoYm9hcmRFZGl0RXZlbnQ6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICAgIEBPdXRwdXQoKSBkYXNoYm9hcmREZWxldGVFdmVudDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gICAgQElucHV0KCkgZGFzaGJvYXJkTGlzdDogYW55IFtdO1xuXG5cbiAgICBuZXdEYXNoYm9hcmRJdGVtID0gJyc7XG5cblxuICAgIG1vZGFsaWNvbjogc3RyaW5nO1xuICAgIG1vZGFsaGVhZGVyOiBzdHJpbmc7XG4gICAgbW9kYWxjb25maWc6IHN0cmluZztcbiAgICBlbnY6IGFueTtcblxuICAgIEBWaWV3Q2hpbGQoJ2JvYXJkY29uZmlnbW9kYWxfdGFnJywge3N0YXRpYzogdHJ1ZX0pIGJvYXJkY29uZmlnbW9kYWxhUmVmOiBFbGVtZW50UmVmO1xuICAgIGNvbmZpZ01vZGFsOiBhbnk7XG4gICAgY3VycmVudFRhYjogc3RyaW5nO1xuICAgIHRhYnNNb2RlbDogYW55W107XG5cbiAgICBjb25zdHJ1Y3RvcigpIHtcblxuICAgICAgICBPYmplY3QuYXNzaWduKHRoaXMsIHt0YWJzTW9kZWx9KTtcbiAgICAgICAgdGhpcy5zZXRDdXJyZW50VGFiKDApO1xuICAgICAgICB0aGlzLmVudiA9IGVudmlyb25tZW50O1xuXG4gICAgfVxuXG5cbiAgICBzaG93Q29uZmlndXJhdGlvbk1vZGFsKGhlYWRlcjogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMubW9kYWxoZWFkZXIgPSBoZWFkZXI7XG4gICAgICAgIHRoaXMuY29uZmlnTW9kYWwubW9kYWwoJ3Nob3cnKTtcbiAgICB9XG5cbiAgICBoaWRlTWVzc2FnZU1vZGFsKCkge1xuICAgICAgICB0aGlzLm1vZGFsaWNvbiA9ICcnO1xuICAgICAgICB0aGlzLm1vZGFsaGVhZGVyID0gJyc7XG4gICAgICAgIHRoaXMubW9kYWxjb25maWcgPSAnJztcbiAgICAgICAgdGhpcy5jb25maWdNb2RhbC5tb2RhbCgnaGlkZScpO1xuICAgIH1cblxuICAgIGNyZWF0ZUJvYXJkKG5hbWU6IHN0cmluZykge1xuICAgICAgICBpZiAobmFtZSAhPT0gJycpIHtcbiAgICAgICAgICAgIHRoaXMuZGFzaGJvYXJkQ3JlYXRlRXZlbnQuZW1pdChuYW1lKTtcbiAgICAgICAgICAgIHRoaXMubmV3RGFzaGJvYXJkSXRlbSA9ICcnO1xuICAgICAgICB9XG4gICAgICAgIGNvbnNvbGUubG9nKCdDcmVhdGluZyBuZXcgYm9hcmQgZXZlbnQgZnJvbSBjb25maWd1cmF0aW9uIGNvbXBvbmVudDogJyArIG5hbWUpO1xuICAgIH1cblxuICAgIGVkaXRCb2FyZChuYW1lOiBzdHJpbmcpIHtcbiAgICAgICAgdGhpcy5kYXNoYm9hcmRFZGl0RXZlbnQuZW1pdChuYW1lKTtcbiAgICB9XG5cbiAgICBkZWxldGVCb2FyZChuYW1lOiBzdHJpbmcpIHtcbiAgICAgICAgdGhpcy5kYXNoYm9hcmREZWxldGVFdmVudC5lbWl0KG5hbWUpO1xuICAgIH1cblxuXG4gICAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgICAgICB0aGlzLmNvbmZpZ01vZGFsID0galF1ZXJ5KHRoaXMuYm9hcmRjb25maWdtb2RhbGFSZWYubmF0aXZlRWxlbWVudCk7XG4gICAgICAgIHRoaXMuY29uZmlnTW9kYWwubW9kYWwoJ2hpZGUnKTtcbiAgICB9XG5cbiAgICBzZXRDdXJyZW50VGFiKHRhYl9pbmRleCkge1xuICAgICAgICB0aGlzLmN1cnJlbnRUYWIgPSB0aGlzLnRhYnNNb2RlbFt0YWJfaW5kZXhdLmRpc3BsYXlOYW1lO1xuICAgIH1cbn1cbiJdfQ==