@hxui/angular
Version:
An Angular library based on the [HXUI design system](https://hxui.io).
52 lines • 8.94 kB
JavaScript
import { Component, Input } from '@angular/core';
import { EmptyStateConfig } from './empty-state.config';
import * as i0 from "@angular/core";
import * as i1 from "./empty-state.config";
import * as i2 from "@angular/common";
export class EmptyStateComponent {
constructor(config) {
this.config = config;
this.actions = [];
}
ngOnInit() { }
/**
* Calls the parsed callback with optional arguments
* @param event
* @param cb
*/
executeCallback(event, cb) {
if (cb.length) {
if (cb.length === 1) { // if callback has no arguments
cb[0]();
}
else { // if callback has 1 or more arguments
const args = [];
for (let i = 1; i < cb.length; i++) {
args.push(cb[i]);
}
cb[0].apply(this, args);
}
}
return false;
}
}
EmptyStateComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: EmptyStateComponent, deps: [{ token: i1.EmptyStateConfig }], target: i0.ɵɵFactoryTarget.Component });
EmptyStateComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: EmptyStateComponent, selector: "hxa-empty-state", inputs: { icon: "icon", msg: "msg", actions: "actions" }, ngImport: i0, template: "<div class=\"hxui-reset emptyState\">\r\n <i class=\"hx-icon is-lightest emptyState__icon\" [ngClass]=\"icon\"></i>\r\n <div class=\"emptySate__msg is-lighter\">{{msg}}</div>\r\n <div class=\"emptyState__actions hx-flex\">\r\n <button *ngFor=\"let action of actions\"\r\n class=\"hx-button is-small\"\r\n [attr.id]=\"action.id\"\r\n [ngClass]=\"action.css\"\r\n (click)='executeCallback($event,action.callback)'>{{action.label}}</button>\r\n <ng-content></ng-content>\r\n </div>\r\n</div>\r\n", styles: [":host{min-height:12rem;width:100%;display:flex;flex-direction:column;flex:1}\n", ":host .emptyState{display:flex;flex-direction:column;justify-content:center;align-items:center;flex:1;margin:1rem 0}\n", ":host .emptyState__icon{height:3.5rem;width:3.5rem;font-size:64px;margin:1rem}\n", ":host .emptyState__msg{margin:1rem}\n", ":host .emptyState__actions{margin:1.5rem 1rem}\n", ":host .emptyState__actions::ng-deep .hx-button{margin:0 .5rem}\n"], directives: [{ type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: EmptyStateComponent, decorators: [{
type: Component,
args: [{ selector: 'hxa-empty-state', styles: [
':host { min-height: 12rem; width:100%; display:flex; flex-direction: column; flex:1;}',
':host .emptyState { display:flex; flex-direction: column; justify-content: center; align-items: center; flex:1; margin: 1rem 0; }',
':host .emptyState__icon { height:3.5rem; width:3.5rem; font-size:64px; margin: 1rem; }',
':host .emptyState__msg { margin: 1rem; }',
':host .emptyState__actions{ margin: 1.5rem 1rem ; }',
':host .emptyState__actions::ng-deep .hx-button { margin: 0 .5rem; }'
], template: "<div class=\"hxui-reset emptyState\">\r\n <i class=\"hx-icon is-lightest emptyState__icon\" [ngClass]=\"icon\"></i>\r\n <div class=\"emptySate__msg is-lighter\">{{msg}}</div>\r\n <div class=\"emptyState__actions hx-flex\">\r\n <button *ngFor=\"let action of actions\"\r\n class=\"hx-button is-small\"\r\n [attr.id]=\"action.id\"\r\n [ngClass]=\"action.css\"\r\n (click)='executeCallback($event,action.callback)'>{{action.label}}</button>\r\n <ng-content></ng-content>\r\n </div>\r\n</div>\r\n" }]
}], ctorParameters: function () { return [{ type: i1.EmptyStateConfig }]; }, propDecorators: { icon: [{
type: Input
}], msg: [{
type: Input
}], actions: [{
type: Input
}] } });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW1wdHktc3RhdGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaHgtdWkvc3JjL2xpYi9lbXB0eS1zdGF0ZS9lbXB0eS1zdGF0ZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9oeC11aS9zcmMvbGliL2VtcHR5LXN0YXRlL2VtcHR5LXN0YXRlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsS0FBSyxFQUFTLE1BQU0sZUFBZSxDQUFDO0FBRXZELE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLHNCQUFzQixDQUFDOzs7O0FBY3RELE1BQU0sT0FBTyxtQkFBbUI7SUFNOUIsWUFBb0IsTUFBd0I7UUFBeEIsV0FBTSxHQUFOLE1BQU0sQ0FBa0I7UUFGbkMsWUFBTyxHQUF3QixFQUFFLENBQUM7SUFFSyxDQUFDO0lBRWpELFFBQVEsS0FBSSxDQUFDO0lBRWI7Ozs7T0FJRztJQUNILGVBQWUsQ0FBQyxLQUFVLEVBQUUsRUFBUztRQUNuQyxJQUFJLEVBQUUsQ0FBQyxNQUFNLEVBQUU7WUFDYixJQUFJLEVBQUUsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFLEVBQUUsK0JBQStCO2dCQUNwRCxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQzthQUNUO2lCQUFNLEVBQUUsc0NBQXNDO2dCQUM3QyxNQUFNLElBQUksR0FBVSxFQUFFLENBQUM7Z0JBQ3ZCLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxFQUFFLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFO29CQUNsQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO2lCQUNsQjtnQkFDRCxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQzthQUN6QjtTQUNGO1FBQ0QsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDOztpSEE1QlUsbUJBQW1CO3FHQUFuQixtQkFBbUIsaUhDaEJoQyxvaUJBWUE7NEZESWEsbUJBQW1CO2tCQVovQixTQUFTOytCQUNFLGlCQUFpQixVQUVuQjt3QkFDTix1RkFBdUY7d0JBQ3ZGLG1JQUFtSTt3QkFDbkksd0ZBQXdGO3dCQUN4RiwwQ0FBMEM7d0JBQzFDLHFEQUFxRDt3QkFDckQscUVBQXFFO3FCQUN0RTt1R0FJUSxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csR0FBRztzQkFBWCxLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LCBJbnB1dCwgT25Jbml0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtJRW1wdHlTdGF0ZUFjdGlvbn0gZnJvbSAnLi9lbXB0eS1zdGF0ZS1hY3Rpb24uaW50ZXJmYWNlJztcclxuaW1wb3J0IHtFbXB0eVN0YXRlQ29uZmlnfSBmcm9tICcuL2VtcHR5LXN0YXRlLmNvbmZpZyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2h4YS1lbXB0eS1zdGF0ZScsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2VtcHR5LXN0YXRlLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZXM6IFtcclxuICAgICc6aG9zdCB7IG1pbi1oZWlnaHQ6IDEycmVtOyB3aWR0aDoxMDAlOyBkaXNwbGF5OmZsZXg7IGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IGZsZXg6MTt9JyxcclxuICAgICc6aG9zdCAuZW1wdHlTdGF0ZSB7IGRpc3BsYXk6ZmxleDsgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsganVzdGlmeS1jb250ZW50OiBjZW50ZXI7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IGZsZXg6MTsgbWFyZ2luOiAxcmVtIDA7IH0nLFxyXG4gICAgJzpob3N0IC5lbXB0eVN0YXRlX19pY29uIHsgaGVpZ2h0OjMuNXJlbTsgd2lkdGg6My41cmVtOyBmb250LXNpemU6NjRweDsgbWFyZ2luOiAxcmVtOyB9JyxcclxuICAgICc6aG9zdCAuZW1wdHlTdGF0ZV9fbXNnIHsgbWFyZ2luOiAxcmVtOyB9JyxcclxuICAgICc6aG9zdCAuZW1wdHlTdGF0ZV9fYWN0aW9uc3sgbWFyZ2luOiAxLjVyZW0gMXJlbSA7IH0nLFxyXG4gICAgJzpob3N0IC5lbXB0eVN0YXRlX19hY3Rpb25zOjpuZy1kZWVwIC5oeC1idXR0b24geyBtYXJnaW46IDAgLjVyZW07IH0nXHJcbiAgXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgRW1wdHlTdGF0ZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcblxyXG4gIEBJbnB1dCgpIGljb246IHN0cmluZztcclxuICBASW5wdXQoKSBtc2c6IHN0cmluZztcclxuICBASW5wdXQoKSBhY3Rpb25zOiBJRW1wdHlTdGF0ZUFjdGlvbltdID0gW107XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgY29uZmlnOiBFbXB0eVN0YXRlQ29uZmlnKSB7IH1cclxuXHJcbiAgbmdPbkluaXQoKSB7fVxyXG5cclxuICAvKipcclxuICAgKiBDYWxscyB0aGUgcGFyc2VkIGNhbGxiYWNrIHdpdGggb3B0aW9uYWwgYXJndW1lbnRzXHJcbiAgICogQHBhcmFtIGV2ZW50XHJcbiAgICogQHBhcmFtIGNiXHJcbiAgICovXHJcbiAgZXhlY3V0ZUNhbGxiYWNrKGV2ZW50OiBhbnksIGNiOiBhbnlbXSkge1xyXG4gICAgaWYgKGNiLmxlbmd0aCkge1xyXG4gICAgICBpZiAoY2IubGVuZ3RoID09PSAxKSB7IC8vIGlmIGNhbGxiYWNrIGhhcyBubyBhcmd1bWVudHNcclxuICAgICAgICBjYlswXSgpO1xyXG4gICAgICB9IGVsc2UgeyAvLyBpZiBjYWxsYmFjayBoYXMgMSBvciBtb3JlIGFyZ3VtZW50c1xyXG4gICAgICAgIGNvbnN0IGFyZ3M6IGFueVtdID0gW107XHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDE7IGkgPCBjYi5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgYXJncy5wdXNoKGNiW2ldKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgY2JbMF0uYXBwbHkodGhpcywgYXJncyk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiBmYWxzZTtcclxuICB9XHJcblxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJoeHVpLXJlc2V0IGVtcHR5U3RhdGVcIj5cclxuICA8aSBjbGFzcz1cImh4LWljb24gaXMtbGlnaHRlc3QgZW1wdHlTdGF0ZV9faWNvblwiIFtuZ0NsYXNzXT1cImljb25cIj48L2k+XHJcbiAgPGRpdiBjbGFzcz1cImVtcHR5U2F0ZV9fbXNnIGlzLWxpZ2h0ZXJcIj57e21zZ319PC9kaXY+XHJcbiAgPGRpdiBjbGFzcz1cImVtcHR5U3RhdGVfX2FjdGlvbnMgaHgtZmxleFwiPlxyXG4gICAgPGJ1dHRvbiAqbmdGb3I9XCJsZXQgYWN0aW9uIG9mIGFjdGlvbnNcIlxyXG4gICAgICAgICAgICBjbGFzcz1cImh4LWJ1dHRvbiBpcy1zbWFsbFwiXHJcbiAgICAgICAgICAgIFthdHRyLmlkXT1cImFjdGlvbi5pZFwiXHJcbiAgICAgICAgICAgIFtuZ0NsYXNzXT1cImFjdGlvbi5jc3NcIlxyXG4gICAgICAgICAgICAoY2xpY2spPSdleGVjdXRlQ2FsbGJhY2soJGV2ZW50LGFjdGlvbi5jYWxsYmFjayknPnt7YWN0aW9uLmxhYmVsfX08L2J1dHRvbj5cclxuICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cclxuICA8L2Rpdj5cclxuPC9kaXY+XHJcbiJdfQ==