@mosa-ng/material 21.0.0 → 21.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -300,7 +300,7 @@ class LoadingButtonComponent {
|
|
|
300
300
|
this.click.emit(e);
|
|
301
301
|
}
|
|
302
302
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: LoadingButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
303
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.6", type: LoadingButtonComponent, isStandalone: true, selector: "mosa-loading-button", inputs: { mode: "mode", loading: "loading", disabled: "disabled", color: "color", buttonType: "buttonType", icon: "icon" }, outputs: { click: "click" }, ngImport: i0, template: "@switch (buttonType) {\n @default {\n <button (click)=\"onClick($event)\" [class]=\"mode\" [color]=\"color\"\n [disabled]=\"loading || disabled\" mat-button>\n <ng-container [ngTemplateOutlet]=\"
|
|
303
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.6", type: LoadingButtonComponent, isStandalone: true, selector: "mosa-loading-button", inputs: { mode: "mode", loading: "loading", disabled: "disabled", color: "color", buttonType: "buttonType", icon: "icon" }, outputs: { click: "click" }, ngImport: i0, template: "@switch (buttonType) {\n @default {\n <button (click)=\"onClick($event)\" [class]=\"mode\" [color]=\"color\"\n [disabled]=\"loading || disabled\" mat-button [class.with-spinner]=\"mode === 'spinner'\">\n @if (icon) {\n <mat-icon>{{ icon }}</mat-icon>\n }\n <ng-container [ngTemplateOutlet]=\"labelContent\"/>\n\n </button>\n }\n @case ('raised') {\n <button (click)=\"onClick($event)\" [class]=\"mode\" [color]=\"color\"\n [disabled]=\"loading || disabled\" mat-raised-button [class.with-spinner]=\"mode === 'spinner'\">\n @if (icon) {\n <mat-icon>{{ icon }}</mat-icon>\n }\n <ng-container [ngTemplateOutlet]=\"labelContent\"/>\n\n </button>\n }\n @case ('stroked') {\n <button (click)=\"onClick($event)\" [class]=\"mode\" [color]=\"color\"\n [disabled]=\"loading || disabled\" mat-stroked-button [class.with-spinner]=\"mode === 'spinner'\">\n @if (icon) {\n <mat-icon>{{ icon }}</mat-icon>\n }\n <ng-container [ngTemplateOutlet]=\"labelContent\"/>\n\n </button>\n }\n @case ('flat') {\n <button (click)=\"onClick($event)\" [class]=\"mode\" [color]=\"color\"\n [disabled]=\"loading || disabled\" mat-flat-button [class.with-spinner]=\"mode === 'spinner'\">\n @if (icon) {\n <mat-icon>{{ icon }}</mat-icon>\n }\n <ng-container [ngTemplateOutlet]=\"labelContent\"/>\n </button>\n <ng-container [ngTemplateOutlet]=\"loaderContent\"/>\n }\n @case ('icon') {\n <button (click)=\"onClick($event)\" [class]=\"mode\" [color]=\"color\"\n [disabled]=\"loading || disabled\" mat-icon-button>\n @if (loading) {\n <mat-progress-spinner [color]=\"color\" [diameter]=\"40\" [strokeWidth]=\"2\"/>\n }\n @if (icon) {\n <mat-icon>{{ icon }}</mat-icon>\n }\n <ng-content select=\".icon\"></ng-content>\n </button>\n }\n}\n\n<ng-template #loaderContent>\n @if (loading) {\n @if (mode === 'spinner') {\n <mat-spinner [diameter]=\"20\"/>\n } @else {\n <mat-progress-bar mode=\"indeterminate\"/>\n }\n }\n</ng-template>\n\n<ng-template #labelContent>\n <ng-content/>\n</ng-template>\n", styles: [":host{position:relative;overflow:hidden;display:inline-block;pointer-events:none;border-radius:var(--mdc-protected-button-container-shape, var(--mat-sys-corner-full))}button{position:relative;overflow:hidden;width:100%}button:not(disabled){pointer-events:all}mat-spinner{position:absolute;top:50%;transform:translateY(-50%);left:16px}mat-progress-bar{position:absolute;bottom:0;left:0;width:100%}\n"], dependencies: [{ kind: "component", type: MatButton, selector: " button[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] ", inputs: ["matButton"], exportAs: ["matButton", "matAnchor"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: MatIconButton, selector: "button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]", exportAs: ["matButton", "matAnchor"] }, { kind: "component", type: MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "mode", "value", "diameter", "strokeWidth"], exportAs: ["matProgressSpinner"] }, { kind: "component", type: MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: MatProgressBar, selector: "mat-progress-bar", inputs: ["color", "value", "bufferValue", "mode"], outputs: ["animationEnd"], exportAs: ["matProgressBar"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
304
304
|
}
|
|
305
305
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: LoadingButtonComponent, decorators: [{
|
|
306
306
|
type: Component,
|
|
@@ -311,7 +311,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImpor
|
|
|
311
311
|
MatProgressSpinner,
|
|
312
312
|
MatIcon,
|
|
313
313
|
MatProgressBar,
|
|
314
|
-
], template: "@switch (buttonType) {\n @default {\n <button (click)=\"onClick($event)\" [class]=\"mode\" [color]=\"color\"\n [disabled]=\"loading || disabled\" mat-button>\n <ng-container [ngTemplateOutlet]=\"
|
|
314
|
+
], template: "@switch (buttonType) {\n @default {\n <button (click)=\"onClick($event)\" [class]=\"mode\" [color]=\"color\"\n [disabled]=\"loading || disabled\" mat-button [class.with-spinner]=\"mode === 'spinner'\">\n @if (icon) {\n <mat-icon>{{ icon }}</mat-icon>\n }\n <ng-container [ngTemplateOutlet]=\"labelContent\"/>\n\n </button>\n }\n @case ('raised') {\n <button (click)=\"onClick($event)\" [class]=\"mode\" [color]=\"color\"\n [disabled]=\"loading || disabled\" mat-raised-button [class.with-spinner]=\"mode === 'spinner'\">\n @if (icon) {\n <mat-icon>{{ icon }}</mat-icon>\n }\n <ng-container [ngTemplateOutlet]=\"labelContent\"/>\n\n </button>\n }\n @case ('stroked') {\n <button (click)=\"onClick($event)\" [class]=\"mode\" [color]=\"color\"\n [disabled]=\"loading || disabled\" mat-stroked-button [class.with-spinner]=\"mode === 'spinner'\">\n @if (icon) {\n <mat-icon>{{ icon }}</mat-icon>\n }\n <ng-container [ngTemplateOutlet]=\"labelContent\"/>\n\n </button>\n }\n @case ('flat') {\n <button (click)=\"onClick($event)\" [class]=\"mode\" [color]=\"color\"\n [disabled]=\"loading || disabled\" mat-flat-button [class.with-spinner]=\"mode === 'spinner'\">\n @if (icon) {\n <mat-icon>{{ icon }}</mat-icon>\n }\n <ng-container [ngTemplateOutlet]=\"labelContent\"/>\n </button>\n <ng-container [ngTemplateOutlet]=\"loaderContent\"/>\n }\n @case ('icon') {\n <button (click)=\"onClick($event)\" [class]=\"mode\" [color]=\"color\"\n [disabled]=\"loading || disabled\" mat-icon-button>\n @if (loading) {\n <mat-progress-spinner [color]=\"color\" [diameter]=\"40\" [strokeWidth]=\"2\"/>\n }\n @if (icon) {\n <mat-icon>{{ icon }}</mat-icon>\n }\n <ng-content select=\".icon\"></ng-content>\n </button>\n }\n}\n\n<ng-template #loaderContent>\n @if (loading) {\n @if (mode === 'spinner') {\n <mat-spinner [diameter]=\"20\"/>\n } @else {\n <mat-progress-bar mode=\"indeterminate\"/>\n }\n }\n</ng-template>\n\n<ng-template #labelContent>\n <ng-content/>\n</ng-template>\n", styles: [":host{position:relative;overflow:hidden;display:inline-block;pointer-events:none;border-radius:var(--mdc-protected-button-container-shape, var(--mat-sys-corner-full))}button{position:relative;overflow:hidden;width:100%}button:not(disabled){pointer-events:all}mat-spinner{position:absolute;top:50%;transform:translateY(-50%);left:16px}mat-progress-bar{position:absolute;bottom:0;left:0;width:100%}\n"] }]
|
|
315
315
|
}], ctorParameters: () => [], propDecorators: { mode: [{
|
|
316
316
|
type: Input
|
|
317
317
|
}], loading: [{
|
|
@@ -427,7 +427,7 @@ class LoggerComponent {
|
|
|
427
427
|
this.slideOut(log.id);
|
|
428
428
|
}
|
|
429
429
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: LoggerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
430
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.6", type: LoggerComponent, isStandalone: true, selector: "mosa-logger", viewQueries: [{ propertyName: "elements", predicate: ["loggerElement"], descendants: true }], ngImport: i0, template: "@if (loggerState$ | async; as state) {\n @for (log of state.logs; track log) {\n <div #loggerElement\n [@slide]=\"log.state\"\n [class.none]=\"!log.state\"\n [class]=\"log.config.className\"\n (click)=\"onClickLog(log)\"\n [class.touch]=\"log.config.closeOnClick\"\n class=\"logger-element\">\n <div class=\"content\">\n <mat-icon class=\"icon\">{{ log.icon }}</mat-icon>\n <div>\n @if (log.title) {\n <div class=\"title\">{{ log.title | translate }}</div>\n } @if (log.message) {\n <div [innerHTML]=\"log.message | translate\" class=\"message\"></div>\n }\n </div>\n </div>\n @if (log.config.action || log.config.showDismiss) {\n <div class=\"actions\">\n @if (log.config.showDismiss) {\n <button (click)=\"slideOut(log.id)\" class=\"dismiss\" mat-button>\n {{ 'mosa.commons.buttons.dismiss' | translate | uppercase }}\n </button>\n } @if (log.config.action && log.config.action.label && log.config.action.callback) {\n <button (click)=\"$event.stopPropagation(); callAction(log)\"\n class=\"action-btn\" mat-button>\n {{ log.config.action.label | translate | uppercase }}\n </button>\n }\n </div>\n }\n </div>\n }\n}\n\n", styles: [":host{width:100%;height:100%;top:0;left:0;display:flex;flex-direction:column;position:fixed;z-index:10000;align-items:flex-end;pointer-events:none}.logger-element{padding:10px 15px;margin:10px 10px 0;width:350px;background:#fff;border-radius:4px;box-shadow:3px 3px 10px #0000004d;border-left:5px solid;pointer-events:all;max-height:400px}.logger-element.touch{cursor:pointer}.logger-element .content{display:flex;width:100%}.logger-element .content .icon{flex-shrink:0;margin-right:10px}.logger-element .content .title{font-weight:500;color:#222}.logger-element .content .message{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;overflow:hidden;max-lines:3;text-overflow:ellipsis;flex:1 auto;font-size:15px;margin-top:3px;color:#222}.logger-element .actions{display:flex;justify-content:flex-end;margin-top:10px}.logger-element .dismiss{color:#222}.logger-element button:not(:first-child){margin-left:10px}.logger-element.snackbar-error{border-color:#f44336;color:#f44336}.logger-element.snackbar-error button.action-btn{background-color:#d2190b;color:#fff}.logger-element.snackbar-success{border-color:#3ad15d;color:#3ad15d}.logger-element.snackbar-success button.action-btn{background-color:#249a40;color:#fff}.logger-element.snackbar-warning{border-color:#fa0;color:#fa0}.logger-element.snackbar-warning button.action-btn{background-color:#c80;color:#fff}.logger-element.snackbar-info{border-color:#008eff;color:#008eff}.logger-element.snackbar-info button.action-btn{background-color:#0063b3;color:#fff}.logger-element.snackbar-default{border-color:#222;color:#222}.logger-element.snackbar-default button.action-btn{background-color:#222;color:#fff}@media screen and (max-width:480px){.logger-element{width:100%}}\n"], dependencies: [{ kind: "component", type: MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: MatButton, selector: " button[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] ", inputs: ["matButton"], exportAs: ["matButton", "matAnchor"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "pipe", type: UpperCasePipe, name: "uppercase" }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }], animations: [
|
|
430
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.6", type: LoggerComponent, isStandalone: true, selector: "mosa-logger", viewQueries: [{ propertyName: "elements", predicate: ["loggerElement"], descendants: true }], ngImport: i0, template: "@if (loggerState$ | async; as state) {\n @for (log of state.logs; track log) {\n <div #loggerElement\n [@slide]=\"log.state\"\n [class.none]=\"!log.state\"\n [class]=\"log.config.className\"\n (click)=\"onClickLog(log)\"\n [class.touch]=\"log.config.closeOnClick\"\n class=\"logger-element\">\n <div class=\"content\">\n <mat-icon class=\"icon\">{{ log.icon }}</mat-icon>\n <div>\n @if (log.title) {\n <div class=\"title\">{{ log.title | translate }}</div>\n } @if (log.message) {\n <div [innerHTML]=\"log.message | translate\" class=\"message\"></div>\n }\n </div>\n </div>\n @if (log.config.action || log.config.showDismiss) {\n <div class=\"actions\">\n @if (log.config.showDismiss) {\n <button (click)=\"slideOut(log.id)\" class=\"dismiss\" mat-button>\n {{ 'mosa.commons.buttons.dismiss' | translate | uppercase }}\n </button>\n } @if (log.config.action && log.config.action.label && log.config.action.callback) {\n <button (click)=\"$event.stopPropagation(); callAction(log)\"\n class=\"action-btn\" mat-button>\n {{ log.config.action.label | translate | uppercase }}\n </button>\n }\n </div>\n }\n </div>\n }\n}\n\n", styles: [":host{width:100%;height:100%;top:0;left:0;display:flex;flex-direction:column;position:fixed;z-index:10000;align-items:flex-end;pointer-events:none}.logger-element{padding:10px 15px;margin:10px 10px 0;width:350px;background:#fff;border-radius:4px;box-shadow:3px 3px 10px #0000004d;border-left:5px solid;pointer-events:all;max-height:400px}.logger-element.touch{cursor:pointer}.logger-element .content{display:flex;width:100%}.logger-element .content .icon{flex-shrink:0;margin-right:10px}.logger-element .content .title{font-weight:500;color:#222}.logger-element .content .message{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;overflow:hidden;max-lines:3;text-overflow:ellipsis;flex:1 auto;font-size:15px;margin-top:3px;color:#222}.logger-element .actions{display:flex;justify-content:flex-end;margin-top:10px}.logger-element .dismiss{color:#222}.logger-element button:not(:first-child){margin-left:10px}.logger-element.snackbar-error{border-color:#f44336;color:#f44336}.logger-element.snackbar-error button.action-btn{background-color:#d2190b;color:#fff}.logger-element.snackbar-success{border-color:#3ad15d;color:#3ad15d}.logger-element.snackbar-success button.action-btn{background-color:#249a40;color:#fff}.logger-element.snackbar-warning{border-color:#fa0;color:#fa0}.logger-element.snackbar-warning button.action-btn{background-color:#c80;color:#fff}.logger-element.snackbar-info{border-color:#008eff;color:#008eff}.logger-element.snackbar-info button.action-btn{background-color:#0063b3;color:#fff}.logger-element.snackbar-default{border-color:#222;color:#222}.logger-element.snackbar-default button.action-btn{background-color:#222;color:#fff}@media screen and (max-width:480px){.logger-element{width:calc(100% - 55px)}}\n"], dependencies: [{ kind: "component", type: MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: MatButton, selector: " button[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] ", inputs: ["matButton"], exportAs: ["matButton", "matAnchor"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "pipe", type: UpperCasePipe, name: "uppercase" }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }], animations: [
|
|
431
431
|
trigger('slide', [
|
|
432
432
|
state('enter', style({ transform: 'translateX(0)' })),
|
|
433
433
|
transition(':leave', [
|
|
@@ -459,7 +459,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImpor
|
|
|
459
459
|
AsyncPipe,
|
|
460
460
|
UpperCasePipe,
|
|
461
461
|
TranslateModule,
|
|
462
|
-
], template: "@if (loggerState$ | async; as state) {\n @for (log of state.logs; track log) {\n <div #loggerElement\n [@slide]=\"log.state\"\n [class.none]=\"!log.state\"\n [class]=\"log.config.className\"\n (click)=\"onClickLog(log)\"\n [class.touch]=\"log.config.closeOnClick\"\n class=\"logger-element\">\n <div class=\"content\">\n <mat-icon class=\"icon\">{{ log.icon }}</mat-icon>\n <div>\n @if (log.title) {\n <div class=\"title\">{{ log.title | translate }}</div>\n } @if (log.message) {\n <div [innerHTML]=\"log.message | translate\" class=\"message\"></div>\n }\n </div>\n </div>\n @if (log.config.action || log.config.showDismiss) {\n <div class=\"actions\">\n @if (log.config.showDismiss) {\n <button (click)=\"slideOut(log.id)\" class=\"dismiss\" mat-button>\n {{ 'mosa.commons.buttons.dismiss' | translate | uppercase }}\n </button>\n } @if (log.config.action && log.config.action.label && log.config.action.callback) {\n <button (click)=\"$event.stopPropagation(); callAction(log)\"\n class=\"action-btn\" mat-button>\n {{ log.config.action.label | translate | uppercase }}\n </button>\n }\n </div>\n }\n </div>\n }\n}\n\n", styles: [":host{width:100%;height:100%;top:0;left:0;display:flex;flex-direction:column;position:fixed;z-index:10000;align-items:flex-end;pointer-events:none}.logger-element{padding:10px 15px;margin:10px 10px 0;width:350px;background:#fff;border-radius:4px;box-shadow:3px 3px 10px #0000004d;border-left:5px solid;pointer-events:all;max-height:400px}.logger-element.touch{cursor:pointer}.logger-element .content{display:flex;width:100%}.logger-element .content .icon{flex-shrink:0;margin-right:10px}.logger-element .content .title{font-weight:500;color:#222}.logger-element .content .message{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;overflow:hidden;max-lines:3;text-overflow:ellipsis;flex:1 auto;font-size:15px;margin-top:3px;color:#222}.logger-element .actions{display:flex;justify-content:flex-end;margin-top:10px}.logger-element .dismiss{color:#222}.logger-element button:not(:first-child){margin-left:10px}.logger-element.snackbar-error{border-color:#f44336;color:#f44336}.logger-element.snackbar-error button.action-btn{background-color:#d2190b;color:#fff}.logger-element.snackbar-success{border-color:#3ad15d;color:#3ad15d}.logger-element.snackbar-success button.action-btn{background-color:#249a40;color:#fff}.logger-element.snackbar-warning{border-color:#fa0;color:#fa0}.logger-element.snackbar-warning button.action-btn{background-color:#c80;color:#fff}.logger-element.snackbar-info{border-color:#008eff;color:#008eff}.logger-element.snackbar-info button.action-btn{background-color:#0063b3;color:#fff}.logger-element.snackbar-default{border-color:#222;color:#222}.logger-element.snackbar-default button.action-btn{background-color:#222;color:#fff}@media screen and (max-width:480px){.logger-element{width:100%}}\n"] }]
|
|
462
|
+
], template: "@if (loggerState$ | async; as state) {\n @for (log of state.logs; track log) {\n <div #loggerElement\n [@slide]=\"log.state\"\n [class.none]=\"!log.state\"\n [class]=\"log.config.className\"\n (click)=\"onClickLog(log)\"\n [class.touch]=\"log.config.closeOnClick\"\n class=\"logger-element\">\n <div class=\"content\">\n <mat-icon class=\"icon\">{{ log.icon }}</mat-icon>\n <div>\n @if (log.title) {\n <div class=\"title\">{{ log.title | translate }}</div>\n } @if (log.message) {\n <div [innerHTML]=\"log.message | translate\" class=\"message\"></div>\n }\n </div>\n </div>\n @if (log.config.action || log.config.showDismiss) {\n <div class=\"actions\">\n @if (log.config.showDismiss) {\n <button (click)=\"slideOut(log.id)\" class=\"dismiss\" mat-button>\n {{ 'mosa.commons.buttons.dismiss' | translate | uppercase }}\n </button>\n } @if (log.config.action && log.config.action.label && log.config.action.callback) {\n <button (click)=\"$event.stopPropagation(); callAction(log)\"\n class=\"action-btn\" mat-button>\n {{ log.config.action.label | translate | uppercase }}\n </button>\n }\n </div>\n }\n </div>\n }\n}\n\n", styles: [":host{width:100%;height:100%;top:0;left:0;display:flex;flex-direction:column;position:fixed;z-index:10000;align-items:flex-end;pointer-events:none}.logger-element{padding:10px 15px;margin:10px 10px 0;width:350px;background:#fff;border-radius:4px;box-shadow:3px 3px 10px #0000004d;border-left:5px solid;pointer-events:all;max-height:400px}.logger-element.touch{cursor:pointer}.logger-element .content{display:flex;width:100%}.logger-element .content .icon{flex-shrink:0;margin-right:10px}.logger-element .content .title{font-weight:500;color:#222}.logger-element .content .message{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;overflow:hidden;max-lines:3;text-overflow:ellipsis;flex:1 auto;font-size:15px;margin-top:3px;color:#222}.logger-element .actions{display:flex;justify-content:flex-end;margin-top:10px}.logger-element .dismiss{color:#222}.logger-element button:not(:first-child){margin-left:10px}.logger-element.snackbar-error{border-color:#f44336;color:#f44336}.logger-element.snackbar-error button.action-btn{background-color:#d2190b;color:#fff}.logger-element.snackbar-success{border-color:#3ad15d;color:#3ad15d}.logger-element.snackbar-success button.action-btn{background-color:#249a40;color:#fff}.logger-element.snackbar-warning{border-color:#fa0;color:#fa0}.logger-element.snackbar-warning button.action-btn{background-color:#c80;color:#fff}.logger-element.snackbar-info{border-color:#008eff;color:#008eff}.logger-element.snackbar-info button.action-btn{background-color:#0063b3;color:#fff}.logger-element.snackbar-default{border-color:#222;color:#222}.logger-element.snackbar-default button.action-btn{background-color:#222;color:#fff}@media screen and (max-width:480px){.logger-element{width:calc(100% - 55px)}}\n"] }]
|
|
463
463
|
}], ctorParameters: () => [], propDecorators: { elements: [{
|
|
464
464
|
type: ViewChildren,
|
|
465
465
|
args: ['loggerElement']
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mosa-ng-material.mjs","sources":["../../../../projects/material/src/lib/components/alert-widget/alert.widget.ts","../../../../projects/material/src/lib/components/alert-widget/alert.widget.html","../../../../projects/material/src/lib/models/confirm-dialog.model.ts","../../../../projects/material/src/lib/components/confirm-dialog/confirm.dialog.ts","../../../../projects/material/src/lib/components/confirm-dialog/confirm.dialog.html","../../../../projects/material/src/lib/components/base/cell-editor.base.component.ts","../../../../projects/material/src/lib/components/cell-editor/cell-editor.component.ts","../../../../projects/material/src/lib/components/cell-editor/cell-editor.component.html","../../../../projects/material/src/lib/components/loading-button/loading-button.component.ts","../../../../projects/material/src/lib/components/loading-button/loading-button.component.html","../../../../projects/material/src/lib/services/facades/logger.facade.ts","../../../../projects/material/src/lib/components/logger/logger.component.ts","../../../../projects/material/src/lib/components/logger/logger.component.html","../../../../projects/material/src/lib/models/skeleton.model.ts","../../../../projects/material/src/lib/components/skeleton-loader/skeleton/skeleton.component.ts","../../../../projects/material/src/lib/components/skeleton-loader/skeleton/skeleton.component.html","../../../../projects/material/src/lib/components/skeleton-loader/base.skeleton-loader.ts","../../../../projects/material/src/lib/components/skeleton-loader/list-skeleton-loader/list.skeleton-loader.ts","../../../../projects/material/src/lib/components/skeleton-loader/list-skeleton-loader/list.skeleton-loader.html","../../../../projects/material/src/lib/components/skeleton-loader/table-skeleton-loader/table.skeleton-loader.ts","../../../../projects/material/src/lib/components/skeleton-loader/table-skeleton-loader/table.skeleton-loader.html","../../../../projects/material/src/lib/components/update-dialog/mat-update-dialog/mat-update.dialog.ts","../../../../projects/material/src/lib/components/update-dialog/mat-update-dialog/mat-update.dialog.html","../../../../projects/material/src/lib/models/update-config.model.ts","../../../../projects/material/src/lib/components/update-dialog/update.dialog.ts","../../../../projects/material/src/lib/services/cell-editor.service.ts","../../../../projects/material/src/lib/directives/cell-editor.directive.ts","../../../../projects/material/src/lib/directives/click-outside.directive.ts","../../../../projects/material/src/lib/services/logger.service.ts","../../../../projects/material/src/lib/provider.ts","../../../../projects/material/src/mosa-ng-material.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, Input, OnChanges, OnInit, SimpleChanges } from '@angular/core';\nimport { MatIcon } from '@angular/material/icon';\n\n@Component({\n selector: 'mosa-alert-widget',\n templateUrl: './alert.widget.html',\n styleUrls: [ './alert.widget.scss' ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [ MatIcon ],\n})\nexport class AlertWidget implements OnInit, OnChanges {\n\n @Input()\n public icon: string | undefined;\n\n @Input()\n public title: string | undefined;\n\n @Input()\n public message: string | undefined;\n\n @Input()\n public type: 'warning' | 'error' | 'info' | 'success' | undefined;\n\n constructor() {\n }\n\n public ngOnInit(): void {\n this.updateData();\n }\n\n public ngOnChanges(_changes: SimpleChanges): void {\n this.updateData();\n }\n\n private updateData(): void {\n if (!this.title || !this.icon) {\n switch (this.type) {\n case 'error':\n this.icon ||= 'alert-circle-outline';\n this.title ||= 'Error';\n break;\n case 'info':\n this.icon ||= 'information-outline';\n this.title ||= 'Information';\n break;\n case 'success':\n this.icon ||= 'check';\n this.title ||= 'Success';\n break;\n case 'warning':\n this.icon ||= 'alert-outline';\n this.title ||= 'Warning';\n break;\n default:\n this.icon ||= 'information-outline';\n this.title ||= 'Alert';\n break;\n }\n }\n }\n\n}\n","<div [class]=\"'alert-' + type\" class=\"alert\">\n <div class=\"icon\">\n <mat-icon>icon</mat-icon>\n {{ title }}\n </div>\n <div>{{ message }}</div>\n</div>\n","// eslint-disable-next-line max-classes-per-file\nexport enum ConfirmDialogResult {\n confirmed,\n denied,\n cancelled,\n}\n\nexport class ConfirmDialogAction {\n\n public icon: string | undefined;\n public visible: boolean | undefined;\n public label: string;\n\n constructor(label: string, visible?: boolean) {\n this.label = label;\n this.visible = visible;\n }\n}\n\nexport class ConfirmDialogData {\n\n public title: string | undefined;\n public message: string | undefined;\n public cancel: ConfirmDialogAction | undefined;\n public confirm: ConfirmDialogAction | undefined;\n public deny: ConfirmDialogAction | undefined;\n\n constructor(title?: string, message?: string, cancel?: ConfirmDialogAction, confirm?: ConfirmDialogAction, deny?: ConfirmDialogAction) {\n this.title = title;\n this.message = message;\n this.cancel = cancel;\n this.confirm = confirm;\n this.deny = deny;\n }\n}\n","import { ChangeDetectionStrategy, Component, Inject, OnInit } from '@angular/core';\nimport { MAT_DIALOG_DATA, MatDialogActions, MatDialogContent, MatDialogRef, MatDialogTitle } from '@angular/material/dialog';\nimport { ConfirmDialogAction, ConfirmDialogData, ConfirmDialogResult } from '../../models/confirm-dialog.model';\nimport { MatButton } from '@angular/material/button';\nimport { UpperCasePipe } from '@angular/common';\nimport { TranslateModule } from '@ngx-translate/core';\n\n@Component({\n selector: 'mosa-confirm-dialog',\n templateUrl: './confirm.dialog.html',\n styleUrls: [ './confirm.dialog.scss' ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n MatDialogTitle,\n MatDialogContent,\n MatDialogActions,\n MatButton,\n UpperCasePipe,\n TranslateModule,\n ],\n})\nexport class ConfirmDialog implements OnInit {\n\n public dialogData: ConfirmDialogData;\n public result: typeof ConfirmDialogResult = ConfirmDialogResult;\n\n constructor(\n @Inject(MAT_DIALOG_DATA)\n private readonly myConfirmDialogData: ConfirmDialogData,\n private readonly myMatDialogRef: MatDialogRef<ConfirmDialog>,\n ) {\n const cancel: ConfirmDialogAction = new ConfirmDialogAction('mosa.commons.buttons.cancel', true);\n const deny: ConfirmDialogAction = new ConfirmDialogAction('mosa.commons.buttons.deny');\n const confirm: ConfirmDialogAction = new ConfirmDialogAction('mosa.commons.buttons.confirm', true);\n const title: string = 'mosa.components.confirmDialog.title';\n const message: string = 'mosa.components.confirmDialog.message';\n\n this.dialogData = myConfirmDialogData || new ConfirmDialogData(title, message, cancel, confirm, deny);\n\n if (!this.dialogData.title) {\n this.dialogData.title = title;\n }\n\n if (!this.dialogData.message) {\n this.dialogData.message = message;\n }\n\n if (!this.dialogData.cancel) {\n this.dialogData.cancel = cancel;\n }\n\n if (!this.dialogData.confirm) {\n this.dialogData.confirm = confirm;\n }\n\n if (!this.dialogData.deny) {\n this.dialogData.deny = deny;\n }\n }\n\n public ngOnInit(): void {\n //\n }\n\n public confirm(result: ConfirmDialogResult): void {\n this.myMatDialogRef.close(result);\n }\n\n}\n","<h1 class=\"active\" mat-dialog-title>{{ dialogData.title | translate }}</h1>\n<div mat-dialog-content>\n {{ dialogData.message | translate }}\n</div>\n<div mat-dialog-actions>\n @if (dialogData.cancel) {\n <button (click)=\"confirm(result.cancelled)\" color=\"primary\" mat-stroked-button>\n {{ 'mosa.commons.buttons.cancel' | translate | uppercase }}\n </button>\n }\n @if (dialogData.deny?.visible) {\n <button (click)=\"confirm(result.denied)\" color=\"primary\" mat-stroked-button>\n {{ dialogData.deny?.label | translate | uppercase }}\n </button>\n }\n @if (dialogData.confirm?.visible) {\n <button (click)=\"confirm(result.confirmed)\" color=\"primary\" mat-flat-button>\n {{ dialogData.confirm?.label | translate | uppercase }}\n </button>\n }\n</div>\n","import { ChangeDetectionStrategy, Component, OnInit, Optional } from '@angular/core';\nimport { MatDialog } from '@angular/material/dialog';\nimport { MatTableDataSource } from '@angular/material/table';\nimport { ActivatedRouteSnapshot, CanDeactivate, RouterStateSnapshot } from '@angular/router';\nimport { ConfirmDialogData, ConfirmDialogResult } from '../../models/confirm-dialog.model';\nimport { TableItem } from '../../models/table-item.model';\nimport { ConfirmDialog } from '../confirm-dialog/confirm.dialog';\nimport { firstValueFrom } from 'rxjs';\n\n@Component({\n selector: 'mosa-cell-editor-base',\n template: '',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class CellEditorBaseComponent<Model> implements OnInit, CanDeactivate<CellEditorBaseComponent<Model>> {\n\n public dataSource: MatTableDataSource<TableItem<Model>> = new MatTableDataSource<TableItem<Model>>();\n public displayedColumns: (keyof Model | string)[] = [];\n\n constructor(\n @Optional()\n protected readonly myMatDialog: MatDialog,\n ) {\n }\n\n public ngOnInit(): void {\n //\n }\n\n public get changedRows(): TableItem<Model>[] {\n return this.dataSource?.data?.filter((c: TableItem<Model>): boolean => !!c.changedRowKeys && c.changedRowKeys?.length > 0);\n }\n\n /**\n * Remove table item data\n * @param data\n */\n public serializeData(data: TableItem<Model>[]): Model[] {\n return data.map((val: TableItem<Model>): Model => {\n delete val.changedRowKeys;\n delete val.rowOriginalData;\n return val;\n });\n }\n\n public toTableItems(data: Model[]): TableItem<Model>[] {\n return data.map((val: Model): TableItem<Model> => ({\n ...val,\n rowOriginalData: val,\n changedRowKeys: [],\n }));\n }\n\n public async canDeactivate(_component: CellEditorBaseComponent<Model>,\n _currentRoute: ActivatedRouteSnapshot,\n _currentState: RouterStateSnapshot,\n _nextState?: RouterStateSnapshot): Promise<boolean> {\n if (!this.changedRows.length) {\n return true;\n }\n\n const result: ConfirmDialogResult = await firstValueFrom(\n this.myMatDialog\n .open(ConfirmDialog, {\n width: '600px',\n data: new ConfirmDialogData('mosa.components.cellEditorBase.discardChanges.label',\n 'mosa.components.cellEditorBase.discardChanges.message'),\n })\n .afterClosed(),\n );\n\n return result === ConfirmDialogResult.confirmed;\n }\n\n}\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ContentChild, ElementRef, EventEmitter, inject, Input, OnInit, Output } from '@angular/core';\nimport { MatSelect } from '@angular/material/select';\nimport { TableItem } from '../../models/table-item.model';\n\n@Component({\n selector: 'mosa-cell-editor',\n templateUrl: './cell-editor.component.html',\n styleUrls: [ './cell-editor.component.scss' ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport class CellEditorComponent<T = any> implements OnInit {\n\n @Input()\n public key: string = '';\n\n @Input()\n public rowItem!: TableItem<T>;\n\n @Input()\n public value: T | undefined;\n\n @Output()\n public valueChange: EventEmitter<T | undefined> = new EventEmitter<T | undefined>();\n\n @Output()\n public cellClick: EventEmitter<MouseEvent> = new EventEmitter<MouseEvent>();\n\n @Output()\n private readonly cellChange: EventEmitter<void> = new EventEmitter<void>();\n\n @Output()\n private readonly cellCancel: EventEmitter<void> = new EventEmitter<void>();\n\n @ContentChild(MatSelect)\n private readonly select: MatSelect | undefined;\n\n public mode: 'input' | 'output' = 'output';\n\n private oldValue: T | undefined;\n\n private readonly myChangeDetectorRef: ChangeDetectorRef = inject(ChangeDetectorRef);\n private readonly myElementRef: ElementRef<HTMLElement> = inject(ElementRef<HTMLElement>);\n\n constructor() {\n }\n\n public get element(): HTMLElement {\n return this.myElementRef.nativeElement;\n }\n\n public ngOnInit(): void {\n this.oldValue = this.value;\n this.rowItem.rowOriginalData = this.rowItem;\n }\n\n public toOutput(save?: boolean): void {\n if (this.mode !== 'output') {\n this.mode = 'output';\n this.myChangeDetectorRef.markForCheck();\n this.element.classList.remove('focused');\n\n if (save) {\n if (!this.rowItem.changedRowKeys) {\n this.rowItem.changedRowKeys = [];\n }\n const index: number = this.rowItem.changedRowKeys.indexOf(this.key);\n if (this.value !== this.oldValue) {\n if (index === -1) {\n this.rowItem.changedRowKeys.push(this.key);\n this.element.classList.add('edited');\n }\n this.cellChange.emit();\n } else {\n if (index !== -1) {\n this.rowItem.changedRowKeys.splice(index, 1);\n this.element.classList.remove('edited');\n }\n }\n } else {\n this.value = this.oldValue;\n this.cellCancel.emit();\n }\n this.valueChange.next(this.value);\n }\n }\n\n public toInput(): void {\n this.mode = 'input';\n this.myChangeDetectorRef.markForCheck();\n this.element.classList.add('focused');\n setTimeout((): void => {\n const comp: HTMLElement | null = this.element.querySelector('.cell-input');\n\n if (comp instanceof HTMLInputElement) {\n comp.focus();\n } else if (this.select) {\n this.select.open();\n }\n });\n }\n\n}\n","@if (mode === 'input') {\n <div class=\"input-wrapper\">\n <ng-content select=\".cell-input\"></ng-content>\n </div>\n}\n@if (mode === 'output') {\n <div class=\"output-wrapper\">\n <ng-content select=\".cell-output\"></ng-content>\n </div>\n}\n","import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core';\nimport { ThemePalette } from '@angular/material/core';\nimport { MatButton, MatIconButton } from '@angular/material/button';\nimport { NgTemplateOutlet } from '@angular/common';\nimport { MatProgressSpinner } from '@angular/material/progress-spinner';\nimport { MatIcon } from '@angular/material/icon';\nimport { MatProgressBar } from '@angular/material/progress-bar';\n\n@Component({\n selector: 'mosa-loading-button',\n templateUrl: './loading-button.component.html',\n styleUrls: [ './loading-button.component.scss' ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n MatButton,\n NgTemplateOutlet,\n MatIconButton,\n MatProgressSpinner,\n MatIcon,\n MatProgressBar,\n ],\n})\nexport class LoadingButtonComponent {\n\n @Input()\n public mode: 'spinner' | 'progress-bar' = 'spinner';\n\n @Input()\n public loading: boolean = false;\n\n @Input()\n public disabled: boolean = false;\n\n @Input()\n public color: ThemePalette = 'primary';\n\n @Input()\n public buttonType: 'default' | 'raised' | 'stroked' | 'flat' | 'icon' = 'default';\n\n @Input()\n public icon: string | undefined;\n\n @Output()\n public click: EventEmitter<MouseEvent> = new EventEmitter<MouseEvent>();\n\n constructor() {\n }\n\n public onClick(e: MouseEvent): void {\n e.stopPropagation();\n this.click.emit(e);\n }\n\n}\n","@switch (buttonType) {\n @default {\n <button (click)=\"onClick($event)\" [class]=\"mode\" [color]=\"color\"\n [disabled]=\"loading || disabled\" mat-button>\n <ng-container [ngTemplateOutlet]=\"buttonContent\"></ng-container>\n </button>\n } @case ('raised') {\n <button (click)=\"onClick($event)\" [class]=\"mode\" [color]=\"color\"\n [disabled]=\"loading || disabled\" mat-raised-button>\n <ng-container [ngTemplateOutlet]=\"buttonContent\"></ng-container>\n </button>\n } @case ('stroked') {\n <button (click)=\"onClick($event)\" [class]=\"mode\" [color]=\"color\"\n [disabled]=\"loading || disabled\" mat-stroked-button>\n <ng-container [ngTemplateOutlet]=\"buttonContent\"></ng-container>\n </button>\n } @case ('flat') {\n <button (click)=\"onClick($event)\" [class]=\"mode\" [color]=\"color\"\n [disabled]=\"loading || disabled\" mat-flat-button>\n <ng-container [ngTemplateOutlet]=\"buttonContent\"></ng-container>\n </button>\n } @case ('icon') {\n <button (click)=\"onClick($event)\" [class]=\"mode\" [color]=\"color\"\n [disabled]=\"loading || disabled\" mat-icon-button>\n @if (loading) {\n <mat-spinner class=\"icon-spinner\" [color]=\"color\" [diameter]=\"40\" [strokeWidth]=\"2\"></mat-spinner>\n } @if (icon) {\n <mat-icon>{{ icon }}</mat-icon>\n }\n <ng-content select=\".icon\"></ng-content>\n </button>\n }\n}\n\n<ng-template #buttonContent>\n @if (icon) {\n <mat-icon>{{ icon }}</mat-icon>\n } @switch (mode) {\n @case ('spinner') {\n <div class=\"spinner-inner\">\n @if (loading) {\n <mat-spinner [color]=\"color\" [diameter]=\"20\"></mat-spinner>\n }\n <span [class.loading]=\"loading\" class=\"label\">\n <ng-content select=\".spinner-label\"></ng-content>\n </span>\n </div>\n } @case ('progress-bar') {\n <ng-content select=\".progress-bar-label\"></ng-content>\n @if (loading) {\n <mat-progress-bar [color]=\"color\" mode=\"indeterminate\"></mat-progress-bar>\n }\n }\n}\n</ng-template>\n","import { Injectable } from '@angular/core';\nimport { ILog } from '@mosa-ng/core';\nimport { BehaviorSubject, Observable } from 'rxjs';\nimport { ILoggerState } from '../../models/states/logger-state.model';\n\nlet _state: ILoggerState = {\n logs: [],\n};\n\n@Injectable({\n providedIn: 'root',\n})\nexport class LoggerFacade {\n\n protected store$: BehaviorSubject<ILoggerState>;\n\n constructor() {\n this.store$ = new BehaviorSubject<ILoggerState>(_state);\n }\n\n public get snapshot(): ILoggerState {\n return this.store$.value;\n }\n\n public subState(): Observable<ILoggerState> {\n return this.store$.asObservable();\n }\n\n public updateLogs(logs: ILog[]): void {\n this.updateState({ ..._state, logs });\n }\n\n private updateState(state: ILoggerState): void {\n this.store$.next(_state = state);\n }\n\n}\n","import { animate, state, style, transition, trigger } from '@angular/animations';\nimport { ChangeDetectionStrategy, Component, inject, OnInit, QueryList, ViewChildren } from '@angular/core';\nimport { ILog, ILoggerConfig } from '@mosa-ng/core';\nimport { Observable } from 'rxjs';\nimport { ILoggerState } from '../../models/states/logger-state.model';\nimport { LoggerFacade } from '../../services/facades/logger.facade';\nimport { MatIcon } from '@angular/material/icon';\nimport { MatButton } from '@angular/material/button';\nimport { AsyncPipe, UpperCasePipe } from '@angular/common';\nimport { TranslateModule } from '@ngx-translate/core';\n\n@Component({\n selector: 'mosa-logger',\n templateUrl: './logger.component.html',\n styleUrls: [ './logger.component.scss' ],\n animations: [\n trigger('slide', [\n state('enter', style({ transform: 'translateX(0)' })),\n transition(':leave', [\n animate(200, style({ transform: 'translateX(120%)' })),\n ]),\n transition(':enter', [\n style({ transform: 'translateX(120%)' }),\n animate(200, style({ transform: 'translateX(0)' })),\n ]),\n ]),\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n MatIcon,\n MatButton,\n AsyncPipe,\n UpperCasePipe,\n TranslateModule,\n ],\n})\nexport class LoggerComponent implements OnInit {\n\n @ViewChildren('loggerElement')\n public elements: QueryList<HTMLElement> | undefined;\n\n public loggerState$!: Observable<ILoggerState>;\n\n private readonly myLoggerFacade: LoggerFacade = inject(LoggerFacade);\n\n constructor() {\n }\n\n public ngOnInit(): void {\n this.loggerState$ = this.myLoggerFacade.subState();\n }\n\n public onClickLog(log: ILog): void {\n if (log.config.closeOnClick) {\n this.slideOut(log.id);\n }\n }\n\n /**\n * Shows the snackbar\n * @param title\n * @param message\n * @param type\n * @param config\n */\n public slideIn(title: string | undefined, message: string | undefined, type: string, config: ILoggerConfig): number {\n const logs: ILog[] = [ ...this.myLoggerFacade.snapshot.logs ];\n const i = logs.length;\n let icon: string;\n\n switch (type) {\n case 'error':\n icon = 'error';\n break;\n case 'warning':\n icon = 'warning';\n break;\n case 'info':\n icon = 'info';\n break;\n case 'success':\n icon = 'done';\n break;\n default:\n icon = 'notifications';\n break;\n }\n\n logs.push({ id: i, title, message, config, state: 'enter', icon });\n this.myLoggerFacade.updateLogs(logs);\n return i;\n }\n\n /**\n * Hides the log\n * @param id\n */\n public slideOut(id: number): void {\n let logs: ILog[] = [ ...this.myLoggerFacade.snapshot.logs ];\n if (logs.length > 0) {\n const item: ILog | undefined = logs.find((e: ILog): boolean => e.id === id);\n if (!item) {\n return;\n }\n\n item.state = 'leave';\n this.myLoggerFacade.updateLogs(logs);\n setTimeout((): void => {\n logs = [ ...this.myLoggerFacade.snapshot.logs ];\n const index = logs.findIndex((log: ILog): boolean => log.id === item.id);\n logs.splice(index, 1);\n this.myLoggerFacade.updateLogs(logs);\n }, 200);\n }\n }\n\n public callAction(log: ILog): void {\n log.config.action?.callback?.call(this);\n this.slideOut(log.id);\n }\n\n}\n","@if (loggerState$ | async; as state) {\n @for (log of state.logs; track log) {\n <div #loggerElement\n [@slide]=\"log.state\"\n [class.none]=\"!log.state\"\n [class]=\"log.config.className\"\n (click)=\"onClickLog(log)\"\n [class.touch]=\"log.config.closeOnClick\"\n class=\"logger-element\">\n <div class=\"content\">\n <mat-icon class=\"icon\">{{ log.icon }}</mat-icon>\n <div>\n @if (log.title) {\n <div class=\"title\">{{ log.title | translate }}</div>\n } @if (log.message) {\n <div [innerHTML]=\"log.message | translate\" class=\"message\"></div>\n }\n </div>\n </div>\n @if (log.config.action || log.config.showDismiss) {\n <div class=\"actions\">\n @if (log.config.showDismiss) {\n <button (click)=\"slideOut(log.id)\" class=\"dismiss\" mat-button>\n {{ 'mosa.commons.buttons.dismiss' | translate | uppercase }}\n </button>\n } @if (log.config.action && log.config.action.label && log.config.action.callback) {\n <button (click)=\"$event.stopPropagation(); callAction(log)\"\n class=\"action-btn\" mat-button>\n {{ log.config.action.label | translate | uppercase }}\n </button>\n }\n </div>\n }\n </div>\n }\n}\n\n","import { isNullOrEmpty, isNumber, isZeroOrHigher } from '@mosa-ng/core';\n\nexport class Skeleton {\n public width?: number | string;\n public height?: number | string;\n public borderRadius?: number | string;\n public randomizeOffset?: number;\n\n constructor(skeleton?: Skeleton) {\n this.width = isZeroOrHigher(skeleton?.width) ? skeleton?.width : 100;\n this.height = isZeroOrHigher(skeleton?.height) ? skeleton?.height : 15;\n if ((isNumber(skeleton?.borderRadius) && isZeroOrHigher(skeleton?.borderRadius)) ||\n (typeof skeleton?.borderRadius === 'string' && !isNullOrEmpty(skeleton?.borderRadius))) {\n this.borderRadius = skeleton!.borderRadius;\n }\n this.borderRadius = this.borderRadius || 4;\n this.randomizeOffset = skeleton?.randomizeOffset || 0;\n }\n}\n","import { ChangeDetectionStrategy, Component, ElementRef, Input, OnInit } from '@angular/core';\nimport { Skeleton } from '../../../models/skeleton.model';\n\n@Component({\n selector: 'mosa-skeleton',\n templateUrl: './skeleton.component.html',\n styleUrls: [ './skeleton.component.scss' ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SkeletonComponent implements OnInit {\n\n @Input()\n public skeleton!: Skeleton;\n\n @Input()\n public width: number | string = 0;\n\n @Input()\n public height: number | string = 0;\n\n @Input()\n public randomizeOffset: number = 0;\n\n @Input()\n public borderRadius: number | string| undefined;\n\n private readonly element: HTMLElement;\n\n constructor(\n private readonly myElementRef: ElementRef,\n ) {\n this.element = this.myElementRef.nativeElement;\n }\n\n public ngOnInit(): void {\n if (!this.skeleton) {\n this.skeleton = new Skeleton({\n width: this.width,\n height: this.height,\n borderRadius: this.borderRadius,\n randomizeOffset: this.randomizeOffset,\n });\n }\n\n this.element.style.width = this.actualWidth;\n this.element.style.height = SkeletonComponent.value(this.skeleton.height);\n this.element.style.borderRadius = SkeletonComponent.value(this.skeleton.borderRadius);\n }\n\n private get actualWidth(): string {\n if (this.skeleton.randomizeOffset && this.skeleton.randomizeOffset > 0 && typeof this.skeleton.width === 'number') {\n return `${this.skeleton.width - Math.floor(Math.random() * this.skeleton.randomizeOffset)}px`;\n }\n\n return SkeletonComponent.value(this.skeleton.width);\n }\n\n private static value(val: number | string | undefined): string {\n if (typeof val === 'number') {\n return `${val}px`;\n }\n return val || '';\n }\n\n}\n","","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\n\n@Component({\n selector: 'mosa-skeleton-loader',\n template: '',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\n// eslint-disable-next-line @angular-eslint/component-class-suffix\nexport class BaseSkeletonLoader {\n\n @Input()\n public itemCount: number | undefined;\n\n}\n","import { ChangeDetectionStrategy, Component, Input, OnInit, TemplateRef } from '@angular/core';\nimport { BaseSkeletonLoader } from '../base.skeleton-loader';\nimport { MatList, MatListItem } from '@angular/material/list';\nimport { NgTemplateOutlet } from '@angular/common';\n\n@Component({\n selector: 'mosa-list-skeleton-loader',\n templateUrl: './list.skeleton-loader.html',\n styleUrls: [ './list.skeleton-loader.scss' ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n MatList,\n MatListItem,\n NgTemplateOutlet,\n ],\n})\n// eslint-disable-next-line @angular-eslint/component-class-suffix\nexport class ListSkeletonLoader extends BaseSkeletonLoader implements OnInit {\n\n @Input()\n public content: TemplateRef<unknown> | undefined;\n\n public items: number[] = [];\n\n constructor() {\n super();\n }\n\n public ngOnInit(): void {\n this.items = Array(this.itemCount).fill(this.itemCount).map((x: number, i: number): number => i);\n }\n\n}\n","<mat-list>\n @for (item of items; track item) {\n <mat-list-item>\n <ng-container *ngTemplateOutlet=\"content, context: { $implicit: item }\"></ng-container>\n </mat-list-item>\n }\n</mat-list>\n","import { ChangeDetectionStrategy, Component, Input, OnInit } from '@angular/core';\nimport { Skeleton } from '../../../models/skeleton.model';\nimport { BaseSkeletonLoader } from '../base.skeleton-loader';\nimport { MatCell, MatCellDef, MatColumnDef, MatHeaderCell, MatHeaderCellDef, MatHeaderRow, MatHeaderRowDef, MatRow, MatRowDef, MatTable } from '@angular/material/table';\nimport { SkeletonComponent } from '../skeleton/skeleton.component';\n\n@Component({\n selector: 'mosa-table-skeleton-loader',\n templateUrl: './table.skeleton-loader.html',\n styleUrls: [ './table.skeleton-loader.scss' ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n MatTable,\n MatColumnDef,\n MatHeaderCellDef,\n MatHeaderCell,\n SkeletonComponent,\n MatCellDef,\n MatCell,\n MatHeaderRowDef,\n MatHeaderRow,\n MatRowDef,\n MatRow,\n ],\n})\n// eslint-disable-next-line @angular-eslint/component-class-suffix\nexport class TableSkeletonLoader extends BaseSkeletonLoader implements OnInit {\n\n @Input()\n public columns: Skeleton[][] = [];\n\n public items: Skeleton[][] = [];\n public displayedColumns: string[] = [];\n\n constructor() {\n super();\n }\n\n public ngOnInit(): void {\n for (let i = 0; i < this.columns.length; i++) {\n this.displayedColumns.push(`column-${i}`);\n }\n\n for (let i = 0; i < (this.itemCount || 0); i++) {\n const skeletons: Skeleton[] = [];\n for (let j = 0; j < this.displayedColumns.length; j++) {\n const skeleton = this.columns[ j ][ 1 ];\n skeletons.push(new Skeleton({\n width: skeleton.width,\n height: skeleton.height,\n borderRadius: skeleton.borderRadius,\n randomizeOffset: skeleton.randomizeOffset,\n }));\n }\n this.items.push(skeletons);\n }\n }\n\n}\n","<table [dataSource]=\"items\" mat-table>\n @for (column of columns; track column; let i = $index) {\n <ng-container [matColumnDef]=\"'column-' + i\">\n <th *matHeaderCellDef mat-header-cell>\n <mosa-skeleton [skeleton]=\"column[0]\"></mosa-skeleton>\n </th>\n <td *matCellDef=\"let row\" mat-cell>\n <mosa-skeleton [skeleton]=\"column[1]\"></mosa-skeleton>\n </td>\n </ng-container>\n }\n <tr *matHeaderRowDef=\"displayedColumns;sticky:true\" mat-header-row></tr>\n <tr *matRowDef=\"let row; columns: displayedColumns;\" class=\"row-hover\" mat-row></tr>\n</table>\n","import { Component, inject, Inject, OnInit } from '@angular/core';\nimport { MAT_DIALOG_DATA, MatDialogActions, MatDialogContent, MatDialogRef, MatDialogTitle } from '@angular/material/dialog';\nimport { IUpdateConfig, UpdateDialogResult } from '../../../models/update-config.model';\nimport { MatButton } from '@angular/material/button';\nimport { AsyncPipe, UpperCasePipe } from '@angular/common';\nimport { TranslatePipe } from '@ngx-translate/core';\nimport { MosaDurationPipe } from '@mosa-ng/core';\n\n@Component({\n selector: 'mosa-mat-update-dialog',\n templateUrl: './mat-update.dialog.html',\n styleUrls: [ './mat-update.dialog.scss' ],\n imports: [\n MatDialogTitle,\n MatDialogContent,\n MatDialogActions,\n MatButton,\n AsyncPipe,\n UpperCasePipe,\n TranslatePipe,\n MosaDurationPipe,\n ],\n})\nexport class MatUpdateDialog implements OnInit {\n\n private readonly myMatDialogRef: MatDialogRef<MatUpdateDialog> = inject(MatDialogRef<MatUpdateDialog>);\n\n constructor(\n @Inject(MAT_DIALOG_DATA) public readonly config: IUpdateConfig,\n ) {\n }\n\n public ngOnInit(): void {\n //\n }\n\n public close(result: UpdateDialogResult): void {\n this.myMatDialogRef.close(result);\n }\n\n}\n","<h1 class=\"active\" mat-dialog-title>{{ config.title | translate }}</h1>\n<div mat-dialog-content>\n {{ config.message | translate }}\n</div>\n<div mat-dialog-actions>\n <button (click)=\"close(0)\" [class.cancel-btn]=\"config.showIgnore\" mat-stroked-button>\n {{ 'mosa.commons.buttons.cancel' | translate | uppercase }}\n </button>\n @if (config.showIgnore) {\n <button (click)=\"close(1)\" color=\"primary\" mat-stroked-button>\n {{\n 'mosa.commons.buttons.ignoreFor' | translate: {\n duration: config.ignoreTimeout | mosaDuration: 'auto' | async | uppercase\n } | uppercase\n }}\n </button>\n }\n <button mat-flat-button color=\"primary\" (click)=\"close(2)\">\n {{ 'mosa.commons.buttons.reloadNow' | translate | uppercase }}\n </button>\n</div>\n","export interface IUpdateConfig {\n refreshInterval?: number;\n ignoreTimeout?: number;\n localStorageKey?: string;\n versionPath: string;\n showIgnore?: boolean;\n title?: string;\n message?: string;\n}\n\nexport interface IVersion {\n version: string;\n timestamp: number;\n}\n\nexport enum UpdateDialogResult {\n cancel,\n ignore,\n reload,\n}\n","import { ChangeDetectionStrategy, Component, inject, Input } from '@angular/core';\nimport { MatDialog } from '@angular/material/dialog';\nimport { ApiService, isNullOrEmpty } from '@mosa-ng/core';\nimport { firstValueFrom, timer } from 'rxjs';\nimport { IUpdateConfig, IVersion, UpdateDialogResult } from '../../models/update-config.model';\nimport { MatUpdateDialog } from './mat-update-dialog/mat-update.dialog';\n\n@Component({\n selector: 'mosa-update-dialog[config]',\n template: '',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class UpdateDialog {\n\n @Input('config')\n public set updateConfig(config: IUpdateConfig) {\n if (config) {\n if (!config.versionPath) {\n console.warn('LoggerService: No version path was provided. This field is required!');\n return;\n }\n\n if (!config.localStorageKey) {\n config.localStorageKey = 'mosaApplicationVersion';\n }\n\n if (!config.ignoreTimeout) {\n config.ignoreTimeout = 30000;\n }\n\n if (!config.refreshInterval) {\n config.refreshInterval = 15000;\n }\n\n if (!config.title) {\n config.title = 'mosa.components.updateDialog.title';\n }\n\n if (!config.message) {\n config.message = 'mosa.components.updateDialog.message';\n }\n\n this.config = config;\n this.end();\n this.start();\n } else {\n console.warn('LoggerService: Cannot check for version. No config was provided.');\n }\n }\n\n private firstLoad: boolean = true;\n\n private blocked: boolean = false;\n private interval: NodeJS.Timeout | undefined;\n private config!: IUpdateConfig;\n\n private readonly myApiService: ApiService = inject(ApiService);\n private readonly myMatDialog: MatDialog = inject(MatDialog);\n\n constructor() {\n }\n\n private start(): void {\n if (this.interval) {\n this.end();\n }\n void this.checkForUpdate();\n this.interval = setInterval((): Promise<void> => this.checkForUpdate(), this.config.refreshInterval);\n }\n\n private openDialog(version: IVersion): void {\n this.myMatDialog.open(MatUpdateDialog, {\n width: '600px',\n data: this.config,\n })\n .afterClosed()\n .subscribe((result: UpdateDialogResult): void => {\n switch (result) {\n case UpdateDialogResult.cancel:\n this.end();\n this.blocked = true;\n break;\n case UpdateDialogResult.ignore:\n timer(this.config.ignoreTimeout!).subscribe((): void => this.openDialog(version));\n break;\n case UpdateDialogResult.reload:\n window.location.reload();\n window.localStorage.setItem(this.config.localStorageKey!, JSON.stringify(version));\n break;\n }\n });\n }\n\n private async checkForUpdate(): Promise<void> {\n if (this.blocked) {\n return;\n }\n\n const localStorageVersion: string | null = window.localStorage.getItem(this.config.localStorageKey!);\n let localVersion: IVersion = { version: '0.0.0', timestamp: 0 };\n if (!isNullOrEmpty(localStorageVersion)) {\n localVersion = JSON.parse(localStorageVersion!);\n }\n const data: IVersion = await firstValueFrom(this.myApiService.get(this.config.versionPath));\n if (this.firstLoad) {\n window.localStorage.setItem(this.config.localStorageKey!, JSON.stringify(data));\n this.firstLoad = false;\n return;\n }\n if (data.version !== localVersion.version) {\n this.blocked = true;\n this.end();\n this.openDialog(data);\n }\n }\n\n private end(): void {\n clearInterval(this.interval);\n this.interval = undefined;\n }\n\n}\n","import { Injectable } from '@angular/core';\nimport { CellEditorComponent } from '../components/cell-editor/cell-editor.component';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class CellEditorService {\n\n public cellEditor: CellEditorComponent | undefined;\n\n private documentEditListener: ((e: MouseEvent) => void | undefined) | undefined;\n\n constructor() {\n }\n\n public updateEditingCell(cellEditor: CellEditorComponent): void {\n if (cellEditor !== this.cellEditor) {\n this.cellEditor?.toOutput(true);\n }\n this.cellEditor = cellEditor;\n this.cellEditor.toInput();\n this.bindDocumentEditListener();\n }\n\n public bindDocumentEditListener(): void {\n if (!this.documentEditListener) {\n this.documentEditListener = (e: MouseEvent): void => {\n e.preventDefault();\n const target: HTMLElement = e.target as HTMLElement;\n const mosaCellEditor: HTMLElement | null = target.closest('mosa-cell-editor');\n if (this.cellEditor && mosaCellEditor !== this.cellEditor.element && !target.classList.contains('cell-output')) {\n document.removeEventListener('click', this.documentEditListener!);\n this.documentEditListener = undefined;\n this.cellEditor.toOutput(true);\n this.cellEditor = undefined;\n }\n };\n\n document.addEventListener('click', this.documentEditListener);\n }\n }\n\n public isEditingCellValid(): boolean {\n return this.cellEditor?.element != null && Array.from(this.cellEditor.element.querySelectorAll('.ng-invalid')).length === 0;\n }\n}\n","import { ContentChild, Directive, ElementRef, HostListener, inject, OnInit } from '@angular/core';\nimport { CellEditorComponent } from '../components/cell-editor/cell-editor.component';\nimport { CellEditorService } from '../services/cell-editor.service';\n\n@Directive({ selector: 'td[mosaCellEditor]' })\nexport class CellEditorDirective implements OnInit {\n\n @ContentChild(CellEditorComponent)\n private readonly cellEditor!: CellEditorComponent;\n\n private readonly myElementRef: ElementRef<HTMLElement> = inject(ElementRef<HTMLElement>);\n private readonly myCellEditorService: CellEditorService = inject(CellEditorService);\n\n constructor() {\n }\n\n @HostListener('keydown.escape', [ '$event' ])\n public onEscapeKeyDown(e: Event): void {\n e.preventDefault();\n this.cellEditor.toOutput();\n }\n\n @HostListener('keydown.tab', [ '$event' ])\n @HostListener('keydown.shift.tab', [ '$event' ])\n @HostListener('keydown.meta.tab', [ '$event' ])\n public onShiftKeyDown(e: Event): void {\n e.preventDefault();\n if ((e as KeyboardEvent).shiftKey) {\n this.moveToCell(e, false);\n } else {\n this.moveToCell(e, true);\n }\n }\n\n @HostListener('keydown.enter', [ '$event' ])\n public onEnterKeyDown(e: Event): void {\n e.preventDefault();\n if (this.myCellEditorService.isEditingCellValid()) {\n this.moveToNextRowCell(e);\n }\n }\n\n @HostListener('click', [ '$event' ])\n public onClick(e: Event): void {\n e.preventDefault();\n this.myCellEditorService.updateEditingCell(this.cellEditor);\n this.cellEditor.cellClick.emit();\n }\n\n public ngOnInit(): void {\n this.myElementRef.nativeElement.classList.add('editable-cell');\n }\n\n private moveToNextRowCell(e: Event): void {\n const currentCell: Element | null | undefined = this.cellEditor?.element?.parentElement;\n if (!currentCell) {\n return;\n }\n\n let columnDefClass: string = '';\n currentCell.classList.forEach((className: string): void => {\n const found: boolean = className.includes('mat-column-');\n if (found) {\n columnDefClass = className;\n }\n });\n\n const targetCell: ChildNode | null = this.findNextRowEditableColumn(currentCell, columnDefClass);\n this.cellEditor.toOutput(true);\n CellEditorDirective.executeMove(e, targetCell);\n }\n\n private findNextRowEditableColumn(row: Element, matColumnClassName: string): ChildNode | null {\n const nextRow: Element | null | undefined = row.parentElement?.nextElementSibling;\n if (!nextRow) {\n return null;\n }\n\n const column: Element = nextRow.getElementsByClassName(matColumnClassName)[ 0 ];\n return column?.classList.contains('editable-cell') ?\n column.firstChild :\n this.findNextRowEditableColumn(nextRow, matColumnClassName);\n }\n\n private findNextEditableColumn(cell: Element): ChildNode | null {\n let nextCell: Element | null | undefined = cell.parentElement?.nextElementSibling;\n\n if (!nextCell) {\n const nextRow: Element | null | undefined = cell.parentElement?.parentElement?.nextElementSibling;\n if (nextRow) {\n nextCell = nextRow.firstElementChild;\n }\n }\n\n if (nextCell) {\n return nextCell.classList.contains('editable-cell')\n ? nextCell.firstChild\n : this.findNextEditableColumn(nextCell);\n }\n\n return null;\n }\n\n private findPreviousEditableColumn(cell: Element): ChildNode | null {\n let prevCell: Element | null = cell.previousElementSibling;\n\n if (!prevCell) {\n const previousRow: Element | null | undefined = cell.parentElement?.previousElementSibling;\n if (previousRow) {\n prevCell = previousRow.lastElementChild;\n }\n }\n\n if (prevCell) {\n return prevCell.classList.contains('editable-cell') ?\n prevCell.firstChild :\n this.findPreviousEditableColumn(prevCell);\n } else {\n return null;\n }\n }\n\n private moveToCell(event: Event, nextCell: boolean): void {\n const currentCell: HTMLElement = this.cellEditor.element;\n if (this.cellEditor.element != null) {\n const targetCell: ChildNode | null = nextCell\n ? this.findNextEditableColumn(currentCell)\n : this.findPreviousEditableColumn(currentCell);\n if (this.myCellEditorService.isEditingCellValid()) {\n this.cellEditor.toOutput(true);\n (targetCell as HTMLElement)?.click();\n }\n CellEditorDirective.executeMove(event, targetCell);\n }\n }\n\n private static invokeElementMethod(element: EventTarget | ChildNode | Element | null, methodName: string, args?: unknown[]): void {\n // eslint-disable-next-line @typescript-eslint/no-restricted-types,@typescript-eslint/no-unsafe-function-type,@typescript-eslint/no-explicit-any\n ((element as any)[ methodName ] as Function).apply(element, args);\n }\n\n private static executeMove(e: Event, targetCell: ChildNode | null): void {\n e.preventDefault();\n // If datepicker is opened, remove cdk-overlay from dom\n const element: Element = e.composedPath()[ 0 ] as Element;\n if (element.className.includes('td-input-date')) {\n const cdkOverlayContainer: Element = document.getElementsByClassName('cdk-overlay-container')[ 0 ];\n const cdkBackdrop: Element = cdkOverlayContainer.getElementsByClassName('cdk-overlay-backdrop')[ 0 ];\n if (cdkBackdrop != null) {\n CellEditorDirective.invokeElementMethod(cdkBackdrop, 'click');\n }\n cdkOverlayContainer.innerHTML = '';\n }\n\n CellEditorDirective.invokeElementMethod(e.target, 'blur');\n if (targetCell != null) {\n CellEditorDirective.invokeElementMethod(targetCell, 'click');\n }\n }\n\n}\n","import { Directive, ElementRef, EventEmitter, HostListener, Input, Output } from '@angular/core';\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: '[clickOutside]',\n})\nexport class ClickOutsideDirective {\n\n @Output()\n public clickOutside: EventEmitter<[ HTMLElement, HTMLElement ]> = new EventEmitter<[ HTMLElement, HTMLElement ]>();\n\n @Input()\n public enableWhiteListing: boolean = false;\n\n constructor(\n private readonly elementRef: ElementRef,\n ) {\n }\n\n @HostListener('document:click', [ '$event.target' ])\n public onClick(targetElement: EventTarget | null): void {\n const clickedInside = this.elementRef.nativeElement.contains(targetElement);\n const whiteListedClass = 'whitelisted';\n if (clickedInside || !targetElement) {\n return;\n }\n\n const htmlElement: HTMLElement = targetElement as HTMLElement;\n if (this.enableWhiteListing) {\n const isWhiteListed = htmlElement.classList.contains(whiteListedClass)\n || ClickOutsideDirective.getClosest(htmlElement, whiteListedClass)\n || ClickOutsideDirective.getClosest(htmlElement, 'cdk-overlay-container');\n if (!isWhiteListed) {\n this.clickOutside.emit([ this.elementRef.nativeElement, htmlElement ]);\n }\n } else {\n this.clickOutside.emit([ this.elementRef.nativeElement, htmlElement ]);\n }\n }\n\n private static getClosest(el: HTMLElement | null, selector: string): HTMLElement | null {\n while (el) {\n if (el.classList.contains(selector)) {\n return el;\n }\n el = el.parentElement;\n }\n return null;\n }\n\n}\n","import { Injectable } from '@angular/core';\nimport { CoreLoggerService, ILoggerConfig, ILoggerDefaultConfig, LogType } from '@mosa-ng/core';\nimport { LoggerComponent } from '../components/logger/logger.component';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class LoggerService extends CoreLoggerService {\n\n private loggerComp: LoggerComponent | undefined;\n\n /**\n * Default constructor\n */\n constructor() {\n super();\n }\n\n /**\n * Setter for logger\n * @param component\n * @param defaultConfig\n */\n public logger(component: LoggerComponent, defaultConfig: ILoggerDefaultConfig): void {\n this.loggerComp = component;\n this.defaultConfig = defaultConfig;\n }\n\n /**\n * Shows the log\n * @param type\n * @param config\n */\n public override show(config: ILoggerConfig, type: LogType): void {\n super.show(config, type);\n if (this.loggerComp) {\n const i: number = this.loggerComp.slideIn(config.title, config.msg, type, config);\n\n if (config.duration !== -1) {\n setTimeout((): void => this.loggerComp?.slideOut(i), (config.duration || 1) * 1000);\n }\n }\n }\n\n}\n","import { AssetsI18nLoaderService } from '@mosa-ng/core';\nimport { EnvironmentProviders, inject, makeEnvironmentProviders, provideAppInitializer } from '@angular/core';\n\n// Components\nexport * from './components/alert-widget/alert.widget';\nexport * from './components/base/cell-editor.base.component';\nexport * from './components/cell-editor/cell-editor.component';\nexport * from './components/confirm-dialog/confirm.dialog';\nexport * from './components/loading-button/loading-button.component';\nexport * from './components/logger/logger.component';\nexport * from './components/skeleton-loader/skeleton/skeleton.component';\nexport * from './components/skeleton-loader/list-skeleton-loader/list.skeleton-loader';\nexport * from './components/skeleton-loader/table-skeleton-loader/table.skeleton-loader';\nexport * from './components/update-dialog/mat-update-dialog/mat-update.dialog';\nexport * from './components/update-dialog/update.dialog';\n\n// Directives\nexport * from './directives/cell-editor.directive';\nexport * from './directives/click-outside.directive';\n\n// States\nexport * from './models/states/logger-state.model';\nexport * from './models/states/cell-editor-base-state.model';\n\n// Models\nexport * from './models/skeleton.model';\nexport * from './models/confirm-dialog.model';\nexport * from './models/table-item.model';\nexport * from './models/update-config.model';\n\n// Services\nexport * from './services/cell-editor.service';\nexport * from './services/logger.service';\n\nexport * from './services/facades/logger.facade';\n\nfunction initI18n(i18n: AssetsI18nLoaderService): Promise<void> {\n return i18n.init(undefined, 'mosa');\n}\n\nexport const provideMosaMaterial: () => EnvironmentProviders = () => makeEnvironmentProviders([\n provideAppInitializer(() => initI18n(inject(AssetsI18nLoaderService))),\n]);\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"mosa-ng-material.mjs","sources":["../../../../projects/material/src/lib/components/alert-widget/alert.widget.ts","../../../../projects/material/src/lib/components/alert-widget/alert.widget.html","../../../../projects/material/src/lib/models/confirm-dialog.model.ts","../../../../projects/material/src/lib/components/confirm-dialog/confirm.dialog.ts","../../../../projects/material/src/lib/components/confirm-dialog/confirm.dialog.html","../../../../projects/material/src/lib/components/base/cell-editor.base.component.ts","../../../../projects/material/src/lib/components/cell-editor/cell-editor.component.ts","../../../../projects/material/src/lib/components/cell-editor/cell-editor.component.html","../../../../projects/material/src/lib/components/loading-button/loading-button.component.ts","../../../../projects/material/src/lib/components/loading-button/loading-button.component.html","../../../../projects/material/src/lib/services/facades/logger.facade.ts","../../../../projects/material/src/lib/components/logger/logger.component.ts","../../../../projects/material/src/lib/components/logger/logger.component.html","../../../../projects/material/src/lib/models/skeleton.model.ts","../../../../projects/material/src/lib/components/skeleton-loader/skeleton/skeleton.component.ts","../../../../projects/material/src/lib/components/skeleton-loader/skeleton/skeleton.component.html","../../../../projects/material/src/lib/components/skeleton-loader/base.skeleton-loader.ts","../../../../projects/material/src/lib/components/skeleton-loader/list-skeleton-loader/list.skeleton-loader.ts","../../../../projects/material/src/lib/components/skeleton-loader/list-skeleton-loader/list.skeleton-loader.html","../../../../projects/material/src/lib/components/skeleton-loader/table-skeleton-loader/table.skeleton-loader.ts","../../../../projects/material/src/lib/components/skeleton-loader/table-skeleton-loader/table.skeleton-loader.html","../../../../projects/material/src/lib/components/update-dialog/mat-update-dialog/mat-update.dialog.ts","../../../../projects/material/src/lib/components/update-dialog/mat-update-dialog/mat-update.dialog.html","../../../../projects/material/src/lib/models/update-config.model.ts","../../../../projects/material/src/lib/components/update-dialog/update.dialog.ts","../../../../projects/material/src/lib/services/cell-editor.service.ts","../../../../projects/material/src/lib/directives/cell-editor.directive.ts","../../../../projects/material/src/lib/directives/click-outside.directive.ts","../../../../projects/material/src/lib/services/logger.service.ts","../../../../projects/material/src/lib/provider.ts","../../../../projects/material/src/mosa-ng-material.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, Input, OnChanges, OnInit, SimpleChanges } from '@angular/core';\nimport { MatIcon } from '@angular/material/icon';\n\n@Component({\n selector: 'mosa-alert-widget',\n templateUrl: './alert.widget.html',\n styleUrls: [ './alert.widget.scss' ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [ MatIcon ],\n})\nexport class AlertWidget implements OnInit, OnChanges {\n\n @Input()\n public icon: string | undefined;\n\n @Input()\n public title: string | undefined;\n\n @Input()\n public message: string | undefined;\n\n @Input()\n public type: 'warning' | 'error' | 'info' | 'success' | undefined;\n\n constructor() {\n }\n\n public ngOnInit(): void {\n this.updateData();\n }\n\n public ngOnChanges(_changes: SimpleChanges): void {\n this.updateData();\n }\n\n private updateData(): void {\n if (!this.title || !this.icon) {\n switch (this.type) {\n case 'error':\n this.icon ||= 'alert-circle-outline';\n this.title ||= 'Error';\n break;\n case 'info':\n this.icon ||= 'information-outline';\n this.title ||= 'Information';\n break;\n case 'success':\n this.icon ||= 'check';\n this.title ||= 'Success';\n break;\n case 'warning':\n this.icon ||= 'alert-outline';\n this.title ||= 'Warning';\n break;\n default:\n this.icon ||= 'information-outline';\n this.title ||= 'Alert';\n break;\n }\n }\n }\n\n}\n","<div [class]=\"'alert-' + type\" class=\"alert\">\n <div class=\"icon\">\n <mat-icon>icon</mat-icon>\n {{ title }}\n </div>\n <div>{{ message }}</div>\n</div>\n","// eslint-disable-next-line max-classes-per-file\nexport enum ConfirmDialogResult {\n confirmed,\n denied,\n cancelled,\n}\n\nexport class ConfirmDialogAction {\n\n public icon: string | undefined;\n public visible: boolean | undefined;\n public label: string;\n\n constructor(label: string, visible?: boolean) {\n this.label = label;\n this.visible = visible;\n }\n}\n\nexport class ConfirmDialogData {\n\n public title: string | undefined;\n public message: string | undefined;\n public cancel: ConfirmDialogAction | undefined;\n public confirm: ConfirmDialogAction | undefined;\n public deny: ConfirmDialogAction | undefined;\n\n constructor(title?: string, message?: string, cancel?: ConfirmDialogAction, confirm?: ConfirmDialogAction, deny?: ConfirmDialogAction) {\n this.title = title;\n this.message = message;\n this.cancel = cancel;\n this.confirm = confirm;\n this.deny = deny;\n }\n}\n","import { ChangeDetectionStrategy, Component, Inject, OnInit } from '@angular/core';\nimport { MAT_DIALOG_DATA, MatDialogActions, MatDialogContent, MatDialogRef, MatDialogTitle } from '@angular/material/dialog';\nimport { ConfirmDialogAction, ConfirmDialogData, ConfirmDialogResult } from '../../models/confirm-dialog.model';\nimport { MatButton } from '@angular/material/button';\nimport { UpperCasePipe } from '@angular/common';\nimport { TranslateModule } from '@ngx-translate/core';\n\n@Component({\n selector: 'mosa-confirm-dialog',\n templateUrl: './confirm.dialog.html',\n styleUrls: [ './confirm.dialog.scss' ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n MatDialogTitle,\n MatDialogContent,\n MatDialogActions,\n MatButton,\n UpperCasePipe,\n TranslateModule,\n ],\n})\nexport class ConfirmDialog implements OnInit {\n\n public dialogData: ConfirmDialogData;\n public result: typeof ConfirmDialogResult = ConfirmDialogResult;\n\n constructor(\n @Inject(MAT_DIALOG_DATA)\n private readonly myConfirmDialogData: ConfirmDialogData,\n private readonly myMatDialogRef: MatDialogRef<ConfirmDialog>,\n ) {\n const cancel: ConfirmDialogAction = new ConfirmDialogAction('mosa.commons.buttons.cancel', true);\n const deny: ConfirmDialogAction = new ConfirmDialogAction('mosa.commons.buttons.deny');\n const confirm: ConfirmDialogAction = new ConfirmDialogAction('mosa.commons.buttons.confirm', true);\n const title: string = 'mosa.components.confirmDialog.title';\n const message: string = 'mosa.components.confirmDialog.message';\n\n this.dialogData = myConfirmDialogData || new ConfirmDialogData(title, message, cancel, confirm, deny);\n\n if (!this.dialogData.title) {\n this.dialogData.title = title;\n }\n\n if (!this.dialogData.message) {\n this.dialogData.message = message;\n }\n\n if (!this.dialogData.cancel) {\n this.dialogData.cancel = cancel;\n }\n\n if (!this.dialogData.confirm) {\n this.dialogData.confirm = confirm;\n }\n\n if (!this.dialogData.deny) {\n this.dialogData.deny = deny;\n }\n }\n\n public ngOnInit(): void {\n //\n }\n\n public confirm(result: ConfirmDialogResult): void {\n this.myMatDialogRef.close(result);\n }\n\n}\n","<h1 class=\"active\" mat-dialog-title>{{ dialogData.title | translate }}</h1>\n<div mat-dialog-content>\n {{ dialogData.message | translate }}\n</div>\n<div mat-dialog-actions>\n @if (dialogData.cancel) {\n <button (click)=\"confirm(result.cancelled)\" color=\"primary\" mat-stroked-button>\n {{ 'mosa.commons.buttons.cancel' | translate | uppercase }}\n </button>\n }\n @if (dialogData.deny?.visible) {\n <button (click)=\"confirm(result.denied)\" color=\"primary\" mat-stroked-button>\n {{ dialogData.deny?.label | translate | uppercase }}\n </button>\n }\n @if (dialogData.confirm?.visible) {\n <button (click)=\"confirm(result.confirmed)\" color=\"primary\" mat-flat-button>\n {{ dialogData.confirm?.label | translate | uppercase }}\n </button>\n }\n</div>\n","import { ChangeDetectionStrategy, Component, OnInit, Optional } from '@angular/core';\nimport { MatDialog } from '@angular/material/dialog';\nimport { MatTableDataSource } from '@angular/material/table';\nimport { ActivatedRouteSnapshot, CanDeactivate, RouterStateSnapshot } from '@angular/router';\nimport { ConfirmDialogData, ConfirmDialogResult } from '../../models/confirm-dialog.model';\nimport { TableItem } from '../../models/table-item.model';\nimport { ConfirmDialog } from '../confirm-dialog/confirm.dialog';\nimport { firstValueFrom } from 'rxjs';\n\n@Component({\n selector: 'mosa-cell-editor-base',\n template: '',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class CellEditorBaseComponent<Model> implements OnInit, CanDeactivate<CellEditorBaseComponent<Model>> {\n\n public dataSource: MatTableDataSource<TableItem<Model>> = new MatTableDataSource<TableItem<Model>>();\n public displayedColumns: (keyof Model | string)[] = [];\n\n constructor(\n @Optional()\n protected readonly myMatDialog: MatDialog,\n ) {\n }\n\n public ngOnInit(): void {\n //\n }\n\n public get changedRows(): TableItem<Model>[] {\n return this.dataSource?.data?.filter((c: TableItem<Model>): boolean => !!c.changedRowKeys && c.changedRowKeys?.length > 0);\n }\n\n /**\n * Remove table item data\n * @param data\n */\n public serializeData(data: TableItem<Model>[]): Model[] {\n return data.map((val: TableItem<Model>): Model => {\n delete val.changedRowKeys;\n delete val.rowOriginalData;\n return val;\n });\n }\n\n public toTableItems(data: Model[]): TableItem<Model>[] {\n return data.map((val: Model): TableItem<Model> => ({\n ...val,\n rowOriginalData: val,\n changedRowKeys: [],\n }));\n }\n\n public async canDeactivate(_component: CellEditorBaseComponent<Model>,\n _currentRoute: ActivatedRouteSnapshot,\n _currentState: RouterStateSnapshot,\n _nextState?: RouterStateSnapshot): Promise<boolean> {\n if (!this.changedRows.length) {\n return true;\n }\n\n const result: ConfirmDialogResult = await firstValueFrom(\n this.myMatDialog\n .open(ConfirmDialog, {\n width: '600px',\n data: new ConfirmDialogData('mosa.components.cellEditorBase.discardChanges.label',\n 'mosa.components.cellEditorBase.discardChanges.message'),\n })\n .afterClosed(),\n );\n\n return result === ConfirmDialogResult.confirmed;\n }\n\n}\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ContentChild, ElementRef, EventEmitter, inject, Input, OnInit, Output } from '@angular/core';\nimport { MatSelect } from '@angular/material/select';\nimport { TableItem } from '../../models/table-item.model';\n\n@Component({\n selector: 'mosa-cell-editor',\n templateUrl: './cell-editor.component.html',\n styleUrls: [ './cell-editor.component.scss' ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport class CellEditorComponent<T = any> implements OnInit {\n\n @Input()\n public key: string = '';\n\n @Input()\n public rowItem!: TableItem<T>;\n\n @Input()\n public value: T | undefined;\n\n @Output()\n public valueChange: EventEmitter<T | undefined> = new EventEmitter<T | undefined>();\n\n @Output()\n public cellClick: EventEmitter<MouseEvent> = new EventEmitter<MouseEvent>();\n\n @Output()\n private readonly cellChange: EventEmitter<void> = new EventEmitter<void>();\n\n @Output()\n private readonly cellCancel: EventEmitter<void> = new EventEmitter<void>();\n\n @ContentChild(MatSelect)\n private readonly select: MatSelect | undefined;\n\n public mode: 'input' | 'output' = 'output';\n\n private oldValue: T | undefined;\n\n private readonly myChangeDetectorRef: ChangeDetectorRef = inject(ChangeDetectorRef);\n private readonly myElementRef: ElementRef<HTMLElement> = inject(ElementRef<HTMLElement>);\n\n constructor() {\n }\n\n public get element(): HTMLElement {\n return this.myElementRef.nativeElement;\n }\n\n public ngOnInit(): void {\n this.oldValue = this.value;\n this.rowItem.rowOriginalData = this.rowItem;\n }\n\n public toOutput(save?: boolean): void {\n if (this.mode !== 'output') {\n this.mode = 'output';\n this.myChangeDetectorRef.markForCheck();\n this.element.classList.remove('focused');\n\n if (save) {\n if (!this.rowItem.changedRowKeys) {\n this.rowItem.changedRowKeys = [];\n }\n const index: number = this.rowItem.changedRowKeys.indexOf(this.key);\n if (this.value !== this.oldValue) {\n if (index === -1) {\n this.rowItem.changedRowKeys.push(this.key);\n this.element.classList.add('edited');\n }\n this.cellChange.emit();\n } else {\n if (index !== -1) {\n this.rowItem.changedRowKeys.splice(index, 1);\n this.element.classList.remove('edited');\n }\n }\n } else {\n this.value = this.oldValue;\n this.cellCancel.emit();\n }\n this.valueChange.next(this.value);\n }\n }\n\n public toInput(): void {\n this.mode = 'input';\n this.myChangeDetectorRef.markForCheck();\n this.element.classList.add('focused');\n setTimeout((): void => {\n const comp: HTMLElement | null = this.element.querySelector('.cell-input');\n\n if (comp instanceof HTMLInputElement) {\n comp.focus();\n } else if (this.select) {\n this.select.open();\n }\n });\n }\n\n}\n","@if (mode === 'input') {\n <div class=\"input-wrapper\">\n <ng-content select=\".cell-input\"></ng-content>\n </div>\n}\n@if (mode === 'output') {\n <div class=\"output-wrapper\">\n <ng-content select=\".cell-output\"></ng-content>\n </div>\n}\n","import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core';\nimport { ThemePalette } from '@angular/material/core';\nimport { MatButton, MatIconButton } from '@angular/material/button';\nimport { NgTemplateOutlet } from '@angular/common';\nimport { MatProgressSpinner } from '@angular/material/progress-spinner';\nimport { MatIcon } from '@angular/material/icon';\nimport { MatProgressBar } from '@angular/material/progress-bar';\n\n@Component({\n selector: 'mosa-loading-button',\n templateUrl: './loading-button.component.html',\n styleUrls: [ './loading-button.component.scss' ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n MatButton,\n NgTemplateOutlet,\n MatIconButton,\n MatProgressSpinner,\n MatIcon,\n MatProgressBar,\n ],\n})\nexport class LoadingButtonComponent {\n\n @Input()\n public mode: 'spinner' | 'progress-bar' = 'spinner';\n\n @Input()\n public loading: boolean = false;\n\n @Input()\n public disabled: boolean = false;\n\n @Input()\n public color: ThemePalette = 'primary';\n\n @Input()\n public buttonType: 'default' | 'raised' | 'stroked' | 'flat' | 'icon' = 'default';\n\n @Input()\n public icon: string | undefined;\n\n @Output()\n public click: EventEmitter<MouseEvent> = new EventEmitter<MouseEvent>();\n\n constructor() {\n }\n\n public onClick(e: MouseEvent): void {\n e.stopPropagation();\n this.click.emit(e);\n }\n\n}\n","@switch (buttonType) {\n @default {\n <button (click)=\"onClick($event)\" [class]=\"mode\" [color]=\"color\"\n [disabled]=\"loading || disabled\" mat-button [class.with-spinner]=\"mode === 'spinner'\">\n @if (icon) {\n <mat-icon>{{ icon }}</mat-icon>\n }\n <ng-container [ngTemplateOutlet]=\"labelContent\"/>\n\n </button>\n }\n @case ('raised') {\n <button (click)=\"onClick($event)\" [class]=\"mode\" [color]=\"color\"\n [disabled]=\"loading || disabled\" mat-raised-button [class.with-spinner]=\"mode === 'spinner'\">\n @if (icon) {\n <mat-icon>{{ icon }}</mat-icon>\n }\n <ng-container [ngTemplateOutlet]=\"labelContent\"/>\n\n </button>\n }\n @case ('stroked') {\n <button (click)=\"onClick($event)\" [class]=\"mode\" [color]=\"color\"\n [disabled]=\"loading || disabled\" mat-stroked-button [class.with-spinner]=\"mode === 'spinner'\">\n @if (icon) {\n <mat-icon>{{ icon }}</mat-icon>\n }\n <ng-container [ngTemplateOutlet]=\"labelContent\"/>\n\n </button>\n }\n @case ('flat') {\n <button (click)=\"onClick($event)\" [class]=\"mode\" [color]=\"color\"\n [disabled]=\"loading || disabled\" mat-flat-button [class.with-spinner]=\"mode === 'spinner'\">\n @if (icon) {\n <mat-icon>{{ icon }}</mat-icon>\n }\n <ng-container [ngTemplateOutlet]=\"labelContent\"/>\n </button>\n <ng-container [ngTemplateOutlet]=\"loaderContent\"/>\n }\n @case ('icon') {\n <button (click)=\"onClick($event)\" [class]=\"mode\" [color]=\"color\"\n [disabled]=\"loading || disabled\" mat-icon-button>\n @if (loading) {\n <mat-progress-spinner [color]=\"color\" [diameter]=\"40\" [strokeWidth]=\"2\"/>\n }\n @if (icon) {\n <mat-icon>{{ icon }}</mat-icon>\n }\n <ng-content select=\".icon\"></ng-content>\n </button>\n }\n}\n\n<ng-template #loaderContent>\n @if (loading) {\n @if (mode === 'spinner') {\n <mat-spinner [diameter]=\"20\"/>\n } @else {\n <mat-progress-bar mode=\"indeterminate\"/>\n }\n }\n</ng-template>\n\n<ng-template #labelContent>\n <ng-content/>\n</ng-template>\n","import { Injectable } from '@angular/core';\nimport { ILog } from '@mosa-ng/core';\nimport { BehaviorSubject, Observable } from 'rxjs';\nimport { ILoggerState } from '../../models/states/logger-state.model';\n\nlet _state: ILoggerState = {\n logs: [],\n};\n\n@Injectable({\n providedIn: 'root',\n})\nexport class LoggerFacade {\n\n protected store$: BehaviorSubject<ILoggerState>;\n\n constructor() {\n this.store$ = new BehaviorSubject<ILoggerState>(_state);\n }\n\n public get snapshot(): ILoggerState {\n return this.store$.value;\n }\n\n public subState(): Observable<ILoggerState> {\n return this.store$.asObservable();\n }\n\n public updateLogs(logs: ILog[]): void {\n this.updateState({ ..._state, logs });\n }\n\n private updateState(state: ILoggerState): void {\n this.store$.next(_state = state);\n }\n\n}\n","import { animate, state, style, transition, trigger } from '@angular/animations';\nimport { ChangeDetectionStrategy, Component, inject, OnInit, QueryList, ViewChildren } from '@angular/core';\nimport { ILog, ILoggerConfig } from '@mosa-ng/core';\nimport { Observable } from 'rxjs';\nimport { ILoggerState } from '../../models/states/logger-state.model';\nimport { LoggerFacade } from '../../services/facades/logger.facade';\nimport { MatIcon } from '@angular/material/icon';\nimport { MatButton } from '@angular/material/button';\nimport { AsyncPipe, UpperCasePipe } from '@angular/common';\nimport { TranslateModule } from '@ngx-translate/core';\n\n@Component({\n selector: 'mosa-logger',\n templateUrl: './logger.component.html',\n styleUrls: [ './logger.component.scss' ],\n animations: [\n trigger('slide', [\n state('enter', style({ transform: 'translateX(0)' })),\n transition(':leave', [\n animate(200, style({ transform: 'translateX(120%)' })),\n ]),\n transition(':enter', [\n style({ transform: 'translateX(120%)' }),\n animate(200, style({ transform: 'translateX(0)' })),\n ]),\n ]),\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n MatIcon,\n MatButton,\n AsyncPipe,\n UpperCasePipe,\n TranslateModule,\n ],\n})\nexport class LoggerComponent implements OnInit {\n\n @ViewChildren('loggerElement')\n public elements: QueryList<HTMLElement> | undefined;\n\n public loggerState$!: Observable<ILoggerState>;\n\n private readonly myLoggerFacade: LoggerFacade = inject(LoggerFacade);\n\n constructor() {\n }\n\n public ngOnInit(): void {\n this.loggerState$ = this.myLoggerFacade.subState();\n }\n\n public onClickLog(log: ILog): void {\n if (log.config.closeOnClick) {\n this.slideOut(log.id);\n }\n }\n\n /**\n * Shows the snackbar\n * @param title\n * @param message\n * @param type\n * @param config\n */\n public slideIn(title: string | undefined, message: string | undefined, type: string, config: ILoggerConfig): number {\n const logs: ILog[] = [ ...this.myLoggerFacade.snapshot.logs ];\n const i = logs.length;\n let icon: string;\n\n switch (type) {\n case 'error':\n icon = 'error';\n break;\n case 'warning':\n icon = 'warning';\n break;\n case 'info':\n icon = 'info';\n break;\n case 'success':\n icon = 'done';\n break;\n default:\n icon = 'notifications';\n break;\n }\n\n logs.push({ id: i, title, message, config, state: 'enter', icon });\n this.myLoggerFacade.updateLogs(logs);\n return i;\n }\n\n /**\n * Hides the log\n * @param id\n */\n public slideOut(id: number): void {\n let logs: ILog[] = [ ...this.myLoggerFacade.snapshot.logs ];\n if (logs.length > 0) {\n const item: ILog | undefined = logs.find((e: ILog): boolean => e.id === id);\n if (!item) {\n return;\n }\n\n item.state = 'leave';\n this.myLoggerFacade.updateLogs(logs);\n setTimeout((): void => {\n logs = [ ...this.myLoggerFacade.snapshot.logs ];\n const index = logs.findIndex((log: ILog): boolean => log.id === item.id);\n logs.splice(index, 1);\n this.myLoggerFacade.updateLogs(logs);\n }, 200);\n }\n }\n\n public callAction(log: ILog): void {\n log.config.action?.callback?.call(this);\n this.slideOut(log.id);\n }\n\n}\n","@if (loggerState$ | async; as state) {\n @for (log of state.logs; track log) {\n <div #loggerElement\n [@slide]=\"log.state\"\n [class.none]=\"!log.state\"\n [class]=\"log.config.className\"\n (click)=\"onClickLog(log)\"\n [class.touch]=\"log.config.closeOnClick\"\n class=\"logger-element\">\n <div class=\"content\">\n <mat-icon class=\"icon\">{{ log.icon }}</mat-icon>\n <div>\n @if (log.title) {\n <div class=\"title\">{{ log.title | translate }}</div>\n } @if (log.message) {\n <div [innerHTML]=\"log.message | translate\" class=\"message\"></div>\n }\n </div>\n </div>\n @if (log.config.action || log.config.showDismiss) {\n <div class=\"actions\">\n @if (log.config.showDismiss) {\n <button (click)=\"slideOut(log.id)\" class=\"dismiss\" mat-button>\n {{ 'mosa.commons.buttons.dismiss' | translate | uppercase }}\n </button>\n } @if (log.config.action && log.config.action.label && log.config.action.callback) {\n <button (click)=\"$event.stopPropagation(); callAction(log)\"\n class=\"action-btn\" mat-button>\n {{ log.config.action.label | translate | uppercase }}\n </button>\n }\n </div>\n }\n </div>\n }\n}\n\n","import { isNullOrEmpty, isNumber, isZeroOrHigher } from '@mosa-ng/core';\n\nexport class Skeleton {\n public width?: number | string;\n public height?: number | string;\n public borderRadius?: number | string;\n public randomizeOffset?: number;\n\n constructor(skeleton?: Skeleton) {\n this.width = isZeroOrHigher(skeleton?.width) ? skeleton?.width : 100;\n this.height = isZeroOrHigher(skeleton?.height) ? skeleton?.height : 15;\n if ((isNumber(skeleton?.borderRadius) && isZeroOrHigher(skeleton?.borderRadius)) ||\n (typeof skeleton?.borderRadius === 'string' && !isNullOrEmpty(skeleton?.borderRadius))) {\n this.borderRadius = skeleton!.borderRadius;\n }\n this.borderRadius = this.borderRadius || 4;\n this.randomizeOffset = skeleton?.randomizeOffset || 0;\n }\n}\n","import { ChangeDetectionStrategy, Component, ElementRef, Input, OnInit } from '@angular/core';\nimport { Skeleton } from '../../../models/skeleton.model';\n\n@Component({\n selector: 'mosa-skeleton',\n templateUrl: './skeleton.component.html',\n styleUrls: [ './skeleton.component.scss' ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SkeletonComponent implements OnInit {\n\n @Input()\n public skeleton!: Skeleton;\n\n @Input()\n public width: number | string = 0;\n\n @Input()\n public height: number | string = 0;\n\n @Input()\n public randomizeOffset: number = 0;\n\n @Input()\n public borderRadius: number | string| undefined;\n\n private readonly element: HTMLElement;\n\n constructor(\n private readonly myElementRef: ElementRef,\n ) {\n this.element = this.myElementRef.nativeElement;\n }\n\n public ngOnInit(): void {\n if (!this.skeleton) {\n this.skeleton = new Skeleton({\n width: this.width,\n height: this.height,\n borderRadius: this.borderRadius,\n randomizeOffset: this.randomizeOffset,\n });\n }\n\n this.element.style.width = this.actualWidth;\n this.element.style.height = SkeletonComponent.value(this.skeleton.height);\n this.element.style.borderRadius = SkeletonComponent.value(this.skeleton.borderRadius);\n }\n\n private get actualWidth(): string {\n if (this.skeleton.randomizeOffset && this.skeleton.randomizeOffset > 0 && typeof this.skeleton.width === 'number') {\n return `${this.skeleton.width - Math.floor(Math.random() * this.skeleton.randomizeOffset)}px`;\n }\n\n return SkeletonComponent.value(this.skeleton.width);\n }\n\n private static value(val: number | string | undefined): string {\n if (typeof val === 'number') {\n return `${val}px`;\n }\n return val || '';\n }\n\n}\n","","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\n\n@Component({\n selector: 'mosa-skeleton-loader',\n template: '',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\n// eslint-disable-next-line @angular-eslint/component-class-suffix\nexport class BaseSkeletonLoader {\n\n @Input()\n public itemCount: number | undefined;\n\n}\n","import { ChangeDetectionStrategy, Component, Input, OnInit, TemplateRef } from '@angular/core';\nimport { BaseSkeletonLoader } from '../base.skeleton-loader';\nimport { MatList, MatListItem } from '@angular/material/list';\nimport { NgTemplateOutlet } from '@angular/common';\n\n@Component({\n selector: 'mosa-list-skeleton-loader',\n templateUrl: './list.skeleton-loader.html',\n styleUrls: [ './list.skeleton-loader.scss' ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n MatList,\n MatListItem,\n NgTemplateOutlet,\n ],\n})\n// eslint-disable-next-line @angular-eslint/component-class-suffix\nexport class ListSkeletonLoader extends BaseSkeletonLoader implements OnInit {\n\n @Input()\n public content: TemplateRef<unknown> | undefined;\n\n public items: number[] = [];\n\n constructor() {\n super();\n }\n\n public ngOnInit(): void {\n this.items = Array(this.itemCount).fill(this.itemCount).map((x: number, i: number): number => i);\n }\n\n}\n","<mat-list>\n @for (item of items; track item) {\n <mat-list-item>\n <ng-container *ngTemplateOutlet=\"content, context: { $implicit: item }\"></ng-container>\n </mat-list-item>\n }\n</mat-list>\n","import { ChangeDetectionStrategy, Component, Input, OnInit } from '@angular/core';\nimport { Skeleton } from '../../../models/skeleton.model';\nimport { BaseSkeletonLoader } from '../base.skeleton-loader';\nimport { MatCell, MatCellDef, MatColumnDef, MatHeaderCell, MatHeaderCellDef, MatHeaderRow, MatHeaderRowDef, MatRow, MatRowDef, MatTable } from '@angular/material/table';\nimport { SkeletonComponent } from '../skeleton/skeleton.component';\n\n@Component({\n selector: 'mosa-table-skeleton-loader',\n templateUrl: './table.skeleton-loader.html',\n styleUrls: [ './table.skeleton-loader.scss' ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n MatTable,\n MatColumnDef,\n MatHeaderCellDef,\n MatHeaderCell,\n SkeletonComponent,\n MatCellDef,\n MatCell,\n MatHeaderRowDef,\n MatHeaderRow,\n MatRowDef,\n MatRow,\n ],\n})\n// eslint-disable-next-line @angular-eslint/component-class-suffix\nexport class TableSkeletonLoader extends BaseSkeletonLoader implements OnInit {\n\n @Input()\n public columns: Skeleton[][] = [];\n\n public items: Skeleton[][] = [];\n public displayedColumns: string[] = [];\n\n constructor() {\n super();\n }\n\n public ngOnInit(): void {\n for (let i = 0; i < this.columns.length; i++) {\n this.displayedColumns.push(`column-${i}`);\n }\n\n for (let i = 0; i < (this.itemCount || 0); i++) {\n const skeletons: Skeleton[] = [];\n for (let j = 0; j < this.displayedColumns.length; j++) {\n const skeleton = this.columns[ j ][ 1 ];\n skeletons.push(new Skeleton({\n width: skeleton.width,\n height: skeleton.height,\n borderRadius: skeleton.borderRadius,\n randomizeOffset: skeleton.randomizeOffset,\n }));\n }\n this.items.push(skeletons);\n }\n }\n\n}\n","<table [dataSource]=\"items\" mat-table>\n @for (column of columns; track column; let i = $index) {\n <ng-container [matColumnDef]=\"'column-' + i\">\n <th *matHeaderCellDef mat-header-cell>\n <mosa-skeleton [skeleton]=\"column[0]\"></mosa-skeleton>\n </th>\n <td *matCellDef=\"let row\" mat-cell>\n <mosa-skeleton [skeleton]=\"column[1]\"></mosa-skeleton>\n </td>\n </ng-container>\n }\n <tr *matHeaderRowDef=\"displayedColumns;sticky:true\" mat-header-row></tr>\n <tr *matRowDef=\"let row; columns: displayedColumns;\" class=\"row-hover\" mat-row></tr>\n</table>\n","import { Component, inject, Inject, OnInit } from '@angular/core';\nimport { MAT_DIALOG_DATA, MatDialogActions, MatDialogContent, MatDialogRef, MatDialogTitle } from '@angular/material/dialog';\nimport { IUpdateConfig, UpdateDialogResult } from '../../../models/update-config.model';\nimport { MatButton } from '@angular/material/button';\nimport { AsyncPipe, UpperCasePipe } from '@angular/common';\nimport { TranslatePipe } from '@ngx-translate/core';\nimport { MosaDurationPipe } from '@mosa-ng/core';\n\n@Component({\n selector: 'mosa-mat-update-dialog',\n templateUrl: './mat-update.dialog.html',\n styleUrls: [ './mat-update.dialog.scss' ],\n imports: [\n MatDialogTitle,\n MatDialogContent,\n MatDialogActions,\n MatButton,\n AsyncPipe,\n UpperCasePipe,\n TranslatePipe,\n MosaDurationPipe,\n ],\n})\nexport class MatUpdateDialog implements OnInit {\n\n private readonly myMatDialogRef: MatDialogRef<MatUpdateDialog> = inject(MatDialogRef<MatUpdateDialog>);\n\n constructor(\n @Inject(MAT_DIALOG_DATA) public readonly config: IUpdateConfig,\n ) {\n }\n\n public ngOnInit(): void {\n //\n }\n\n public close(result: UpdateDialogResult): void {\n this.myMatDialogRef.close(result);\n }\n\n}\n","<h1 class=\"active\" mat-dialog-title>{{ config.title | translate }}</h1>\n<div mat-dialog-content>\n {{ config.message | translate }}\n</div>\n<div mat-dialog-actions>\n <button (click)=\"close(0)\" [class.cancel-btn]=\"config.showIgnore\" mat-stroked-button>\n {{ 'mosa.commons.buttons.cancel' | translate | uppercase }}\n </button>\n @if (config.showIgnore) {\n <button (click)=\"close(1)\" color=\"primary\" mat-stroked-button>\n {{\n 'mosa.commons.buttons.ignoreFor' | translate: {\n duration: config.ignoreTimeout | mosaDuration: 'auto' | async | uppercase\n } | uppercase\n }}\n </button>\n }\n <button mat-flat-button color=\"primary\" (click)=\"close(2)\">\n {{ 'mosa.commons.buttons.reloadNow' | translate | uppercase }}\n </button>\n</div>\n","export interface IUpdateConfig {\n refreshInterval?: number;\n ignoreTimeout?: number;\n localStorageKey?: string;\n versionPath: string;\n showIgnore?: boolean;\n title?: string;\n message?: string;\n}\n\nexport interface IVersion {\n version: string;\n timestamp: number;\n}\n\nexport enum UpdateDialogResult {\n cancel,\n ignore,\n reload,\n}\n","import { ChangeDetectionStrategy, Component, inject, Input } from '@angular/core';\nimport { MatDialog } from '@angular/material/dialog';\nimport { ApiService, isNullOrEmpty } from '@mosa-ng/core';\nimport { firstValueFrom, timer } from 'rxjs';\nimport { IUpdateConfig, IVersion, UpdateDialogResult } from '../../models/update-config.model';\nimport { MatUpdateDialog } from './mat-update-dialog/mat-update.dialog';\n\n@Component({\n selector: 'mosa-update-dialog[config]',\n template: '',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class UpdateDialog {\n\n @Input('config')\n public set updateConfig(config: IUpdateConfig) {\n if (config) {\n if (!config.versionPath) {\n console.warn('LoggerService: No version path was provided. This field is required!');\n return;\n }\n\n if (!config.localStorageKey) {\n config.localStorageKey = 'mosaApplicationVersion';\n }\n\n if (!config.ignoreTimeout) {\n config.ignoreTimeout = 30000;\n }\n\n if (!config.refreshInterval) {\n config.refreshInterval = 15000;\n }\n\n if (!config.title) {\n config.title = 'mosa.components.updateDialog.title';\n }\n\n if (!config.message) {\n config.message = 'mosa.components.updateDialog.message';\n }\n\n this.config = config;\n this.end();\n this.start();\n } else {\n console.warn('LoggerService: Cannot check for version. No config was provided.');\n }\n }\n\n private firstLoad: boolean = true;\n\n private blocked: boolean = false;\n private interval: NodeJS.Timeout | undefined;\n private config!: IUpdateConfig;\n\n private readonly myApiService: ApiService = inject(ApiService);\n private readonly myMatDialog: MatDialog = inject(MatDialog);\n\n constructor() {\n }\n\n private start(): void {\n if (this.interval) {\n this.end();\n }\n void this.checkForUpdate();\n this.interval = setInterval((): Promise<void> => this.checkForUpdate(), this.config.refreshInterval);\n }\n\n private openDialog(version: IVersion): void {\n this.myMatDialog.open(MatUpdateDialog, {\n width: '600px',\n data: this.config,\n })\n .afterClosed()\n .subscribe((result: UpdateDialogResult): void => {\n switch (result) {\n case UpdateDialogResult.cancel:\n this.end();\n this.blocked = true;\n break;\n case UpdateDialogResult.ignore:\n timer(this.config.ignoreTimeout!).subscribe((): void => this.openDialog(version));\n break;\n case UpdateDialogResult.reload:\n window.location.reload();\n window.localStorage.setItem(this.config.localStorageKey!, JSON.stringify(version));\n break;\n }\n });\n }\n\n private async checkForUpdate(): Promise<void> {\n if (this.blocked) {\n return;\n }\n\n const localStorageVersion: string | null = window.localStorage.getItem(this.config.localStorageKey!);\n let localVersion: IVersion = { version: '0.0.0', timestamp: 0 };\n if (!isNullOrEmpty(localStorageVersion)) {\n localVersion = JSON.parse(localStorageVersion!);\n }\n const data: IVersion = await firstValueFrom(this.myApiService.get(this.config.versionPath));\n if (this.firstLoad) {\n window.localStorage.setItem(this.config.localStorageKey!, JSON.stringify(data));\n this.firstLoad = false;\n return;\n }\n if (data.version !== localVersion.version) {\n this.blocked = true;\n this.end();\n this.openDialog(data);\n }\n }\n\n private end(): void {\n clearInterval(this.interval);\n this.interval = undefined;\n }\n\n}\n","import { Injectable } from '@angular/core';\nimport { CellEditorComponent } from '../components/cell-editor/cell-editor.component';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class CellEditorService {\n\n public cellEditor: CellEditorComponent | undefined;\n\n private documentEditListener: ((e: MouseEvent) => void | undefined) | undefined;\n\n constructor() {\n }\n\n public updateEditingCell(cellEditor: CellEditorComponent): void {\n if (cellEditor !== this.cellEditor) {\n this.cellEditor?.toOutput(true);\n }\n this.cellEditor = cellEditor;\n this.cellEditor.toInput();\n this.bindDocumentEditListener();\n }\n\n public bindDocumentEditListener(): void {\n if (!this.documentEditListener) {\n this.documentEditListener = (e: MouseEvent): void => {\n e.preventDefault();\n const target: HTMLElement = e.target as HTMLElement;\n const mosaCellEditor: HTMLElement | null = target.closest('mosa-cell-editor');\n if (this.cellEditor && mosaCellEditor !== this.cellEditor.element && !target.classList.contains('cell-output')) {\n document.removeEventListener('click', this.documentEditListener!);\n this.documentEditListener = undefined;\n this.cellEditor.toOutput(true);\n this.cellEditor = undefined;\n }\n };\n\n document.addEventListener('click', this.documentEditListener);\n }\n }\n\n public isEditingCellValid(): boolean {\n return this.cellEditor?.element != null && Array.from(this.cellEditor.element.querySelectorAll('.ng-invalid')).length === 0;\n }\n}\n","import { ContentChild, Directive, ElementRef, HostListener, inject, OnInit } from '@angular/core';\nimport { CellEditorComponent } from '../components/cell-editor/cell-editor.component';\nimport { CellEditorService } from '../services/cell-editor.service';\n\n@Directive({ selector: 'td[mosaCellEditor]' })\nexport class CellEditorDirective implements OnInit {\n\n @ContentChild(CellEditorComponent)\n private readonly cellEditor!: CellEditorComponent;\n\n private readonly myElementRef: ElementRef<HTMLElement> = inject(ElementRef<HTMLElement>);\n private readonly myCellEditorService: CellEditorService = inject(CellEditorService);\n\n constructor() {\n }\n\n @HostListener('keydown.escape', [ '$event' ])\n public onEscapeKeyDown(e: Event): void {\n e.preventDefault();\n this.cellEditor.toOutput();\n }\n\n @HostListener('keydown.tab', [ '$event' ])\n @HostListener('keydown.shift.tab', [ '$event' ])\n @HostListener('keydown.meta.tab', [ '$event' ])\n public onShiftKeyDown(e: Event): void {\n e.preventDefault();\n if ((e as KeyboardEvent).shiftKey) {\n this.moveToCell(e, false);\n } else {\n this.moveToCell(e, true);\n }\n }\n\n @HostListener('keydown.enter', [ '$event' ])\n public onEnterKeyDown(e: Event): void {\n e.preventDefault();\n if (this.myCellEditorService.isEditingCellValid()) {\n this.moveToNextRowCell(e);\n }\n }\n\n @HostListener('click', [ '$event' ])\n public onClick(e: Event): void {\n e.preventDefault();\n this.myCellEditorService.updateEditingCell(this.cellEditor);\n this.cellEditor.cellClick.emit();\n }\n\n public ngOnInit(): void {\n this.myElementRef.nativeElement.classList.add('editable-cell');\n }\n\n private moveToNextRowCell(e: Event): void {\n const currentCell: Element | null | undefined = this.cellEditor?.element?.parentElement;\n if (!currentCell) {\n return;\n }\n\n let columnDefClass: string = '';\n currentCell.classList.forEach((className: string): void => {\n const found: boolean = className.includes('mat-column-');\n if (found) {\n columnDefClass = className;\n }\n });\n\n const targetCell: ChildNode | null = this.findNextRowEditableColumn(currentCell, columnDefClass);\n this.cellEditor.toOutput(true);\n CellEditorDirective.executeMove(e, targetCell);\n }\n\n private findNextRowEditableColumn(row: Element, matColumnClassName: string): ChildNode | null {\n const nextRow: Element | null | undefined = row.parentElement?.nextElementSibling;\n if (!nextRow) {\n return null;\n }\n\n const column: Element = nextRow.getElementsByClassName(matColumnClassName)[ 0 ];\n return column?.classList.contains('editable-cell') ?\n column.firstChild :\n this.findNextRowEditableColumn(nextRow, matColumnClassName);\n }\n\n private findNextEditableColumn(cell: Element): ChildNode | null {\n let nextCell: Element | null | undefined = cell.parentElement?.nextElementSibling;\n\n if (!nextCell) {\n const nextRow: Element | null | undefined = cell.parentElement?.parentElement?.nextElementSibling;\n if (nextRow) {\n nextCell = nextRow.firstElementChild;\n }\n }\n\n if (nextCell) {\n return nextCell.classList.contains('editable-cell')\n ? nextCell.firstChild\n : this.findNextEditableColumn(nextCell);\n }\n\n return null;\n }\n\n private findPreviousEditableColumn(cell: Element): ChildNode | null {\n let prevCell: Element | null = cell.previousElementSibling;\n\n if (!prevCell) {\n const previousRow: Element | null | undefined = cell.parentElement?.previousElementSibling;\n if (previousRow) {\n prevCell = previousRow.lastElementChild;\n }\n }\n\n if (prevCell) {\n return prevCell.classList.contains('editable-cell') ?\n prevCell.firstChild :\n this.findPreviousEditableColumn(prevCell);\n } else {\n return null;\n }\n }\n\n private moveToCell(event: Event, nextCell: boolean): void {\n const currentCell: HTMLElement = this.cellEditor.element;\n if (this.cellEditor.element != null) {\n const targetCell: ChildNode | null = nextCell\n ? this.findNextEditableColumn(currentCell)\n : this.findPreviousEditableColumn(currentCell);\n if (this.myCellEditorService.isEditingCellValid()) {\n this.cellEditor.toOutput(true);\n (targetCell as HTMLElement)?.click();\n }\n CellEditorDirective.executeMove(event, targetCell);\n }\n }\n\n private static invokeElementMethod(element: EventTarget | ChildNode | Element | null, methodName: string, args?: unknown[]): void {\n // eslint-disable-next-line @typescript-eslint/no-restricted-types,@typescript-eslint/no-unsafe-function-type,@typescript-eslint/no-explicit-any\n ((element as any)[ methodName ] as Function).apply(element, args);\n }\n\n private static executeMove(e: Event, targetCell: ChildNode | null): void {\n e.preventDefault();\n // If datepicker is opened, remove cdk-overlay from dom\n const element: Element = e.composedPath()[ 0 ] as Element;\n if (element.className.includes('td-input-date')) {\n const cdkOverlayContainer: Element = document.getElementsByClassName('cdk-overlay-container')[ 0 ];\n const cdkBackdrop: Element = cdkOverlayContainer.getElementsByClassName('cdk-overlay-backdrop')[ 0 ];\n if (cdkBackdrop != null) {\n CellEditorDirective.invokeElementMethod(cdkBackdrop, 'click');\n }\n cdkOverlayContainer.innerHTML = '';\n }\n\n CellEditorDirective.invokeElementMethod(e.target, 'blur');\n if (targetCell != null) {\n CellEditorDirective.invokeElementMethod(targetCell, 'click');\n }\n }\n\n}\n","import { Directive, ElementRef, EventEmitter, HostListener, Input, Output } from '@angular/core';\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: '[clickOutside]',\n})\nexport class ClickOutsideDirective {\n\n @Output()\n public clickOutside: EventEmitter<[ HTMLElement, HTMLElement ]> = new EventEmitter<[ HTMLElement, HTMLElement ]>();\n\n @Input()\n public enableWhiteListing: boolean = false;\n\n constructor(\n private readonly elementRef: ElementRef,\n ) {\n }\n\n @HostListener('document:click', [ '$event.target' ])\n public onClick(targetElement: EventTarget | null): void {\n const clickedInside = this.elementRef.nativeElement.contains(targetElement);\n const whiteListedClass = 'whitelisted';\n if (clickedInside || !targetElement) {\n return;\n }\n\n const htmlElement: HTMLElement = targetElement as HTMLElement;\n if (this.enableWhiteListing) {\n const isWhiteListed = htmlElement.classList.contains(whiteListedClass)\n || ClickOutsideDirective.getClosest(htmlElement, whiteListedClass)\n || ClickOutsideDirective.getClosest(htmlElement, 'cdk-overlay-container');\n if (!isWhiteListed) {\n this.clickOutside.emit([ this.elementRef.nativeElement, htmlElement ]);\n }\n } else {\n this.clickOutside.emit([ this.elementRef.nativeElement, htmlElement ]);\n }\n }\n\n private static getClosest(el: HTMLElement | null, selector: string): HTMLElement | null {\n while (el) {\n if (el.classList.contains(selector)) {\n return el;\n }\n el = el.parentElement;\n }\n return null;\n }\n\n}\n","import { Injectable } from '@angular/core';\nimport { CoreLoggerService, ILoggerConfig, ILoggerDefaultConfig, LogType } from '@mosa-ng/core';\nimport { LoggerComponent } from '../components/logger/logger.component';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class LoggerService extends CoreLoggerService {\n\n private loggerComp: LoggerComponent | undefined;\n\n /**\n * Default constructor\n */\n constructor() {\n super();\n }\n\n /**\n * Setter for logger\n * @param component\n * @param defaultConfig\n */\n public logger(component: LoggerComponent, defaultConfig: ILoggerDefaultConfig): void {\n this.loggerComp = component;\n this.defaultConfig = defaultConfig;\n }\n\n /**\n * Shows the log\n * @param type\n * @param config\n */\n public override show(config: ILoggerConfig, type: LogType): void {\n super.show(config, type);\n if (this.loggerComp) {\n const i: number = this.loggerComp.slideIn(config.title, config.msg, type, config);\n\n if (config.duration !== -1) {\n setTimeout((): void => this.loggerComp?.slideOut(i), (config.duration || 1) * 1000);\n }\n }\n }\n\n}\n","import { AssetsI18nLoaderService } from '@mosa-ng/core';\nimport { EnvironmentProviders, inject, makeEnvironmentProviders, provideAppInitializer } from '@angular/core';\n\n// Components\nexport * from './components/alert-widget/alert.widget';\nexport * from './components/base/cell-editor.base.component';\nexport * from './components/cell-editor/cell-editor.component';\nexport * from './components/confirm-dialog/confirm.dialog';\nexport * from './components/loading-button/loading-button.component';\nexport * from './components/logger/logger.component';\nexport * from './components/skeleton-loader/skeleton/skeleton.component';\nexport * from './components/skeleton-loader/list-skeleton-loader/list.skeleton-loader';\nexport * from './components/skeleton-loader/table-skeleton-loader/table.skeleton-loader';\nexport * from './components/update-dialog/mat-update-dialog/mat-update.dialog';\nexport * from './components/update-dialog/update.dialog';\n\n// Directives\nexport * from './directives/cell-editor.directive';\nexport * from './directives/click-outside.directive';\n\n// States\nexport * from './models/states/logger-state.model';\nexport * from './models/states/cell-editor-base-state.model';\n\n// Models\nexport * from './models/skeleton.model';\nexport * from './models/confirm-dialog.model';\nexport * from './models/table-item.model';\nexport * from './models/update-config.model';\n\n// Services\nexport * from './services/cell-editor.service';\nexport * from './services/logger.service';\n\nexport * from './services/facades/logger.facade';\n\nfunction initI18n(i18n: AssetsI18nLoaderService): Promise<void> {\n return i18n.init(undefined, 'mosa');\n}\n\nexport const provideMosaMaterial: () => EnvironmentProviders = () => makeEnvironmentProviders([\n provideAppInitializer(() => initI18n(inject(AssetsI18nLoaderService))),\n]);\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mosa-ng/material",
|
|
3
|
-
"version": "21.0.
|
|
3
|
+
"version": "21.0.2",
|
|
4
4
|
"peerDependencies": {
|
|
5
|
-
"@angular/common": ">=
|
|
6
|
-
"@angular/core": ">=
|
|
5
|
+
"@angular/common": ">=21.0.0 < 22.0.0",
|
|
6
|
+
"@angular/core": ">=21.0.0 < 22.0.0"
|
|
7
7
|
},
|
|
8
8
|
"dependencies": {
|
|
9
9
|
"tslib": "^2.3.0"
|
|
@@ -109,7 +109,7 @@ declare class LoadingButtonComponent {
|
|
|
109
109
|
constructor();
|
|
110
110
|
onClick(e: MouseEvent): void;
|
|
111
111
|
static ɵfac: i0.ɵɵFactoryDeclaration<LoadingButtonComponent, never>;
|
|
112
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<LoadingButtonComponent, "mosa-loading-button", never, { "mode": { "alias": "mode"; "required": false; }; "loading": { "alias": "loading"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "color": { "alias": "color"; "required": false; }; "buttonType": { "alias": "buttonType"; "required": false; }; "icon": { "alias": "icon"; "required": false; }; }, { "click": "click"; }, never, [".icon", "
|
|
112
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<LoadingButtonComponent, "mosa-loading-button", never, { "mode": { "alias": "mode"; "required": false; }; "loading": { "alias": "loading"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "color": { "alias": "color"; "required": false; }; "buttonType": { "alias": "buttonType"; "required": false; }; "icon": { "alias": "icon"; "required": false; }; }, { "click": "click"; }, never, [".icon", "*"], true, never>;
|
|
113
113
|
}
|
|
114
114
|
|
|
115
115
|
interface ILoggerState {
|